1

我熟悉php但不熟悉smarty模板代码。

我正在尝试设置一个由我的脚本设置的值,其格式如下,{$p.youtube_key}它是一个变量,当用户将视频设置为他们的上传帖子时,它将输出给定的 url。

所以在 smarty 中,{$p.youtube_key}将显示为他们提交的给定 url。

至于 php,我有一个 html5 播放器,我需要在其中输出视频链接。

这是我的代码:

<video width="800" height="680" style="margin-left:-30px;"
 id="post_html5_api" autoplay="true" class="vjs-tech"
 loop="" poster="" type="video/mp4" preload="auto"
 src="<?php echo yt_video('baseurl'); ?>" >

src=是我需要输出的地方{$p.youtube_key}。但是,我不知道应该如何在smarty模板中设置它。

4

1 回答 1

0

我不太确定你不知道该怎么做,所以我会猜测一下;抱歉,如果我误解了您的要求。

要在 Smarty 模板中包含 URL,请使用已发布的语法;在您的 HTML 中,它将如下所示:

<video width="800" height="680" style="margin-left:-30px;"
 id="post_html5_api" autoplay="true" class="vjs-tech"
 loop="" poster="" type="video/mp4" preload="auto"
 src="{$p.youtube_key}" >

{$p.youtube_key}本质上与说的相同,<?php echo $p['youtube_key']; ?>因此您需要在提供模板的 PHP 代码中设置该变量。那部分看起来像这样:

 $post = array(
      // ...
      'youtube_key' => yt_video('baseurl')
 );
 $smarty->assign('p', $post);

其他一些提示:

  • 如果没有要显示的视频,您可以将整个视频小部件包裹起来{if $p.youtube_key} ... {/if}以隐藏它(就像在普通 PHP 中一样)。
  • yt_video您可以注册一个plugin ,而不是将结果分配给变量,这只是一个 PHP 函数,您已经告诉 Smarty 如何在模板中使用它。所以你可以有类似的东西{get_yt_video_widget video_id=$p.youtube_id attr_autoplay=true},它计算出完整的 URL,设置type属性等。
于 2013-09-29T03:05:29.340 回答