Использование мамботов в расширениях Joomla 1.0

  • Вторник, 29 августа 2006

Небольшая статья для разработчиков, посвященная вопросам использования мамботов в расширениях Joomla: как инициализировать группу мамботов, вызывать мамботы для заданного события и как передать параметры в мамбот.

Для доступа к мамботам из расширений Joomla существует глобальная переменная $_MAMBOTS, содержащая экземпляр стандартного класса mosMambotHandler, объявленного в файле /includes/joomla.php.

При возникновении какого-либо события (стандартного или пользовательского), разработчик расширения должен сначала загрузить соотвествующую группу мамботов. Например, загрузка группы мамботов content:

$_MAMBOTS->loadBotGroup( 'content' );

Что происходит при загрузке мамботов? Все установленные мамботы этой группы подгружаются ядром Joomla с помощью функции require_once. При этом происходит регистрация функций мамботов для заданных событий.

После этого, можно уже вызывать мамботы для указанного события:

$results = $_MAMBOTS->trigger( 'onPrepareContent', array( &$row, &$params, $page ), true );

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

Таким образом, на примере видно, что для группы мамботов content, на событие onPrepareContent в мамботы передается 3 параметра (объект материала, параметры материала и номер страницы).

Cписок передаваемых и принимаемых параметров для каждого из стандартных событий будет рассмотрен чуть позже, а желающие смогут сами посмотреть в исходных кодах Joomla (просто поищите вызов $_MAMBOTS->trigger и посмотрите что и куда передается).

Что происходит при вызове функции trigger? Все очень просто: последовательый вызов функций мамботов, зарегистрированных на указанное событие. Порядок вызова мамботов соотвествует порядку, заданному в Менеджере мамботов административной панели Joomla. При последовательном вызове каждый последующий мамбот получает на вход данные, обработанные предыдущим, т.е. возвращаемый функцией trigger объект будет содержать все изменения, которые произвели в нем вызванные мамботы.

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Коротко о главном в Joomla

Новости портала

Новое в блогах

Видео

Форум о Joomla