Цитата |
---|
Рамиль Юналиев пишет: ... в таком случае вам нужно кастомизировать логику/шаблон, копируйте компонент в свою папку и редактируете |
OMG, ребят, вы когда-нибудь слышали о фабриках, интерфейсах, наследовании?)
вот этот огромный блок
Код |
---|
switch ($arAnswer["FIELD_TYPE"])
{
case "radio":
.....
break;
case "checkbox":
.....
break;
......
}
|
и так для каждого типа поля
можно было легко заменить на что-нть типа
Код |
---|
$arResult["QUESTIONS"][$FIELD_SID]["HTML_CODE"][] = FormField::toHtml ( $arAnswer["FIELD_TYPE"] );
|
для каждого типа поля сделать отдельный класс с общим интерфейсом с необходимыми методами типа set, get, toDB, fromDB, toHTML, fromHTML, validate и юзать эти классы во всем продукте, а то так получается в формах одно, в магазине третье и т.д. и т.п.
и самое главное - дать юзеру возможность создавать собственные поля, а то сейчас получается чтобы добавить новый тип поля нада либо модифицировать модуль (поскольку список доступных полей забит статически в файле form_callformanswer.php) либо ставить какие-то невнятные подпорки
ну а вообще если мыслить глобально, одна только "кастомизация компонентов" посредством копирования кучи кода ради одной строчки имхо бред, и попахивает гнильцой