Использование функций ShowViewContent, AddViewContent, SetViewTarget и EndViewTarget

4 Апреля 2018

Работая над сторонним сайтом обнаружил там такую интересную штуку, как использование функций ShowViewContent в связке с SetViewTarget и EndViewTarget.

Если в кратце, то эта штука позволяет выводить контент, сгенерированный позже по коду в указанном месте (механизм отложенных функций). Очень удобно, когда надо, например, выводить какие-то блоки в header.php или в footer.php в зависимости от страницы. Ну для примера это может быть фильтр по каталогу, который выводится в общий левый (правый) блок сайта, или перечень похожих новостей на странице новости в такой же левый (правый) блок. При этом можно заранее указать кучу таких вот меток, а конетнт туда будет выводиться только в том случае, если он есть в буфере для этой страницы.

Пример использования:

Добавляем ссылку в h1 в шаблоне компонента header.php:

	 	<h1> 	<?=$APPLICATION->ShowTitle();?> 	<?$APPLICATION->ShowViewContent('news_detail');?> 	</h1>

А в шаблон компонента добавляем:

	<?$this->SetViewTarget('news_detail');?>
	   <noindex><a rel="nofollow" class="h1-head fancy" href="/develop/change_cover_type.php"><?=$arDataFilter["NAME"]?></a></noindex>
	<?$this->EndViewTarget();?> 
Так же есть еще одна функция, которая работает с ShowViewContent - AddViewContent - она позволяет задать для ShowViewContent некоторое строчное значение.
Полезные ссылки
Возврат к списку