Возможности конструирования в среде Astra.CMS позволяют решать подавляющее большинство задач возникающих перед веб-разработчиком. При этом как правило не требуется вмешательство в исходные коды скриптов, достаточно представлять возможности каждого из расширений и иметь навыки их использования при конструировании нужного сайта. Каждый сайт может иметь индивидуальную структуру, кирпичиками для строительства которой являются экземпляры расширений. Для конструирования доступны необходимые инструменты быстрого создания, изменения или добавления компонентов сайта. Они доступны администратору сайта в меню «Сайт» панели управления.
Расширения условно разделяются на три типа: модули, плагины, блоки. Следует отметить, что факт установленного расширения еще не означает его активность и присутствие на сайте. Их следует воспринимать как некоторое хранилище или библиотеку готовых функциональных решений. Добавлять те или иные возможности следует уже созданием экземпляра конкретного расширения. Кроме того, структурные особенности Astra.CMS позволяют размножать подобные экземпляры в любом необходимом количестве. Так же это позволяет собрать сайт с именно тем набором компонентов который нужен, как результат - более наглядная навигация в панели управления, не перегруженная ненужным функционалом.
Модули, служат базой для создания разделов, которые в свою очередь представляют собой определенные хранилища данных. Каждый модуль несет в себе определенную структуру данных, функциональность и имеет свои типы страниц на сайте, за вывод данных в которых уже отвечает шаблонизатор.
Посмотреть все доступные модули.
Плагины, служат базой для создания дополнений, которые могут иметь произвольную функциональность, дополнять возможности модулей, системы, либо служить хранилищем данных определенного формата. Принципиальное отличие от модуля состоит в том, что плагин не имеет своих страниц на сайте, но может дополнять своими данными страницы модулей.
Посмотреть все доступные плагины.
Блоки служат для вывода определенных данных на любых страницах сайта. Он может быть ассоциирован с данными определенного раздела, или иметь свою природу данных для вывода. Располагаться блоки могут на любых типах страниц, от любых модулей. Могут быть упорядочены в условные массивы колонок (левые, правые), либо вставляться непосредственно в шаблон выбранной страницы.
Посмотреть все доступные блоки.
Это уже описанные выше: разделы, дополнения, блоки. Из них собирается сайт именно с той организацией данных и внешнего представления – что требуется. Произвольное комбинирование этих компонентов позволяет создавать и легко расширять любые сайты.
Каждый модуль и, как следствие, его экземпляр – раздел, имеет определенный набор типов страниц. За каждым типом закреплен шаблон, который описывает вывод данных на странице.
Например, модуль "Каталог материалов" имеет 3 типа страниц:
В предложенной выше блок-схеме, показана ситуация, когда на базе Модуля 1, создано два раздела, у каждого из которых — три типа страниц. На базе Модуля 2 создан один раздел. Имеющийся блок – отображается на выбранных типах страниц.
Рассмотрим такую ситуацию на конкретном примере.
Модуль "Каталог материалов" несет в себе функциональность, позволяющую организовывать иерархические каталоги произвольного формата. Он подходит для создания таких разделов как «Cтатьи» и «Новости».
Модуль "Обратная связь" несет в себе функциональность отправки данных из формы на сайта на заданный email. Он подходит для организации таких разделов как «Контакты» или специальные формы заказа.
Под понятием конфигурации сайта, здесь понимается собственно уже готовый сайт, с определенной структурой разделов, данными, файлами, шаблонами представления, а так же расширениями не входящими в стандартный состав дистрибутива. Конфигурация сайта хранится в одном файле и может быстро импортироваться на установленной системе Astra.CMS. Экспортировать существующий сайт в файл конфигурации так же предельно просто. Это позволяет сохранять заготовки различных сайтов, чтобы потом максимально быстро создавать новые сайты. Например можно один раз собрать определенного вида интернет магазин, сохранить его, и далее только менять дизайн на уровне шаблонов.
Архитектура Astra.CMS подразумевает разделение логики формирования данных и логики представления. За формирование наборов данных для типов страниц отвечают модули. После распознавания адреса страницы и определения ее принадлежности разделу и типа, происходит формирование определенного набора данных, который уже передается шаблонизатору.
В качестве шаблонизатора используется Smarty имеющий очень мощный и гибкий язык шаблонов, который расширен многими дополнительными инструкциями. Наборы данных для каждого типа страниц детально описаны в отдельных руководствах для расширений.
Помимо модулей, у которых для каждого из типов страниц закреплен свой шаблон, свои отдельные шаблоны имеют и блоки, которые в зависимости от логики представления внедряются в основные шаблоны страниц.