Zend_Dojo-Form.xml 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
  2. <title>Dojo 表单元素和装饰器 </title>
  3. <para>
  4. 建立在 <link linkend="zend.dojo.view.dijit">dijit 视图助手 </link> 之上的
  5. <code>Zend_Dojo_Form</code> 类家族在你的表单里自然地使用 Dijits。
  6. </para>
  7. <para>
  8. 有三个选项用来在你的表单里使用 Dojo 表单元素:
  9. </para>
  10. <itemizedlist>
  11. <listitem>
  12. <para>
  13. 用 <code>Zend_Dojo::enableForm()</code>. 递归地为装饰器和所有表单的元素添加插件路径。
  14. 另外,它将 dojo-enable 视图对象。然而注意,任何在这个调用 <emphasis>之后</emphasis> 附加
  15. 的子表单也需要用 <code>Zend_Dojo::enableForm()</code>。
  16. </para>
  17. </listitem>
  18. <listitem>
  19. <para>
  20. 分别使用 Dojo-specific 表单<code>Zend_Dojo_Form</code>和子表单 <code>Zend_Dojo_Form_SubForm</code>实现。
  21. 这些可以做为 <code>Zend_Form</code> 和 <code>Zend_Form_SubForm</code>的随时替换,包含所有合适的装饰器
  22. 和元素路径,设置一个 Dojo-specific 缺省的显示组类并 dojo-enable 视图。
  23. </para>
  24. </listitem>
  25. <listitem>
  26. <para>
  27. 最后并且是最单调的是,你可以自己设置合适的装饰器和元素路径,设置缺省显示组类
  28. 并 dojo-enable 视图。因为 <code>Zend_Dojo::enableForm()</code> 已经做了这个,
  29. 有个小原因需要这样做。
  30. </para>
  31. </listitem>
  32. </itemizedlist>
  33. <example id="zend.dojo.form.enable">
  34. <title> 在你的表单里开启 Dojo </title>
  35. <para>
  36. “等等” 你会说,“我已经用我自己定制的表单类扩展了 Zend_form!怎么 Dojo-enable 它?”
  37. </para>
  38. <para>
  39. 首先而且是最简单的是,修改从 <code>Zend_Form</code> 扩展为从 <code>Zend_Dojo_Form</code> 扩展,
  40. 并更新任何实例化 <code>Zend_Form_SubForm</code> 的地方为实例化 <code>Zend_Dojo_Form_SubForm</code>。
  41. </para>
  42. <para>
  43. 第二个方法是在定制表单的 <code>init()</code> 方法里调用 <code>Zend_Dojo::enableForm()</code>;
  44. 当表单定义完成,遍历所有子表单来 dojo-enable 它们:
  45. </para>
  46. <programlisting role="php"><![CDATA[
  47. class My_Form_Custom extends Zend_Form
  48. {
  49. public function init()
  50. {
  51. // Dojo-enable the form:
  52. Zend_Dojo::enableForm($this);
  53. // ... continue form definition from here
  54. // Dojo-enable all sub forms:
  55. foreach ($this->getSubForms() as $subForm) {
  56. Zend_Dojo::enableForm($subForm);
  57. }
  58. }
  59. }
  60. ]]>
  61. </programlisting>
  62. </example>
  63. <para>
  64. dijit-specific 表单装饰器和元素的用法和使用任何其它表单装饰漆或元素一样。
  65. </para>
  66. <xi:include href="Zend_Dojo-Form-Decorators.xml" />
  67. <xi:include href="Zend_Dojo-Form-Elements.xml" />
  68. <xi:include href="Zend_Dojo-Form-Examples.xml" />
  69. </sect1>
  70. <!--
  71. vim:se ts=4 sw=4 et:
  72. -->