На сайте созданы два инфоблока: в одном - статьи, выводятся компонентом новостей, в другом содержаться данные авторов данных статей.
Необходимо при просмотре детальных страниц новостей выводить из другого инфоблока данные их авторов.
При просмотре детальной страницы новости, из свойства привязка к элементу, получаю и передаю данные ID автора из компонента, используя глобальный массив $GLOBALS
$GLOBALS["AUTOR_ID"] = $arResult["PROPERTIES"]["AUTOR_ID"]["VALUE"];
Для вывода данных автора получаю из Глобального массива данные ID инфоблока и вытаскиваю данные автора используя
CIBlockElement::GetByID($id_autor) , и затем вывожу в шаблоне.
<?php
if ($GLOBALS["AUTOR_ID"]) {
$id_autor = $GLOBALS["AUTOR_ID"]; // получаю ID элемента инфоблока
unset($GLOBALS["AUTOR_ID"]);
}else{
$id_autor = 2; // // Если данные не получены, задан ID элемента
}
$res = CIBlockElement::GetByID($id_autor);
if($ar_res = $res->GetNext())
?>
<div class="card mb-4">
<div class="view overlay">
<img src="<? echo CFile::GetPath($ar_res["PREVIEW_PICTURE"]); ?>" class="card-img-top" alt="Печник <?=$ar_res["NAME"];?>">
<a><div class="mask rgba-white-slight waves-effect waves-light"></div></a>
</div>
<div class="card-body">
<h5 class="card-title dark-grey-text text-center grey lighten-4 py-2">
<strong><?=$ar_res['NAME'];?></strong>
</h5>
<p class="mt-3 dark-grey-text font-small text-center">
<em><?=$ar_res["PREVIEW_TEXT"];?></em>
</p>
</div>
</div>
В данном случае код срабатывает, но при переходе на страницы других авторов, данные не меняются, точней меняются только после обновления кеша страницы.
Полагаю, проблема связана с кешированием.
Как решить проблему с кешированием данных, сделать так, что бы при посещении страниц других авторов менялись данные их авторов?
Возможно задачу можно решить другим, более рациональным способом. Прошу совета.