将常规PHP格式化为智能代码

时间:2013-09-28 13:48:15

标签: php youtube smarty

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

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

因此,在聪明的情况下,{$p.youtube_key}将显示为他们提交的给定网址。

对于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模板中设置它。

1 个答案:

答案 0 :(得分:0)

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

要在Smarty模板中包含该网址,请使用您已发布的语法;在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中一样)。
  • 您可以注册一个plugin,而不是将yt_video的结果分配给变量,这只是一个PHP函数,您告诉Smarty它应该如何在模板中使用。所以你可以使用{get_yt_video_widget video_id=$p.youtube_id attr_autoplay=true}之类的东西来制作完整的网址,设置type属性等等。