Вопросы и ответы
Вебмастеру
Компоненты шаблона
С точки зрения html-верстальщика, в шаблоне можно выделить три структурные единицы:
- шапка
- контент
- подвал
За вывод контента отвечает type-файл и main-шаблон (где можно вывести сайдбар и прочие блоки), то шапка и подвал могут быть вынесены из main-шаблона отдельно. Таким образом у шаблона может быть несколько вариантов шапки и подвала, которые можно выбрать в админ-панели.
Отдельные компоненты упрощают общую разработку и позволяют переносить (с небольшими изменениями) компоненты между разными шаблонами.
Компоненты размещаются в каталоге шаблона components
. Для компонентов существуют правила.
- Каждый компонент размещается в своём каталоге.
- Главный файл совпадает с именем каталога, либо это
index.php
- Компонент может содержать опции в файле
options.ini
(иoptions.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');