Я не знаю VideoJS, и я не знаю, что вы пытаетесь точно , но из того, что я вижу, установите $ video-> source значение $ match [1], но вы тестируете обычное Выражение сначала для поиска по тегу {youtube}, а затем для поиска по тегу {video}, но вы используете ту же переменную $ match и не проверяете, является ли то, что вы (в конечном итоге) нашли (видео на YouTube или «нормальное») видео?).
Из того, что я вижу, вы получаете доступ к $ video-> format в файле макета, но не устанавливаете его.
Может быть, вы должны написать что-то как это
[...]
if ( preg_match($youtubeCode, $article->introtext, $match) ) {
// found a {youtube} tag
$video->format = "youtube";
$video->source = $match[1];
} else if ( preg_match($videoCode, $article->introtext, $match) ) {
// found a {video} tag
$video->format = "video";
$video->source = $match[1];
}
// Prepend the <video> element if {youtube} or {video} tag found
if ( $layout && !is_null($video->format) && !is_null($video->format) ) {
ob_start();
require $layout;
$contents = ob_get_contents();
ob_end_clean();
$article->introtext = $contents . $article->introtext;
}
Но, пожалуйста, обратите внимание, поскольку он должен заменить только первый найденный тег, если у вас есть статья с несколькими тегами {youtube} / {video}, она не должна работать.
Надеюсь, я хорошо понял, что вы пытаетесь сделать: P