Статьи

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

Введение

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

 

Компоненты Joomla

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

 

 mosMainBody(); ?>

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

  • Баннеры
  • Новостные ленты
  • Ссылки и другие


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

  • /components/com_xxx/
  • /administrator/components/com_xxx/

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


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

  • Встроенные (com_content, com_weblinks)
  • Сторонние – любые компоненты, реализующие дополнительные возможности, недоступные в стандартной поставке Joomla, чаще всего поставляемые вместе с модулями и мамботами (потому что для серьезного расширения функционала одного компонента чаще всего оказывается недостаточно).

Модули Joomla

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

  • Меню
  • Пользователи на сайте
  • Голосование
  • Поисковая форма и другие


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

  • Виртуальный модуль – просто запись в базе данных о том, что в такой-то позиции должен выводиться такой-то текст. Никак не связан с каким-либо программным кодом. Просто выводит текст из таблицы с настройками модулей. Существует специальный подтип этого модуля:
    • Модуль выводящий RSS-фид стороннего сайта. В настройках виртуального модуля можно указать URL-адрес новостного RSS-потока стороннего сайта, с которого будут загружаться новости. Модуль скачивает новости с этого сайта, форматирует их и выводит внутри себя со ссылками на статьи источники.
  • Реальный (программный) модуль – модуль, олицетворяющий файл в директории /modules/ и связанный с реальным программным кодом, выполняемым при его запуске.

 

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

  • Модули для административной части Joomla. Хранятся в /administrator/modules/. Выполняют специфические задачи для помощи выполнениями администраторами своих задач. Например, выводят меню навигации или выводят число пользователей, находящихся на сайте в данный момент.
  • Обычные модули для сайта, именно они и описываются ниже.


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

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

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

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

Мамботы Joomla

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

  • Mospagebreak – мамбот, создающий разбивку статьи на страницы
  • Emailcloack – мамбот, маскирующий email-адреса от спам-ботов

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

 

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

  • Мамботы публикаций (контента) – заменяют или дополняют вывод статьи
  • Поисковые мамботы – производят поиск в своей области данных (в статье, в галерее, в пользовательских контактах)
  • Мамботы редакторов – позволяют пользователям редактировать статьи в WYSIWYG-редакторах.
  • Системные мамботы – вызываются при запуске Joomla и служат для служебных целей всего сайта.

 

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

  • content – мамботы контента
  • search – поисковые мамботы
  • editors – мамботы редакторов
  • system – системные мамботы


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

  • Hits: 4335