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.