PHP Smarty的修饰符插件可以访问Smarty对象吗?
块类型和函数插件类型都以当前Smarty对象作为参数。即
function smarty_function_NAME($params, Smarty_Internal_Template $Smarty) {...}
function smarty_block_NAME($params, $content, Smarty_Internal_Template $Smarty, &$repeat) {...}但是修饰符插件没有。即
function smarty_modifier_NAME($arg1, $arg2, ...) {...}有任何方法可以从修饰符中访问Smarty对象吗?
我想使用一个修饰符来获取变量名称字符串的值,如下所示:
{$colorblue = '#0317e9'}
{$index = 'blue'}
{$_color = "color`$index`"|smarty_variable_value}发布于 2015-06-16 07:57:53
最后,我创建了一个小的get扩展函数来处理这个问题:
function smarty_function_get($params, Smarty_Internal_Template $Smarty) {
if (!isset($params['name'])) {
return;
}
$value = $Smarty->getTemplateVars($params['name']);
if (!isset($params['assign'])) {
return $value;
}
$Smarty->assign($params['assign'], $value);
}呼叫使用
{get name="color`$index`" assign="_color"}https://stackoverflow.com/questions/28456738
复制相似问题