Zend_Dojo-Form-Elements.xml 64 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 19143 -->
  4. <sect2 id="zend.dojo.form.elements">
  5. <title>Dijit固有のフォーム要素</title>
  6. <para>
  7. ビュー・ヘルパーが提供される各々のフォームdijitには、
  8. 対応する<classname>Zend_Form</classname>要素があります。
  9. dijitパラメータを操作するための以下のメソッドがそれらすべてにあります:
  10. </para>
  11. <itemizedlist>
  12. <listitem><para>
  13. <methodname>setDijitParam($key, $value)</methodname>:
  14. dijitパラメータを一つセットします。
  15. dijitパラメータがすでに存在すれば、上書きされます。
  16. </para></listitem>
  17. <listitem><para>
  18. <methodname>setDijitParams(array $params)</methodname>:
  19. 一度にいくつかのdijitパラメータをセットします。
  20. 渡されたパラメータにマッチする既存のパラメータは上書きされます。
  21. </para></listitem>
  22. <listitem><para>
  23. <methodname>hasDijitParam($key)</methodname>:
  24. 与えられたdijitパラメータが定義されたか存在している場合はtrueを返します。
  25. それ以外はfalseを返します。
  26. </para></listitem>
  27. <listitem><para>
  28. <methodname>getDijitParam($key)</methodname>:
  29. 与えられたdijitパラメータを返します。
  30. 利用できない場合は null値を返します。
  31. </para></listitem>
  32. <listitem><para>
  33. <methodname>getDijitParams()</methodname>:
  34. dijitパラメータを全て返します。
  35. </para></listitem>
  36. <listitem><para>
  37. <methodname>removeDijitParam($key)</methodname>:
  38. 与えられたdijitパラメータを除去します。
  39. </para></listitem>
  40. <listitem><para>
  41. <methodname>clearDijitParams()</methodname>:
  42. 現行定義されたdijitパラメータを全て消去します。
  43. </para></listitem>
  44. </itemizedlist>
  45. <para>
  46. Dijitパラメータは、<code>dijitParams</code> public プロパティに保存されます。
  47. このように、あなたは単にこのプロパティを要素の上に置くことによって、
  48. 既存のフォーム要素をdijit使用可能にすることができます;
  49. あなたは、単にパラメータを操作するのを容易にするために、
  50. 上記のアクセッサを持っていません。
  51. </para>
  52. <para>
  53. その上、dijit固有の要素は以下に該当するデコレーターの独特な一覧を実装します:
  54. </para>
  55. <programlisting language="php"><![CDATA[
  56. $element->addDecorator('DijitElement')
  57. ->addDecorator('Errors')
  58. ->addDecorator('HtmlTag', array('tag' => 'dd'))
  59. ->addDecorator('Label', array('tag' => 'dt'));
  60. ]]></programlisting>
  61. <para>
  62. 実質的に、Dijit要素が、標準的なViewHelperデコレーターの代わりに使われます。
  63. </para>
  64. <para>
  65. 最後に、ベースDijit要素により、
  66. 確実にDojoビュー・ヘルパー・パスがビューの上に置かれることになります。
  67. </para>
  68. <para>
  69. Dijit要素、DijitMultiの変化は<code>Multi</code> abstract フォーム要素の機能を提供します。
  70. そして、開発者が 'multiOptions' を指定できるようにします。
  71. - 一般的に select の option またはラジオ のoptionです。
  72. </para>
  73. <para>
  74. 以下のdijit要素は、標準的なZend Framework配布において出荷されます。
  75. </para>
  76. <sect3 id="zend.dojo.form.elements.button">
  77. <title>ボタン</title>
  78. <para>
  79. <link linkend="zend.form.standardElements.button">標準的なボタン要素</link>に
  80. 由来していないので、
  81. 同じ機能を実装して、ドロップインの代わりとして使うことができます。
  82. 以下の機能が公開されます:
  83. </para>
  84. <itemizedlist>
  85. <listitem><para>
  86. 名前が提供されないならば、
  87. <methodname>getLabel()</methodname>はボタン・ラベルとして要素名を利用します。
  88. さらに、翻訳メッセージにマッチした翻訳アダプターが利用できれば、
  89. それは名前を翻訳します。
  90. </para></listitem>
  91. <listitem><para>
  92. <methodname>isChecked()</methodname>は、
  93. 提出される値がラベルにマッチするかどうか決定します;
  94. もしマッチするなら、それはtrueを返します。
  95. これは、フォームが提出されたとき、どのボタンが使われたかについて決定することに役立ちます。
  96. </para></listitem>
  97. </itemizedlist>
  98. <para>
  99. さらに、デコレーターの<code>DijitElement</code>及び
  100. <code>DtDdWrapper</code>だけがボタン要素のために使われます。
  101. </para>
  102. <example id="zend.dojo.form.elements.button.example">
  103. <title>ボタンdijit要素の使用例</title>
  104. <programlisting language="php"><![CDATA[
  105. $form->addElement(
  106. 'Button',
  107. 'foo',
  108. array(
  109. 'label' => 'Button Label',
  110. )
  111. );
  112. ]]></programlisting>
  113. </example>
  114. </sect3>
  115. <sect3 id="zend.dojo.form.elements.checkBox">
  116. <title>チェックボックス</title>
  117. <para>
  118. <link linkend="zend.form.standardElements.checkbox">標準的なチェックボックス要素</link>
  119. に由来していないので、
  120. それは同じ機能を実装します。
  121. これは、以下のメソッドが公開されることを意味します
  122. </para>
  123. <itemizedlist>
  124. <listitem><para>
  125. <methodname>setCheckedValue($value)</methodname>:
  126. 要素がチェックされたときに使う値を設定します。
  127. </para></listitem>
  128. <listitem><para>
  129. <methodname>getCheckedValue()</methodname>:
  130. チェックされたときに要素で使う値を取得します。
  131. </para></listitem>
  132. <listitem><para>
  133. <methodname>setUncheckedValue($value)</methodname>:
  134. チェックされていないときに要素で使う値を設定します。
  135. </para></listitem>
  136. <listitem><para>
  137. <methodname>getUncheckedValue()</methodname>:
  138. チェックされていないときに要素で使う値を取得します。
  139. </para></listitem>
  140. <listitem><para>
  141. <methodname>setChecked($flag)</methodname>:
  142. 要素をチェック済みにするか否か設定します。
  143. </para></listitem>
  144. <listitem><para>
  145. <methodname>isChecked()</methodname>:
  146. 要素が現在チェック済みか判断します。
  147. </para></listitem>
  148. </itemizedlist>
  149. <example id="zend.dojo.form.elements.checkBox.example">
  150. <title>チェックボックスdijit要素の使用例</title>
  151. <programlisting language="php"><![CDATA[
  152. $form->addElement(
  153. 'CheckBox',
  154. 'foo',
  155. array(
  156. 'label' => 'A check box',
  157. 'checkedValue' => 'foo',
  158. 'uncheckedValue' => 'bar',
  159. 'checked' => true,
  160. )
  161. );
  162. ]]></programlisting>
  163. </example>
  164. </sect3>
  165. <sect3 id="zend.dojo.form.elements.comboBox">
  166. <title>コンボボックス及びフィルタリング選択</title>
  167. <para>
  168. コンボボックス
  169. <link linkend="zend.dojo.view.dijit.form">dijitビュー・ヘルパー・文書</link>
  170. にみられるように、コンボボックスは選択とテキスト入力の混合です。
  171. そして、自動補完及び、提示された選択肢の代わりを指定できるようにします。
  172. フィルタリング選択は同じことですが、任意の入力を許しません。
  173. </para>
  174. <note>
  175. <title>ラベル値を返すコンボボックス</title>
  176. <para>
  177. コンボボックスはラベル値を返します。
  178. 期待に反するオプション値は返しません。
  179. この理由から、コンボボックスは<code>InArray</code>バリデーターを自動登録しません。
  180. (FilteringSelectsがそうするけれども)
  181. </para>
  182. </note>
  183. <para>
  184. コンボボックスとフィルタリング選択フォーム要素は、
  185. dojo.dataデータ・ストア(使用された場合)を指定することだけでなく、
  186. 選ばれた選択肢を調べて、セットするためにアクセッサとミューテーターを提供します。
  187. それらはDijitMultiから拡張します。
  188. そして、それは<methodname>setMultiOptions()</methodname>及び<methodname>setMultiOption()</methodname>メソッドによって
  189. 選ばれた選択肢を指定できます。
  190. さらに、以下のメソッドを利用できます:
  191. </para>
  192. <itemizedlist>
  193. <listitem><para>
  194. <methodname>getStoreInfo()</methodname>:
  195. 現行で設定されているデータストア情報を全て取得します。
  196. 現行で設定されたデータがなければ、空の配列を返します。
  197. </para></listitem>
  198. <listitem><para>
  199. <methodname>setStoreId($identifier)</methodname>:
  200. ストアの識別変数を設定します。
  201. (通常、Dojoで 'jsId' 属性によって言及されます)
  202. これは、有効なjavascript変数の名前でなければなりません。
  203. </para></listitem>
  204. <listitem><para>
  205. <methodname>getStoreId()</methodname>:
  206. ストアの識別変数名を取得します。
  207. </para></listitem>
  208. <listitem><para>
  209. <methodname>setStoreType($dojoType)</methodname>:
  210. 使用するデータストアクラスを設定します;
  211. 例えば "dojo.data.ItemFileReadStore"
  212. </para></listitem>
  213. <listitem><para>
  214. <methodname>getStoreType()</methodname>:
  215. 使用するdojoデータストアクラスを取得します。
  216. </para></listitem>
  217. <listitem><para>
  218. <methodname>setStoreParams(array $params)</methodname>:
  219. データ・ストア・オブジェクトを構成するために使われるパラメータをいずれも設定します。
  220. 例えば、 dojo.data.ItemFileReadStore データストアでは
  221. dojo.dataオブジェクトを返す場所を指す 'url' パラメータを期待します。
  222. </para></listitem>
  223. <listitem><para>
  224. <methodname>getStoreParams()</methodname>:
  225. 現行で設定されているデータストアパラメータをいずれも取得します;
  226. もしなければ、空の配列を返します。
  227. </para></listitem>
  228. <listitem><para>
  229. <methodname>setAutocomplete($flag)</methodname>:
  230. ユーザーが要素から離れるとき、選ばれた項目が使われるかどうかを示します。
  231. </para></listitem>
  232. <listitem><para>
  233. <methodname>getAutocomplete()</methodname>:
  234. 自動補完フラグの値を取得します。
  235. </para></listitem>
  236. </itemizedlist>
  237. <para>
  238. dojo.dataストアが要素で登録されなければ、
  239. 登録された選択肢の配列のキーを検証する<code>InArray</code>バリデーターを
  240. この要素はデフォルトで登録します。
  241. <methodname>setRegisterInArrayValidator(false)</methodname>を呼び出すことでも、
  242. <code>registerInArrayValidator</code>設定キーにfalse値を渡すことでも、
  243. このふるまいを抑制できます。
  244. </para>
  245. <example id="zend.dojo.form.elements.comboBox.selectExample">
  246. <title>コンボボックスdijit要素を選択肢入力として使う</title>
  247. <programlisting language="php"><![CDATA[
  248. $form->addElement(
  249. 'ComboBox',
  250. 'foo',
  251. array(
  252. 'label' => 'ComboBox (select)',
  253. 'value' => 'blue',
  254. 'autocomplete' => false,
  255. 'multiOptions' => array(
  256. 'red' => 'Rouge',
  257. 'blue' => 'Bleu',
  258. 'white' => 'Blanc',
  259. 'orange' => 'Orange',
  260. 'black' => 'Noir',
  261. 'green' => 'Vert',
  262. ),
  263. )
  264. );
  265. ]]></programlisting>
  266. </example>
  267. <example id="zend.dojo.form.elements.comboBox.datastoreExample">
  268. <title>コンボボックスdijit要素をデータ・ストアと一緒に使う</title>
  269. <programlisting language="php"><![CDATA[
  270. $form->addElement(
  271. 'ComboBox',
  272. 'foo',
  273. array(
  274. 'label' => 'ComboBox (datastore)',
  275. 'storeId' => 'stateStore',
  276. 'storeType' => 'dojo.data.ItemFileReadStore',
  277. 'storeParams' => array(
  278. 'url' => '/js/states.txt',
  279. ),
  280. 'dijitParams' => array(
  281. 'searchAttr' => 'name',
  282. ),
  283. )
  284. );
  285. ]]></programlisting>
  286. </example>
  287. <para>
  288. 前述の例は<code>ComboBox</code>の代わりに
  289. <code>FilteringSelect</code>を使用します。
  290. </para>
  291. </sect3>
  292. <sect3 id="zend.dojo.form.elements.currencyTextBox">
  293. <title>通貨テキストボックス</title>
  294. <para>
  295. 通貨テキストボックスは、主に通貨入力をサポートするためにあります。
  296. 通貨はローカライズされるかもしれず、小数も非小数もサポートできます。
  297. </para>
  298. <para>
  299. 内部的には、通貨テキストボックスは
  300. <link linkend="zend.dojo.form.elements.numberTextBox">数値テキストボックス</link>や
  301. <link linkend="zend.dojo.form.elements.validationTextBox">バリデーションテキストボックス</link>および
  302. <link linkend="zend.dojo.form.elements.textBox">テキストボックス</link>に由来します;
  303. それらのクラスのメソッドが全て利用可能です。
  304. さらに、下記の制約メソッドを使用できます:
  305. </para>
  306. <itemizedlist>
  307. <listitem><para>
  308. <methodname>setCurrency($currency)</methodname>:
  309. 使用する通貨種類を設定します;
  310. <ulink url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink>
  311. 仕様に従うでしょう。
  312. </para></listitem>
  313. <listitem><para>
  314. <methodname>getCurrency()</methodname>:現行の通貨種類を取得します。
  315. </para></listitem>
  316. <listitem><para>
  317. <methodname>setSymbol($symbol)</methodname>: 3文字からなる<ulink
  318. url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink>
  319. 通貨記号を設定します。
  320. </para></listitem>
  321. <listitem><para>
  322. <methodname>getSymbol()</methodname>:
  323. 現行の通貨記号を取得します。
  324. </para></listitem>
  325. <listitem><para>
  326. <methodname>setFractional($flag)</methodname>:
  327. 通貨で小数を許すかどうか設定します。
  328. </para></listitem>
  329. <listitem><para>
  330. <methodname>getFractional()</methodname>:
  331. 小数フラグの状態を取得します。
  332. </para></listitem>
  333. </itemizedlist>
  334. <example id="zend.dojo.form.elements.currencyTextBox.example">
  335. <title>通貨テキストボックスdijit要素の使用例</title>
  336. <programlisting language="php"><![CDATA[
  337. $form->addElement(
  338. 'CurrencyTextBox',
  339. 'foo',
  340. array(
  341. 'label' => 'Currency:',
  342. 'required' => true,
  343. 'currency' => 'USD',
  344. 'invalidMessage' => 'Invalid amount. ' .
  345. 'Include dollar sign, commas, and cents.',
  346. 'fractional' => false,
  347. )
  348. );
  349. ]]></programlisting>
  350. </example>
  351. </sect3>
  352. <sect3 id="zend.dojo.form.elements.dateTextBox">
  353. <title>日付テキストボックス</title>
  354. <para>
  355. 日付テキストボックスは、
  356. カレンダー・ドロップダウンで日付(クライアント側日付確認とフォーマッティングだけでなく)
  357. を選ぶために提供します。
  358. </para>
  359. <para>
  360. 内部的に、日付テキストボックスは
  361. <link linkend="zend.dojo.form.elements.validationTextBox">バリデーションテキストボックス</link>
  362. および<link linkend="zend.dojo.form.elements.textBox">テキストボックス</link>
  363. に由来します;
  364. それらのクラスのメソッドが全て利用可能です。さらに、
  365. 個別の制約を設定するために下記のメソッドを使用できます:
  366. </para>
  367. <itemizedlist>
  368. <listitem><para>
  369. <methodname>setAmPm($flag)</methodname>及び<methodname>getAmPm()</methodname>:
  370. 時刻でAM/PM 文字列を使うかどうか
  371. </para></listitem>
  372. <listitem><para>
  373. <methodname>setStrict($flag)</methodname>及び<methodname>getStrict()</methodname>:
  374. 入力を確認した時にマッチする厳しい正規表現を使うかどうか。
  375. デフォルトはfalseですが、空白文字やいくつかの省略形を許します。
  376. </para></listitem>
  377. <listitem><para>
  378. <methodname>setLocale($locale)</methodname>及び<methodname>getLocale()</methodname>:
  379. 指定した要素で使うロケールを設定または取得します。
  380. </para></listitem>
  381. <listitem><para>
  382. <methodname>setDatePattern($pattern)</methodname>及び
  383. <methodname>getDatePattern()</methodname>:
  384. 日付をフォーマットする<ulink
  385. url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">
  386. unicode 日付形式パターン</ulink>を提示または取得します。
  387. </para></listitem>
  388. <listitem><para>
  389. <methodname>setFormatLength($formatLength)</methodname>及び
  390. <methodname>getFormatLength()</methodname>:
  391. 使用する形式の長さの種類を提示または取得します;
  392. "long"、"short"、"medium"または"full"のどれか一つです。
  393. </para></listitem>
  394. <listitem><para>
  395. <methodname>setSelector($selector)</methodname>及び
  396. <methodname>getSelector()</methodname>:
  397. セレクタのスタイルを提示または取得します;
  398. "date" や "time" のどちらかでしょう。
  399. </para></listitem>
  400. </itemizedlist>
  401. <example id="zend.dojo.form.elements.dateTextBox.example">
  402. <title>日付テキストボックスdijit要素の使用例</title>
  403. <programlisting language="php"><![CDATA[
  404. $form->addElement(
  405. 'DateTextBox',
  406. 'foo',
  407. array(
  408. 'label' => 'Date:',
  409. 'required' => true,
  410. 'invalidMessage' => 'Invalid date specified.',
  411. 'formatLength' => 'long',
  412. )
  413. );
  414. ]]></programlisting>
  415. </example>
  416. </sect3>
  417. <sect3 id="zend.dojo.form.elements.editor">
  418. <title>エディタ</title>
  419. <para>
  420. エディタはリッチなHTML内容を作成して、
  421. 編集するために利用できるWYSIWYGエディタを提供します。
  422. dijit.Editorはプラグイン可能で、
  423. 必要に応じてカスタム・プラグインで拡張されるかもしれません;
  424. 詳しくは<ulink
  425. url="http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/advanced-editing-and-display/editor-rich-text">
  426. dijit.Editorドキュメント</ulink>をご覧下さい。
  427. </para>
  428. <para>
  429. エディタ・フォーム要素は、
  430. 下記のいくつかのアクセッサとミューテーターを
  431. いろいろなdijitパラメータを操作するために提供します:
  432. </para>
  433. <itemizedlist>
  434. <listitem>
  435. <para>
  436. <emphasis>captureEvents</emphasis>は、
  437. 編集エリア自体と連携するイベントです。
  438. 捕獲したイベントを操作するために以下のアクセッサとミューテーターを利用できます:
  439. </para>
  440. <itemizedlist>
  441. <listitem><para><methodname>addCaptureEvent($event)</methodname></para></listitem>
  442. <listitem><para><methodname>addCaptureEvents(array $events)</methodname></para></listitem>
  443. <listitem><para><methodname>setCaptureEvents(array $events)</methodname></para></listitem>
  444. <listitem><para><methodname>getCaptureEvents()</methodname></para></listitem>
  445. <listitem><para><methodname>hasCaptureEvent($event)</methodname></para></listitem>
  446. <listitem><para><methodname>removeCaptureEvent($event)</methodname></para></listitem>
  447. <listitem><para><methodname>clearCaptureEvents()</methodname></para></listitem>
  448. </itemizedlist>
  449. </listitem>
  450. <listitem>
  451. <para>
  452. <emphasis>events</emphasis>は、
  453. onClickやonKeyUpなどのような標準的なDOMイベントです。
  454. イベントを操作するために以下のアクセッサとミューテーターを利用できます:
  455. </para>
  456. <itemizedlist>
  457. <listitem><para><methodname>addEvent($event)</methodname></para></listitem>
  458. <listitem><para><methodname>addEvents(array $events)</methodname></para></listitem>
  459. <listitem><para><methodname>setEvents(array $events)</methodname></para></listitem>
  460. <listitem><para><methodname>getEvents()</methodname></para></listitem>
  461. <listitem><para><methodname>hasEvent($event)</methodname></para></listitem>
  462. <listitem><para><methodname>removeEvent($event)</methodname></para></listitem>
  463. <listitem><para><methodname>clearEvents()</methodname></para></listitem>
  464. </itemizedlist>
  465. </listitem>
  466. <listitem>
  467. <para>
  468. <emphasis>plugins</emphasis>はエディターにツールバーのための追加のツールや、
  469. 許可する追加スタイルなどの機能を加えます。
  470. プラグインを操作するために以下のアクセッサとミューテーターを利用できます:
  471. </para>
  472. <itemizedlist>
  473. <listitem><para><methodname>addPlugin($plugin)</methodname></para></listitem>
  474. <listitem><para><methodname>addPlugins(array $plugins)</methodname></para></listitem>
  475. <listitem><para><methodname>setPlugins(array $plugins)</methodname></para></listitem>
  476. <listitem><para><methodname>getPlugins()</methodname></para></listitem>
  477. <listitem><para><methodname>hasPlugin($plugin)</methodname></para></listitem>
  478. <listitem><para><methodname>removePlugin($plugin)</methodname></para></listitem>
  479. <listitem><para><methodname>clearPlugins()</methodname></para></listitem>
  480. </itemizedlist>
  481. </listitem>
  482. <listitem>
  483. <para>
  484. <emphasis>editActionInterval</emphasis>は、
  485. アンドゥ操作のためにイベントをまとめるために使われます。
  486. デフォルトでこの値は3秒です。
  487. <methodname>setEditActionInterval($interval)</methodname>メソッドが値を設定するために使われるかもしれません。
  488. 一方で、<methodname>getEditActionInterval()</methodname>が値を取得します。
  489. </para>
  490. </listitem>
  491. <listitem>
  492. <para>
  493. <emphasis>focusOnLoad</emphasis>は、
  494. ページが読み込まれたとき、
  495. この指定のエディタがフォーカスを受けるかどうか判断するために使われます。
  496. デフォルトでこれはfalseです。
  497. メソッド<methodname>setFocusOnLoad($flag)</methodname>が値を設定するために使われるかもしれません。
  498. 一方で、<methodname>getFocusOnLoad()</methodname>が値を取得します。
  499. </para>
  500. </listitem>
  501. <listitem>
  502. <para>
  503. <emphasis>height</emphasis>はエディターの高さを指定します;
  504. デフォルトでこれは300pxです。
  505. メソッド<methodname>setHeight($height)</methodname>が値を設定するために使われるかもしれません。
  506. 一方で、<methodname>getHeight()</methodname>が値を取得します。
  507. </para>
  508. </listitem>
  509. <listitem>
  510. <para>
  511. <emphasis>inheritWidth</emphasis>は、
  512. エディタが親コンテナの幅と単純にデフォルトの100%幅のどちらを使うか決定するために使われます。
  513. デフォルトでこれはfalseです。
  514. (すなわち、画面の幅一杯を満たします)
  515. メソッド<methodname>setInheritWidth($flag)</methodname>が値を設定するために使われるかもしれません。
  516. 一方で、<methodname>getInheritWidth()</methodname>が値を取得します。
  517. </para>
  518. </listitem>
  519. <listitem>
  520. <para>
  521. <emphasis>minHeight</emphasis>はエディターの高さの最小値を設定します;
  522. デフォルトでこれは1emです。
  523. メソッド<methodname>setMinHeight($height)</methodname>が値を設定するために使われるかもしれません。
  524. 一方で、<methodname>getMinHeight()</methodname>が値を取得します。
  525. </para>
  526. </listitem>
  527. <listitem>
  528. <para>
  529. <emphasis>styleSheets</emphasis>は、
  530. どの追加<acronym>CSS</acronym>スタイルシートがエディタの表示に影響を及ぼすために使われるか示します。
  531. デフォルトでは何も登録されず、それはページ・スタイルを継承します。
  532. エディタ・スタイルシートを操作するために以下のアクセッサとミューテーターを利用できます:
  533. </para>
  534. <itemizedlist>
  535. <listitem><para><methodname>addStyleSheet($styleSheet)</methodname></para></listitem>
  536. <listitem>
  537. <para><methodname>addStyleSheets(array $styleSheets)</methodname></para>
  538. </listitem>
  539. <listitem>
  540. <para><methodname>setStyleSheets(array $styleSheets)</methodname></para>
  541. </listitem>
  542. <listitem><para><methodname>getStyleSheets()</methodname></para></listitem>
  543. <listitem><para><methodname>hasStyleSheet($styleSheet)</methodname></para></listitem>
  544. <listitem><para><methodname>removeStyleSheet($styleSheet)</methodname></para></listitem>
  545. <listitem><para><methodname>clearStyleSheets()</methodname></para></listitem>
  546. </itemizedlist>
  547. </listitem>
  548. </itemizedlist>
  549. <example id="zend.dojo.form.elements.editor.example">
  550. <title>エディタdijit要素の使用例</title>
  551. <programlisting language="php"><![CDATA[
  552. $form->addElement('editor', 'content', array(
  553. 'plugins' => array('undo', '|', 'bold', 'italic'),
  554. 'editActionInterval' => 2,
  555. 'focusOnLoad' => true,
  556. 'height' => '250px',
  557. 'inheritWidth' => true,
  558. 'styleSheets' => array('/js/custom/editor.css'),
  559. ));
  560. ]]></programlisting>
  561. </example>
  562. <note>
  563. <title>エディタ Dijit は既定で div を使います</title>
  564. <para>
  565. エディタ dijit は既定で <acronym>HTML</acronym> の <acronym>DIV</acronym> を使います。
  566. <classname>dijit._editor.RichText</classname> 資料は、
  567. HTML の <acronym>TEXTAREA</acronym> の上にビルドされたそれを持つことが
  568. セキュリティに影響するかもしれないことを示します。
  569. </para>
  570. <para>
  571. 言うことには、<acronym>TEXTAREA</acronym>に上品に退化できる
  572. エディタ・ウィジェットを望む機会があるかもしれません。
  573. そのような場面では、 <varname>degrade</varname> プロパティを <constant>true</constant>
  574. に設定することによってそうすることができます。
  575. </para>
  576. <programlisting language="php"><![CDATA[
  577. // 初期化にて
  578. $editor = new Zend_Dojo_Form_Element_Editor('foo', array(
  579. 'degrade' => true,
  580. ));
  581. // フォームを通じた構築
  582. $form->addElement('editor', 'content', array(
  583. 'degrade' => true,
  584. ));
  585. // または初期化後
  586. $editor->degrade = true;
  587. ]]></programlisting>
  588. </note>
  589. </sect3>
  590. <sect3 id="zend.dojo.form.elements.horizontalSlider">
  591. <title>水平スライダー</title>
  592. <para>
  593. 水平スライダーは、
  594. ある範囲で数値を選択するためのスライダーUI部品を提供します。
  595. 内部的には、それはフォームによって送信されるhidden要素の値をセットします。
  596. </para>
  597. <para>
  598. 水平スライダーは、<link
  599. linkend="zend.dojo.form.elements.slider">抽象的なスライダーdijit要素</link>に由来します。
  600. さらに、スライダー罫線と罫線ラベルをセットして設定するための、
  601. いろいろなメソッドがあります。
  602. </para>
  603. <itemizedlist>
  604. <listitem>
  605. <para>
  606. <methodname>setTopDecorationDijit($dijit)</methodname>及び
  607. <methodname>setBottomDecorationDijit($dijit)</methodname>:
  608. スライダーの上側か下側で使うdijitの名前をセットします。
  609. これは、接頭辞 "dijit.form." を含んではいけません。
  610. むしろ final 名だけ
  611. - "HorizontalRule" または "HorizontalRuleLabels" のうちの1つ -
  612. を含まなければなりません。
  613. </para>
  614. </listitem>
  615. <listitem>
  616. <para>
  617. <methodname>setTopDecorationContainer($container)</methodname>及び
  618. <methodname>setBottomDecorationContainer($container)</methodname>:
  619. 罫線コンテナ要素のために使用する名前を指定します;
  620. 例えば、'topRule' や 'topContainer'など。
  621. </para>
  622. </listitem>
  623. <listitem>
  624. <para>
  625. <methodname>setTopDecorationLabels(array $labels)</methodname>及び
  626. <methodname>setBottomDecorationLabels(array $labels)</methodname>:
  627. RuleLabels dijit型のうちの1つで使用するラベルをセットします。
  628. これらは、インデックスを付けられた配列でなければなりません;
  629. 与えられたラベル位置(例えば始めまたは終わり)をスキップするために、
  630. 一つの空の場所を指定します。
  631. </para>
  632. </listitem>
  633. <listitem>
  634. <para>
  635. <methodname>setTopDecorationParams(array $params)</methodname>及び
  636. <methodname>setBottomDecorationParams(array $params)</methodname>:
  637. 与えられた罫線、
  638. またはRuleLabels dijitを構成するときに使うdijitパラメータです。
  639. </para>
  640. </listitem>
  641. <listitem>
  642. <para>
  643. <methodname>setTopDecorationAttribs(array $attribs)</methodname>及び
  644. <methodname>setBottomDecorationAttribs(array $attribs)</methodname>:
  645. 与えられた罫線、
  646. またはRuleLabels HTML要素コンテナのために指定するHTML属性です。
  647. </para>
  648. </listitem>
  649. <listitem>
  650. <para>
  651. <methodname>getTopDecoration()</methodname>及び
  652. <methodname>getBottomDecoration()</methodname>:
  653. 上記のミューテーターによって提示されたように、
  654. 与えられた罫線またはRuleLabels定義のためにすべてのメタデータを取得します。
  655. </para>
  656. </listitem>
  657. </itemizedlist>
  658. <example id="zend.dojo.form.elements.horizontalSlider.example">
  659. <title>水平スライダーdijit要素の使用例</title>
  660. <para>
  661. 下記では、-10から10の間の整数を選択する水平スライダーを生成します。
  662. 上側には20%、40%、60%そして80%で印をつけられたラベルがあります、
  663. 下側には、0、50%そして100%の罫線があります。
  664. 値が変わるたびに、値を保存しているhidden要素は更新されます。
  665. </para>
  666. <programlisting language="php"><![CDATA[
  667. $form->addElement(
  668. 'HorizontalSlider',
  669. 'horizontal',
  670. array(
  671. 'label' => 'HorizontalSlider',
  672. 'value' => 5,
  673. 'minimum' => -10,
  674. 'maximum' => 10,
  675. 'discreteValues' => 11,
  676. 'intermediateChanges' => true,
  677. 'showButtons' => true,
  678. 'topDecorationDijit' => 'HorizontalRuleLabels',
  679. 'topDecorationContainer' => 'topContainer',
  680. 'topDecorationLabels' => array(
  681. ' ',
  682. '20%',
  683. '40%',
  684. '60%',
  685. '80%',
  686. ' ',
  687. ),
  688. 'topDecorationParams' => array(
  689. 'container' => array(
  690. 'style' => 'height:1.2em; font-size=75%;color:gray;',
  691. ),
  692. 'list' => array(
  693. 'style' => 'height:1em; font-size=75%;color:gray;',
  694. ),
  695. ),
  696. 'bottomDecorationDijit' => 'HorizontalRule',
  697. 'bottomDecorationContainer' => 'bottomContainer',
  698. 'bottomDecorationLabels' => array(
  699. '0%',
  700. '50%',
  701. '100%',
  702. ),
  703. 'bottomDecorationParams' => array(
  704. 'list' => array(
  705. 'style' => 'height:1em; font-size=75%;color:gray;',
  706. ),
  707. ),
  708. )
  709. );
  710. ]]></programlisting>
  711. </example>
  712. </sect3>
  713. <sect3 id="zend.dojo.form.elements.numberSpinner">
  714. <title>数スピナー</title>
  715. <para>
  716. 数スピナーは、数値を入力するためのテキスト要素です;
  717. 設定された量によって値を増加させたり、減少させるための要素を含みます。
  718. </para>
  719. <para>
  720. 下記のメソッドが利用できます:
  721. </para>
  722. <itemizedlist>
  723. <listitem><para>
  724. <methodname>setDefaultTimeout($timeout)</methodname>及び
  725. <methodname>getDefaultTimeout()</methodname>:
  726. ボタンが押されたままのときと、値が変更されるときの間の既定のタイムアウトを
  727. ミリ秒単位で設定または取得します。
  728. </para></listitem>
  729. <listitem><para>
  730. <methodname>setTimeoutChangeRate($rate)</methodname>及び
  731. <methodname>getTimeoutChangeRate()</methodname>:
  732. ボタンが押されたままのとき、変化がなされる割合をミリ秒単位で設定または取得します。
  733. </para></listitem>
  734. <listitem><para>
  735. <methodname>setLargeDelta($delta)</methodname>及び
  736. <methodname>getLargeDelta()</methodname>:
  737. ボタンが押されたままのとき、数値が変わるべき量を設定または取得します。
  738. </para></listitem>
  739. <listitem><para>
  740. <methodname>setSmallDelta($delta)</methodname>及び
  741. <methodname>getSmallDelta()</methodname>:
  742. ボタンが一度押されたとき、数が変わるべきデルタを設定または取得します。
  743. </para></listitem>
  744. <listitem><para>
  745. <methodname>setIntermediateChanges($flag)</methodname>及び
  746. <methodname>getIntermediateChanges()</methodname>:
  747. ボタンが押されたままのとき、
  748. 各々の値が変化するごとに表示されるべきかどうか示すフラグを設定または取得します。
  749. </para></listitem>
  750. <listitem><para>
  751. <methodname>setRangeMessage($message)</methodname>及び
  752. <methodname>getRangeMessage()</methodname>:
  753. 利用できる値の範囲を指示しているメッセージを設定または取得します。
  754. </para></listitem>
  755. <listitem><para>
  756. <methodname>setMin($value)</methodname>及び<methodname>getMin()</methodname>:
  757. 使用可能な最小値を設定または取得します。
  758. </para></listitem>
  759. <listitem><para>
  760. <methodname>setMax($value)</methodname>及び<methodname>getMax()</methodname>:
  761. 使用可能な最大値を設定または取得します。
  762. </para></listitem>
  763. </itemizedlist>
  764. <example id="zend.dojo.form.elements.numberSpinner.example">
  765. <title>数スピナーdijit要素の使用例</title>
  766. <programlisting language="php"><![CDATA[
  767. $form->addElement(
  768. 'NumberSpinner',
  769. 'foo',
  770. array(
  771. 'value' => '7',
  772. 'label' => 'NumberSpinner',
  773. 'smallDelta' => 5,
  774. 'largeDelta' => 25,
  775. 'defaultTimeout' => 500,
  776. 'timeoutChangeRate' => 100,
  777. 'min' => 9,
  778. 'max' => 1550,
  779. 'places' => 0,
  780. 'maxlength' => 20,
  781. )
  782. );
  783. ]]></programlisting>
  784. </example>
  785. </sect3>
  786. <sect3 id="zend.dojo.form.elements.numberTextBox">
  787. <title>数テキストボックス</title>
  788. <para>
  789. 数テキストボックスは、数を入力するためのテキスト要素です;
  790. 数スピナーとは異なり、数は手で入力します。
  791. バリデーションと制約は、
  792. 数が特定の範囲または形式にとどまることを確実とするために提示できます。
  793. </para>
  794. <para>
  795. 内部的には、数テキストボックスは<link
  796. linkend="zend.dojo.form.elements.validationTextBox">バリデーションテキストボックス</link>
  797. 及び<link linkend="zend.dojo.form.elements.textBox">テキストボックス</link>に由来します;
  798. それらのクラスのメソッドが全て利用可能です。さらに、
  799. 個別の制約を設定するために下記のメソッドを使用できます:
  800. </para>
  801. <itemizedlist>
  802. <listitem><para>
  803. <methodname>setLocale($locale)</methodname>及び<methodname>getLocale()</methodname>:
  804. このdijitを利用するために指定されたまたは代替のロケールを指定または取得します。
  805. </para></listitem>
  806. <listitem><para>
  807. <methodname>setPattern($pattern)</methodname>及び
  808. <methodname>getPattern()</methodname>:
  809. 数をフォーマットするために使う<ulink
  810. url="http://www.unicode.org/reports/tr35/#Number_Format_Patterns">数値パターン形式</ulink>
  811. を設定または取得します。
  812. </para></listitem>
  813. <listitem><para>
  814. <methodname>setType($type)</methodname>及び<methodname>getType()</methodname>:
  815. 使用する数の形式型を取得します。
  816. ('decimal'、'percent'または'currency'のいずれかであるべきです)。
  817. </para></listitem>
  818. <listitem><para>
  819. <methodname>setPlaces($places)</methodname>及び<methodname>getPlaces()</methodname>:
  820. サポートする小数位の数を設定または取得します。
  821. </para></listitem>
  822. <listitem><para>
  823. <methodname>setStrict($flag)</methodname>及び<methodname>getStrict()</methodname>:
  824. 空白文字及び数字以外の文字についてどの程度ゆるやかに許されるか示す
  825. 厳密性フラグの値を設定または取得します。
  826. </para></listitem>
  827. </itemizedlist>
  828. <example id="zend.dojo.form.elements.numberTextBox.example">
  829. <title>数テキストボックスdijit要素の使用例</title>
  830. <programlisting language="php"><![CDATA[
  831. $form->addElement(
  832. 'NumberTextBox',
  833. 'elevation',
  834. array(
  835. 'label' => 'NumberTextBox',
  836. 'required' => true,
  837. 'invalidMessage' => 'Invalid elevation.',
  838. 'places' => 0,
  839. 'constraints' => array(
  840. 'min' => -20000,
  841. 'max' => 20000,
  842. ),
  843. )
  844. );
  845. ]]></programlisting>
  846. </example>
  847. </sect3>
  848. <sect3 id="zend.dojo.form.elements.passwordTextBox">
  849. <title>パスワードテキストボックス</title>
  850. <para>
  851. パスワードテキストボックスは、
  852. パスワード入力のみに結び付けられたバリデーションテキストボックスです;
  853. その唯一の目的は、dijitテーマを与えられたテキスト入力を
  854. クライアント側バリデーションを提示するパスワードのためにできるようにすることです。
  855. </para>
  856. <para>
  857. 内部的には、パスワードテキストボックスは<link
  858. linkend="zend.dojo.form.elements.validationTextBox">バリデーションテキストボックス</link>
  859. 及び<link linkend="zend.dojo.form.elements.textBox">テキストボックス</link>
  860. に由来します;
  861. それらのクラスのメソッドが全て利用可能です。
  862. </para>
  863. <example id="zend.dojo.form.elements.passwordTextBox.example">
  864. <title>パスワードテキストボックスの使用例</title>
  865. <programlisting language="php"><![CDATA[
  866. $form->addElement(
  867. 'PasswordTextBox',
  868. 'password',
  869. array(
  870. 'label' => 'Password',
  871. 'required' => true,
  872. 'trim' => true,
  873. 'lowercase' => true,
  874. 'regExp' => '^[a-z0-9]{6,}$',
  875. 'invalidMessage' => 'Invalid password; ' .
  876. 'must be at least 6 alphanumeric characters',
  877. )
  878. );
  879. ]]></programlisting>
  880. </example>
  881. </sect3>
  882. <sect3 id="zend.dojo.form.elements.radioButton">
  883. <title>ラジオボタン</title>
  884. <para>
  885. ラジオボタンは、他のDojo dijitと一貫したルック&フィールを提示するために、
  886. 標準的なラジオ入力要素をラップします。
  887. </para>
  888. <para>
  889. ラジオボタンはDijitMultiから拡張します。
  890. そして、<methodname>setMultiOptions()</methodname>及び<methodname>setMultiOption()</methodname>メソッドによって
  891. 選ばれた選択肢を指定できます。
  892. </para>
  893. <para>
  894. デフォルトでこの要素は、
  895. 配列に対して登録された選択肢のキーを確認する<code>InArray</code>バリデーターを登録します。
  896. <methodname>setRegisterInArrayValidator(false)</methodname>または
  897. <code>registerInArrayValidator</code>のどちらを呼び出しても、
  898. 設定キーにfalse値を渡すことによってこのふるまいを抑制できます。
  899. </para>
  900. <example id="zend.dojo.form.elements.radioButton.example">
  901. <title>ラジオボタンdijit要素の使用例</title>
  902. <programlisting language="php"><![CDATA[
  903. $form->addElement(
  904. 'RadioButton',
  905. 'foo',
  906. array(
  907. 'label' => 'RadioButton',
  908. 'multiOptions' => array(
  909. 'foo' => 'Foo',
  910. 'bar' => 'Bar',
  911. 'baz' => 'Baz',
  912. ),
  913. 'value' => 'bar',
  914. )
  915. );
  916. ]]></programlisting>
  917. </example>
  918. </sect3>
  919. <sect3 id="zend.dojo.form.elements.simpletextarea">
  920. <title>シンプルテキストエリア</title>
  921. <para>
  922. シンプルテキストエリアは、主に標準的なHTMLの textarea のようにふるまいます。
  923. しかし、それは列または行の設定をサポートしません。
  924. その代わり、textarea幅は、標準的な<acronym>CSS</acronym>幅を使用して指定されるべきです。
  925. テキストエリアとは異なり、自動的に成長しません。
  926. </para>
  927. <example id="zend.dojo.form.elements.simpletextarea.example">
  928. <title>シンプルテキストエリアdijit要素の使用例</title>
  929. <programlisting language="php"><![CDATA[
  930. $form->addElement(
  931. 'SimpleTextarea',
  932. 'simpletextarea',
  933. array(
  934. 'label' => 'SimpleTextarea',
  935. 'required' => true,
  936. 'style' => 'width: 80em; height: 25em;',
  937. )
  938. );
  939. ]]></programlisting>
  940. </example>
  941. </sect3>
  942. <sect3 id="zend.dojo.form.elements.slider">
  943. <title>スライダーabstract要素</title>
  944. <para>
  945. スライダーは
  946. <link linkend="zend.dojo.form.elements.horizontalSlider">水平スライダー</link>
  947. 及び
  948. <link linkend="zend.dojo.form.elements.verticalSlider">垂直スライダー</link>
  949. の両方に由来するabstract要素です。
  950. スライダーを構成するために、いくつかの一般的なメソッドを公開します:
  951. </para>
  952. <itemizedlist>
  953. <listitem><para>
  954. <methodname>setClickSelect($flag)</methodname>及び
  955. <methodname>getClickSelect()</methodname>:
  956. スライダーをクリックしたら値を変更するかどうか示すフラグを設定または取得します。
  957. </para></listitem>
  958. <listitem><para>
  959. <methodname>setIntermediateChanges($flag)</methodname>及び
  960. <methodname>getIntermediateChanges()</methodname>:
  961. 各々のスライダー変化イベントにdijitが通知を送るかどうか示すフラグを設定または取得します。
  962. </para></listitem>
  963. <listitem><para>
  964. <methodname>setShowButtons($flag)</methodname>及び
  965. <methodname>getShowButtons()</methodname>:
  966. どちらかの端にボタンが表示されるかどうか示すフラグを設定または取得します。;
  967. もし表示されるなら、スライダーの値を変えるために、ユーザーはボタンをクリックできます。
  968. </para></listitem>
  969. <listitem><para>
  970. <methodname>setDiscreteValues($value)</methodname>及び
  971. <methodname>getDiscreteValues()</methodname>:
  972. スライダーによって表される不連続な値の数を設定または取得します。
  973. </para></listitem>
  974. <listitem><para>
  975. <methodname>setMaximum($value)</methodname>及び<methodname>getMaximum()</methodname>:
  976. スライダーの最大値を設定します。
  977. </para></listitem>
  978. <listitem><para>
  979. <methodname>setMinimum($value)</methodname>及び<methodname>getMinimum()</methodname>:
  980. スライダーの最小値を設定します。
  981. </para></listitem>
  982. <listitem><para>
  983. <methodname>setPageIncrement($value)</methodname>及び
  984. <methodname>getPageIncrement()</methodname>:
  985. スライダーがキーボード・イベントで変わる量を設定します。
  986. </para></listitem>
  987. </itemizedlist>
  988. <para>
  989. 使用例は、各々の具体的な拡張クラスで提供されます。
  990. </para>
  991. </sect3>
  992. <sect3 id="zend.dojo.form.elements.submitButton">
  993. <title>サブミットボタン</title>
  994. <para>
  995. SubmitButtonという名前のDijitはありませんが、
  996. どんなjavascriptとの結合も追加で必要とせずに、フォームを送信できるボタンdijitを提供するために、
  997. 1つをここに含めます。
  998. それは、まさに<link linkend="zend.dojo.form.elements.button">ボタンdijit</link>のように動作します。
  999. </para>
  1000. <example id="zend.dojo.form.elements.submitButton.example">
  1001. <title>サブミットボタンdijit要素の使用例</title>
  1002. <programlisting language="php"><![CDATA[
  1003. $form->addElement(
  1004. 'SubmitButton',
  1005. 'foo',
  1006. array(
  1007. 'required' => false,
  1008. 'ignore' => true,
  1009. 'label' => 'Submit Button!',
  1010. )
  1011. );
  1012. ]]></programlisting>
  1013. </example>
  1014. </sect3>
  1015. <sect3 id="zend.dojo.form.elements.textBox">
  1016. <title>テキストボックス</title>
  1017. <para>
  1018. テキストボックスは、
  1019. 主に他のdijitsに調和したルック&フィールで入力されるテキストを提供するために含まれます。
  1020. しかし、以下のメソッドで表されるいくらかのマイナーなフィルタリングとバリデーション機能も含みます:
  1021. </para>
  1022. <itemizedlist>
  1023. <listitem><para>
  1024. <methodname>setLowercase($flag)</methodname>及び
  1025. <methodname>getLowercase()</methodname>:
  1026. 入力を小文字にキャストすべきかどうか示すフラグを設定または取得します。
  1027. </para></listitem>
  1028. <listitem><para>
  1029. <methodname>setPropercase($flag)</methodname>及び
  1030. <methodname>getPropercase()</methodname>:
  1031. 入力をProper Case(訳注:先頭を大文字、他を小文字にすること)にキャストすべきかどうか示すフラグを設定または取得します。
  1032. </para></listitem>
  1033. <listitem><para>
  1034. <methodname>setUppercase($flag)</methodname>及び<methodname>getUppercase()</methodname>:
  1035. 入力を大文字にキャストすべきかどうか示すフラグを設定または取得します。
  1036. </para></listitem>
  1037. <listitem><para>
  1038. <methodname>setTrim($flag)</methodname>及び<methodname>getTrim()</methodname>:
  1039. 先立つまたは後続する空白を除去すべきかどうか示すフラグを設定または取得します。
  1040. </para></listitem>
  1041. <listitem><para>
  1042. <methodname>setMaxLength($length)</methodname>及び
  1043. <methodname>getMaxLength()</methodname>:
  1044. 入力の長さの上限を設定または取得します。
  1045. </para></listitem>
  1046. </itemizedlist>
  1047. <example id="zend.dojo.form.elements.textBox.example">
  1048. <title>テキストボックスdijit要素の使用例</title>
  1049. <programlisting language="php"><![CDATA[
  1050. $form->addElement(
  1051. 'TextBox',
  1052. 'foo',
  1053. array(
  1054. 'value' => 'some text',
  1055. 'label' => 'TextBox',
  1056. 'trim' => true,
  1057. 'propercase' => true,
  1058. )
  1059. );
  1060. ]]></programlisting>
  1061. </example>
  1062. </sect3>
  1063. <sect3 id="zend.dojo.form.elements.textarea">
  1064. <title>テキストエリア</title>
  1065. <para>
  1066. テキストエリアは、主に標準的なHTMLの textarea のようにふるまいます。
  1067. しかし、それは列または行の設定をサポートしません。
  1068. その代わり、textareaの幅は、標準的な<acronym>CSS</acronym>幅を使用して指定されるべきです;
  1069. 列は、完全に省略されます。
  1070. テキストが追加されるたびに、textareaは垂直に伸びます。
  1071. </para>
  1072. <example id="zend.dojo.form.elements.textarea.example">
  1073. <title>テキストエリアdijit要素の使用例</title>
  1074. <programlisting language="php"><![CDATA[
  1075. $form->addElement(
  1076. 'Textarea',
  1077. 'textarea',
  1078. array(
  1079. 'label' => 'Textarea',
  1080. 'required' => true,
  1081. 'style' => 'width: 200px;',
  1082. )
  1083. );
  1084. ]]></programlisting>
  1085. </example>
  1086. </sect3>
  1087. <sect3 id="zend.dojo.form.elements.timeTextBox">
  1088. <title>時刻テキストボックス</title>
  1089. <para>
  1090. 時刻テキストボックスは、
  1091. 時刻を選ぶためにドロップダウンを提示するテキスト入力です。
  1092. ドロップダウンは指定された増分で、時刻の特定のウインドウを示すように構成されるかもしれません。
  1093. </para>
  1094. <para>
  1095. 内部的には、時刻テキストボックスは<link
  1096. linkend="zend.dojo.form.elements.dateTextBox">日付テキストボックス</link>、
  1097. <link
  1098. linkend="zend.dojo.form.elements.validationTextBox">バリデーションテキストボックス</link>
  1099. 及び<link linkend="zend.dojo.form.elements.textBox">テキストボックス</link>に由来します;
  1100. それらのクラスのメソッドが全て利用可能です。さらに、
  1101. 個別の制約を設定するために下記のメソッドを使用できます:
  1102. </para>
  1103. <itemizedlist>
  1104. <listitem><para>
  1105. <methodname>setTimePattern($pattern)</methodname>及び
  1106. <methodname>getTimePattern()</methodname>:
  1107. 時刻をフォーマットするための<ulink
  1108. url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">unicode時間形式パターン</ulink>
  1109. を設定または取得します。
  1110. </para></listitem>
  1111. <listitem><para>
  1112. <methodname>setClickableIncrement($format)</methodname>及び
  1113. <methodname>getClickableIncrement()</methodname>:
  1114. Time Pickerでクリックできる全ての要素で
  1115. 増分値を示す<ulink
  1116. url="http://en.wikipedia.org/wiki/ISO_8601">ISO-8601</ulink>
  1117. 文字列を設定または取得します。
  1118. </para></listitem>
  1119. <listitem><para>
  1120. <methodname>setVisibleIncrement($format)</methodname>及び
  1121. <methodname>getVisibleIncrement()</methodname>:
  1122. 時刻選択にて見える増分を設定します;
  1123. ISO-8601フォーマットに従わなければなりません。
  1124. </para></listitem>
  1125. <listitem><para>
  1126. <methodname>setVisibleRange($format)</methodname>及び
  1127. <methodname>getVisibleRange()</methodname>:
  1128. 時刻選択にていつでも見える時刻の範囲を設定または取得します;
  1129. ISO-8601フォーマットに従わなければなりません。
  1130. </para></listitem>
  1131. </itemizedlist>
  1132. <example id="zend.dojo.form.elements.timeTextBox.example">
  1133. <title>時刻テキストボックスdijit要素の使用例</title>
  1134. <para>
  1135. 以下は、時刻に2時を表示する、増分が10分毎の時刻テキストボックスをつくります。
  1136. </para>
  1137. <programlisting language="php"><![CDATA[
  1138. $form->addElement(
  1139. 'TimeTextBox',
  1140. 'foo',
  1141. array(
  1142. 'label' => 'TimeTextBox',
  1143. 'required' => true,
  1144. 'visibleRange' => 'T04:00:00',
  1145. 'visibleIncrement' => 'T00:10:00',
  1146. 'clickableIncrement' => 'T00:10:00',
  1147. )
  1148. );
  1149. ]]></programlisting>
  1150. </example>
  1151. </sect3>
  1152. <sect3 id="zend.dojo.form.elements.validationTextBox">
  1153. <title>バリデーションテキストボックス</title>
  1154. <para>
  1155. バリデーションテキストボックスは、
  1156. バリデーションと制約をテキスト入力に加える能力を提供します。
  1157. 内部的には、<link
  1158. linkend="zend.dojo.form.elements.textBox">テキストボックス</link>に由来します。
  1159. dijitパラメータを操作するために、以下のアクセッサとミューテーターを加えます:
  1160. </para>
  1161. <itemizedlist>
  1162. <listitem><para>
  1163. <methodname>setInvalidMessage($message)</methodname>及び
  1164. <methodname>getInvalidMessage()</methodname>:
  1165. 値がバリデーションされないときに表示するtooltipメッセージを設定または取得します。
  1166. </para></listitem>
  1167. <listitem><para>
  1168. <methodname>setPromptMessage($message)</methodname>及び
  1169. <methodname>getPromptMessage()</methodname>:
  1170. 要素の使用方法のために表示されるtooltipメッセージを設定または取得します。
  1171. </para></listitem>
  1172. <listitem><para>
  1173. <methodname>setRegExp($regexp)</methodname>及び<methodname>getRegExp()</methodname>:
  1174. 要素を確認するために使用する正規表現を取得します。
  1175. 正規表現は、バウンダリ(<acronym>PHP</acronym>のpreg* ファミリーの関数と異なります)を必要としません。
  1176. </para></listitem>
  1177. <listitem><para>
  1178. <methodname>setConstraint($key, $value)</methodname>及び
  1179. <methodname>getConstraint($key)</methodname>:
  1180. 要素を確認するときに使う追加制約を設定または取得します;
  1181. サブクラスで主に使われます。
  1182. 制約は、dijitパラメータの 'constraints' キーに保存されます。
  1183. </para></listitem>
  1184. <listitem><para>
  1185. <methodname>setConstraints(array $constraints)</methodname>及び
  1186. <methodname>getConstraints()</methodname>:
  1187. 要素を確認するときに使う個々の制約を設定または取得します;
  1188. サブクラスで主に使われます。
  1189. </para></listitem>
  1190. <listitem><para>
  1191. <methodname>hasConstraint($key)</methodname>:
  1192. 与えられた制約が存在するかどうか調べます。
  1193. </para></listitem>
  1194. <listitem><para>
  1195. <methodname>removeConstraint($key)</methodname>及び
  1196. <methodname>clearConstraints()</methodname>:
  1197. 要素のために個別またはすべての制約を取り除きます。
  1198. </para></listitem>
  1199. </itemizedlist>
  1200. <example id="zend.dojo.form.elements.validationTextBox.example">
  1201. <title>バリデーションテキストボックスdijit要素の使用例</title>
  1202. <para>
  1203. 以下は、
  1204. 単語文字(すなわち、空白や大部分の句読点は無効です)だけから成る
  1205. 一つのストリングを必要とするバリデーション・テキストボックスをつくります。
  1206. </para>
  1207. <programlisting language="php"><![CDATA[
  1208. $form->addElement(
  1209. 'ValidationTextBox',
  1210. 'foo',
  1211. array(
  1212. 'label' => 'ValidationTextBox',
  1213. 'required' => true,
  1214. 'regExp' => '[\w]+',
  1215. 'invalidMessage' => 'Invalid non-space text.',
  1216. )
  1217. );
  1218. ]]></programlisting>
  1219. </example>
  1220. </sect3>
  1221. <sect3 id="zend.dojo.form.elements.verticalSlider">
  1222. <title>垂直スライダー</title>
  1223. <para>
  1224. 垂直スライダーは<link
  1225. linkend="zend.dojo.form.elements.horizontalSlider">水平スライダー</link>
  1226. の兄弟分で、あらゆる点でその要素のように動作します。
  1227. 唯一本当に違うところは、
  1228. 'top*' 及び 'bottom*' メソッドが 'left*' and 'right*' で置き換えられ、
  1229. HorizontalRule 及び HorizontalRuleLabels を使う代わりに、
  1230. VerticalRule 及び VerticalRuleLabels が使われることです。
  1231. </para>
  1232. <example id="zend.dojo.form.elements.verticalSlider.example">
  1233. <title>垂直スライダーdijit要素の使用例</title>
  1234. <para>
  1235. 下記では、-10から10の間の整数を選択する垂直スライダーを生成します。
  1236. 左側には20%、40%、60%そして80%で印をつけられたラベルがあります、
  1237. 右側には、0、50%そして100%の罫線があります。
  1238. 値が変わるたびに、値を保存しているhidden要素は更新されます。
  1239. </para>
  1240. <programlisting language="php"><![CDATA[
  1241. $form->addElement(
  1242. 'VerticalSlider',
  1243. 'foo',
  1244. array(
  1245. 'label' => 'VerticalSlider',
  1246. 'value' => 5,
  1247. 'style' => 'height: 200px; width: 3em;',
  1248. 'minimum' => -10,
  1249. 'maximum' => 10,
  1250. 'discreteValues' => 11,
  1251. 'intermediateChanges' => true,
  1252. 'showButtons' => true,
  1253. 'leftDecorationDijit' => 'VerticalRuleLabels',
  1254. 'leftDecorationContainer' => 'leftContainer',
  1255. 'leftDecorationLabels' => array(
  1256. ' ',
  1257. '20%',
  1258. '40%',
  1259. '60%',
  1260. '80%',
  1261. ' ',
  1262. ),
  1263. 'rightDecorationDijit' => 'VerticalRule',
  1264. 'rightDecorationContainer' => 'rightContainer',
  1265. 'rightDecorationLabels' => array(
  1266. '0%',
  1267. '50%',
  1268. '100%',
  1269. ),
  1270. )
  1271. );
  1272. ]]></programlisting>
  1273. </example>
  1274. </sect3>
  1275. </sect2>
  1276. <!--
  1277. vim:se ts=4 sw=4 et:
  1278. -->