1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 17166 -->
4 <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
5 <title>Dojoフォーム要素とデコレーター</title>
8 <link linkend="zend.dojo.view.dijit">dijit表示ヘルパーに基き</link>、
9 クラスの<classname>Zend_Dojo_Form</classname>ファミリーは、
10 あなたのフォームの範囲内でネイティブにDijitsを利用する能力を提供します。
14 フォームでDojoフォーム要素を利用するために3つの選択肢があります:
20 <methodname>Zend_Dojo::enableForm()</methodname>を使います。
21 これは配置されたフォーム項目全てにデコレーターと要素のためのプラグイン・パスを再帰的に加えます。
22 その上、それは表示オブジェクトをDojo使用可能にします。
23 しかしながら、この呼び出しの<emphasis>後に</emphasis>配置したサブフォームはどれでも
24 <methodname>Zend_Dojo::enableForm()</methodname>に渡されなければいけないことに注意してください。
30 それぞれDojo特有のフォーム及びサブフォーム実装、
31 <classname>Zend_Dojo_Form</classname>と<classname>Zend_Dojo_Form_SubForm</classname>を使います。
32 これらは<classname>Zend_Form</classname>及び<classname>Zend_Form_SubForm</classname>のドロップインの置き換えとして使うことができ、
33 適当なデコレーターと要素パスをすべての含み、
34 Dojo特有のデフォルトのDisplayGroupクラスを設定し、
35 ビューをDojo使用可能にすることができます。
41 最後に、最もあきあきしますが、あなた自身で適当なデコレーターと要素パスをセットして、
42 デフォルトのDisplayGroupクラスをセットし、
43 ビューをDojo使用可能にすることができます。
44 <methodname>Zend_Dojo::enableForm()</methodname>がすでに行うことなので、
45 この方法で我慢する理由はほとんどありません。
50 <example id="zend.dojo.form.enable">
51 <title>既存のフォームでDojoを使用可能にする</title>
55 "私は、自分自身のカスタム・フォーム・クラスで<classname>Zend_Form</classname>をすでに拡張しています!
56 どのようにしたら、Dojoを使用できますか?"
61 <classname>Zend_Form</classname>の拡張から
62 <classname>Zend_Dojo_Form</classname>の拡張への
64 <classname>Zend_Form_SubForm</classname>のインスタンス化を行う箇所を全て
65 <classname>Zend_Dojo_Form_SubForm</classname>のインスタンス化を行うように
70 2つ目の方法はカスタムフォームの<methodname>init()</methodname>メソッドの中で
71 <methodname>Zend_Dojo::enableForm()</methodname>を呼び出すことです;
73 Dojoを使用可能にするためにサブフォーム全てを通じて繰り返します:
76 <programlisting language="php"><![CDATA[
77 class My_Form_Custom extends Zend_Form
79 public function init()
82 Zend_Dojo::enableForm($this);
86 // サブフォーム全てでDojoを使用可能にする:
87 foreach ($this->getSubForms() as $subForm) {
88 Zend_Dojo::enableForm($subForm);
96 dijitに特有のフォームデコレーターと要素の使い方は
97 まるで他全てのフォーム・デコレーターまたは要素の使い方のようです。
100 <xi:include href="Zend_Dojo-Form-Decorators.xml" />
101 <xi:include href="Zend_Dojo-Form-Elements.xml" />
102 <xi:include href="Zend_Dojo-Form-Examples.xml" />