В 2х инфоблоках хранятся данные:
1) Товары
2) Цвета
У товаров есть свойство Цвет, которое связано с элементами инфоблока Цвета.
На странице вывода элементов есть форма с цветовыми вариантами (чекбоксы). Выбираем необходимые цвета, жмем кнопку "Применить" на странице остаются только товары с выбранными цветовыми вариантами - все ок.
В чем проблема:
Не могу разобраться как сделать кэширование.
При таком коде фильтрация не работает как вы наверное догадались, работает только без кэширование.
Форму отправляю методом post.
У каждого элемента в component.php есть параметр CHECKED который может принимать значения Y || N.
В template.php проверяется этот параметр и если он Y то выводится.
Как определяется значение CHECKED?
Когда формируется $arResult["ITEMS"] я проверяю есть ли ID свойства цвет в массиве $artTmpPOST,
если есть, то устанавливаю CHECKED=Y, если нет, то N.
Смотрел catalog.smart.filter, но по правде говоря я не понял, как он заменяет данные которые надо выводить в catalog.section.
1) Товары
2) Цвета
У товаров есть свойство Цвет, которое связано с элементами инфоблока Цвета.
На странице вывода элементов есть форма с цветовыми вариантами (чекбоксы). Выбираем необходимые цвета, жмем кнопку "Применить" на странице остаются только товары с выбранными цветовыми вариантами - все ок.
В чем проблема:
Не могу разобраться как сделать кэширование.
Код |
---|
// Формирую массив с ID цветовых вариантов if ($_POST["filter"]) { $artTmpPOST = $_POST; if (isset($artTmpPOST['filter'])) unset($artTmpPOST['filter']); } // Формирую массив с ID цветовых вариантов if ($this->StartResultCache()) { #code $this->SetResultCacheKeys(array()); $this->IncludeComponentTemplate(); } |
Форму отправляю методом post.
У каждого элемента в component.php есть параметр CHECKED который может принимать значения Y || N.
В template.php проверяется этот параметр и если он Y то выводится.
Как определяется значение CHECKED?
Когда формируется $arResult["ITEMS"] я проверяю есть ли ID свойства цвет в массиве $artTmpPOST,
если есть, то устанавливаю CHECKED=Y, если нет, то N.
Смотрел catalog.smart.filter, но по правде говоря я не понял, как он заменяет данные которые надо выводить в catalog.section.