Сразу оговрюсь, что в пхп полный 0, но задачка то вроде простейшая.
Есть компонент catalog.filter. Задача: какую бы комбинацию свойств в фильтре пользователь бы не выбрал результат (список элементов) должен быть еще отфильтрован по одному свойству элемента – “pocasivat”==”Y”. В шаблоне компонента в зависимости от определенных условий формируется тот или иной массив фильтра $ arFilter, что-то вроде
$arFilter=array();
if ($_FILTER["brand"]){
//echo "brand est'!!!!!!!!!!!!!!!!!!!!!!<BR>";
$arFilter = Array(
"IBLOCK_ID"=>$_CATALOG["ID_CATALOG_TOVAROV"],
"SECTION_ID"=>CatalogGetIDByCode($_FILTER["brand"]),
);
}
else{……
......................
......................
}
Далее, непосредственно перед методом GetList() добавляю одну строку:
$arFilter["PROPERTY_pocasivat"] = "Y";//моя строка
$after_filter=CIBlockElement::GetList(Array(), $arFilter, false);
........
.......
Все «отлично» заработало, НО вдруг сайт начал периодически падать по таймауту. После разбора логов выяснилось – неоптимальные (долгие) запросы к БД. Пришлось пока закомментировать добавленную строчку. Вопрос, что не так???
Есть компонент catalog.filter. Задача: какую бы комбинацию свойств в фильтре пользователь бы не выбрал результат (список элементов) должен быть еще отфильтрован по одному свойству элемента – “pocasivat”==”Y”. В шаблоне компонента в зависимости от определенных условий формируется тот или иной массив фильтра $ arFilter, что-то вроде
$arFilter=array();
if ($_FILTER["brand"]){
//echo "brand est'!!!!!!!!!!!!!!!!!!!!!!<BR>";
$arFilter = Array(
"IBLOCK_ID"=>$_CATALOG["ID_CATALOG_TOVAROV"],
"SECTION_ID"=>CatalogGetIDByCode($_FILTER["brand"]),
);
}
else{……
......................
......................
}
Далее, непосредственно перед методом GetList() добавляю одну строку:
$arFilter["PROPERTY_pocasivat"] = "Y";//моя строка
$after_filter=CIBlockElement::GetList(Array(), $arFilter, false);
........
.......
Все «отлично» заработало, НО вдруг сайт начал периодически падать по таймауту. После разбора логов выяснилось – неоптимальные (долгие) запросы к БД. Пришлось пока закомментировать добавленную строчку. Вопрос, что не так???