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″}

Материал взят с сайта http://www.answerium.com/article25/

Просмотров : 3882
Запись опубликована в рубрике PHP, Без рубрики с метками , , , . Добавьте в закладки постоянную ссылку.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *