1) Самый простой и, возможно, лучший способ изменить внешний вид форм с помощью CSS, а не с помощью разметки (путем написания собственных декораторов), по крайней мере, если вы не опытный программист.
При удалении декоратора DdDt многие возможности CSS, такие как поля ввода / метки / позиционирование списков ошибок, раскраска, отступы и т. Д., Теряются.
Например, к <dt>
или <dd>
вы можете добавить собственный класс в инициализацию формы, который впоследствии можно будет стилизовать, удовлетворяя ваши конкретные потребности.
См. Код:
$comment = $this->createElement('textarea','comment',array(
'label'=>'Post a comment',
'required'=>true
))
->setDecorators(array(
'ViewHelper',
'label',
'Errors',
array(
'HtmlTag',
array(
'tag' => 'dd',
'class'=>'elevatedField'
)
)
))
;
Теперь в таблице стилей CSS в правиле .elevatedField{}
вы можете определить конкретный вид этого поля textarea.
На самом деле, этот пример не для декоратора DdDt по умолчанию, но он хорошо объясняет способы использования тега <dd>
. Почти то же самое для декоратора DdDt по умолчанию.
Посмотрите, чего можно достичь только с помощью css:
http://robertbasic.com/blog/styling-the-default-zend_form-layout/
И это не предел.
2) Семантика разметки html тоже потеряна, что почти не имеет смысла, по крайней мере на сегодняшний день.
Кроме того, DdDt не используются самим Zend_Form для отчетов об ошибках - для этого есть еще один стандартный декоратор с именем 'Errors'.