| Создание плагин для Joomla 1.5 |
| 05.06.2009 19:51 | |||
|
С проблемой создания расширений для Joomla 1.5 я столкнулся (и продолжаю сталкиваться) при переводе одного сайта с 1.0-версии на 1.5-ю и с удивлением обнаружил, что ветка 1.5 документирована из рук вон плохо. Более-менее нормально документирован сам API, который теперь называется Joomla Framework, но никаких вменяемых туториалов даже в официальном вики не наблюдается, поэтому мне пришлось использовать скудную информацию, почерпнутую из блогов в англоязычном Интернете, разбираться в коде Джумлы и в коде ее демо-примеров. Учитывая этот факт, а также факт практически полного отсутствия какой бы то ни было полезной информация по разработке на Джумле 1.5 в русскоязычном Интернете, я решился на эту скромную статью. Здесь я опишу свой опыт создания простейшего плагина и доведения его до рабочего состояния, поэтому, если какие-то мои решения покажуться кому-то неправильными или неоптимальными, просьба дать знать, т.к. иначе добыть «правильную» информацию по этому вопросу исключительно трудно. Постановка задачиТребуется создать «родной» плагин, который позволял бы вставить в нужное месте статьи содержимое категории в виде списка ссылок на статьи этой категории. Очевидно, в терминологии Joomla — это контентный (content) плагин. Joomla 1.5 позволяет подключать расширения, написанные по-старому (как это принято в ветке 1.0) в режиме совместимости (legacy), для этого необходимо опубликовать системный плагин Legacy и включить Режим совместимости (Legacy Mode). Тем не менее было принято решение делать все «по-новому», т.е. в «родном» режиме. Плагин мы назовем ItemList. Для использования плагина необходимо в нужном месте содержимого статьи указать специальный тег в виде {itemlist: id_категории}. РеализацияДля создания своего плагина необходимо создать класс, унаследованный от JPlugin и реализовать в нем требуемый функционал. Для успешного функционирования плагина в среде Joomla, в классе плагина должны быть реализованы некоторые методы с предопределенными именами – именно эти методы Joomla будет вызывать в процессе работы. Для контентных плагинов (согласно Andrew Eddie) таких методов предопределено 5 штук:
Для создания нашего простейшего плагина нам понадобится только первый из методов, т.е. onPrepareContent, который имеет три параметра:
В теле этого метода будет собственно реализован весь функционал нашего плагина, для чего необходимо:
Наш плагин состоит всего из двух файлов. itemlist.php
В этом файле реализован весь функционал нашего плагина. Класс plgContentItemList имеет конструктор, который, в целях совместимости с PHP4 реализован именно в старом стиле. Инициализация сводится лишь к тому, что необходимо загрузить информацию о плагине, что производится вызовом метода getPlugin класса JPluginHelper. В методе onPrepareContent с помощью регулярных выражений реализуются шаги, описанные выше. Для установки плагина в Joomla, еще нам понадобится xml-файл с описанием плагина. itemlist.xml
Теперь архивируем zip-ом эти два файла в один архив, устанавливаем плагин через админпанель Joomla и не забываем его опубликовать. Для просмотра результатов его работы в теле статьи используем тег {itemlist: id_категории}. Вот, собственно, и все. Надеюсь, эта статья кому-нибудь будет полезна.
|
Комментарии
Автор правильно заметил что сейчас документации по "полторашки" (1.5) очень мало.Хотел нужные найти доки на Joomla.org ну там нифига нет.Вот и приходится писать для версии 1.0 и заставлять пользователя использовать 1.0 либо ставить на "полтораху" "легаси мод". Цитировать
Разве joomla1.0 лучше документирована чем 1.5?
Как на меня то для 1.5 доки больше чем для 1.0
Конечно порой и не хватает.
Но расширений дельных много Цитировать