| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
- <title>Dojoフォーム要素とデコレーター</title>
- <para>
- <link linkend="zend.dojo.view.dijit">dijit表示ヘルパーに基き</link>、
- クラスの<classname>Zend_Dojo_Form</classname>ファミリーは、
- あなたのフォームの範囲内でネイティブにDijitsを利用する能力を提供します。
- </para>
- <para>
- フォームでDojoフォーム要素を利用するために3つの選択肢があります:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>Zend_Dojo::enableForm()</methodname>を使います。
- これは配置されたフォーム項目全てにデコレーターと要素のためのプラグイン・パスを再帰的に加えます。
- その上、それは表示オブジェクトをDojo使用可能にします。
- しかしながら、この呼び出しの<emphasis>後に</emphasis>配置したサブフォームはどれでも
- <methodname>Zend_Dojo::enableForm()</methodname>に渡されなければいけないことに注意してください。
- </para>
- </listitem>
- <listitem>
- <para>
- それぞれDojo特有のフォーム及びサブフォーム実装、
- <classname>Zend_Dojo_Form</classname>と<classname>Zend_Dojo_Form_SubForm</classname>を使います。
- これらは<classname>Zend_Form</classname>及び<classname>Zend_Form_SubForm</classname>のドロップインの置き換えとして使うことができ、
- 適当なデコレーターと要素パスをすべての含み、
- Dojo特有のデフォルトのDisplayGroupクラスを設定し、
- ビューをDojo使用可能にすることができます。
- </para>
- </listitem>
- <listitem>
- <para>
- 最後に、最もあきあきしますが、あなた自身で適当なデコレーターと要素パスをセットして、
- デフォルトのDisplayGroupクラスをセットし、
- ビューをDojo使用可能にすることができます。
- <methodname>Zend_Dojo::enableForm()</methodname>がすでに行うことなので、
- この方法で我慢する理由はほとんどありません。
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.dojo.form.enable">
- <title>既存のフォームでDojoを使用可能にする</title>
- <para>
- "ちょっと待って" とあなたは言います;
- "私は、自分自身のカスタム・フォーム・クラスで<classname>Zend_Form</classname>をすでに拡張しています!
- どのようにしたら、Dojoを使用できますか?"
- </para>
- <para>
- 初めに、
- <classname>Zend_Form</classname>の拡張から
- <classname>Zend_Dojo_Form</classname>の拡張への
- 最も簡単で単純な変更は
- <classname>Zend_Form_SubForm</classname>のインスタンス化を行う箇所を全て
- <classname>Zend_Dojo_Form_SubForm</classname>のインスタンス化を行うように
- 更新することです。
- </para>
- <para>
- 2つ目の方法はカスタムフォームの<methodname>init()</methodname>メソッドの中で
- <methodname>Zend_Dojo::enableForm()</methodname>を呼び出すことです;
- フォームの定義を完了させるときは、
- Dojoを使用可能にするためにサブフォーム全てを通じて繰り返します:
- </para>
- <programlisting language="php"><![CDATA[
- class My_Form_Custom extends Zend_Form
- {
- public function init()
- {
- // フォームでDojoを使用可能にする:
- Zend_Dojo::enableForm($this);
- // 引き続きここからフォームの定義
- // サブフォーム全てでDojoを使用可能にする:
- foreach ($this->getSubForms() as $subForm) {
- Zend_Dojo::enableForm($subForm);
- }
- }
- }
- ]]></programlisting>
- </example>
- <para>
- dijitに特有のフォームデコレーターと要素の使い方は
- まるで他全てのフォーム・デコレーターまたは要素の使い方のようです。
- </para>
- <xi:include href="Zend_Dojo-Form-Decorators.xml" />
- <xi:include href="Zend_Dojo-Form-Elements.xml" />
- <xi:include href="Zend_Dojo-Form-Examples.xml" />
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|