В 1С-Битрикс на одном сайте можно использовать несколько шаблонов дизайна и включать нужный шаблон по условию — например, для конкретного раздела, страницы или группы пользователей. Разберём два рабочих способа и их приоритеты.
Как работает выбор шаблона в Битрикс
Шаблон сайта в 1С-Битрикс — это оформление (header.php, footer.php, стили, компоненты), которое подключается вокруг содержимого страницы. На одном сайте может быть подключено несколько шаблонов, а система при каждом запросе решает, какой из них показать.
Механизм выбора двухуровневый:
- Условия применения шаблонов — правила в настройках сайта, которые проверяются по порядку сверху вниз;
- Свойство страницы или раздела — принудительное указание шаблона через свойство
page_templateв файле.section.phpили в самой странице.
Свойство страницы/раздела имеет более высокий приоритет и перекрывает условия из настроек сайта.
Шаг 1. Подключить второй шаблон к сайту
Прежде чем назначать шаблон разделу, он должен быть подключён к сайту. Проверьте и при необходимости добавьте его:
- Откройте Настройки → Настройки продукта → Сайты → Список сайтов.
- Кликните по нужному сайту и перейдите на вкладку Шаблон.
- В блоке Шаблоны сайта нажмите Добавить шаблон.
- Выберите нужный шаблон из выпадающего списка — там перечислены все шаблоны из папки
/bitrix/templates/и/local/templates/.
Один и тот же шаблон можно добавить несколько раз с разными условиями — это нормально, если для разных разделов нужны разные правила.
Шаг 2. Назначить шаблон разделу через условие
Для каждой строки в списке шаблонов задаётся условие применения и сортировка. Система идёт по списку в порядке возрастания индекса сортировки и применяет первый шаблон, условие которого выполнилось.
Чтобы весь раздел использовал отдельный шаблон:
- В строке нужного шаблона в поле Условие нажмите на значок настройки условия.
- Выберите тип условия Для страниц из папки (каталога).
- Укажите путь к разделу, например
/catalog/или/company/. - Задайте Сортировку так, чтобы более частное правило проверялось раньше общего (меньшее число = выше по списку).
- Сохраните настройки сайта.
Строку с основным шаблоном без условия (пустое условие = «всегда истинно») держите внизу списка — она должна срабатывать последней как значение по умолчанию.
Какие условия применения доступны
Кроме привязки к папке, в 1С-Битрикс есть и другие типы условий. Их можно комбинировать через логику И / ИЛИ.
| Тип условия | Когда применяется |
|---|---|
| Для страниц из папки | URL страницы входит в указанный раздел (каталог) |
| Для конкретной страницы | Точное совпадение URL страницы |
| Для группы пользователей | Текущий посетитель состоит в выбранной группе |
| По параметру запроса | В URL присутствует параметр вида ?tpl=print |
| Своё PHP-условие | Возвращает true по произвольной логике |
Например, шаблон для печати удобно включать по параметру запроса, а «мобильный» или партнёрский раздел — по папке.
Способ 2. Шаблон через свойство раздела (.section.php)
Второй способ работает без правки настроек сайта и удобен для контент-менеджера. Шаблон указывается прямо в свойствах раздела или страницы и имеет приоритет над условиями.
Через публичную часть
- Откройте нужный раздел на сайте в режиме Правки.
- На панели раздела выберите Изменить параметры раздела.
- В свойстве Шаблон сайта (
page_template) укажите ID нужного шаблона. - Сохраните — правило запишется в файл
.section.phpраздела.
Вручную в файле
В файле .section.php раздела прописывается свойство:
$arDirProperties = array("page_template" => "my_template");
Свойство наследуется всеми вложенными страницами и подразделами, пока где-то ниже его не переопределят.
Приоритеты: что победит при конфликте
Когда шаблон задан сразу несколькими способами, порядок разрешения такой:
- Явное свойство страницы
page_templateв самой странице. - Свойство раздела
page_templateиз ближайшего.section.php. - Первое сработавшее условие применения из настроек сайта.
- Шаблон сайта по умолчанию (строка без условия).
То есть свойство раздела всегда перекрывает правила из настроек сайта. Если вы задали разделу шаблон через .section.php, а он «не слушается» условий — это ожидаемое поведение, а не ошибка.
Частые ошибки
- Основной шаблон стоит выше по сортировке. Строка с пустым условием срабатывает первой и перехватывает все страницы — частный шаблон раздела никогда не включится. Держите правило без условия последним.
- Путь в условии без слэшей. Указывайте раздел как
/catalog/, а неcatalog— иначе совпадение не сработает. - Шаблон не подключён к сайту. Если шаблона нет в списке на вкладке «Шаблон», условие просто игнорируется.
- Забытый кеш. После смены шаблона очистите кеш (Настройки → Настройки продукта → Автокеширование или кнопкой сброса), иначе увидите старое оформление.
- Конфликт свойства и условия. Раздел упорно показывает «не тот» шаблон — проверьте
page_templateв.section.php, он перебивает настройки сайта. - Опечатка в ID шаблона. ID должен совпадать с именем папки шаблона в
/bitrix/templates/; при несовпадении применяется шаблон по умолчанию.
Итог
Назначить разделу собственный шаблон в 1С-Битрикс можно двумя способами: через условия применения в настройках сайта (гибко, для администратора) или через свойство раздела page_template в .section.php (просто, для контент-менеджера).
Главное — помнить о приоритетах: свойство раздела перекрывает условия, а правило без условия должно стоять последним. При правильной сортировке и очищенном кеше разные разделы сайта будут выглядеть по-разному в рамках одного проекта.