Создание плагина-модификатора для Smarty


В Smarty к переменным можно применять модификаторы. Например, если в переменной  $post_time находится значение timestamp, возвращаемое функцией time(), то с помощью модификатора date_format можно превратить его в запись типа "10-10-2007 12:25:52". Делается это так:
 
{$post_time|date_format:"%d-%m-%Y %H:%M:%S"}
 
Сам модификатор представляет собой PHP-функцию, файл с кодом которой находится в папке plugins дистрибутива Smarty. Файл должен называться modifier.mod_name.php (где mod_name - имя модификатора, не должно содержать пробелов).
 
В файле обязательно должна присутствовать функция, которая будет выполняться при вызове модификатора. Она должна иметь вид:
 
function smarty_modifier_mod_name($string)
{
    ...
    return ...;
}
 
mod_name в имени файла и функции должны совпадать, $string - это данные, которые передаются модификатору. Функция должна вернуть (return ...) результат обработки этих данных.
 
Для примера рассмотрим модификатор, который парсирует переданную ему строку BBCode с помощью библиотеки xBB. Назовем наш модификатор parse_bb.
 
В папке plugins создадим файл с названием modifier.parse_bb.php, в который запишем следующий код:
 
<?php
 
function smarty_modifier_parse_bb($string)
{
    //подключаем библиотеку
    require_once('путь_к_библиотеке_xBB/bbcode.lib.php');
    
    //создаем парсер, передаем ему строку $string с BBCode
    $bbtext = new bbcode($string);
 
    //возвращаем обработанный результат (html-код)
    return $bbtext->get_html();
}
 
?>
 
Как видно из кода - все достаточно просто.


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

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