|
|
@@ -0,0 +1,106 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<!-- EN-Revision: 15617 -->
|
|
|
+<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>
|
|
|
+ <classname>Zend_Dojo::enableForm()</classname>を使います。
|
|
|
+ これは配置されたフォーム項目全てにデコレーターと要素のためのプラグイン・パスを再帰的に加えます。
|
|
|
+ その上、それは表示オブジェクトをDojo使用可能にします。
|
|
|
+ しかしながら、この呼び出しの<emphasis>後に</emphasis>配置したサブフォームはどれでも
|
|
|
+ <classname>Zend_Dojo::enableForm()</classname>に渡されなければいけないことに注意してください。
|
|
|
+ </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使用可能にすることができます。
|
|
|
+ <classname>Zend_Dojo::enableForm()</classname>がすでに行うことなので、
|
|
|
+ この方法で我慢する理由はほとんどありません。
|
|
|
+ </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つ目の方法はカスタムフォームの<code>init()</code>メソッドの中で
|
|
|
+ <classname>Zend_Dojo::enableForm()</classname>を呼び出すことです;
|
|
|
+ フォームの定義を完了させるときは、
|
|
|
+ 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:
|
|
|
+-->
|