Документация Smarty


Префильтры/Постфильтры

Концепция плагинов префильтров и постфильтров очень проста; они отличаются местом исполнения, или, точнее, временем их исполнения.

string smarty_prefilter_name (string $source, object &$smarty)

Префильтры используются для обработки исходного кода шаблона непосредственно перед компиляцией. Первый параметр функции префильтра - это исходный код шаблона, который, возможно, уже изменен другими префильтрами. Такой плагин возвращает модифицированый исходный код. Заметьте, что этот исходный код нигде не сохраняется, он используется только для компиляции.

string smarty_postfilter_name (string $compiled, object &$smarty)

Постфильтры используются для обработки скомпилированного вывода шаблона (по сути - PHP-кода) сразу по завершению компиляции, но перед сохранением откомпилированного шаблона в файловой системе. Первым параметром функции постфильтра является скомпилированный код шаблона, возможно уже модифицированый другими постфильтрами. Плагин возвращает модифицированную версию этого кода.

Пример 16-7. Плагин префильтра

<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Файл:     prefilter.pre01.php
 * Тип:     prefilter
 * Имя:     pre01
 * Назначение:  Перевести все тэги html в нижний регистр.
 * -------------------------------------------------------------
 */
 
function smarty_prefilter_pre01($source, &$smarty)
 {
    return 
preg_replace('!<(\w+)[^>;]+&gt;!e''strtolower("$1")'$source);
 }
 
?>

Пример 16-8. Плагин постфильтра

<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Файл:     postfilter.post01.php
 * Тип:     postfilter
 * Имя:     post01
 * Назначение:  Вывести код, перечисляющий все текущие
 * переменные шаблона.
 * -------------------------------------------------------------
 */
 
function smarty_postfilter_post01($compiled, &$smarty)
 {
     
$compiled "<pre>\n<?php print_r(\$this->get_template_vars()); ?>\n</pre>" $compiled;
     return 
$compiled;
 }
?>
SAPE все усложнил?

MainLink - простая и прибыльная продажа ссылок!

Последние поступления:

Размещена 10 августа 2020 года

Я по ТВ видел, что через 10 лет мы будем жить лучше, чем в Германии...
Я не понял, что это они с Германией сделать хотят?!

читать далее…

ТехЗадание на Землю

Размещена 14 марта 2018 года

Пpоект Genesis (из коpпоpативной пеpеписки)

читать далее…

Шпаргалка по работе с Vim

Размещена 05 декабря 2017 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

читать далее…

Ошибка: Error: Cannot find a valid baseurl for repo

Размещена 13 сентабря 2017 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

читать далее…

Linux Optimization

Размещена 30 июля 2012 года

Prelink

читать далее…