Создание своего шаблона

Новый шаблон лучше всего начинать с какого-то готового каркаса. Если у вас нет опыта, то используйте копию Default-шаблона. Со временем вы сделаете свой вариант.

Перед тем, как создавать свой шаблон, рекомендуется хорошо разобраться со всеми настройками Default-шаблона в админ-панели и попробовать с её помощью изменить типовой вариант вывода. Потратьте время на изучение админ-панели, чтобы хорошо понимать каждую настройку.

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

Создание шаблона требует хотя бы начальных знаний HTML и CSS (и PHP). Вы можете пройти Бесплатный курс по HTML на моём сайте.

Перед тем, как приступить к кодированию, следует понять общий принцип устройства шаблона. Поскольку у нас полноценная система управления, то предполагается, что многие настройки шаблона будут вынесены в админ-панель. Это накладывает некоторый отпечаток на структуру каталогов и имена файлов.

Базовая структура шаблона

Шаблон состоит из модульной main-сетки, которая наполняется:

  • компонентами шапки,
  • основным контентом, получаемым автоматически,
  • сайдбаром (боковой колонкой, но может и отсутствовать),
  • компонентами подвала.

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

Модульная main-сетка

Модульная представляет собой html-каркас, внутри которого размещаются остальные блоки. Как правило шаблоны MaxSite CMS имеют несколько main-шаблонов, чтобы дать пользователю выбор через админ-панель. Все они размещаются в каталоге main, где main.php — является шаблоном по умолчанию («Обычный»), а остальные располагаются каждый в своём подкаталоге.

В Default-шаблоне предлагаются main-шаблоны:

  • Обычный — правый сайдбар
  • content-only — для вывода только контента
  • landing — для лендинга
  • left-sidebar — левый сайдбар
  • no-sidebar — без сайдбара

Каталог blocks служебный, куда вынесены различные подключаемые файлы, с целью сделать main-файл более читабельным.

Компоненты

Компоненты также выбираются в админ-панели. Как правило шаблон состоит из нескольких компонентов, например логотип, название сайта и основное меню. При создании компонентов следует учитывать, что они могут комбинироваться в произвольной последовательности. Если компонент предполагает строго определенный вывод, то лучше сделать один большой, даже состоящий из нескольких небольших. Пример top1 из Default-шаблона.

Используйте копии компонентов для своей правки.

Сайдбар

Вывод сайдбара (сайдбаров) задаётся в модульной сетке, поскольку это всего лишь одна функция mso_show_sidebar().

Если предполагается несколько сайдбаров, то в custom/my-template.php следует их определить, чтобы админ-панель знала об их существовании:

mso_register_sidebar('2', tf('Второй сайдбар'));

Технически сайдбаров может быть сколько угодно и выводиться они могут в любых частях сайта, например в подвале или юнитах.

Дизайн

Дизайн шаблона задается в css-стилях. В Default-шаблоне используется UniCSS и вы можете взять данный вариант за основу.

Шаблоны заголовков (info-top)

После того, как для шаблона задан основной дизайн, можно приступить к настройке вывода контента. В большинстве случаев речь пойдёт о шаблоне заголовков. В MaxSite CMS для задания заголовков используются type_foreach-файлы, которые размещены в type_foreach/info-top и доступны для выбора в админ-панели.

Шаблон заголовка (info-top-файл) содержит вывод заглавия страницы, а также дополнительную информацию: рубрики, метки, дату публикации и т.д.

Вывод заголовка записи происходит в цикле вывода самой страницы, где используется шаблонизатор Page_out, который доступен в виде переменной $p. Это php-объект, который содержит множество различных методов для упрощения вывода.

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

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

Type-файлы

В type-файлах происходит получение и основной вывод контента. Если в шаблоне нет type-файлов, то используются файлы shared-каталога. Диспетчет MaxSite CMS сам определяет наличие нужных файлов в шаблоне, что позволяет без труда заменять стандартный вывод простым размещением файла в каталоге шаблона.

Хотя такая возможность есть, лучше не заменять типовой вывод с помощью type-файлов, а использовать точечные замены через type_foreach-файлы или другие механизмы системы, например опции, ушки, set/get-переменные, юниты. Подмена type-файлов своими лишит шаблон новых возможностей после их обновления в MaxSite CMS.

Юниты

Некоторые типы данных позволяют изменить вывод за счет использования юнитов (units). Юнит — это некий обобщенный модуль, который выполняет какую-то задачу. Например можно заменить вывод главной своими юнитами в произвольном виде.

Сами по себе юниты могут представлять собой php-код или секционные опции, похожие на ini-опции. Обработка юнитов ложится на сам шаблон, но в MaxSite CMS, в частности в Default-шаблоне предусмотрены готовые решения. Например вывод возможен с помощью файла юнита last-pages.php, имеющий очень много настроек и предназначеный для получения и вывода записей по заданным критерям.

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