Общая схема работы MaxSite CMS

Инициализация

В начальный момент загрузки сайта, происходит подключение ядра CodeIgniter и некоторых его библиотек (куки/сессии, база данных MySQL). Дальше управление передаётся в контролёр MaxSite CMS, где происходит роутинг, основанный на входящем URL.

Первый сегмент URL определяет т.н. тип данных, что позволяет выделить различные варианты вывода данных. В MaxSite CMS существует ряд предопределённых типов, которые используются для большинства типовых задач любого сайта. Это page — одиночная страница, category — рубрика, tag — метка и т.д. Если тип данных неизвестен системе, то ему присваивается имя page_404.

После того, как тип данных определён, загружается ядро MaxSite CMS, подключаются активированные плагины и выполняется начальная инициализация по хуку init (обычно это определяется в плагинах). Уже после этого подключается текущий шаблон сайта.

Каталоги

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

  • system — здесь размещается ядро CodeIgniter.
  • application — основной каталог приложения.
  • uploads — каталог предназначенный для хранения загруженных файлов. В нём запрещено выполнение php-кода.

В каталоге application размещается MaxSite CMS. Для удобства используется отдельный подкаталог maxsite, где и находятся файлы системы.

  • common — ядро MaxSite CMS.
  • admin — админ-панель.
  • templates — шаблоны MaxSite CMS.
  • plugins — каталог плагинов.
  • shared — «общие» файлы/библиотеки, которые задействованы при работе шаблонов.

Каждый шаблон должен размещаться в отдельном каталоге. Имя шаблона — это имя каталога.

Шаблон

В шаблоне существует только один обязательный файл — index.php. Файл (не обязательный) info.php содержит описание шаблона для админ-панели. Файл (не обязательный) screenshot.png (или jpg) — миниатюра внешнего вида шаблона размером 250х200px.

Самый простой вариант шаблона состоит из index.php :

echo 'Hello, world!';

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

В такой схеме в index.php размещается диспетчер типов данных, который и выполняет все нужные подключения и получение данных для вывода.

Сам вывод формируется в зависимости от типа данных в т.н. type-файлах. Именно в type-файле происходит непосредственное получение данных. Например для одиночной страницы получается текст, а для рубрики — массив страниц. Основные type-файлы располагаются в shared-каталоге и могут быть переопределены при необходимости в самом шаблоне.

Формирование html-кода выполняется в разных частях системы, но сам вывод происходит на основе модульной сетки (main-файл), которая содержит html-код каркаса страницы, а также различные подключения компонентов, файлов и т.п.

Кроме того, обычно в шаблоне выделяют компоненты шапки и подвала. Они также выбираются и настраиваются в админ-панели. Компоненты располагаются в каталоге components шаблона. Некоторые компоненты универсальные, но часто шаблон содержит только свои компоненты, подходящие под текущий шаблон, чтобы учесть его особенности.

Кастомизация

Для того, чтобы изменить «типовой» вариант вывода, нет необходимости переписывать весь type-файл. Вместо этого достаточно изменить т.н. type_foreach-файл — это файлы, при наличии которых, происходит вывод уже из них. Любой type-файл состоит из множества type_foreach-файлов, чтобы предоставить вебмастеру возможность гибкой настройки шаблона.

Кроме этого, управлять поведением можно через опции, ушки (плагин), set/get-переменные и т.д.

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

Каталоги шаблона

Ниже приведена «типовая» структура каталогов шаблона.

  • assets — оформительская часть шаблона (css, шрифты, изображения и т.д.)
  • components — компоненты шапки и подвала (каждый в своём каталоге)
  • custom — каталог, где размещаются какие-то особые (и предопределенные) файлы шаблона.
  • main — модульные сетки шаблона.
  • options — опции шаблона. Обычно этот каталог не используют, а опции задают в custom.
  • type — файлы типов данных (если есть, каждый в своём каталоге).
  • type_foreach и take — файлы кастомизации.

Шаблон может содержать и другие каталоги.

В качестве основы для нового шаблона вы можете использовать шаблон Default. При этом всегда используйте самую последнюю версию MaxSite CMS.