Большинство начинающих пользователей, установив первый раз Joomla с ужасом хватаются за голову. Компоненты, модули... Что это такое и с чем их едят? В чем различие между компонентом и модулем? Бывшие пользователи phpNuke, привыкшие называть модулем основную единицу расширения функционала системы управления контентом, удивляются узнав что модуль выполняет в Joomla функции отображения информации. Мамботы... Что это и для чего они нужны? В этой статье я попытаюсь объяснить в чем различие между этими тремя элементами расширения функциональных возможностей Joomla и как они взаимодействуют между собой.
Компоненты
Компонент — это основное средство расширения функциональных возможностей Joomla и представляет собой набор скриптов, которые обеспечивают определенный функционал и обладает интерактивным интерфейсом пользователя. В большинстве случаев компоненты отображаются в центральной колонке сайта при трехколоночной верстке. Компонентами в Joomla являются форумы, файловые архивы, галереи, системы сбора статистики, резервного копирования и т.д. Управление пользователями, создание разделов, добавление и отображение материалов — все это выполняют компоненты.
Компоненты в Joomla, обычно состоят из 2-х частей: административная панель компонента и фронтенд (сайт). Однако одна из частей может отсутствовать, например стандартный компонент Search (обеспечивающий поиск материалов на сайте) не имеет административной части, а компонент Config (настройка глобальных параметров сайта) наоборот, содержит только админстративную часть.
Модули
Модуль — это одно из средств расширения функциональных возможностей Joomla. В большинстве случев, модуль выполняет функции отображения информации и является дополнением к установленным компонентам. Как правило, модули располагаются в левой и правой колонке при трехколоночной верстке. Примером модулей является навигационное меню, календарь, список популярных статей и т.д. При публикации модуля можно указать в какой позиции шаблона сайта и на каких страницах он будет отображаться. Кроме того, большинство установленных в системе модулей можно скопировать — опубликовать несколько раз с разными параметрами (например модуль вывода популярных статей можно опубликовать для разных разделов).
Мамботы
Мамбот — это функция, которая выполняет некоторые манипуляции с данными перед отображением их пользователям сайта. В настоящее время в Joomla существуют следующие группы мамботов: content, editors, search.
Мамботы группы content позволяют осуществлять различные манипуляции с текстом статей: выделять слова, вставлять картинки, удалять лишние пробелы и т.д. Как мы уже говорили выше, мамбот это функция, которой на вход передаются данные. При отображении списка новостей, например на главной странице сайта, ядро Joomla загружает все мамботы группы content, и последовательно вызывает их для каждой новости на странице. Таким образом, все отображаемые данные проходят через мамбот.
Группа мамботов editors содержит визуальные редакторы Joomla. Визуальные редакторы значительно облегчают процесс добавления материалов на сайт.
Основной задачей мамботов группы search является поиск данных по заданным ключевым словам. В дистрибутиве Joomla уже содержатся поисковые мамботы, позволяющие осуществлять поиск в стандартных компонентах. Если же вы хотите добавить на сайт возможность поиска по галере или файловому архиву, то вам необходимо установить соответсвующий поисковой мамбот для этого компонента.
Заключение
Подводя итог, можно сказать, что компоненты — это расширения Joomla, которые составляют функционал системы и поддерживают интерактивное взаимодействие с пользователем.
Модули, в отличие от компонентов, выполняют функции отображения какой-либо информации и в большинстве случаев не выполняют никаких операций по добавлению/модификации данных. Другим немаловажным отличием модулей от компонентов является возможность копирования модулей.
Мамботы — это небольшие функции позволяющие выполнять манипуляции с данными перед отображением их пользователям сайта.
В большинстве случаев, расширение для Joomla состоит из компонента, одного или нескольких модулей и поискового мамбота. Компонент выполняет какие либо действия с данными (добавляет/изменяет/удаляет), модули отображают данные, а мамбот позволяет осуществлять поиск по данным этого компонента.