Данная статья является первой из небольшого цикла статей, посвященного вопросам разработки мамботов для Joomla. В ней описана общая информация о механизме работы мамботов и перечислены стандартные группы мамботов в Joomla.
Общие сведения о мамботах
Как мы уже рассказывали раньше, мамботы это небольшие функции для расширения возможностей Joomla, которые позволяют выполнять некоторые действия над передаваемыми им данными.
Мамботы делятся на группы, согласно выполняемым ими функциям. В настоящее время существует 5 стандартных групп мамботов: content, editor, editors-xtd, search, system. При необходимости, разработчики расширений могут создавать дополнительные группы и события мамботов.
Файлы мамботов располагаются папках, соответствующих своей группе в директории /mambots корневой директории Joomla. Т.е. мамботы группы content следует искать в /mambots/content.
Каждая группа мамботов поддерживает одно или несколько событий, при возникновении которых производится вызов мамбота и передача ему данных на обработку. Например, самым распространненным событием группы content является onPrepareContent, которое возникает перед началом отображения материала.
{mospagebreak title=Стандартные группы мамботов}Стандартные группы мамботов в Joomla
Группа мамботов content
Данная группа является самой распространненной, и содержит мамботы позволяющие модифицировать материалы сайта перед их непосредственным выводом пользователю.
Поддерживаемые события:
- onPrepareContent
- onAfterDisplayTitle
- onBeforeDisplayContent
- onAfterDisplayContent
Группа мамботов editor
Визуальные редакторы Joomla.
Поддерживаемые события:
- onInitEditor
- onGetEditorContents
- onEditorArea
Группа мамботов editors-xtd
Мамботы, добавляющие небольшие кнопочки к визуальным редакторам для вставки какого-либо текста в редактируемый текст. В стандартной поставке Joomla в этой группе размещены мамботы, вставляющие теги mospagebreak, mosimage и mosmedia.
Поддерживаемые события:
- onCustomEditorButton
Группа мамботов search
Поисковые мамботы. Используются компонентом com_search для поиска информации в различных компонентах.
Поддерживаемые события:
- onSearch
Группа мамботов system
Cистемные мамботы, позволяющие выполнять различные действия еще до вызова компонента. Например, с помощью системного мамбота можно блокировать пользователей по IP или запрещать доступ к каким-либо страницам сайта и т.д.
Поддерживаемые события:
- onStart
- onAfterStart
Состав дистрибутива мамбота
Минимальный дистрибутив мамбота состоит из xml-файла описания мамбота и, непосредственно, файла с PHP-кодом. Пример xml-файла описания мамбота moscode:
moscode Joomla! Project August 2004 (C) 2005 Open Source Matters. All rights reserved. http://www.gnu.org/copyleft/gpl.html GNU/GPL admin@joomla.org www.joomla.org 1.0.0 Displays formatted code in content items moscode.php
Как видно на примере, формат файла почти не отличается от xml-файлов описаний дистрибутивов компонентов и модулей. Следует обратить внимание на то, что в элементе mosinstall аттрибут type равен mambot, а в аттрибуте group указывается группа, к которой относится мамбот (в примере это группа content). Кроме того, в секции files, у элемента file, содержащего основной файл мамбота установлен атрибут mambot, который содержит имя мамбота.