Добрый день.
Возникла проблема с расположением полей на форме.
В качестве базового класса используется Hyper_AmiClean_FormViewAdm.
Задача такая: есть радиокнопка из двух кнопок, и под каждой из них нужно отобразить по два текстовых поля.
Попробую отобразить символично это.
O radio_1
text_field_1
text_field_2
O radio_2
text_field_3
text_field_4
Когда я добавляю радио кнопку на форму, она у меня отображается одна под другой:
O radio_1
O radio_2
Вот не знаю, как правильно это сделать.
Пока только такая идея. Каким-то образом отдельно получить html полей text_field_1, text_field_2 и полей text_field_3, text_field_4. Переопределить у себя в шаблоне сет для радиокнопок "radio_field_row". В сет добавить переменную, в которую и буду писать полученный ранее html текстовых полей.
Вот если это решение правильное, тогда как мне отдельно получить html текстовых полей?
И второй вопрос, для чего используются секции (метод addSection(...))? Может быть как раз с помощью секций и нужно мне решить свою задачу?
Заранее спасибо за ответы.
Добавлено: Вопросы по компаненте "Форма модуля" в панели управления сайтом03.03.14 07:47:27
Еще один вариант, это после загрузки формы "перебросить" поля яваскриптом в нужное место. Но все-таки хотелось бы услышать, как правильно делаются подобные вещи.
Добавлено: Вопросы по компаненте "Форма модуля" в панели управления сайтом03.03.14 11:13:39
К сожалению, на текущий момент конструктор форм не позволяет добавить одноименное поле дважды (в нашем случае - radio-селектор), поэтому нужно либо перемещать поля, используя JavaScript, либо поступить следующим образом.
В шаблоне формы модуля нужно добавить сет
Именно так и предполагалось делать.
Остался неясный момент, как получить $htmlCode11 с теми полями.
Конечно, можно напрямую вызвать метод шаблонизатора для своих сетов.
Но это не желательно. т.к. решение будет менее устойчивым, чем если бы это было через конструктор форм.
Можно это сделать, используя конструктор форм?
Посмотрел код, пока только напрашивается такая последовательность вызовов:
$this->addField(Array('name' => 'text1', .....));
$htmlCode11 = $this->getFieldHTML('text1');
// убираем его, чтобы конструктор второй раз его не отобразил в своем стандартном местоположении
$this->dropField('text1');
Добавлено: Вопросы по компаненте "Форма модуля" в панели управления сайтом03.03.14 15:28:44