Типы и описание расширений Joostina CMS, или Что такое компонент, модуль, мамбот
Материал из Документация JoostinaCMS
Содержание |
Лирическое отступление - пролог
Внимание! Статья написана человеком, далеким от языка программирования PHP, на котором написана CMS Joostina, достаточно хорошо владеющим HTML и CSS, имеющим достаточно широкие представления о возможностях системы и способах управления ею. Таким образом, статья представляет взгляд конечного пользователя на то, что собой представляют компоненты, модули и мамботы. При этом некоторые моменты приведенного ниже описания могут в большей или меньшей степени отступать от технической сущности работы системы и ее составных элементов. Когда я впервые установил CMS Joostina после некоторого опыта общения с подобными системами (преимущественно с PHP-Nuke и Koobi), меня несколько смутила принятая в Joostina терминология. Привыкнув к тому, что в PHP-Nuke модулем принято называть расширение, просто добавляющее какой-нибудь функционал, опцию и т.п. (так же, например, как и расширения в Firefox, OpenOffice и пр.), я некоторое время находится в состоянии непонимания, зачем было все так усложнять. И только разобравшись с определениями и проведя параллели, я понял, какие гибкие возможности открывает использование компонентов, модулей и мамботов. Ниже постараюсь объяснить, что есть компоненты, модули, мамботы и зачем они нужны.
Во-первых, компоненты, модули и мамботы CMS Joostina будет не совсем верно назвать "расширениями". Разумеется их можно установить в дополнение к системе, расширив таким образом ее функциональность и набор выполняемых функций. Но с другой стороны "пустая" CMS Joostina фактически представляет собой некий начальный, базовый набор компонентов, модулей и мамботов, работа которых обеспечивается ядром системы и связями между ее элементами. Строго говоря, компоненты, модули и мамботы - расширения ядра системы, а не самой системы.
Итак, как уже упоминалось выше, при работе с PHP-Nuke расширение системы принятом называть "модулем". Устанавливая модуль, администратор получает некий интерфейс управления и настройки расширения в административной панели и информационный блок в лицевой части сайта, в котором выводится информация для конечных пользователей.
В Joostina же понятие модуля PHP-Nuke разделено на два - компонент и модуль.
Компонент
Компонент ближе всего к понятию "расширение". Компонент (фактически - набор взаимосвязанных файлов, встраиваемых в систему) отвечает на добавление функционала, расширение выполняемых системой функций и процедур. Например, если Вы хотите иметь возможность подписки на рассылку новостей Вашего сайта, вы должны выбрать и установить компонент рассылки новостей. Установив компонент, желаемая возможность у Вас появляется. Для того, чтобы она появилась и у посетителей Вашего сайта (а это и есть конечная цель), необходимо установить соответствующий модуль (хотя скорее всего он уже был установлен при установке компонента).
Модуль
Модуль - это информационный блок, в котором выводится информация, получаемая от соответствующего компонента. Основное отличие и очевидное удобство отделения компонентов от модулей - возможность иметь несколько модулей для одного компонента - каждый модуль может иметь свое собственное наполнение, свой дизайн, располагаться в любом месте сайта; в работе можно использовать сторонние модули, созданные не авторами самого компонента, или использовать свои собственные модули. Так, например, для модуля com_content (компонент, отвечающий за работу с контентом - материалами сайта) в базовой поставке Joostina имеются модули: mod_archive (модуль архива), mod_latestnews (последние новости), mod_mostread (наиболее популярные материалы), mod_newsflash (вывод случайно выбранных материалов). Каждый модуль имеет свои уникальные настройки, может иметь индивидуальный дизайн.
Модули могут размещаться как на лицевой странице сайта, так и в административной части. Так, например, для компонента com_content на административной панели выводится модуль mod_latest - последнее добавленное на сайт содержимое.
Как можно было заметить, компоненты имеют приставку com_ (от англ. component), модули - приставку mod_ (от агнл. module); компоненты располагаются в папке components, модули - в папке modules (компоненты и модули административной части - соответственно в папках administrator/components и administrator/modules).
Мамбот
Мамботы - это процедуры и правила обработки и вывода содержимого. Фактически мамбот "располагается" между компонентом и модулем. Материал, собранный компонентом, до того, как быть помещенным в модуль, проходит обработку по правилам, содержащемся в мамботе. Так, например, существует мамбот "Русская типографика", содержащий правила оформления текстов; при активации мамбота перед выводом текста на сайте (в модуле) производится его обработка в соответствии с правилами "Руской типографики" - заменяются короткие тире на длинные, убираются двойные пробелы, мамбот следит, чтобы инициалы не были оторваны от фамилий, а строки не начинались с тире - в общей сложности несколько десятков правил. Мамботы также имеют настройки; так, например, любое из правил "Русской типографики" может быть отключено.
Текст, выводимый на сайт, может быть подвергнут одновременной обработке одним, двумя или большим количеством мамботов. Так, ничто не мешает одновременно с "Русской типографикой" активировать мамбот, автоматически заменяющий заранее определенные слова ссылками (например слово Joostina автоматически делать ссылкой на сайт или адрес электронной почты).
Обратная сторона использования мамботов - потребление системных ресурсов. Дополнительная предварительная обработка текста приводит к увеличению нагрузки на сервер и задержке вывода материала. Злоупотреблять использованием мамботов не следует!
Все имеющиеся в системе мамботы помещаются а папку mambots в корне сайта, специальных приставок, в отличие от компонентов и модулей, мамботы не имеют.


