Добрый день!
Суть проблемы в следующем: выводим каталог товаров, в категории может быть их 100-300-1000 штук.
Реализован постраничный вывод и кэширование каталога.
Проблема в том что строка постраничной навигации тоже кэшируется и ссылки в ней не работают.
Как это побороть? Склоняюсь к мысли что как-то нужно кэшировать отдельно то что выводим компонент и отдельно - строку. Но не могу понять как.
Вот, для наглядности структура кода:
Суть проблемы в следующем: выводим каталог товаров, в категории может быть их 100-300-1000 штук.
Реализован постраничный вывод и кэширование каталога.
Проблема в том что строка постраничной навигации тоже кэшируется и ссылки в ней не работают.
Как это побороть? Склоняюсь к мысли что как-то нужно кэшировать отдельно то что выводим компонент и отдельно - строку. Но не могу понять как.
Вот, для наглядности структура кода:
| Код |
|---|
//начинаем собирать товары
$arNavStartParams = array("nPageSize"=>$arResult['PER_PAGE']);
$arOrder = array("SORT"=>"ASC");
$arFilter = array(
"ACTIVE"=>"Y",
"SECTION_ID"=>$arResult['MAIN_SECTION_ID'],
"INCLUDE_SUBSECTIONS"=>"Y" //важный параметр, включает элементы из подкатегорий
);
$resSub = CIBlockElement::GetList($arOrder, $arFilter, false, $arNavStartParams, $arSelect);
$INDEX = 0;
while ($arElement = $resSub->Fetch()) {
$arResult['ELEMENTS'][$INDEX]['NAME'] = $arElement['NAME']; $INDEX++;
}
//вытягивам строку навигации
$navStr = $resSub->GetPageNavStringEx($navComponentObject, "Показаны товары:", ".default");
//а вот тут, как я понимаю, делаем кэш
$arResult["__TEMPLATE_FOLDER"] = $this->__folder;
$this->__component->arResult = $arResult;
|
Вполне возможно, что просто плохо смотрел - опыта у меня не очень много.