Zend_Dojo-Form.xml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
  5. <title>Formular Elemente und Dekoratore für Dojo</title>
  6. <para>
  7. Aufbauend auf den <link linkend="zend.dojo.view.dijit">Dijit View Helfern</link> bietet die
  8. Familie der <classname>Zend_Dojo_Form</classname> Klassen die Möglichkeit Dijits nativ in
  9. eigenen Formularen anzupassen.
  10. </para>
  11. <para>
  12. Es gibt drei Optionen für die Anpassung der Dojo Formularelemente in eigenen Formularen:
  13. </para>
  14. <itemizedlist>
  15. <listitem>
  16. <para>
  17. Verwenden von <methodname>Zend_Dojo::enableForm()</methodname>. Das fügt Pluginpfade
  18. für Dekoratore und Elemente in allen hinzugefügten Formularelementen, rekursiv,
  19. hinzu. Zusätzlich macht es die Viewobjekte dojo-verwendbar. Trotzdem ist zu beachten
  20. das jedes Unterformular das <emphasis>nach</emphasis> diesem Aufruf angefügt wird,
  21. auch an <methodname>Zend_Dojo::enableForm()</methodname> übergeben wird.
  22. </para>
  23. </listitem>
  24. <listitem>
  25. <para>
  26. Verwenden der Dojo-spezifischen Formular und Unterformular Implementationen,
  27. <classname>Zend_Dojo_Form</classname> und
  28. <classname>Zend_Dojo_Form_SubForm</classname>. Diese können als sofort verwendbarer
  29. Ersatz für <classname>Zend_Form</classname> und
  30. <classname>Zend_Form_SubForm</classname> verwendet werden, enthalten alle
  31. notwendigen Dekorator und Elementpfade, setzen die Dojo-spezifische
  32. Standard-DisplayGroup-Klasse, und machen die View dojo-verwendbar.
  33. </para>
  34. </listitem>
  35. <listitem>
  36. <para>
  37. Als letztes, und weitschweifigstes, kan man die notwendigen Dekorator und
  38. Elementpfade selbst setzen, die Standard-DisplayGroup-Klasse setzen, und die View
  39. dojo-verwendbar machen. Da <methodname>Zend_Dojo::enableForm()</methodname> das
  40. bereits macht, gibt es nur sehr wenig Gründe diesen Weg zu nehmen.
  41. </para>
  42. </listitem>
  43. </itemizedlist>
  44. <example id="zend.dojo.form.enable">
  45. <title>Aktivieren von Dojo in bestehenden Formularen</title>
  46. <para>
  47. "Warte mal,", wird man sagen; "Ich erweitere bereits <classname>Zend_Form</classname>
  48. mit meiner eigenen Formularklasse! Wie kann ich Sie Dojo-verwendbar machen?'"
  49. </para>
  50. <para>
  51. Als erstes, und einfachstes, muß einfach die Erweiterung von
  52. <classname>Zend_Form</classname> so geändert werden das
  53. <classname>Zend_Dojo_Form</classname> erweitert wird, und alle Plätze in denen man
  54. <classname>Zend_Form_SubForm</classname> instanziert so aktualisiert werden das
  55. <classname>Zend_Dojo_Form_SubForm</classname> instanziert wird.
  56. </para>
  57. <para>
  58. Ein zweiter Weg ist der Aufruf von <methodname>Zend_Dojo::enableForm()</methodname> in
  59. der eigenen <methodname>init()</methodname> Methode des Formulars; wenn die
  60. Fomulardefinition komplett ist, muß durch alle Unterformulare iteriert werden um Sie
  61. für Dojo zu aktivieren:
  62. </para>
  63. <programlisting language="php"><![CDATA[
  64. class My_Form_Custom extends Zend_Form
  65. {
  66. public function init()
  67. {
  68. // Das Formular Dojo-aktivieren:
  69. Zend_Dojo::enableForm($this);
  70. // ... die Fomulardefinition hier weiterführen
  71. // Alle Unterformulare für Dojo aktivieren:
  72. foreach ($this->getSubForms() as $subForm) {
  73. Zend_Dojo::enableForm($subForm);
  74. }
  75. }
  76. }
  77. ]]></programlisting>
  78. </example>
  79. <para>
  80. Die Verwendung der Dijit-spezifischen Formulardekoratoren und Elemente ist wie die
  81. Verwendung von anderen Formulardekoratoren oder Element.
  82. </para>
  83. <xi:include href="Zend_Dojo-Form-Decorators.xml" />
  84. <xi:include href="Zend_Dojo-Form-Elements.xml" />
  85. <xi:include href="Zend_Dojo-Form-Examples.xml" />
  86. </sect1>