Ну, все правильно, а чекбоксы здесь
Код |
---|
if (in_array($val, $arResult["ITEMS"]["PROPERTY_".$i]["INPUT_VALUE"])) $checked='checked="checked"'; else $checked=''; |
и [MULTIPLE] => Y должен быть, иначе не будет множественности
И вариантов выполнения может быть много:
Код |
---|
echo '<pre>';print_r($arResult); echo'</pre>';
$code = "TSVET_PRODUKTSII";
$rsProperty = CIBlockPropertyEnum::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "CODE"=>$code));
while($arProperty = $rsProperty->GetNext()){
$arListProp[$arProperty["ID"]]=$arProperty["XML_ID"];
};
foreach($arResult["arrProp"] as $i=>$prop){
if($prop["CODE"]==$code){
foreach($prop["VALUE_LIST"] as $val=>$name){
if (in_array($val, $arResult["ITEMS"]["PROPERTY_".$i]["INPUT_VALUE"])) $checked='checked="checked"'; else $checked='';
$val_prop.='<label><input type="checkbox" name="'.$arResult["FILTER_NAME"].'_pf['.$prop["CODE"].'][]" '.$checked.' value="'.$val.'"/><span style="color:#'.$arListProp[$val].'">'.$name.'</span></label>';
}
$arResult["ITEMS"]["PROPERTY_".$i]["INPUT"]=$val_prop;
}
} |
Или напишите вместо названия цвета его цифровое значение и рисуйте квадратик, или пишите цифровое значение после названия «Красный#F00», а в результе вырезайте его, да как угодно можно сделать.