Хочу поделиться своей проблемой, которая возникла при работе с компонентом catalog.section.list, которая вынудила меня кастомизировать весь компонент.Проблема заключается в том, что вне зависимости от настроек кеша компонент наглухо кешируется и если компонент вызывается на разных страницах, то никакие изменения на поведение компонента не влияют.Поиски проблемы привели меня в файл компонента component.php, где было исследовано его поведение при работе с Кешем.
Меня смутила строка:
[CODE]if($this->startResultCache(false, ($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetGroups())))[/CODE]
Собственно получается, что ID кеша зависит только от набора групп пользователя и никак не зависит от параметров вызова компонента на странице (хотя и они не дают никакой гарантии уникальности). Я решил проблему следующим образом - включил в массив ID кеша адрес страницы, на которой находится пользователь и добавил параметр $arParams["CACHE_TIME"].
В итоге код получился таким:
[CODE]use
Bitrix\Main\Application,
Bitrix\Main\Web\Uri;
$context = Application::getInstance()->getContext();
$request = $context->getRequest();
$uri = new Uri($request->getRequestUri());
if($this->StartResultCache($arParams["CACHE_TIME"], array(($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetGroups()), $arParams, $uri->getPath())))[/CODE]Возможно есть и другие решения, было бы хорошо, если бы поделились, а если нет - то, чтобы разработчики приняли к сведению этот факт. Заранее спасибо.