В 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.