14  /  26

Два класса для удобного создания динамических областей

Просмотров: 47311
Дата последнего изменения: 19.08.2021
Роберт Басыров
Сложность урока:
1 уровень - интуитивно все понятно из интерфейса, но почитать стоит.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Пара полезных классов

FrameBuffered - класс для буферизированных динамических областей. Именно объект этого класса создаётся когда в шаблоне компонента мы вызываем $this->createFrame(). С помощью этого класса удобно создавать заглушки динамических областей.

$frame = new \Bitrix\Main\Page\FrameBuffered("my_dynamic"); // или $this->createFrame() в шаблоне
$frame->begin();
  // Содержание динамической области
$frame->beginStub();
  // Заглушка
$frame->end();

Метод удобный, но в нём не работают отложенные функции. Для обхода этой ситуации создан второй класс:

FrameStatic - класс для статических динамических областей.

$dynamicArea = new \Bitrix\Main\Page\FrameStatic("my_dynamic");
$dynamicArea->setAnimation(true);
$dynamicArea->setStub("заглушка");
$dynamicArea->setContainerID("my-div-id");
$dynamicArea->startDynamicArea();
// Содержимое динамической области
// HTML, PHP, подключение компонентов
$dynamicArea->finishDynamicArea();

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


16
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии