После добавления элементов в мою форму я получаю их отрисовку в странном порядке, получая кнопку отправки перед одним флажком. Буду признателен за подсказки, где можно найти быстрое исправление.
class SomeForm extends My_Form {
public function init() {
$this->addElements();
//add a few elements (#1)
$this->addElements($otherForm->getElements());
//borrow some elements from another form (#2)
if ($trueCondition=true) {
$this->addElements();
//add one more element which will render at end of form (#3)
}
$this->addElements();
//some more, including submit button (#4)
parent::init();
//call My_Form to register custom decorator; culprit?
}
}
Вывод:
<inputs from addElements() #1 />
<inputs from addElements() #2 />
<inputs from addElements() #4 /> <-
<inputs from addElements() #3 /> <- mixed up order
Все другие формы, использующие настраиваемый декоратор, отображают элементы в том порядке, в котором они были добавлены. Я не выкладываю декоратор, так как он довольно грязный. Надеюсь, ошибка в другом.
setOrder()
? - person Liyali   schedule 17.04.2012setOrder
- person bububaba   schedule 17.04.2012addElements()
, и они повторяются по порядку. @vascowhite -My_Form
расширяет толькоinit()
,isValid()
иrender()
(последнее из-за специального декоратора; он просто отображает значение вместо метки на кнопке и переводит, если перевод доступен).addElements()
вызывается для родительского класса, то есть ванильногоZend_Form
- person bububaba   schedule 17.04.2012addElements()
? - person Liyali   schedule 17.04.2012array(new Zend_Form_Element_Xxx())
. Только для заимствованных элементов$otherForm->getElements()
. И теперь, когда я думаю об этом, я думаю, что это больше всего отличается от других форм, где все работает хорошо. Я просто не знаю, как это может повлиять. - person bububaba   schedule 17.04.2012