Joomla портал
seo seo Subscribe
seo
seo
seo
1
seo

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

Эти понятия конечно взаимосвязаны, но имеют кардинальные отличия, как в плане функционального назначения, так и в плане их создания и разработки. Давайте разберемся, что такое компонент Joomla, что представляет собой модуль Joomla и в чем их принципиальные отличия.

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

Итак, представим себе обычный автомобиль, и из каких функциональных узлов он состоит. Аналогия конечно не полная, но для понимания отличия между компонентами и модулями Joomla вполне подойдет.
Компоненты и модули CMS Joomla как узлы автомобиля.

1. Основные узлы, которые предназначены непосредственно для того, чтобы автомобиль двигался.

Это двигатель, коробка, ходовая часть и т.п. Сюда же можно включить и узлы, которые непосредственного участи в движении автомобиля не принимают, но без которых либо не возможна, либо затруднительна работа основных узлов (бензобак, система зажигания и т.п. ).

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

Все это и есть компоненты Joomla. Можно установить на сайте магазин товаров вместо каталога, но вывести структурированный список товаров из базы данных без того и другого невозможно.

2. Вспомогательные узлы, которые непосредственного участия в движении автомобиля не принимают, а необходимы лишь как вспомогательные элементы.

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

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

Такие узлы можно переместить с одного места на другое, некоторые убрать, некоторые добавить, но при этом автомобиль будет ездить, как и прежде.

Применительно к CSM Joomla, все это — модули сайта: меню сайта, модули авторизации, опросов, вывода популярных статей, баннеров, случайных картинок и т.п.

3. Кузов, на который устанавливаются и крепятся все узлы.

Применительно к сайту на Joomla, это шаблон сайта. Непосредственного отношения к компонентам и модулям он не имеет, но именно шаблон определяет, в каком месте будет выводиться основное содержание, и где будут располагаться те или иные модули. Плюс ко всему шаблон определяет общий дизайн сайта, но это тема для отдельной статьи.
Отличие № 1.

Компоненты CMS Joomla, это программные части сайта, которые определяют его работу и без которых правильная работа сайта невозможна.

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

Во первых, содержимое гостевой книги должно выводиться в основной части страницы, во вторых, нужно чтобы сообщения отправляемые посетителями обрабатывались (проверка валидности email и url, проверка на нецензурные выражения, проверка на SQL-инъекции и т.д.), и в третьих, сообщения посетителей должны записывались в базу данных сайта.

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

Таким образом, модуль, в подавляющем большинстве случаев, нужен лишь как вспомогательный элемент к имеющемуся компоненту.
Отличие № 2.

Выводить что-либо на страницу сайта в один и тот же момент времени может только один компонент и только в одно поле. Это поле является главным полем страницы (чаще всего — центральная часть страницы), и выводить в него данные может лишь компонент. Модулям это поле недоступно.

В это же время на этой же странице могут располагаться десятки модулей и выводить в своем теле (в границах своего модуля) абсолютно любую информацию, даже никоим образом не связанную с текущим компонентом. Более того в одном и том же поле могут располагаться и выводить свою информацию, абсолютно все модули сайта. Это конечно бессмысленно, так как разработчики Joomla определили для вывода модулей целых 50 полей, но, тем не менее, никаких ограничений в данном случае нет.
Отличие № 3.

Следующее отличие компонента от модуля заключается в том, что при выполнении своих функций, модуль ничего не записывает в базу данных сайта. Такого ограничения в возможностях, конечно, никто не накладывал, но если подходить к вопросу грамотно, то самостоятельно модуль в базу данных ничего писать не должен, а если есть такая необходимость, то нужно обращаться к существующему компоненту Joomla и передавать ему данные для записи в базу данных.
Отличие № 4.

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

Существует, конечно, и другие отличия, например, компоненты и модули имеют разную файловую и внутреннюю структуру, отличные способы управления и администрирования, совершенно по-разному устанавливаются и размещаются в разных папках сайта. Но все эти различия не дают ответа на вопрос: «Почему именно компонент, а не модуль?».
Резюме.

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

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

Когда вы четко ответите для себя на все эти вопросы, то определить, что вам нужно в данном случае, модуль или компонент, теперь большого труда не составит.

seo
Теги:
seo

Есть 1 комментарий. к “В чем отличие компонента и модуля CMS Joomla”

  1. Тумэн:

    Очень наглядно и доходчиво, спасибо.

Написать ответ к Тумэн

seo
 
Все права защищены © 2023 Joomla портал
 
 
seo