Создание плагина-функции для Smarty

Допустим, у вас есть некоторая функция, результат выполнения которой нужно отобразить в  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"}


Добавить комментарий

Логин:
Пароль:
Проверочное число: