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

Альтернативная реализация шаблонов в 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
Комментарии Комментарии 2

Публикации

Истории

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн