Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Плагин — это один из типов расширений Joomla.
Они обеспечивают загрузку дополнительного функционала и реакцию на системные события (триггеры). Когда на сайте происходит определенное событие, вызывается триггер и все плагины, которые были привязаны к нему начинают выполняться в порядке их подключения.
Событие (триггер) — это какое-то определенное действие со стороны пользователя, самой CMS или даже самих компонентов. В пример таких событий можно назвать начало рендеринга страницы, инициализация системы, авторизация пользователя, сохранение материала и т.д.
Таким образом можно серьезно расширить базовый функционал CMS без изменения ядра, например написать логирование для неудачных попыток авторизации (кстати, это стандартный плагин «Система — Логи»).
В основе реализации плагинов лежит паттерн наблюдатель (Observer). Класс JPlugin является производным от JObserver и предоставляет средства для регистрации собственных плагинов. Класс JEventDispatcher — это расширение класса JObserver. Его основная задача выполнение всех плагинов, которые привязанные к определенному событию в момент.
До выхода Joomla1.5, плагины были известны как мамботы. В отличие от того что мы имеем сейчас, они изменяли только содержимое контента, а количество событий нельзя было увеличивать самостоятельно. С тех пор очень много изменилось в лучшую сторону.