1

在我的 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);
}
4

1 回答 1

2

A solution with cat filter:

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

Alternatively, you can just add the string in double quotes and mark the variable part with inner quotes:

{text key="isearch+`$plugin`_plugin"}
于 2014-05-18T17:06:55.120 回答