Плагин модификатора Smarty с доступом к объекту Smarty

Может ли плагин модификатора для 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}
1 ответ

В итоге я создал небольшую функцию расширения 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"}

licensed under cc by-sa 3.0 with attribution.