Создание произвольного плагина
Плагины можно применять не только для обработки системных событий, но и просто для расширения функционала собственного компонента - что-то вроде расширений к расширениям.
Эта статья поможет вам лучше понять, что необходимо сделать чтобы получить собственный плагин. Большинство из них состоят только из одного файла, который несет в себе сам код. Но для правильной установки и работы необходимо добавить еще XML-файл, который будет описывать процесс установки, мета данные и параметры.
Создание установочного файла
Как и для любых других расширений Joomla, установочный файл - это архив *.zip или *.tar.gz. В любом случае в архиве должен быть валидный XML, иначе установка будет не возможна. Ниже можно увидеть пример этого файла для поискового плагина
К важным моментам тут относятся
- group="search"
Группа к которой принадлежит плагин. Она совпадает с названием директории, где будет располагаться файл. Например для поисковых плагинов будет использовать "<siteroot>/plugins/search". - <files><filename /><filename /></files>
Список файлов, которые будут скопированы при установки. - <params>
Параметры, который будут доступны при настройке плагина. - method="upgrade"
Параметр в теге <install> явно указывает что при установке не нужно удалять старые файлы, а только переписать их новыми из архива.
Остальные свойства очевидны.
Стоит заметить, что ваш плагин должен содержать только уникальные функции и классы, чтобы избежать конфликтов с другими частями системы.
Если ваш плагин не использует функционал из существующих категорий, то укажите собственную группу. Во избежание ошибок, перед установкой, создайте необходимую категорию, например так
<siteroot>/plugins/mypuginsИсполняемый код
Joomla использует для реализации паттерн Наблюдатель (Observer). Лучше придерживаться именно такой реализации.
Используем плагин в своем коде
После того как вы создали свой плагин, вероятно вы захотите использовать его в вашем коде, например, в компоненте. Обычно это необходимо, только если вы используете нестандартные категории плагинов. Остальные будут вызываться автоматически на определенные события системы и явный вызов к ним нет необходимости писать.
Произвольный вызов события плагинов выглядит следующим образом
Массив параметров отправлять не обязательно. После выполнения этого кода, все активные плагины выбираются из общего списка, выстраиваются в порядке приоритета (он выбирается в панели управления, Менеджер плагинов, столбец "порядок") и в каждом из них вызывается метод имя которого совпадает с названием события. Метод в виде аргументов получит массив <ParameterArray>, каждый элемент которого будет новым аргументом.