После выхода MaxSite CMS 0.90 довольно сильно поменялся сам подход к созданию шаблонов, но какого-то полноценного руководства ещё не было. Я больше занят техническими задачами, на объяснялки не хватало времени. Сейчас разрыв со старым обучающим курсом очень большой, поэтому нужно исправлять ситуацию. :-)
Перед тем, как переходить к техническим деталям, я решил сделать вводную статью, чтобы читателям был понятен основной базис и тот уровень, который необходим для изучения MaxSite CMS.
Начальный минимум
Я не буду заниматься обучением основ HTML, CSS и PHP. В Сети достаточно руководств для новичков. Нужно хорошо ориентироваться в именно в основах, уметь читать иходные тексты и не впадать в ступор, когда я привожу кусок кода. Если вы сильно «плаваете» в этих вопросах, то лучше вначале поизучать основы, после уже браться за шаблон MaxSite CMS.
Второй важный момент — знание админ-панели MaxSite CMS, особенно в плане настроек шаблона. Для этого достаточно разобраться как настраивать Default-шаблон. Если вы понимаете, что такое Компонент и как его настраивать, то вы можете двигаться дальше. То есть перед тем, как делать или править шаблон, нужно иметь уровень «продвинутого пользователя» MaxSite CMS.
Третий минимум — знать основы Sass или Less. Так уж получилось, что популярность Less сошла не нет, после того, как он стал жутко тормознутым, поэтому сейчас почти вся верстка делается на Sass. Уровень знаний должен быть достаточный для того, чтобы уверенно читать исходные scss-файлы, понимать как компилировать файлы и уметь создавать/редактировать свои стили.
Зависимости
Принципиальное отличие новых версий MaxSite CMS от старых в том, что часть вещей была доработана до фактически отдельных проектов.
В первую очередь — это css-фреймворк UniCSS. Исторически его «ноги» растут из MaxSite CMS (style-all-mini.css), но который дорос до полноценного проекта. Технически нет проблем использовать в шаблоне любой другой css-фреймворк, но я буду использовать именно UniCSS из-за его универсальности и легкости изучения.
Вторая зависимость — это php-класс Page_out, который является частью MaxSite CMS. Page_out служит для вывода записей (технические моменты мы расмотрим позже) и его особенностью является то, что он значительно упрощает программирования этого процесса. Когда нам нужно будет сделать сложный вывод с различным расположением элементов или сложной версткой, то вместо жуткой смеси php и html-кода, с Page_out всё будет куда проще и элегантней.
Третий момент, который нужно сразу усвоить — в MaxSite CMS многие вещи автоматизированы, что часто не типично для других систем. Например формирование HEAD-секции или автоподключение js/css-файлов. Здесь не нужно ничего программировать — просто копируете файлы в предопределенный каталог.
Последний момент — высокая настраиваемость MaxSite CMS. Если нужно вынести опцию в админ-панель, то всё делается в описательном ini-файле. Если нужно «вклиниться» в цикл вывода, то используется type_foreach-файлы. Если нужно «перехватить» выполнение какого-то блока, то опять же type_foreach или custom-файл. Если нужно вывести текст или html/php-код, то скорее всего уже есть предопределённая ушка, которую достаточно создать и наполнить содержимым. То есть я к тому, что с большой долей вероятности ваша задача может быть решена быстро и просто без какой-либо правки исходного кода системы.
Используем dev-версию
Мы всегда используем последнюю dev-версию. С MaxSite CMS 97 версии буду выходить чаще, потому чаще придется обновляться. Настройте автоматическое обновление, чтобы все работало в один клик.
Повторы материала
Скорее всего я буду часть материала повторять, поэтому если вы с ним знакомы, можете его просто пропустить. Я исхожу из его последовательности и важности.