Привязка шаблонов к разделам и страницам сайта в 1C-Bitrix

Alexander K.
1С-Bitrix
23.07.2019
207
В сети очень мало информации, связанной с процессом привязки шаблонов. Особенно это касается использование типа условия "Выражение PHP".

Данный тип применяется тогда, когда мало функций привязки для папок и файлов. Самый простой пример - привязка одного шаблона к нескольким разделам сразу. Чтобы не плодить список привязок, достаточно создать одну привязку по выражению PHP и вписать туда следующее:
 CSite::InDir('/news/') || CSite::InDir('/events/') || CSite::InDir('/media/')
Как видно из этого примера, мы просто несколько раз применяем метод API Битрикса CSite::InDir и разделяем их логическим оператором "ИЛИ" (обозначается ||).

Ещё вариант, который часто используется - это регулярные выражения. Их можно использовать с регулярным выражением и функцией preg_match(), например:
preg_match("#^/dpo/([a-zA-Z]+)\.php.*#", $APPLICATION->GetCurPage(true));
Что в данном случае происходит? Проверяется условие: в корне сайта должна находиться директория /dpo/, в которой должны быть файлы с расширением .php и названием, состоящим только из букв латинского алфавита. Если человек попал на страницу, которая отвечает данному условию, то шаблон подгружается.

Резюмируя, стоит добавить, что можно писать любую привязку отвечающую следующей конструкции:
if(#Условие# === true).