【发布时间】:2012-02-07 17:20:42
【问题描述】:
我正在尝试将 VideoJS 集成到一个插件中,以便在博客和文章视图/布局中显示视频。首先,我使用正则表达式找到插件标签和视频的来源,可以是 YouTube 视频 ID 或视频文件的路径:
YouTube 视频来源:{youtube}y0u7u83v1de0{/youtube} 视频文件 来源:{video}path/to/video.mp4{/video}
找到这些值不是问题,在尝试回显视频源时会出现问题。我正在使用 stdClass 对象来保存 onContentBeforeDisplay 函数中的值:
$width = 636;
$height = 333;
$youtubeCode = '/{youtube}(.*?){\/youtube}/';
$videoCode = '/{video}(.*?){\/video}/';
preg_match($youtubeCode, $article->introtext, $match);
preg_match($videoCode, $article->introtext, $match);
$video = new stdClass();
$video->source = $match[1];
$video->width = $width;
$video->height = $height;
$layout = JPATH_SITE . DS . 'plugins' . DS . $this->plugin->type .
DS . $this->plugin->name . DS . 'tmpl' . DS . 'default.php';
if ($layout) {
ob_start();
require $layout;
$contents = ob_get_contents();
ob_end_clean();
$article->introtext = $contents . $article->introtext;
}
现在,布局文件只输出带有 各自的价值观:
<video id="<?= $video->id ?>" class="video-js vjs-default-skin" controls width="<?= $video->width ?>" height="<?= $video->height ?>" poster="<?= $video->images['preview'] ?>" data-setup="{techOrder: ['youtube', 'html5']}">
<source src="<?= $video->source ?>" type="<?= $video->format ?>" />
</video>
所有值都正确显示,除了 $video->source 属性,它在开始输出缓冲之前仍然具有正确的值,但似乎开始输出会使该特定值无效。
什么可能导致这种行为?关于我可能缺少的输出缓冲?
提前致谢!
【问题讨论】:
-
Joomla 基于 PHP 你知道...
-
我实际上找到了“问题”。我与 PHP 和 Joomla! 没有任何关系。我怎样才能结束这个问题?
-
@SaulMartínez:自己回答问题,标记答案。