将变量传递给smarty函数

辣椒

在我的PHP应用程序中,我使用Smarty进行模板制作并使用一些自定义函数。在下面的示例中,函数名称为“ text”,带有“ key”属性。该函数将根据键获取字符串值

下面的示例工作正常,没有问题。

{text key='isearch+login_name'}

我正在尝试做的是将值动态传递给属性。在下面的代码中,变量$ plugin将具有dynmaci值,并希望被替换。

{text key='isearch+$plugin_plugin'}

使用上面的代码,我得到的输出为'isearch + $ plugin_plugin',而不是正确的字符串值。

下面是用于Smarty函数的PHP函数。

function smarty_function_text($params, $smarty)
{
    $key = $params['key'];
    unset($params['key']);

    $key = explode('+', $key);

    return OW::getLanguage()->text($key[0], $key[1], $params);
}
jsalonen

带有cat过滤器的解决方案

{text key="isearch+"|cat:$plugin|cat:"_plugin"}

或者,您可以仅将字符串添加在双引号中,并用内引号标记变量部分:

{text key="isearch+`$plugin`_plugin"}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章