Создали быстрый фильтр по товарам на главной странице, фильтр показывает все значения выбранных свойств. Как отфильтровать вывод значений свойств по определенному разделу?
if(!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
//Параметры
$podborParams = array(
"URL"=>"/catalog/accumulators/",
"filter_name"=>"arTires2Filter",
"IBLOCK_ID"=>118,
"SECTION_ID"=>12372,
"PARAMS"=>array(
"EMK"=>array("CODE"=>"EMKOST_ACH"), //Емкость Ач
"POL"=>array("CODE"=>"POLYARNOST"), //Полярность
"TYP"=>array("CODE"=>"TIP_KORPUSA"), //Тип корпуса
"WID"=>array("CODE"=>"SHIRINA_MM"),//Ширина
"HEI"=>array("CODE"=>"VYSOTA_MM"),//Высота
"LEN"=>array("CODE"=>"DLINA_MM"),//Длина
"PRO"=>array("CODE"=>"BREND_AKB"),//Бренд
"TECH"=>array("CODE"=>"TEKHNOLOGIYA"),//Технология
"HEAD"=>array("CODE"=>"TIP_KRYSHKI"),//Тип крышки
"VOLT"=>array("CODE"=>"NAPRYAZHENIE_V"), //Напряжение
"BURT"=>array("CODE"=>"NIZHNIY_BURT"), //Нижний бурт
"TYPR"=>array("CODE"=>"TIPORAZMER"), //Типоразмер
),
"SMART_URL_PATH" => "#SECTION_CODE_PATH#/filter/#SMART_FILTER_PATH#/apply",
);
//strtolower($podborParams['PARAMS']['']['CODE']);
$podborParams["PARAMS2"] = $podborParams["PARAMS"];
$property_enums = CIBlockPropertyEnum::GetList(Array("DEF"=>"DESC", "SORT"=>"ASC"), Array("IBLOCK_ID"=>$podborParams["IBLOCK_ID"], "SECTION_ID"=>$podborParams["SECTION_ID"]));
while($enum_fields = $property_enums->GetNext())
{
foreach($podborParams["PARAMS"] as $k=>$v){
if($v && $enum_fields["PROPERTY_CODE"] == $v["CODE"]){
//_pre($enum_fields);
$podborParams["PARAMS"][$k]["VALUES"][] = $enum_fields["VALUE"];//$key)
$podborParams["PARAMS"][$k]["~VALUES"][] = abs(crc32($enum_fields["ID"]));
$podborParams["PARAMS"][$k]["EXTERNAL_ID"][] = $enum_fields["EXTERNAL_ID"];
$podborParams["PARAMS"][$k]["ID"] = $enum_fields["PROPERTY_ID"];
$podborParams["PARAMS2"][$k]["VALUES"][] = strtolower(urlencode($enum_fields["VALUE"]));//$key)
$podborParams["PARAMS2"][$k]["ID"] = $enum_fields["PROPERTY_ID"];
}
}
}
//_pre($podborParams["PARAMS"]);
/*Формируем массив ID подразделов раздела - Аккумуляторы*/
$arFilter = Array('IBLOCK_ID'=>$podborParams["IBLOCK_ID"], 'SECTION_ID'=>$podborParams["SECTION_ID"], 'GLOBAL_ACTIVE'=>'Y');
$db_list = CIBlockSection::GetList(Array(), $arFilter, true);
while($ar_result = $db_list->GetNext())
{
$arrayID[] = $ar_result['ID'];
}
/* Бренд АКБ */
/* Формируем массив активных элементов */
$arSelect = Array("ID", "PROPERTY_BREND_AKB");
$arFilter = Array("IBLOCK_ID"=>$podborParams["IBLOCK_ID"],'ACTIVE'=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
/* Получаем их бренды */
while($ob = $res->GetNextElement()){
if(!in_array($ob->fields['PROPERTY_BREND_AKB_VALUE'], $arProps)){
$arProps[] = $ob->fields['PROPERTY_BREND_AKB_VALUE'];
}
}
foreach($podborParams["PARAMS"]["PRO"]["VALUES"] as $k=>$type){
if(!in_array($type, $arProps)){
unset($podborParams["PARAMS"]["PRO"]["VALUES"][$k]);
unset($podborParams["PARAMS"]["PRO"]["~VALUES"][$k]);
}
}
/* Технология */
/* Формируем массив активных элементов */
$arSelect = Array("ID", "PROPERTY_TEKHNOLOGIYA");
$arFilter = Array("IBLOCK_ID"=>$podborParams["IBLOCK_ID"], 'ACTIVE'=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
/* Получаем список*/
while($ob = $res->GetNextElement()){
if(!in_array($ob->fields['PROPERTY_TEKHNOLOGIYA_VALUE'], $arProps)){
$arProps[] = $ob->fields['PROPERTY_TEKHNOLOGIYA_VALUE'];
}
}
foreach($podborParams["PARAMS"]["TECH"]["VALUES"] as $k=>$type){
if(!in_array($type, $arProps)){
unset($podborParams["PARAMS"]["TECH"]["VALUES"][$k]);
unset($podborParams["PARAMS"]["TECH"]["~VALUES"][$k]);
}
}
//echo '<!-- <pre>'.print_r($podborParams['PARAMS']['PRO'],1).'</pre> -->';
// -- конец правок
$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$podborParams["IBLOCK_ID"]));
while ($prop_fields = $properties->GetNext())
{
foreach($podborParams["PARAMS"] as $k=>$v){
if($v && $prop_fields["CODE"]==$v["CODE"]){
$podborParams["PARAMS"][$k]["ID"] = $prop_fields["ID"];
}
}
}
<div class="bx_filter_parameters_box_title icons_fa">
<div class="bx_filter_podbor_title">Бренд аккумулятора</div>
</div>
<div class="bx_filter_block ">
<div class="bx_filter_parameters_box_container">
<div class="rows cars-list-mark">
<div class="select">
<select name="<?=strtolower($podborParams['PARAMS']['PRO']['CODE'])?>_is">
<option value="" selected="selected">—</option>
<?asort($podborParams["PARAMS"]["PRO"]["VALUES"]); foreach($podborParams["PARAMS"]["PRO"]["VALUES"] as $k=>$type){?>
<option value="<?=strtolower($podborParams["PARAMS"]["PRO"]["VALUES"][$k])?>" ><?=$type?></option><?}?>
</select>
</div>
</div>
</div>
<div class="bx_filter_podbor_title">Технология</div>
</div>
<div class="bx_filter_block limited_block" style="max-height: 143px; overflow-y: auto;">
<div class="bx_filter_parameters_box_container ">
<?foreach($podborParams["PARAMS"]["TECH"]["VALUES"] as $k=>$type){?>
<input type="checkbox" value="" name="<?=strtolower($podborParams['PARAMS']['TECH']['CODE'])?>_<?=urldecode($podborParams["PARAMS"]["TECH"]["EXTERNAL_ID"][$k])?>" id="<?=$podborParams["filter_name"]?>_<?=$podborParams["PARAMS"]["TECH"]["ID"]?>_<?=$podborParams["PARAMS"]["TECH"]["~VALUES"][$k]?>"/>
<label class="bx_filter_param_label" for="<?=$podborParams["filter_name"]?>_<?=$podborParams["PARAMS"]["TECH"]["ID"]?>_<?=$podborParams["PARAMS"]["TECH"]["~VALUES"][$k]?>">
<span class="bx_filter_input_checkbox">
<span class="bx_filter_param_text bx_filter_param_text222" title="Технология"><?=$type?></span>
</span>
</label>
<?}?>
</div>
<div class="clb"></div>
</div>