首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将智能变量传递给php函数?

如何将智能变量传递给php函数?
EN

Stack Overflow用户
提问于 2014-07-23 22:03:31
回答 1查看 2.7K关注 0票数 3

PHP代码:

代码语言:javascript
复制
function show_playlist_form($array)
{
    global $cbvid;
    assign('params',$array);

    $playlists = $cbvid->action->get_channel_playlists($array);
    assign('playlists',$playlists);

    Template('blocks/playlist_form.html');
}

HTML代码(内部智能):

代码语言:javascript
复制
<html><head></head>
<body>
{show_playlist_form}
</body>
</html>

所有这些都可以在剪辑桶视频脚本中找到。html代码调用php函数,其中显示playlist_form.html.。但是,我感兴趣的是在智能定义的标记show_playlist_form中添加一个整数值,以便将其传递给php show_playlist_form($array)中的函数,然后函数将整数赋值给$array

我试过了,假设我对传递整数1感兴趣

代码语言:javascript
复制
{show_playlist_form(1)} 

/home/george/public_html/styles/george/layout/view_channel.html中的致命错误:智能错误:在第4行:语法错误:无法识别的标签: show_playlist_form(1) (Template_Compiler.class.php,第447行)

代码语言:javascript
复制
{show_playlist_form array='1'}

html代码起作用了,但我什么也没有得到(空白)。

所以,这不管用,我能做什么?我需要将整数值传递给函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-23 22:27:04

您在这里要寻找的是实现一个接收参数的“自定义模板函数”。

关于函数插件的文档所示,您创建的函数将收到两个参数:

  • Smarty标记中命名参数的关联数组
  • 表示当前模板的对象(用于分配额外的智能变量)

因此,例如,如果您定义如下:

代码语言:javascript
复制
function test_smarty_function($params, $smarty) {
      return $params['some_parameter'], ' and ', $params['another_parameter'];
}

并在Smarty中注册如下所示的名称test

代码语言:javascript
复制
$template->registerPlugin('function', 'test', 'test_smarty_function');

然后您可以在模板中使用它,如下所示:

代码语言:javascript
复制
{test some_parameter=hello another_parameter=goodbye}

它的输出应该是:

代码语言:javascript
复制
hello and goodbye

在你的例子中,你可能想要这样的东西:

代码语言:javascript
复制
function show_playlist_form($params, $smarty) {
     $playlist_id = $params['id'];
     // do stuff...
}

这是:

代码语言:javascript
复制
{show_playlist_form id=42}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24921825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档