Опишу проблему и сразу же решение, может у кого-то тоже возникала такая же.
Требовалось сделать пользовательские поля с чекбоксами. Создали в админке пользовательское поле, поставили галочку выводить чекбоксами и что мы видим?! Список есть, но радио кнопки =(. Лечим в код...
Перед нами предстает такая картина
system.field.edit/templates/iblock_section
Может я конечно плохо знаю HTML но как мне помниться атрибута multiple="multiple" для inputa нет.
Переделываем так
И все работает =))))
Следующая проблема.
Выбрали мы значит пару чекбоксов или элементов списка в зависимости что стоит сохранили все ОК. Но вдруг захотелось отредактировать и что мы видим, а ничего хорошего. Выбранные мной элементы не проселекчены. Что делать...лезим в код,а там
поиск совпадений ищеться не по тому массиву. Нужно искать в $arParams["arUserField"]["VALUE"], а ищет в $arResult["VALUE"].
меняем...
и все заработало.
Возможно эта проблема и освещалась ранее, но я ее че-то не нашел, а возможно в новых версиях ее устранили ибо я ломал 8.5.
Требовалось сделать пользовательские поля с чекбоксами. Создали в админке пользовательское поле, поставили галочку выводить чекбоксами и что мы видим?! Список есть, но радио кнопки =(. Лечим в код...
Перед нами предстает такая картина
system.field.edit/templates/iblock_section
Код |
---|
if($arParams['arUserField']["SETTINGS"]["DISPLAY"]=="CHECKBOX") { ?><label><input type="radio" value="<?echo $key?>" name="<?echo $arParams["arUserField"]["FIELD_NAME"]?>"<?echo ($bSelected? " checked" : "")?><? if ($arParams["arUserField"]["MULTIPLE"]=="Y"): ?> multiple="multiple"<? endif; ?> /><?=$val?></label><br /><? } |
Может я конечно плохо знаю HTML но как мне помниться атрибута multiple="multiple" для inputa нет.
Переделываем так
Код |
---|
if($arParams['arUserField']["SETTINGS"]["DISPLAY"]=="CHECKBOX") { ?><label><input <?if ($arParams["arUserField"]["MULTIPLE"]=="Y"):?>type="checkbox"<?else:?>type="radio"<?endif;?> value="<?echo $key?>" name="<?echo $arParams["arUserField"]["FIELD_NAME"]?>"<?echo ($bSelected? " checked" : "")?><? ?>><?=$val?></label><br /><? } |
И все работает =))))
Следующая проблема.
Выбрали мы значит пару чекбоксов или элементов списка в зависимости что стоит сохранили все ОК. Но вдруг захотелось отредактировать и что мы видим, а ничего хорошего. Выбранные мной элементы не проселекчены. Что делать...лезим в код,а там
Код |
---|
$bSelected = in_array($key, $arResult["VALUE"]) && ( (!$bWasSelect) || ($arParams["arUserField"]["MULTIPLE"] == "Y") ); |
поиск совпадений ищеться не по тому массиву. Нужно искать в $arParams["arUserField"]["VALUE"], а ищет в $arResult["VALUE"].
меняем...
Код |
---|
$bSelected = in_array($key, $arParams["arUserField"]["VALUE"]) && ( (!$bWasSelect) || ($arParams["arUserField"]["MULTIPLE"] == "Y") ); |
и все заработало.
Возможно эта проблема и освещалась ранее, но я ее че-то не нашел, а возможно в новых версиях ее устранили ибо я ломал 8.5.