Formular Elemente und Dekoratore für Dojo
Aufbauend auf den Dijit View Helfern bietet die
Familie der Zend_Dojo_Form Klassen die Möglichkeit Dijits nativ in
eigenen Formularen anzupassen.
Es gibt drei Optionen für die Anpassung der Dojo Formularelemente in eigenen Formularen:
Verwenden von Zend_Dojo::enableForm(). Das fügt Pluginpfade
für Dekoratore und Elemente in allen hinzugefügten Formularelementen, rekursiv,
hinzu. Zusätzlich macht es die Viewobjekte dojo-verwendbar. Trotzdem ist zu beachten
das jedes Unterformular das nach diesem Aufruf angefügt wird,
auch an Zend_Dojo::enableForm() übergeben wird.
Verwenden der Dojo-spezifischen Formular und Unterformular Implementationen,
Zend_Dojo_Form und
Zend_Dojo_Form_SubForm. Diese können als sofort verwendbarer
Ersatz für Zend_Form und
Zend_Form_SubForm verwendet werden, enthalten alle
notwendigen Dekorator und Elementpfade, setzen die Dojo-spezifische
Standard-DisplayGroup-Klasse, und machen die View dojo-verwendbar.
Als letztes, und weitschweifigstes, kan man die notwendigen Dekorator und
Elementpfade selbst setzen, die Standard-DisplayGroup-Klasse setzen, und die View
dojo-verwendbar machen. Da Zend_Dojo::enableForm() das
bereits macht, gibt es nur sehr wenig Gründe diesen Weg zu nehmen.
Aktivieren von Dojo in bestehenden Formularen
"Warte mal,", wird man sagen; "Ich erweitere bereits Zend_Form
mit meiner eigenen Formularklasse! Wie kann ich Sie Dojo-verwendbar machen?'"
Als erstes, und einfachstes, muß einfach die Erweiterung von
Zend_Form so geändert werden das
Zend_Dojo_Form erweitert wird, und alle Plätze in denen man
Zend_Form_SubForm instanziert so aktualisiert werden das
Zend_Dojo_Form_SubForm instanziert wird.
Ein zweiter Weg ist der Aufruf von Zend_Dojo::enableForm() in
der eigenen init() Methode des Formulars; wenn die
Fomulardefinition komplett ist, muß durch alle Unterformulare iteriert werden um Sie
für Dojo zu aktivieren:
getSubForms() as $subForm) {
Zend_Dojo::enableForm($subForm);
}
}
}
]]>
Die Verwendung der Dijit-spezifischen Formulardekoratoren und Elemente ist wie die
Verwendung von anderen Formulardekoratoren oder Element.