Вопросы и ответы
Вебмастеру
Общая схема работы MaxSite CMS
Перед тем, как начать работать с MaxSite CMS, желательно получить начальную информацию, которая поможет лучше понять устройство системы.
Это краткий обзор, больше информации вы найдёте в последующих разделах документации.
В момент загрузки сайта, происходит подключение ядра CodeIgniter и некоторых его библиотек (куки/сессии, база данных MySQL). Дальше управление передаётся в контролёр MaxSite CMS, где происходит роутинг, основанный на входящем URL.
Первый сегмент URL определяет т.н. тип данных, что позволяет выделить различные варианты вывода данных. В MaxSite CMS существует ряд предопределённых типов, которые используются для большинства типовых задач любого сайта. Это page — одиночная страница, category — рубрика, tag — метка и т.д. Если тип данных неизвестен системе, то ему присваивается имя page_404.
После того, как тип данных определён, загружается ядро MaxSite CMS, подключаются активированные плагины и выполняется начальная инициализация по хуку init (обычно это определяется в плагинах). Уже после этого подключается текущий шаблон сайта.
Шаблон
В шаблоне существует только один обязательный файл — 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, здесь автоматизировано большинство задач с тем, чтобы вебмастер не тратил на них время.
Каталоги
Поскольку MaxSite CMS базируется на CodeIgniter, то это наложило некоторый отпечаток на схему каталогов системы.
- system — здесь размещается ядро CodeIgniter.
- application — основной каталог приложения.
- uploads — каталог предназначенный для хранения загруженных файлов. В нём запрещено выполнение php-кода.
В каталоге application размещается MaxSite CMS. Для удобства используется отдельный подкаталог maxsite, где и находятся файлы системы.
- common — ядро MaxSite CMS.
- admin — админ-панель.
- templates — шаблоны MaxSite CMS.
- plugins — каталог плагинов.
- shared — «общие» файлы/библиотеки, которые задействованы при работе шаблонов.
Каждый шаблон должен размещаться в отдельном каталоге. Имя шаблона — это имя каталога.
Каталоги шаблона
Ниже приведена «типовая» структура каталогов шаблона.
- assets — оформительская часть шаблона (css, шрифты, изображения и т.д.)
- components — компоненты шапки и подвала (каждый в своём каталоге)
- custom — каталог, где размещаются какие-то особые (и предопределенные) файлы шаблона.
- main — модульные сетки шаблона.
- options — опции шаблона. Обычно этот каталог не используют, а опции задают в custom.
- type — файлы типов данных (если есть, каждый в своём каталоге).
- type_foreach и take — type_foreach-файлы.
Шаблон может содержать и другие каталоги.
В качестве основы для нового шаблона вы можете использовать шаблон Default. При этом всегда используйте самую последнюю версию MaxSite CMS.