Zend_Dojo-Form.xml 4.1 KB

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