Zend_Dojo-Form.xml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
  5. <title>Dojoフォーム要素とデコレーター</title>
  6. <para>
  7. <link linkend="zend.dojo.view.dijit">dijit表示ヘルパーに基き</link>、
  8. クラスの<classname>Zend_Dojo_Form</classname>ファミリーは、
  9. あなたのフォームの範囲内でネイティブにDijitsを利用する能力を提供します。
  10. </para>
  11. <para>
  12. フォームでDojoフォーム要素を利用するために3つの選択肢があります:
  13. </para>
  14. <itemizedlist>
  15. <listitem>
  16. <para>
  17. <methodname>Zend_Dojo::enableForm()</methodname>を使います。
  18. これは配置されたフォーム項目全てにデコレーターと要素のためのプラグイン・パスを再帰的に加えます。
  19. その上、それは表示オブジェクトをDojo使用可能にします。
  20. しかしながら、この呼び出しの<emphasis>後に</emphasis>配置したサブフォームはどれでも
  21. <methodname>Zend_Dojo::enableForm()</methodname>に渡されなければいけないことに注意してください。
  22. </para>
  23. </listitem>
  24. <listitem>
  25. <para>
  26. それぞれDojo特有のフォーム及びサブフォーム実装、
  27. <classname>Zend_Dojo_Form</classname>と<classname>Zend_Dojo_Form_SubForm</classname>を使います。
  28. これらは<classname>Zend_Form</classname>及び<classname>Zend_Form_SubForm</classname>のドロップインの置き換えとして使うことができ、
  29. 適当なデコレーターと要素パスをすべての含み、
  30. Dojo特有のデフォルトのDisplayGroupクラスを設定し、
  31. ビューをDojo使用可能にすることができます。
  32. </para>
  33. </listitem>
  34. <listitem>
  35. <para>
  36. 最後に、最もあきあきしますが、あなた自身で適当なデコレーターと要素パスをセットして、
  37. デフォルトのDisplayGroupクラスをセットし、
  38. ビューをDojo使用可能にすることができます。
  39. <methodname>Zend_Dojo::enableForm()</methodname>がすでに行うことなので、
  40. この方法で我慢する理由はほとんどありません。
  41. </para>
  42. </listitem>
  43. </itemizedlist>
  44. <example id="zend.dojo.form.enable">
  45. <title>既存のフォームでDojoを使用可能にする</title>
  46. <para>
  47. "ちょっと待って" とあなたは言います;
  48. "私は、自分自身のカスタム・フォーム・クラスで<classname>Zend_Form</classname>をすでに拡張しています!
  49. どのようにしたら、Dojoを使用できますか?"
  50. </para>
  51. <para>
  52. 初めに、
  53. <classname>Zend_Form</classname>の拡張から
  54. <classname>Zend_Dojo_Form</classname>の拡張への
  55. 最も簡単で単純な変更は
  56. <classname>Zend_Form_SubForm</classname>のインスタンス化を行う箇所を全て
  57. <classname>Zend_Dojo_Form_SubForm</classname>のインスタンス化を行うように
  58. 更新することです。
  59. </para>
  60. <para>
  61. 2つ目の方法はカスタムフォームの<methodname>init()</methodname>メソッドの中で
  62. <methodname>Zend_Dojo::enableForm()</methodname>を呼び出すことです;
  63. フォームの定義を完了させるときは、
  64. Dojoを使用可能にするためにサブフォーム全てを通じて繰り返します:
  65. </para>
  66. <programlisting language="php"><![CDATA[
  67. class My_Form_Custom extends Zend_Form
  68. {
  69. public function init()
  70. {
  71. // フォームでDojoを使用可能にする:
  72. Zend_Dojo::enableForm($this);
  73. // 引き続きここからフォームの定義
  74. // サブフォーム全てでDojoを使用可能にする:
  75. foreach ($this->getSubForms() as $subForm) {
  76. Zend_Dojo::enableForm($subForm);
  77. }
  78. }
  79. }
  80. ]]></programlisting>
  81. </example>
  82. <para>
  83. dijitに特有のフォームデコレーターと要素の使い方は
  84. まるで他全てのフォーム・デコレーターまたは要素の使い方のようです。
  85. </para>
  86. <xi:include href="Zend_Dojo-Form-Decorators.xml" />
  87. <xi:include href="Zend_Dojo-Form-Elements.xml" />
  88. <xi:include href="Zend_Dojo-Form-Examples.xml" />
  89. </sect1>
  90. <!--
  91. vim:se ts=4 sw=4 et:
  92. -->