Современная, быстрая и удобная система управления сайтом

Компоненты шаблона

С точки зрения html-верстальщика, в шаблоне можно выделить три структурные единицы:

  • шапка
  • контент
  • подвал

За вывод контента отвечает type-файл и main-шаблон (где можно вывести сайдбар и прочие блоки), то шапка и подвал могут быть вынесены из main-шаблона отдельно. Таким образом у шаблона может быть несколько вариантов шапки и подвала, которые можно выбрать в админ-панели.

Отдельные компоненты упрощают общую разработку и позволяют переносить (с небольшими изменениями) компоненты между разными шаблонами.

Компоненты размещаются в каталоге шаблона components. Для компонентов существуют правила.

  • Каждый компонент размещается в своём каталоге.
  • Главный файл совпадает с именем каталога, либо это index.php
  • Компонент может содержать опции в файле options.inioptions.php)
  • Файл style.css автоматически подключится к секции HEAD.
  • Js-скрипты можно разместить в компонент.js — он также будет автоматически подключен.
  • Если компонент начинается с символа подчеркивания «_», то он не отображается в админ-панели.

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

Компоненты по своей сути — это обычные php-файлы, которые вынесены из main-шаблона и которые могут быть выбраны в админ-панели. Поэтому к компонентам не предъявляются дополнительных требований, кроме как сформировать свой html-код для страницы.

Некоторые компоненты не предназначены для самостоятельного вывода, а используются в составе других компонентов. Например «_menu» формирует блок многоуровневого меню. С помощью «_breadcrumbs» можно вывести «хлебные крошки», а «_social» делает иконки соц.сетей на основе опций шаблона.

Если шаблон содержит шапку (или подвал), которая не предполагает какой-либо комбинации с другими компонентами, то лучше всего её реализовать в виде единого компонента, например header1, header2, footer1, footer2 и т.д. То есть нужно стараться избегать ситуаций, когда компоненты должны следовать какому-то определенному порядку.

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

Замечания по автоподключаемым файлам

Некоторые файлы компонента могут быть автоматически подключены. Например файл style.css подключится в секцию HEAD, так же как и файл компонент.js. Такая возможность на текущий момент устарела и пока не удалена из MaxSite CMS только ради совместимости. Поэтому если стоит задача подключить стили или js-файл (в виде внешних файлов), создавайте подключение прямо в файле компонента с помощью функции mso_add_file().

mso_add_file('mystyle.js', true, __DIR__);

Первый параметр указывает на имя файла. Второй - указывает на lazy-подключение в конце секции BODY, а третий указывает текущий каталог скрипта.

Именно поэтому в первом параметре указывается просто имя файла — функция автоматически найдёт его расположение.

Аналогичным образом подключается css-файл компонента. Пример, где явно указывается путь к файлу:

mso_add_file('component/mycomponent/my.css');