InstantCMS, как и все профессиональные системы, имеет модульную структуру. Это означает, что сайт не является единым целым, он состоит из блоков – модулей и компонентов. Преимущество такого подхода в том, что каждый блок отвечает только за свои конкретные функции и может быть никак не связан с остальными частями сайта. Если у владельца сайта появляется необходимость расширить функционал – ему не нужно заказывать новый сайт, а достаточно лишь установить еще один модуль (или компонент) на существующую основу.
Обычно популярные CMS используют один термин для обозначения функционального блока сайта – модуль. Мы добавили еще один – компонент.
В этом материале мы расскажем чем отличаются модули от компонентов и какие возможности по управлению ими предоставляет InstantCMS.
Модули – это «обвес» сайта, т.е. небольшие вспомогательные блоки, такие как «Авторизация» или «Случайная картинка». Обычно модули размещаются в левой и правой колонке сайта.
Компоненты – это подпрограммы, реализующие какую-либо функцию сайта. Например «Фотогалерея» и «Прайслист» - это два разных компонента одного и того же сайта.
Принципиальная разница заключается в том, что на одной странице вашего сайта может быть несколько модулей и только один (!) компонент. На рисунке ниже показана страница сайта с загруженными модулями и компонентом «Прайслист».
Абсолютно все пункты меню сайта на InstantCMS делают одно и то же действие – сообщают системе, какой компонент нужно загрузить. Т.е., например, пункт меню «Картинки» загружает компонент «Фотогалерея», а пункт меню «Наши товары» - компонент «Прайслист». Поскольку это 2 разных компонента то и страницы сайта будут выглядеть по разному. На одной – фото, а на другой – цены. Даже когда посетитель просто читает новость или статью – работает компонент «Каталог статей».
Модули же наоборот, могут присутствовать сразу в нескольких пунктах меню. Например модуль «Авторизация» (см. рис) может показываться везде, независимо от того, в каком разделе сайта находится посетитель.
Модуль «Авторизация»:
Образно, основная идея InstantCMS такова – сайт состоит из «пунктов меню», а за каждым пунктом закрепляется один компонент и несколько сопутствующих модулей.
Некоторые компоненты поставляются вместе со вспомогательными модулями. Например, компонент «Прайслист» имеет модуль «Корзина покупателя». Т.е. посетитель совершает какие-то действия в компоненте (выбирает товар), а результаты его действий отображаются в модуле (корзина пополняется). Соответственно, «корзина» не будет работать без необходимого для нее компонента «Прайслист». Точно так же модуль «Авторизация» зависит от компонента «Регистрация пользователей», а модуль «Случайная картинка» от компонента «Фотогалерея».