Решил исправить эту ситуацию. Что нужно отредактировать:
result_modifier.php
template.php
style.css
Теперь по порядку. В result_modifier.php нужно дополнить информацию о полях и загрузить элементы к которым должна быть установлена привязка:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $resProperty = CIBlockProperty::GetList( Array("SORT" => "ASC"), Array("IBLOCK_ID" => $arParams["IBLOCK_ID"]) ); $iFieldKey = 0; while($arProp = $resProperty->Fetch()) { if(in_array($arProp["CODE"], $arParams["PROPERTY_FIELDS"])) { $arResult["FIELDS"][$iFieldKey]["PROPERTY"] = $arProp; $iFieldKey++; } } // elements for E property foreach($arResult["FIELDS"] as $keyField=>$arField) { if($arField["TYPE"] == "E") { $iBlockID = $arField["PROPERTY"]["LINK_IBLOCK_ID"]; $resElement = CIBlockElement::GetList( Array("SORT" => "ASC"), Array( "IBLOCK_ID" => $iBlockID, "ACTIVE" => "Y" ), false, false, Array("IBLOCK_ID", "ID", "ACTIVE", "NAME") ); while($arElement = $resElement->Fetch()) { $arResult["FIELDS"][$keyField]["LINKED_ELEMENTS"][] = $arElement; } } } ?> |
Затем, эту информацию необходимо вывести в шаблоне из файла template.php. Добавим следующий код перед строкой "<?elseif($arField["TYPE"] != "F":?>":
<?elseif($arField["TYPE"] == "E"):?> <div class="alx_feed_back_form_element_bg" id="error_<?=$arField["CODE"]?>"> <?if($arField["PROPERTY"]["MULTIPLE"] == "Y"):?> <?foreach($arField["LINKED_ELEMENTS"] as $arElement):?> <p class="alx_feed_back_form_checkbox"> <input type="checkbox" name="FIELDS[<?=$arField["CODE"]?>][]" value="<?=$arElement["ID"]?>" id="<?=$arField["CODE"]?>1_<?=$arElement["ID"]?>" <?if(!empty($_POST["FIELDS"][$arField["CODE"]]) && in_array($arElement["ID"], $_POST["FIELDS"][$arField["CODE"]])):?>checked="checked"<?endif;?> /> <label for="<?=$arField["CODE"]?>1_<?=$arElement["ID"]?>"><?=$arElement["NAME"]?></label> </p> <?endforeach;?> <?endif;?> </div> |
И дооформим все это в style.css:
/* element & checkbox */ .alx_feed_back_default .alx_feed_back_form_feedback_poles .alx_feed_back_form_item_pole .alx_feed_back_form_element_bg { margin-left: 20px; } .alx_feed_back_default .alx_feed_back_form_feedback_poles .alx_feed_back_form_item_pole .alx_feed_back_form_element_bg .alx_feed_back_form_checkbox { margin-bottom: 8px; } .alx_feed_back_default .alx_feed_back_form_feedback_poles .alx_feed_back_form_item_pole .alx_feed_back_form_element_bg .alx_feed_back_form_checkbox input { vertical-align: baseline; margin: 0 !important; } .alx_feed_back_default .alx_feed_back_form_feedback_poles .alx_feed_back_form_item_pole .alx_feed_back_form_element_bg .alx_feed_back_form_checkbox label { vertical-align: middle; } |
Готово!