Включаемые области

Включаемая область — это отдельный фрагмент страницы, который можно редактировать независимо от основного контента. С ее помощью можно добавить текст, изображения или компоненты в шаблон сайта.

Как работают включаемые области

Часть элементов сайта требует регулярного обновления, например, номер телефона в шапке, баннер, информация об авторских правах. Они не являются основным контентом страницы, но часто меняются.

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

  1. Разработчик подключает компонент Вставка включаемой области bitrix:main.include в нужное место шаблона.

  2. Контент-менеджер или разработчик создает файл с HTML или PHP-кодом. В файл можно добавить текст, изображения, компоненты и другие элементы.

  3. Компонент bitrix:main.include подключает файл и выводит его содержимое на сайте.

  4. Контент-менеджер редактирует содержимое через визуальный редактор.

Особенности включаемых областей

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

  • Включаемые области ограничены размером контейнера, в котором размещен компонент bitrix:main.include. Большое изображение или длинный текст могут исказить дизайн.

Компонент Вставка включаемой области

Компонент Вставка включаемой области bitrix:main.include можно разместить:

  • в шаблоне сайта — область будет выводиться на страницах, использующих этот шаблон,

  • на конкретной странице — область отобразится только на ней.

О том, как подключить компонент, читайте в статье Компоненты.

Где показывать область

Параметр компонента Показывать включаемую область задает вариант отображения области.

  • sect — для раздела. Область отображается на страницах раздела, где подключен компонент. По умолчанию компонент ищет файл области и в родительских разделах. Этот поиск можно отключить параметром Рекурсивное подключение включаемых областей разделов.

  • page — для страницы. Область видна только на одной странице.

  • file — из файла. Путь к нему задают в параметре PATH (Путь к файлу области). Содержимое файла выводится только там, где подключен компонент. Относительный путь отсчитывается от папки текущей страницы, поэтому рекомендуется указывать путь от корня сайта, например /include/contact.php. В настройках компонента этот вариант доступен пользователю с правом edit_php.

В одном компоненте можно настроить только один вариант отображения.

По умолчанию AREA_FILE_SHOW имеет значение page.

Для области из файла укажите путь в вызове компонента:

$APPLICATION->IncludeComponent(
    'bitrix:main.include',
    '',
    [
        'AREA_FILE_SHOW' => 'file',
        'PATH' => '/include/contact.php',
    ]
);

Суффикс имени файла

Имя файла области для раздела или страницы содержит суффикс. Его задают в параметре компонента Суффикс имени файла включаемой области. Например, это может быть myinc. В таком случае имя файла раздела будет sect_myinc.php, а страницы mypage.php — mypage_myinc.php.

По умолчанию AREA_FILE_SUFFIX имеет значение inc.

Если на одной странице размещены несколько компонентов bitrix:main.include одного режима и каждому нужен отдельный файл области, задайте разные суффиксы. В режиме file суффикс не используется.

Рекурсивное подключение файлов раздела

Показ включаемых областей раздела зависит от опции Рекурсивное подключение включаемых областей разделов.

По умолчанию AREA_FILE_RECURSIVE имеет значение Y: рекурсивный поиск включен.

  • Рекурсивный режим — опция включена. Если в текущем разделе нет файла области, система будет искать его в родительских разделах вплоть до корня сайта. Система покажет первый найденный файл.

  • Нерекурсивный режим — опция отключена. Система выполняет поиск файла только в текущем разделе.

Шаблон области

Параметр Шаблон области по умолчанию (EDIT_TEMPLATE) задает начальное содержимое файла области при его создании через редактор. После создания файла параметр не влияет на его вывод: компонент подключает содержимое файла области.

Свой шаблон для создания файла можно разместить в /local/templates/.default/page_templates/ и указать его имя в параметре EDIT_TEMPLATE. Подробнее о размещении шаблонов читайте в статье Шаблоны страниц.

Размещение файла включаемой области

Файл включаемой области для раздела можно разместить в самом разделе. Если включен рекурсивный поиск, компонент также найдет файл в одном из родительских разделов. Файл области для страницы размещают в той же директории, где расположена страница. Например, страница article.php находится в папке /my-section/, значит файл включаемой области article_myinc.php создаем тоже в /my-section/.

Файл области, которая настроена на показ из файла, рекомендуется размещать в папке сайта /include/. Имя файла может быть произвольным.

Файл области можно также подключить без компонента вызовом $APPLICATION->IncludeFile():

$APPLICATION->IncludeFile('/include/contact.php');

Как создать файл области

После подключения компонента bitrix:main.include, нужно создать файл с содержимым области.

Добавить область в публичной части

  1. Включите режим правки и наведите курсор на место, где должна отображаться область.

  2. Нажмите Добавить область или Добавить область как PHP.

  3. Добавьте контент области с помощью визуального редактора или в режиме PHP-кода.

Система создаст файл включаемой области и подставит суффикс автоматически.

Создать файл в административной части

  1. Перейдите в раздел Контент > Структура сайта > Файлы и папки.

  2. В менеджере файлов откройте подходящую директорию.

  3. Нажмите Добавить файл.

  4. Укажите имя файла и суффикс из настроек компонента, если создаете файл для раздела или страницы. Для включаемой области из файла суффикс не нужен.

  5. Добавьте содержимое включаемой области.

Как отредактировать контент области

Содержимое области можно отредактировать в публичной и административной частях сайта.

Публичная часть

  1. Включите режим правки и наведите курсор на нужное место.

  2. Нажмите Изменить область или Изменить область как PHP.

  3. Отредактируйте контент области в визуальном редакторе или в режиме PHP.

Административная часть

  1. Перейдите в раздел Контент > Структура сайта > Файлы и папки.

  2. В менеджере файлов найдите файл включаемой области и отредактируйте его.

Как скрыть или удалить область

Включаемую область можно скрыть одним из следующих способов.

  • Очистить содержимое файла области. Если в режиме sect удалить файл, компонент при включенном рекурсивном поиске может вывести файл из родительского раздела.

  • Для режимов page и sect изменить суффикс на значение, для которого нет файла области.

  • Убрать вызов компонента из шаблона сайта или страницы.

Чтобы полностью удалить включаемую область, уберите вызов bitrix:main.include или $APPLICATION->IncludeFile() из шаблона сайта или страницы. Файл области удалите, если он больше нигде не используется.

Пример включаемой области

Задача. На сайте есть несколько разделов. Каждый раздел должен иметь свою верхнюю часть — шапку сайта.

Решение. Чтобы верхняя часть изменялась при переходе по разделам, внесите изменения в шаблон сайта.

  1. Выделите место под включаемую область.

  2. Разместите компонент Вставка включаемой области bitrix:main.include.

  3. Настройте его параметры.

    • Показывать включаемую область — выберите для раздела.

    • Суффикс имени файла включаемой области — укажите суффикс, который будет добавляться к именам файлов включаемых областей. Например, headerinc.

    • Рекурсивное подключение включаемых областей разделов — оставьте опцию включенной, чтобы компонент искал файл области в родительских разделах.

  4. В каждом разделе создайте файлы sect_headerinc.php и напишите в них код верхних частей.

Часть шаблона c компонентом имеет следующий код:

<div id="header">
    <?php $APPLICATION->IncludeComponent(
        'bitrix:main.include',
        '.default',
        [
            'AREA_FILE_SHOW' => 'sect', // Показывать включаемую область
            'AREA_FILE_SUFFIX' => 'headerinc', // Суффикс имени файла включаемой области
            'AREA_FILE_RECURSIVE' => 'Y', // Рекурсивное подключение включаемых областей разделов
        ],
        false
    );?>
</div>