Динамический фильтр по свойству bitrix

Имеем информационный блог в котором определёно свойство-список «Производитель» со списком всех производителей продукций публикуемой в каталоге. На сайт подключаем компонент каталог и к нему прикрепляем наш информационный блок. В настройках выставляем в блоке «Настройки фильтра» в графе «Свойства:» пункт «Производитель». После сохранения у нас должна появиться страница с выводом каталога. При переходе в какую либо категории каталога появляется фильтр со списком наших производителей. Как известно в списке фильтрации будут присутствовать все производители которые есть в свойстве информационного блока, но зачем мне весь список производителей если на странице три продукта двух производителей. Ну конечно же незачем.

Задача:
доработайте окно выбора производителя, чтобы в выпадающем списке выводились только те производители, продукция которых присутствует на данной странице, с данными условиями поиска.

Решение:
В комплексном компоненте в инклуде компонента фильтра добавляем еще один элемент в котором будет храниться идентификатор раздела в котором находиться данный пользователь. В моем случае он называется «CN». Далее открываем на редактирование шаблон фильтрации предварительно скопировав его себе в шаблон или удобное Вам место. В нем я заменил содержимое элемента таблицы


#PHP CODE#
$rsItems = CIBlockElement::GetList(
	false,
	array(
		"IBLOCK_TYPE"=>$arParams["IBLOCK_TYPE"],
		"IBLOCK_ID"=>$arParams["IBLOCK_ID"],
		"IBLOCK_LID"=>SITE_ID,
		"ACTIVE"=>"Y",
		"SECTION_ID"=>$arParams["CN"],
	),
	array("PROPERTY_COMPANY"),
	false,
	array(
		"ID",
		"NAME",
		"PROPERTY_COMPANY",
	)
);
echo '<select name="arrFilter_pf[COMPANY]"><option value="">(все)</option>';
while($arItem = $rsItems->GetNext()){
	echo '<option value="'.$arItem['PROPERTY_COMPANY_ENUM_ID'].'">'.$arItem['PROPERTY_COMPANY_VALUE'].'</option>';
}
echo '</select>';

Вот так вот у меня теперь на страницы категории выводиться в список только те производители чей товар присутствует на странице.

Рубрики: Development, Софт
Метки: , , ,

Комментарии (4)

Добавить комментарий