Я уже сделал, правда не знаю ли правильно, но работает.
1) Функцией GetIBlockElementListEx выбрал всех производителей из категории(подкатегории) инфоблока товаров.
2) Загнал их в массив.
3) Опять функцией GetIBlockElementListEx выбрал всех производителей, где параметром фильтрации передал получивший ранее массив.
4) В цикле вывел изображения производителей, в ссылках которых ГЕТ-запрос для фильтрации.
В шаблоне bitrix:catalog прописал следующие строки:
Код |
---|
<?
// 1) Функцией GetIBlockElementListEx выбрал всех производителей из категории(подкатегории) инфоблока товаров.
if (CModule::IncludeModule("iblock")) {
$items = GetIBlockElementListEx("catalog", "42", Array(),
Array("NAME" => "ASC"), 0, Array("SECTION_CODE" => $arResult[VARIABLES][SECTION_CODE]), Array("PROPERTY_MANUFACTURER"));
//2) Загнал их в массив.
while ($arItem = $items->GetNext()) {
$arrItemM[] = $arItem["PROPERTY_MANUFACTURER_VALUE"];
}
//3) Опять функцией GetIBlockElementListEx выбрал всех производителей, где параметром фильтрации передал получивший ранее массив.
$items = GetIBlockElementListEx("manufacturers", "43", Array(),
Array("NAME" => "ASC"), 0, Array("ID" => $arrItemM));
4) В цикле вывел изображения производителей, в ссылках которых ГЕТ-запрос для фильтрации.
while ($arItem = $items->GetNext()) {
if ($arItem["PREVIEW_PICTURE"])
echo '<a href="?arrFilter_pf[MANUFACTURER]=' . $arItem["ID"] . '&set_filter=Подобрать&set_filter=Y">' . ShowImage($arItem["PREVIEW_PICTURE"], 100, 100, "border='0'") . '</a> ';
else
echo '<a href="?arrFilter_pf[MANUFACTURER]=' . $arItem["ID"] . '&set_filter=Подобрать&set_filter=Y" style="margin:10px; position:absolute; font-size:1.4em;">' . $arItem["NAME"] . '</a> ';
}
echo '<a href="?arrFilter_pf[MANUFACTURER]=' . $arItem["ID"] . '&set_filter=Y&del_filter=Reset" style="margin:10px; position:absolute; font-size:1.4em;">Всі виробники</a>';
}
?>
|
Постраничная навигация рулит.
ЗЫ: в компоненте bitrix:catalog фильтр должен быть включен.