Добрый день!
Суть проблемы в следующем: выводим каталог товаров, в категории может быть их 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; |