Как стать автором
Обновить

Альтернативная реализация шаблонов в 1С-Битрикс

Время на прочтение2 мин
Количество просмотров6.6K
Для начала напомню, как реализованы шаблоны в стандартном виде для 1С-Битрикс. Все шаблоны хранятся в папке /bitrix/templates/. Папка шаблона содержит обязательные файлы header.php и footer.php. По сути эти два файла вместе образуют шаблон страницы, т.е. сначала подключается header.php, потом контент страницы, потом footer.php. Схема тупая до безумия. В первую очередь тем, что шаблон разбит на две части и редактировать его как единое целое можно только через систему администирования. А это уже клиника. Второе неудобство такой схемы заключается в том, что мы, по сути, не можем использовать переменные страницы в части header.php, так как на момент вызова первой части шаблона система еще не «знает» об этих переменных. Конечно, можно использовать предлагаемый вариант буферизации данных, но опять же такие переменные можно использовать только на вывод.

Типичная ситуация. На странице задается некий параметр определяющий показывать заголовок страницы или нет. Стандартными средствами битрикса это сделать нельзя, так как заголовок показывается до контента страницы. Выход из ситуации – использовать свою систему шаблонов. Я это разработал уже года полтора назад и успешно использую во всех своих проектах. Итак, система выглядит следующим образом. Мы буферизуем весь контент страницы, подключаем шаблон и вставляем в него контент как переменную. Практическая реализация выглядит следующим образом:

Файл header.php:
<‍?php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
ob_start();
?>


Файл footer.php:
<‍?php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$WORK_AREA = ob_get_clean(); // Получаем контент рабочей области страницы
include_once("template.php");
?>


Файл template.php:
<‍?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<‍html>
<‍body>
<‍?=$WORK_AREA?>
<‍/body>
<‍/html>


В итоге имеем целостный шаблон сайта в файле template.php. Решаем две основные проблемы, озвученные ранее. Единственный минус – редактировать шаблон через админку уже нельзя. Хотя это тоже можно считать плюсом.
Теги:
Хабы:
-4
Комментарии2

Публикации

Изменить настройки темы

Истории

Ближайшие события

PG Bootcamp 2024
Дата16 апреля
Время09:30 – 21:00
Место
МинскОнлайн
EvaConf 2024
Дата16 апреля
Время11:00 – 16:00
Место
МоскваОнлайн
Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн