Здравствуйте
Мне необходимо в компоненте сделать кэширование, т.е мне нужно передать в $this->StartResultCache, номер страницы компонента
Перед кэшированием я получаю номер страницы в массив $arNavigation
Но вся проблема заключается в том, что в условии if( $this->StartResultCache(false, array(false, $arNavigation)) ) {
выполняется несколько CIBlockElement::GetList
Т.е при первом вызове в результат $arNavigation попадает ?PAGEN_1
при втором вызове в результат $arNavigation попадает ?PAGEN_2
при третьем вызове в результат $arNavigation попадает ?PAGEN_3
при четвертом вызове в результат $arNavigation попадает ?PAGEN_4
И в массив $arNavigation попадает результат самого первого CIBlockElement::GetList это ?PAGEN_1, а мне нужно чтобы попадал последний результат ?PAGEN_4.
Может быть можно как то первые три запроса сделать не через CIBlockElement::GetList, чтобы постраничная навигация не уезжала дальше?
Как здесь правильно поступить?
Мне необходимо в компоненте сделать кэширование, т.е мне нужно передать в $this->StartResultCache, номер страницы компонента
Перед кэшированием я получаю номер страницы в массив $arNavigation
Код |
---|
$arNavParams = array( "nPageSize" => $arParams["ELEMENTS_NUM"], ); $arNavigation = CDBResult::GetNavParams($arNavParams); |
выполняется несколько CIBlockElement::GetList
Т.е при первом вызове в результат $arNavigation попадает ?PAGEN_1
при втором вызове в результат $arNavigation попадает ?PAGEN_2
при третьем вызове в результат $arNavigation попадает ?PAGEN_3
при четвертом вызове в результат $arNavigation попадает ?PAGEN_4
И в массив $arNavigation попадает результат самого первого CIBlockElement::GetList это ?PAGEN_1, а мне нужно чтобы попадал последний результат ?PAGEN_4.
Может быть можно как то первые три запроса сделать не через CIBlockElement::GetList, чтобы постраничная навигация не уезжала дальше?
Как здесь правильно поступить?