Шпаргалка: привязка к элементам в компоненте altasib:feedback.form

altasib:feedback.form - компонент, позволяющий выводить формы на сайте, очень выручает и экономит время на младших редакциях. Но нашелся один недостаток - если сделать свойство "Привязка к элементам" - он выведет обычное текстовое поле input="text" вместо выбора элементов. 
dev1[1].jpg

Решил исправить эту ситуацию. Что нужно отредактировать: 
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;
}