Головна » InstantCMS - структура першої гілки

InstantCMS - структура першої гілки

InstantCMS, як і всі професійні системи, має модульну структуру. Це означає, що сайт не є незмінним , він складається з блоків - модулів і компонентів. Перевага такого підходу в тому, що кожен блок відповідає тільки за свої конкретні функції і може бути ніяк не пов'язаний з іншими частинами сайту. Якщо у власника сайту з'являється необхідність розширити функціонал - йому не потрібно замовляти новий сайт, а достатньо лише встановити ще один модуль (або компонент) на існуючу основу.

InstantCMS, як і всі професійні системи, має модульну структуру.

Він складається з блоків - модулів і компонентів. Перевага такого підходу в тому, що кожен блок відповідає тільки за свої конкретні функції і може бути ніяк не пов'язаний з іншими частинами сайту. Якщо у власника сайту з'являється необхідність розширити функціонал - йому не потрібно замовляти новий сайт, а достатньо лише встановити ще один модуль (або компонент) на існуючу основу.

Можна сказати, що сайт нагадує конструктор - склади що потрібно!

Зазвичай популярні CMS використовують один термін для позначення функціонального блоку сайту - модуль. В InstantCMS існує ще один - компонент.
У цьому матеріалі ми розповімо чим відрізняються модулі від компонентів і які можливості по управлінню ними надає InstantCMS.

Модулі - це «обвіс» сайту, тобто невеликі допоміжні блоки, такі як «Авторизація» або «Випадкове зображення».
Зазвичай модулі розміщуються в лівій і правій колонці сайту. Компоненти - це підпрограми, що реалізують якусь функцію сайту. Наприклад «Фотогалерея» та «Прайслист» - це два різних компонента одного і того ж сайту. Принципова різниця полягає в тому, що на одній сторінці вашого сайту може бути кілька модулів і тільки один (!) компонент.
На малюнку нижче показана сторінка сайту з завантаженими модулями і компонентом «контент».

Модулі та компоненти

Абсолютно всі пункти меню сайту на InstantCMS роблять одну і ту ж дію - повідомляють системі, який компонент (чи розділ компоненту) потрібно завантажити. Тобто, наприклад, пункт меню «Зображення» завантажує компонент «Фотогалерея», а пункт меню «Наші товари» - компонент «Прайслист». Оскільки це 2 різних компонента то й сторінки сайту будуть виглядати по різному. На одній - фото, а на іншій - ціни. Навіть коли відвідувач просто читає новину чи статтю - працює компонент «Каталог статей». Модулі ж навпаки, можуть бути присутніми відразу в декількох пунктах меню. Наприклад,  модуль «Авторизація» (див. малюнок) може показуватися скрізь, незалежно від того, в якому розділі сайту знаходиться відвідувач.

Іншими словами, основна ідея InstantCMS така - сайт складається з «пунктів меню», а за кожним пунктом закріплюється один компонент і кілька супутніх модулів.

Деякі компоненти поставляються разом з допоміжними модулями. Наприклад, компонент «Прайслист» має модуль «Кошик купця». Тобто відвідувач робить якісь дії в компоненті (вибирає товар), а результати його дій відображаються в модулі (кошик поповнюється). Відповідно, модуль «кошик» не буде працювати без необхідного для нього компонента «Прайслист». Так само модуль «Авторизація» залежить від компонента «Реєстрація користувачів», а модуль «Випадкова картинка»  - від компонента «Фотогалерея».

Крім модулів та компонентів в ситемі присутні додатки: плагіни та фільтри.

Як приклад  - плагін "Авторизація Loginza ", який дозволяє відвідувачам авторизуватися на сайті використовуючи свої акаунти в популярних соціальних мережах.

Коментарі (2)
Странник # 26 вересня 2014 у 13:39 +1
Добавлю к тексту статьи, что на Первой ветке Инстанта можно создать два типа модулей.
Первый тип, это собственно просто модуль. С точки зрения программиста такой модуль содержит структуру модуля - несколько файлов в админке, папке modules, папке templates. Кроме того, этот модуль следует прописать в базу данных.
Второй тип - это пользовательский модуль. Он не содержит структуры и состоит из единственной записи в базе данных. По сути, этот модуль представляет собой просто голый контент, оформленный в виде модуля.

Если кому то интересно, я написал Генератор модуля, статью о котором можно прочитать здесь.

Генератор компонента и Генератор плагина тоже мной написаны. Читайте в том же блоге.
Странник # 26 вересня 2014 у 14:04 +1
Я еще могу добавить к статье информацию о поддерживаемых InstantCMS таких программных ухищрениях, как плагин и фильтр.

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

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