Плагины - расширение функционала Smarty
Архитектура версии 2.0 позволяет внедрять плагины, которыми являются
практически все настраиваемые элементы функционала Smarty. Сюда входят:
функции
модификаторы
блоковые функции
функции компилятора
префильтры
постфильтры
фильтры вывода
ресурсы
вставки
За исключением ресурсов, в целях обратной совместимости с предыдущими версиями, сохранена
возможность регистрации функций посредством register_* API.
Если вы не используете API, а вместо этого модифицируете
$custom_funcs, $custom_mods и некоторые другие
переменные напрямую, тогда вам придется подогнать ваши скрипты под использование
API или преобразовать добавленную вами функциональность в плагины.
Как работают плагины
Плагины загружаются только при необходимости. Загруженными окажутся
только только те модификаторы, функции,ресурсы и т.п., которые
определены в скрипте шаблона. Более того, каждый плагин загружается
лишь один раз, даже если у вас имеется несколько различных экземпляров
объекта Smarty, выполняемых внутри одного запроса.
Пре/постфильтры и фильтры вывода - это отдельный случай. Так как
они не упоминаются в шаблонах, их необходимо зарегистрировать
или явно загрузить с помощью API-функций перед обработкой шаблона.
Порядок исполнения множественных фильтров зависит от порядка, в котором
они были зарегистрированы или загружены.
В целях оптимизации производительности, под плагины отведена одна
специальная директория. Чтобы установить плагин, просто поместите его
в эту директорию и Smarty будет использовать его в автоматическом режиме.
&programmers.plugins.plugins-howto;
&programmers.plugins.plugins-naming-conventions;
&programmers.plugins.plugins-writing;
&programmers.plugins.plugins-functions;
&programmers.plugins.plugins-modifiers;
&programmers.plugins.plugins-block-functions;
&programmers.plugins.plugins-compiler-functions;
&programmers.plugins.plugins-prefilters-postfilters;
&programmers.plugins.plugins-outputfilters;
&programmers.plugins.plugins-resources;
&programmers.plugins.plugins-inserts;