Chapter 16. Плагины - расширение функциональности Smarty

Table of Contents

Как работают плагины
Соглашение об именах
Написание плагинов
Функции шаблона
Модификаторы
Блоковые функции
Функции компилятора
Префильтры/Постфильтры
Фильтры вывода
Ресурсы
Вставки

Архитектура версии 2.0 позволяет внедрять плагины, которыми являются практически все настраиваемые элементы функционала Smarty. Сюда входят:

За исключением ресурсов, в целях обратной совместимости с предыдущими версиями, сохранена возможность регистрации функций посредством register_* API. Если вы не используете API, а вместо этого модифицируете свойства $custom_funcs, $custom_mods и некоторые другие напрямую, тогда вам придется подогнать ваши скрипты под использование API или преобразовать добавленную вами функциональность в плагины.

Как работают плагины

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

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

Директория плагинов может быть строкой, содержащей путь, или массивом, содержащим множество путей. Чтобы установить плагин, просто поместите его в одну из этих директорий и Smarty автоматически будет его использовать.