Статьи

Компоненты модули мамботы в чем разница

Введение

Наиболее удобно рассмотреть различия между этими тремя типами расширений можно на примере поиска. Когда пользователь входит на сайт то, например, вверху он видит форму для ввода запроса. Эту форму показывает модуль поиска. Когда пользователь нажимает кнопку начала поиска, форма отправляется на компонент поиска, который и реализует саму функцию поиска. Реализует он ее посредством вызова поисковых мамботов, каждый из которых ищет в своей области.

 

Компоненты Joomla

Компонент – это основной элемент Joomla, отображаемый “в центре” сайта и реализующий главный функционал расширений. Вывод компонентов в теле шаблона появится вместо тэгов

 

 mosMainBody(); ?>

Joomla имеет несколько встроенных компонентов, таких как:


Любой компонент состоит из двух частей – фронт-часть и админ-часть и хранится, соответственно, в двух директориях:

И соответственно компоненты могут иметь два интерфейса – для администратора и для пользователей. Ни один из них не является обязательным.


Компоненты бывают:

Модули Joomla

Модуль – это небольшой блок на сайте, отображаемый на какой-либо заранее определенной в шаблоне позиции, расширяющий возможности компонентов и представляющий небольшой кусочек информации помимо основной, центральной части сайта. Joomla имеет несколько встроенных модулей, таких как:


Модули бывают двух типов:

 

Модули могут классифицироваться местом их работы:


Модуль не может одновременно быть предназначен и для административной части, и для пользовательской как, например, компоненты.

Немного в стороне от этих классификаций находится модуль-копия. Это модуль любого из двух типов, но являющийся всего лишь записью в базе данных указывающий на модуль-оригинал. Но этот модуль имеет свои настройки и может быть выведен на позиции отличной от модуля-оригинала. Но сохраняет тип модуля – предка.

Файлы с кодом обычных модулей хранятся в директории /modules/. Каждый модуль (чаще всего) это файл /modules/mod_модуль.php.

Существует возможность интернационализации модулей посредством языковых файлов. Т.е. для каждого языка указанного в конфигурации может существовать дополнительный языковой файл (например с константами соответствующими данному языку). Т.е. если существует файл /modules/mod_модульязык.php и “язык” совпадает с настройками языка в конфигурации сайта, то данный файл включается до выполнения модуля. Если такого файла нет, то по умолчанию языком считается английский (“eng”). Это относится к обычным модулям, а не к административным модулям.

Мамботы Joomla

Мамбот – это небольшая функция (или набор основной и вспомогательных функций), которая изменяет или дополняет переданное на вход содержимое (но может выполнять и другие функции, все зависит от типа мамбота) при ее специальном вызове. В Joomla встроены следующие мамботы:

Название “мамбот” произошло от английского сокращения “mambo bot” – где Mambo это предыдущее название CMS, bot – термин, обозначающий нечто автоматическое, вызываемое или исполняемое без участия человека.

 

Существует несколько типов мамботов:

 

Каждый из этих типов мамботов хранится в соответствующей директории папки /mambots/. Например мамбот для маскировки email-адресов имеет следующий путь: /mambots/content/mosemailcloak.php. Вторая директория в пути соответствует типу мамбота:


Необходимо отметить, что поисковые мамботы немного не отличаются от других типов мамботов. Это можно рассмотреть на примере поиска в статье и, например, мамбота публикаций mosimage (который предназначен для замены специальных тэгов {mosimage} на реальные изображения при выводе статьи). Особенность заключается в том, что если поисковый мамбот для статей нашел публикацию соответствующую введенному пользователем слову и вернул кусок текста с найденным словом и ссылкой на статью, то этот кусок текста не будет обработан мамботами контента, потому что это не заложено в функционале CMS Joomla. Хотя логично было бы предположить, что контент возвращенный пускай даже мамботом, должен быть модифицирован соответствующим типом обработчиков.