Zend_Dojo-Form.xml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15617 -->
  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 <classname>Zend_Dojo::enableForm()</classname>. 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 <classname>Zend_Dojo::enableForm()</classname> ü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 <classname>Zend_Dojo::enableForm()</classname> 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 <classname>Zend_Dojo::enableForm()</classname> in der
  59. eigenen <code>init()</code> Methode des Formulars; wenn die Fomulardefinition komplett
  60. ist, muß durch alle Unterformulare iteriert werden um Sie für Dojo zu aktivieren:
  61. </para>
  62. <programlisting language="php"><![CDATA[
  63. class My_Form_Custom extends Zend_Form
  64. {
  65. public function init()
  66. {
  67. // Das Formular Dojo-aktivieren:
  68. Zend_Dojo::enableForm($this);
  69. // ... die Fomulardefinition hier weiterführen
  70. // Alle Unterformulare für Dojo aktivieren:
  71. foreach ($this->getSubForms() as $subForm) {
  72. Zend_Dojo::enableForm($subForm);
  73. }
  74. }
  75. }
  76. ]]></programlisting>
  77. </example>
  78. <para>
  79. Die Verwendung der Dijit-spezifischen Formulardekoratoren und Elemente ist wie die
  80. Verwendung von anderen Formulardekoratoren oder Element.
  81. </para>
  82. <xi:include href="Zend_Dojo-Form-Decorators.xml" />
  83. <xi:include href="Zend_Dojo-Form-Elements.xml" />
  84. <xi:include href="Zend_Dojo-Form-Examples.xml" />
  85. </sect1>
  86. <!--
  87. vim:se ts=4 sw=4 et:
  88. -->