Шаблоны в Bitrix

Сущность шаблона в bitrix представляет из себя именнованую папку в разделе /local/templates/

  1. файл header.php
  2. файл footer.php

Все что между ними — контентная часть, подставляемая в страницах.

Шаблоны лежат по адресу /local/templates/ИмяШаблона.

По сути Шаблон страницы — это layout который задается на странице.

Страница

Сущность страницы

Каждая страница, это папка в корне сайта (может быть вложенная), содержащая в себе index.php файл.

Типовое Содержимое index.php файла

<?php
$APPLICATION->IncludeComponent(
    "ПространствоИмен:ИмяКомпонента",
    "ШаблонКомпонента",
    [
     // Параметры   
    ]
);?>
<?php require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Компонентов вызываемых между header.php & footer.php может быть несколько.

Например вам нужно создать страницу «Каталог» по роуту /catalog/.
Вы создаете папку /catalog в корне сайта, и добавляете туда index.php

Принято, что в страницах может быть только компоненты и статичный контент (p, заголовки h2+, img, hr, table не размеченные классами)

Обернуть компонент каким то div с классом — является ошибкой.

Почему:

Висит замочек на кнопке «Изменить страницу»

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

Как назначить шаблон на страницу

Переходим в админке на страницу списка сайтов и выбираем ваш сайт(s1).

Внизу вы увидите блок условий назначения шаблонов страницам. Условия вы можете сортировать тем самым выставляя приоритеты. «Без условия» — шаблон по умолчанию применится для всех страниц.

Декомпозиция шаблонов

Вполне допустимо что на проекте всего один шаблон, т.к. header.php & footer.php обычно едины для всего проекта.

Однако бывает необходимость все таки нескольких шаблонов, к примеру на одних страницах есть sidebar, на других его нет. Чаще всего так бывает с главной страницей + внутренние страницы. Соответственно у вас получится 2 шаблона: main & vn.

Также всегда будет присутствовать шаблон по умолчанию = .default. В него складываются шаблоны компонентов. Его редко используют как реальный шаблон подключаемый к страницам. Можно воспринимать его как родитель, от которого мы наследуем другие шаблоны.

Чтобы избежать дублирования кода между main & vn шаблнонами, мы выносим все общие блоки в чанки. Термин мы взяли из modx, он весьма подходит. Чанки — это просто куски верстки общие между шаблонами. Складываются они в корне .default адресу /include

Чанк подключается стандартной командой подключения файла в php

    include $_SERVER["DOCUMENT_ROOT"] . '/local/templates/.default/include/head.inc.php';

Пример использования чанка. В данном примере мы вынесли общую часть head в отдельный чанк, и добавили пару файлов которые относятся только к текущему шаблону.

<head>
    <?php // общие теги
    include $_SERVER["DOCUMENT_ROOT"] . '/local/templates/.default/include/head.inc.php'; 
    
    Asset::getInstance()->addJs(STATIC_FOLDER . "node_modules/jquery-scrollify/jquery.scrollify.js");
    Asset::getInstance()->addJs(STATIC_FOLDER . "build/js/main.js");
    ?>
</head>

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *