Допустим, у вас есть некоторая функция, результат выполнения которой нужно отобразить в Smarty-шаблоне. Вы можете сделать это связав результат работы функции с переменной Smarty
function my_function($a, $b) { return $a + $b; }
$smarty->assign(‘v’, my_function(1, 2));
а можете создать плагин-функцию для Smarty и вызывать эту функцию уже внутри Smarty-шаблона. Например так:
{my_function a=”1″ b=”2″}
тогда результат работы данной функции отобразится на месте ее вызова в шаблоне. Данный способ часто применяется когда нужно вызвать какой-либо метод у объекта. В таком случае обычно плагину передают имя объекта и имя метода.
Код плагина должен находиться в файле function.имя_функции.php в каталоге plugins дистрибутива Smarty.
Рассмотрим код плагина getsum, который возвращает сумму двух чисел:
<?php
function smarty_function_getsum($params, &$smarty)
{
return $params[‘a’] + $params[‘b’];
}
?>
Массив $params содержит имена и значения параметров, переданных функции. Из шаблона данная функция вызывается так:
{getsum a=”1″ b=”2″}
Материал взят с сайта http://www.answerium.com/article25/
Просмотров : 3882