Включаемые области в Битрикс
Включаемая область — это кусок содержимого, вынесенный в отдельный файл и подключаемый в нужное место шаблона или страницы. Смысл в том, что редактировать его может контент-менеджер прямо из публичной части сайта, не залезая в код.
Телефон в шапке, адрес в подвале, баннер сбоку, текст под каталогом, реквизиты компании — всё это классические кандидаты во включаемые области. Разберём три режима их работы, порядок подключения и то, когда область — правильное решение, а когда лучше инфоблок.
Зачем это нужно
Представим телефон, жёстко прописанный в header.php. Компания меняет номер —
и правка идёт через разработчика. С включаемой областью тот же телефон редактируется
прямо на сайте: администратор включает режим правки, нажимает на карандаш и меняет текст.
Практическая ценность появляется там, где содержимое:
- меняется время от времени, но не каждый день;
- не имеет сложной структуры — это просто текст или небольшой HTML;
- должно редактироваться без разработчика;
- отличается для разных разделов сайта.
Простое подключение файла
Самый прямой способ — метод IncludeFile:
<?$APPLICATION->IncludeFile(
SITE_DIR . 'include/phone.php',
[],
[
'MODE' => 'html',
'NAME' => 'Телефон в шапке',
]
)?>
Разберём параметры:
| Параметр | Назначение |
|---|---|
| Первый аргумент | Путь к файлу области |
MODE | html — правка визуальным редактором, php — как код |
NAME | Подпись на кнопке редактирования в режиме правки |
Значение NAME лучше задавать всегда: когда на странице десяток областей,
без подписей администратор не поймёт, какой карандаш что редактирует.
Возникли проблемы с 1С-Битрикс? Поможем разобраться.
Исправим ошибки, доработаем функционал, ускорим работу сайта или просто подскажем правильное решение. Оставьте номер телефона — свяжемся с вами в ближайшее время.
Компонент main.include и три режима
Более гибкий вариант — компонент bitrix:main.include. Его главная ценность
в том, что он умеет искать файл области автоматически, в зависимости от текущего раздела
или страницы.
Режим «файл»
Подключает конкретный файл — аналог IncludeFile:
<?$APPLICATION->IncludeComponent(
'bitrix:main.include',
'',
[
'AREA_FILE_SHOW' => 'file',
'PATH' => SITE_DIR . 'include/footer_contacts.php',
'EDIT_TEMPLATE' => 'standard.php',
]
)?>
Режим «раздел»
Самый полезный режим. Компонент ищет файл с заданным суффиксом в текущем разделе, а если не находит — поднимается на уровень выше:
<?$APPLICATION->IncludeComponent(
'bitrix:main.include',
'',
[
'AREA_FILE_SHOW' => 'sect',
'AREA_FILE_SUFFIX' => 'banner',
'EDIT_TEMPLATE' => 'standard.php',
]
)?>
Здесь компонент ищет файл sect_banner.php. Для страницы
/catalog/mebel/stoly/ порядок поиска будет такой:
/catalog/mebel/stoly/sect_banner.php/catalog/mebel/sect_banner.php/catalog/sect_banner.php/sect_banner.php
Выводится первый найденный. Это даёт удобную логику наследования: общий баннер лежит в корне каталога, а для конкретного подраздела при необходимости кладётся свой и перекрывает общий.
Режим «страница»
Файл подбирается по имени текущей страницы:
<?$APPLICATION->IncludeComponent(
'bitrix:main.include',
'',
[
'AREA_FILE_SHOW' => 'page',
'AREA_FILE_SUFFIX' => 'inc',
]
)?>
Для страницы /about/company.php компонент подключит
/about/company_inc.php. Удобно, когда у каждой страницы свой
дополнительный блок.
Параметр EDIT_TEMPLATE
Часто пропускаемая, но важная настройка. Она указывает, какой файл взять за основу, если области ещё не существует.
Без EDIT_TEMPLATE компонент просто ничего не выведет, и у администратора
не будет кнопки «создать». С параметром появляется возможность создать область
прямо из публичной части.
Файл-заготовка кладётся в папку /local/templates/имя_шаблона/page_templates/.
Обычно это standard.php с пустым или примерным содержимым.
Как редактировать области
- Войдите на сайт под администратором.
- В административной панели включите режим правки.
- На месте включаемых областей появятся кнопки с подписями из параметра
NAME. - Нажмите на карандаш — откроется редактор.
- Внесите правки и сохраните.
Если кнопок не видно, проверьте, что в header.php вызывается
$APPLICATION->ShowPanel() — без него административная панель
и режим правки недоступны.
Где хранить файлы областей
Устоявшаяся практика — отдельная папка:
/include/
phone.php
address.php
footer_contacts.php
social_links.php
Обратите внимание: это папка в корне сайта, а не в шаблоне. Логика простая — содержимое областей относится к контенту сайта, а не к его оформлению. При смене шаблона тексты должны остаться.
Файлы, которые ищутся по разделам (sect_*.php), лежат прямо
в соответствующих разделах сайта — иначе механизм поиска не сработает.
Область или инфоблок
Включаемые области часто пытаются применить там, где нужен инфоблок. Ориентир такой:
| Задача | Что использовать |
|---|---|
| Телефон, адрес, реквизиты | Включаемая область |
| Текстовый блок под каталогом | Включаемая область |
| Баннер в разделе | Включаемая область |
| Список новостей | Инфоблок |
| Каталог товаров | Инфоблок |
| Отзывы с рейтингом и датой | Инфоблок |
| Список сотрудников с фото и должностями | Инфоблок |
Правило простое: как только у содержимого появляется структура — несколько однотипных записей с полями, которые нужно фильтровать или сортировать, — это инфоблок. Включаемая область хороша ровно до тех пор, пока содержимое остаётся куском текста или HTML.
Частые ошибки
-
Не задан
NAME. На странице десять одинаковых карандашей, и никто не помнит, какой за что отвечает. -
Пропущен
EDIT_TEMPLATE. Область нельзя создать из публичной части — приходится идти в файловую систему. - Область лежит в папке шаблона. При смене шаблона контент теряется.
- В области размещают PHP-логику. Контент-менеджер редактирует файл через визуальный редактор и ломает код. Логике место в шаблоне.
- Через области выводят структурированные данные. Десять «карточек сотрудников» в HTML — верный признак, что нужен инфоблок.
-
Забыт
ShowPanel(). Режим правки не включается, и весь смысл областей пропадает.
Итог
Включаемые области выносят редактируемые куски содержимого из кода в отдельные файлы.
Простое подключение делается методом IncludeFile, гибкое —
компонентом bitrix:main.include с тремя режимами: конкретный файл,
поиск по разделам с наследованием и подбор по имени страницы.
Два параметра определяют, будет ли этим удобно пользоваться: NAME
с понятной подписью и EDIT_TEMPLATE для создания области из публичной части.
А как только содержимое обретает структуру, область пора заменять инфоблоком.