1.5. Возможности расширения

Существует несколько возможностей по расширению функционала движка Zebrum Lite.

Сторонние классы рекомендуется располагать в папке zcontent/extensions. Название класса должно совпадать с названием файла. Например, класс myclass должен находиться в файле zcontent/extensions/myclass.php, а my_classzcontent/extensions/my/class.php.

Загрузка класса из этой папки (и подпапках) будет произведена автоматически при его первом использовании, поэтому конструкцию require_once вызывать необязательно.

Ниже представлен список возможных расширений с их описанием.

плагины

Плагины создаются движком при обращении к каждой странице сайта.

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

Например, плагин zplugin_rss регистрирует обработчики для вывода RSS-ленты по определенному адресу, добавления мета-тэга в блок HEAD шаблона сайта и отслеживание добавленных/удаленных страниц на сайте.

модули

В отличие от плагинов, модули создаются только в момент обращения к конкретной странице (например, карте сайта) или при обращении к модулю из шаблона.

Они позволяют полностью сгенерировать не только текст страницы, но и подстраницы.

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

классификаторы

Классификаторы используются как вспомогательный функционал для индексации всех страниц сайта в каком-то измерении.

Например, классификатор ztaxonomy_tags собирает информацию о тэгах сайта, а ztaxonomy_time — хранит список страниц в хронологическом порядке.

преобразователи

Преобразователи страниц используются для обработки свойств страницы перед её добавлением в репозиторий.

Например, преобразователь ztransform_split разбивает текст страницы на подстраницы согласно настройкам.

И если автоматическое разделение выключено, то подстраницы будут делиться по метке <!--nextpage-->.

фильтры

Фильтры применяются при выводе текста страницы (или его части, подстраницы).

Например, фильтр zfilter_text2html отвечает за автоматическое преобразование обычного текста в HTML-код, обрамляя абзацы в тэг p.