Skip to content

Instantly share code, notes, and snippets.

@Elvinz
Last active February 4, 2020 08:36
Show Gist options
  • Save Elvinz/380efb710de69f8fa53a5401aef4eb46 to your computer and use it in GitHub Desktop.
Save Elvinz/380efb710de69f8fa53a5401aef4eb46 to your computer and use it in GitHub Desktop.
Как вывести произвольный контент в шаблоне сайта и компонента
Усовершенствованные методы буферизации в шаблоне позволяют более не использовать CBitrixComponentTemplate::EndViewTarget() ввиду того, что конец шаблона вызывает завершение буферизации автоматически.
Описанные ниже способы по своей сути похожи на Включаемые области. Только Включаемая область это файл подключаемый в шаблоне сайта, а указанные методы - это область, которая формируется в коде шаблона.
Можно использовать как в шаблоне сайта, так и в шаблоне компонента.
Теперь есть поддержка стандартного кеширования в компонентах.
template.php:
<?$this->SetViewTarget("sidebar");?>
<div class="element-filter">
<!--вывод фильтра -->
</div>
<?$this->EndViewTarget();?>
<div class="element-list">
<!--вывод списка -->
</div>
header.php:
<div id="sidebar">
<?$APPLICATION->ShowViewContent("sidebar")?>
</div>
Методы, доступные в шаблоне (через $this)
CBitrixComponentTemplate::SetViewTarget($view, $pos)
CBitrixComponentTemplate::EndViewTarget()
Методы глобального объекта $APPLICATION
Cmain::AddViewContent($view, $content, $pos)
Cmain::ShowViewContent($view)
где:
$view – идентификатор буферизируемой области;
$content – буферизируемый контент;
$pos – сортировка вывода контента.
Примечание: одному идентификатору $view может соответствовать несколько буферов. Последовательность вывода контента определяется сортировкой $pos.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment