Zend_Dojo-Form-Elements.xml 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15212 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.dojo.form.elements">
  5. <title>Dijit-Specifische Fomularelemente</title>
  6. <para>
  7. Jedes Formular-Dijit für welches ein Viewhelfer vorhanden ist hat ein korrespondierendes
  8. <classname>Zend_Form</classname> Element. Alle von Ihnen bieten die folgenden Methoden für die Manipulation
  9. von Dijit Parametern an:
  10. </para>
  11. <itemizedlist>
  12. <listitem><para>
  13. <code>setDijitParam($key, $value)</code>: Setzt einen einzelnen Dijit Parameter. Wenn der
  14. Dijit Parmeter bereits existiert wird er überschrieben.
  15. </para></listitem>
  16. <listitem><para>
  17. <code>setDijitParams(array $params)</code>: Setzt mehrere Dijit Parameter auf einmal. Jeder
  18. übergebene Parameter der bereits existierenden entspricht wird überschrieben.
  19. </para></listitem>
  20. <listitem><para>
  21. <code>hasDijitParam($key)</code>: Wenn ein angegebener Dijit Parameter definiert und vorhanden
  22. ist, wird TRUE zurückgegeben, andernfalls FALSE.
  23. </para></listitem>
  24. <listitem><para>
  25. <code>getDijitParam($key)</code>: Gibt den angegebenen Dijit Parameter. Wenn er nicht
  26. vorhanden ist, wird ein null Wert zurückgegeben.
  27. </para></listitem>
  28. <listitem><para>
  29. <code>getDijitParams()</code>: Gibt alle Dijit Parameter zurück.
  30. </para></listitem>
  31. <listitem><para>
  32. <code>removeDijitParam($key)</code>: Entfernt den angegebenen Dijit Parameter.
  33. </para></listitem>
  34. <listitem><para>
  35. <code>clearDijitParams()</code>: Löscht alle aktuell definierten Dijit Parameter.
  36. </para></listitem>
  37. </itemizedlist>
  38. <para>
  39. Dijit Parameter werden in der öffentlichen <code>dijitParams</code> Eigenschaft gespeichert.
  40. Deshalb kann ein existierendes Formularelement einfach dijit-aktiviert werden indem diese
  41. Eigenschaft auf dem Element gesetzt wird; man hat in diesem Fall nur nicht die Zugriffsmethoden um
  42. die Parameter zu manipulieren.
  43. </para>
  44. <para>
  45. Zusätzlich implementieren Dijit-spezifische Element eine andere Liste von Dekoratoren, die dem
  46. folgenden entsprechen:
  47. </para>
  48. <programlisting role="php"><![CDATA[
  49. $element->addDecorator('DijitElement')
  50. ->addDecorator('Errors')
  51. ->addDecorator('HtmlTag', array('tag' => 'dd'))
  52. ->addDecorator('Label', array('tag' => 'dt'));
  53. ]]></programlisting>
  54. <para>
  55. Effektiv wird der DijitElement Dekorator statt dem standardmäßigen ViewHelper Dekorator verwendet.
  56. </para>
  57. <para>
  58. Letztendlich stellt das Basis-Dijitelement sicher das der Dojo Viewhelfer Pfad in der View gesetzt ist.
  59. </para>
  60. <para>
  61. Eine Variante von DijitElement, DijitMulti, bietet die Funktionalität des abstrakten <code>Multi</code>
  62. Formularelements, das es Entwicklern erlaubt 'multiOptions' zu spezifizieren -- typischerweise
  63. Select-Optionen oder Radio-Optionen.
  64. </para>
  65. <para>
  66. Die folgenden Dijitelemente werden in der standardmäßigen Zend Framework Distribution ausgeliefert.
  67. </para>
  68. <sect3 id="zend.dojo.form.elements.button">
  69. <title>Button</title>
  70. <para>
  71. Wärend es nicht vom <link linkend="zend.form.standardElements.button">standardmäßigen Button
  72. Element</link> abgeleitet ist, implementiert es die gleiche Funktionalität, und kann als
  73. Drop-In Ersatz hierfür verwendet werden. Die folgende Funktionalität wird zur Verfügung gestellt:
  74. </para>
  75. <itemizedlist>
  76. <listitem><para>
  77. <code>getLabel()</code> verwendet den Elementnamen als Label für den Button wenn kein
  78. Name angegeben wurde. Zusätzlich übersetzt es den Namen wenn ein Übersetzungsadapter mit
  79. einer passenden übersetzten Meldung vorhanden ist.
  80. </para></listitem>
  81. <listitem><para>
  82. <code>isChecked()</code> ermittelt ob der übermittelte Wert zum Label passt; wenn das der
  83. Fall ist wird true zurückgegeben. Das ist für die Erkennung, welcher Button verwendet wurde
  84. als das Formular übermittelt wurde, nützlich.
  85. </para></listitem>
  86. </itemizedlist>
  87. <para>
  88. Zusätzlich werden nur die Dekoratore <code>DijitElement</code> und <code>DtDdWrapper</code>
  89. für Buttonelemente benutzt.
  90. </para>
  91. <example id="zend.dojo.form.elements.button.example">
  92. <title>Beispiel für die Verwendung des Button Dijit Elements</title>
  93. <programlisting role="php"><![CDATA[
  94. $form->addElement(
  95. 'Button',
  96. 'foo',
  97. array(
  98. 'label' => 'Button Label',
  99. )
  100. );
  101. ]]></programlisting>
  102. </example>
  103. </sect3>
  104. <sect3 id="zend.dojo.form.elements.checkBox">
  105. <title>CheckBox</title>
  106. <para>
  107. Wärend es nicht vom <link linkend="zend.form.standardElements.checkbox">standardmäßigen Checkbox
  108. Element</link> abgeleitet ist, implementiert es die gleiche Funktionalität. Das bedeutet das die
  109. folgenden Methoden zur Verfügung gestellt werden:
  110. </para>
  111. <itemizedlist>
  112. <listitem><para>
  113. <code>setCheckedValue($value)</code>: Setzt den Wert der verwendet werden soll wenn das
  114. Element angehakt ist.
  115. </para></listitem>
  116. <listitem><para>
  117. <code>getCheckedValue()</code>: Gibt den Wert des Elements zurück der verwendet wird wenn
  118. das Element angehakt ist.
  119. </para></listitem>
  120. <listitem><para>
  121. <code>setUncheckedValue($value)</code>: Setzt den Wert des Elements der verwendet wird wenn
  122. das Element nicht angehakt ist.
  123. </para></listitem>
  124. <listitem><para>
  125. <code>getUncheckedValue()</code>: Gibt den Wert des Elements zurück der verwendet wird wenn
  126. das Element nicht angehakt ist.
  127. </para></listitem>
  128. <listitem><para>
  129. <code>setChecked($flag)</code>: Markiert das Element als angehakt oder nicht angehakt.
  130. </para></listitem>
  131. <listitem><para>
  132. <code>isChecked()</code>: Ermittelt ob das Element aktuell angehakt ist.
  133. </para></listitem>
  134. </itemizedlist>
  135. <example id="zend.dojo.form.elements.checkBox.example">
  136. <title>Beispiel für die Verwendung des CheckBox Dijit Elements</title>
  137. <programlisting role="php"><![CDATA[
  138. $form->addElement(
  139. 'CheckBox',
  140. 'foo',
  141. array(
  142. 'label' => 'Eine Checkbox',
  143. 'checkedValue' => 'foo',
  144. 'uncheckedValue' => 'bar',
  145. 'checked' => true,
  146. )
  147. );
  148. ]]></programlisting>
  149. </example>
  150. </sect3>
  151. <sect3 id="zend.dojo.form.elements.comboBox">
  152. <title>ComboBox und FilteringSelect</title>
  153. <para>
  154. Wie in der ComboBox <link linkend="zend.dojo.view.dijit.form">Dijit Viewhelfer Dokumentation</link>
  155. beschrieben, sind Comboboxen ein Hybrid zwischen Select und Texteingaben, erlauben automatische
  156. Vervollständigung und die Fähigkeit eine Alternative zu den angebotenen Optionen zu spezifizieren.
  157. FilteringSelects sind genauso, nur erlauben Sie keine eigenen Eingaben.
  158. </para>
  159. <note>
  160. <title>ComboBoxen geben die Labelwerte zurück</title>
  161. <para>
  162. ComboBoxen geben die Labelwerte, und nicht die Werte der Option zurück, was zu einem
  163. Problem bei den Annahmen führen kann. Aus diesem Grund registieren Sie die
  164. <code>InArray</code> Prüfung nicht automatisch (obwohl FilteringSelects das macht).
  165. </para>
  166. </note>
  167. <para>
  168. Das ComboBox und FilteringSelect Formularelemente bietet Zugriffsmethoden und Mutatoren für das
  169. Ermitteln und Setzen von Selectoptionen sowie das Spezifizieren des dojo.data Datenspeichers
  170. (wenn er verwendet wird). Sie erweitern DijitMulti, welches es erlaubt Selectoptionen über die
  171. Methoden <code>setMultiOptions()</code> und <code>setMultiOption()</code> zu spezifizieren.
  172. Zusätzlich stehen die folgenden Methoden zur Verfügung:
  173. </para>
  174. <itemizedlist>
  175. <listitem><para>
  176. <code>getStoreInfo()</code>: Gibt alle aktuell gesetzten Informationen des Datenspeichers
  177. zurück. Gibt ein leeres Array zurück wenn aktuell keine Daten gesetzt sind.
  178. </para></listitem>
  179. <listitem><para>
  180. <code>setStoreId($identifier)</code>: Setzt die Identifikatorvariable des Speichers
  181. (normalerweise wird darauf durch das Attribut 'jsId' in Dojo referiert). Das sollte
  182. ein gültiger Name für eine Javascriptvariable sein.
  183. </para></listitem>
  184. <listitem><para>
  185. <code>getStoreId()</code>: Gibt den Namen der Identifikatorvariable des Speichers zurück.
  186. </para></listitem>
  187. <listitem><para>
  188. <code>setStoreType($dojoType)</code>: Setzt die Datenspeicherklasse die verwendet werden
  189. soll; z.B., "dojo.data.ItemFileReadStore".
  190. </para></listitem>
  191. <listitem><para>
  192. <code>getStoreType()</code>: Gibt die Dojo Datenspeicherklasse zurück die verwendet werden soll.
  193. </para></listitem>
  194. <listitem><para>
  195. <code>setStoreParams(array $params)</code>: Setzt jeden verwendeten Parameter um das
  196. Datenspeicherobjekt zu konfigurieren. Als Beispiel würde der
  197. dojo.data.ItemFileReadStore Datenspeicher einen 'url' Parameter erwarten der auf einen Ort
  198. zeigt der das dojo.data Objekt zurückgibt.
  199. </para></listitem>
  200. <listitem><para>
  201. <code>getStoreParams()</code>: Gibt alle aktuell gesetzten Datenspeicher Parameter zurück;
  202. wenn keiner gesetzt ist, wird ein leeres Array zurückgegeben.
  203. </para></listitem>
  204. <listitem><para>
  205. <code>setAutocomplete($flag)</code>: Zeigt ob das selektierte Element verwendet wird oder nicht
  206. wenn der Benutzer das Element verlässt.
  207. </para></listitem>
  208. <listitem><para>
  209. <code>getAutocomplete()</code>: Gibt den Wert des autocomplete Flags zurück.
  210. </para></listitem>
  211. </itemizedlist>
  212. <para>
  213. Standardmäßig, wenn kein dojo.data Speicher im Element registriert wurde, registriert dieses
  214. Element eine <code>InArray</code> Prüfung welche die Arrayschlüssel gegen registrierte Optionen
  215. prüft. Dieses Verhalten kann deaktiviert werden indem entweder
  216. <code>setRegisterInArrayValidator(false)</code> ausgerufen, oder ein false Wert an den
  217. Registrierungsschlüssel <code>registerInArrayValidator</code> übergeben wird.
  218. </para>
  219. <example id="zend.dojo.form.elements.comboBox.selectExample">
  220. <title>Das ComboBox Dijit Element als Select Eingabe verwenden</title>
  221. <programlisting role="php"><![CDATA[
  222. $form->addElement(
  223. 'ComboBox',
  224. 'foo',
  225. array(
  226. 'label' => 'ComboBox (select)',
  227. 'value' => 'blue',
  228. 'autocomplete' => false,
  229. 'multiOptions' => array(
  230. 'red' => 'Rouge',
  231. 'blue' => 'Bleu',
  232. 'white' => 'Blanc',
  233. 'orange' => 'Orange',
  234. 'black' => 'Noir',
  235. 'green' => 'Vert',
  236. ),
  237. )
  238. );
  239. ]]></programlisting>
  240. </example>
  241. <example id="zend.dojo.form.elements.comboBox.datastoreExample">
  242. <title>Das ComboBox Dijit Element mit einem Datenspeicher verwenden</title>
  243. <programlisting role="php"><![CDATA[
  244. $form->addElement(
  245. 'ComboBox',
  246. 'foo',
  247. array(
  248. 'label' => 'ComboBox (datastore)',
  249. 'storeId' => 'stateStore',
  250. 'storeType' => 'dojo.data.ItemFileReadStore',
  251. 'storeParams' => array(
  252. 'url' => '/js/states.txt',
  253. ),
  254. 'dijitParams' => array(
  255. 'searchAttr' => 'name',
  256. ),
  257. )
  258. );
  259. ]]></programlisting>
  260. </example>
  261. <para>
  262. Das obige Beispiel könnte auch <code>FilteringSelect</code> statt <code>ComboBox</code> verwenden.
  263. </para>
  264. </sect3>
  265. <sect3 id="zend.dojo.form.elements.currencyTextBox">
  266. <title>CurrencyTextBox</title>
  267. <para>
  268. Die CurrencyTextBox ist primär für die Unterstützung von Währungseingaben. Die Währung kann
  269. lokalisiert werden, und unterstützt sowohl Kommazahlen als auch ganze Zahlen.
  270. </para>
  271. <para>
  272. Intern ist die CurrencyTextBox abgeleitet von
  273. <link linkend="zend.dojo.form.elements.numberTextBox">NumberTextBox</link>,
  274. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>,
  275. und <link linkend="zend.dojo.form.elements.textBox">TextBox</link>; alle vorhandenen
  276. Methoden dieser Klassen sind vorhanden. Zusätzlich können die folgenden bedingten Methoden
  277. verwendet werden:
  278. </para>
  279. <itemizedlist>
  280. <listitem><para>
  281. <code>setCurrency($currency)</code>: Setzt den Typ der Währung die verwendet werden sol;
  282. sollte der <ulink url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink> Spezifikation
  283. folgen.
  284. </para></listitem>
  285. <listitem><para>
  286. <code>getCurrency()</code>: Gibt den aktuellen Währungstyp zurück.
  287. </para></listitem>
  288. <listitem><para>
  289. <code>setSymbol($symbol)</code>: Setzt das 3-buchstabige
  290. <ulink url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink> Symbol der Währung
  291. das verwendet werden soll.
  292. </para></listitem>
  293. <listitem><para>
  294. <code>getSymbol()</code>: Gibt das aktuelle Währungssymbol zurück.
  295. </para></listitem>
  296. <listitem><para>
  297. <code>setFractional($flag)</code>: Setzt ob für die Währung Kommazahlen oder ganze Zahlen
  298. verwendet werden dürfen.
  299. </para></listitem>
  300. <listitem><para>
  301. <code>getFractional()</code>: Gibt den Status des Kommazahlen Flags zurück.
  302. </para></listitem>
  303. </itemizedlist>
  304. <example id="zend.dojo.form.elements.currencyTextBox.example">
  305. <title>Beispiel für die Verwendung des CurrencyTextBox Dijit Elements</title>
  306. <programlisting role="php"><![CDATA[
  307. $form->addElement(
  308. 'CurrencyTextBox',
  309. 'foo',
  310. array(
  311. 'label' => 'Währung:',
  312. 'required' => true,
  313. 'currency' => 'USD',
  314. 'invalidMessage' => 'Ungültiger Wert. Es müssen das Dollarzeichen, ' .
  315. 'ein Komma und Cents enthalten sein.',
  316. 'fractional' => false,
  317. )
  318. );
  319. ]]></programlisting>
  320. </example>
  321. </sect3>
  322. <sect3 id="zend.dojo.form.elements.dateTextBox">
  323. <title>DateTextBox</title>
  324. <para>
  325. DateTextBox bietet einen Kalender Drop-Down für die Auswahl eines Datums, sowie einer Clientseitigen
  326. Überprüfung und Formatierung.
  327. </para>
  328. <para>
  329. Intern ist DateTextBox abgeleitet von
  330. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link> und
  331. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>; alle vorhandenen Methoden dieser
  332. Klassen sind vorhanden. Zusätzlich können die folgenden Methoden verwendet werden um individuelle
  333. Abhängigkeiten zu setzen:
  334. </para>
  335. <itemizedlist>
  336. <listitem><para>
  337. <code>setAmPm($flag)</code> and <code>getAmPm()</code>: Ob in der Zeit AM/PM Strings
  338. verwendet werden sollen oder nicht.
  339. </para></listitem>
  340. <listitem><para>
  341. <code>setStrict($flag)</code> und <code>getStrict()</code>: Ob Reguläre Ausdrücke strikt
  342. passen müssen oder nicht. Wenn es false ist, was der Standardwert ist, wird es nicht über
  343. Leerzeichen und einige Abkürzungen lamentieren.
  344. </para></listitem>
  345. <listitem><para>
  346. <code>setLocale($locale)</code> und <code>getLocale()</code>: Setzt und gibt die Locale zurück
  347. die mit diesem speziellen Element verwendet werden soll.
  348. </para></listitem>
  349. <listitem><para>
  350. <code>setDatePattern($pattern)</code> und <code>getDatePattern()</code>: Bietet und gibt den
  351. <ulink url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">Unicode Pattern des
  352. Datumsformats</ulink> für die Formatierung des Datums zurück.
  353. </para></listitem>
  354. <listitem><para>
  355. <code>setFormatLength($formatLength)</code> und <code>getFormatLength()</code>: Bietet und
  356. gibt den Formatlänge Typ der verwendet werden soll zurück; sollte "long", "short", "medium"
  357. oder "full" sein.
  358. </para></listitem>
  359. <listitem><para>
  360. <code>setSelector($selector)</code> und <code>getSelector()</code>: Bietet und gibt den Stil
  361. des Selektors zurück; sollte entweder "date" oder "time" sein.
  362. </para></listitem>
  363. </itemizedlist>
  364. <example id="zend.dojo.form.elements.dateTextBox.example">
  365. <title>Beispiel der Verwendung des DateTextBox Dijit Elements</title>
  366. <programlisting role="php"><![CDATA[
  367. $form->addElement(
  368. 'DateTextBox',
  369. 'foo',
  370. array(
  371. 'label' => 'Datum:',
  372. 'required' => true,
  373. 'invalidMessage' => 'Ungültiges Datum spezifiziert.',
  374. 'formatLength' => 'long',
  375. )
  376. );
  377. ]]></programlisting>
  378. </example>
  379. </sect3>
  380. <sect3 id="zend.dojo.form.elements.editor">
  381. <title>Editor</title>
  382. <para>
  383. Editor bietet einen WYSIWYG Editor der verwendet werden kann um Rich HTML Inhalte sowohl
  384. zu erstellen als auch zu bearbeiten. dijit.Editor ist pluggable und kann mit eigenen Plugins
  385. erweitert werden wenn das gewünscht ist; siehe
  386. <ulink url="http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/advanced-editing-and-display/editor-rich-text">
  387. die dijit.Editor Dokumentation</ulink> für weitere Details.
  388. </para>
  389. <para>
  390. Das Editor Form Element bietet eine Anzahl an Zugriffsmethoden und Mutatoren für die
  391. Manipulation der verschiedenen dijit Paramter, wie folgt:
  392. </para>
  393. <itemizedlist>
  394. <listitem>
  395. <para>
  396. <emphasis>captureEvents</emphasis> sind Events die auf die Bearbeitungsfläche selbst
  397. verbinden. Die folgenden Zugriffsmethoden und Mutatoren sind für die Manipulation von
  398. Capture Events vorhanden:
  399. </para>
  400. <itemizedlist>
  401. <listitem><para><code>addCaptureEvent($event)</code></para></listitem>
  402. <listitem><para><code>addCaptureEvents(array $events)</code></para></listitem>
  403. <listitem><para><code>setCaptureEvents(array $events)</code></para></listitem>
  404. <listitem><para><code>getCaptureEvents()</code></para></listitem>
  405. <listitem><para><code>hasCaptureEvent($event)</code></para></listitem>
  406. <listitem><para><code>removeCaptureEvent($event)</code></para></listitem>
  407. <listitem><para><code>clearCaptureEvents()</code></para></listitem>
  408. </itemizedlist>
  409. </listitem>
  410. <listitem>
  411. <para>
  412. <emphasis>events</emphasis> sind Standard DOM Events, wie onClick, onKeyUp, usw.
  413. Die folgenden Zugriffsmethoden und Mutatoren sind für die Manipulation von Events
  414. vorhanden:
  415. </para>
  416. <itemizedlist>
  417. <listitem><para><code>addEvent($event)</code></para></listitem>
  418. <listitem><para><code>addEvents(array $events)</code></para></listitem>
  419. <listitem><para><code>setEvents(array $events)</code></para></listitem>
  420. <listitem><para><code>getEvents()</code></para></listitem>
  421. <listitem><para><code>hasEvent($event)</code></para></listitem>
  422. <listitem><para><code>removeEvent($event)</code></para></listitem>
  423. <listitem><para><code>clearEvents()</code></para></listitem>
  424. </itemizedlist>
  425. </listitem>
  426. <listitem>
  427. <para>
  428. <emphasis>plugins</emphasis> fügen dem Editor Funktionalitäten hinzu -- zusätzliche
  429. Tools für die Toolbar, zusätzliche erlaubte Stile, usw. Die folgenden Zugriffsmethoden
  430. und Mutatoren sind für die Manipulation von Plugins vorhanden:
  431. </para>
  432. <itemizedlist>
  433. <listitem><para><code>addPlugin($plugin)</code></para></listitem>
  434. <listitem><para><code>addPlugins(array $plugins)</code></para></listitem>
  435. <listitem><para><code>setPlugins(array $plugins)</code></para></listitem>
  436. <listitem><para><code>getPlugins()</code></para></listitem>
  437. <listitem><para><code>hasPlugin($plugin)</code></para></listitem>
  438. <listitem><para><code>removePlugin($plugin)</code></para></listitem>
  439. <listitem><para><code>clearPlugins()</code></para></listitem>
  440. </itemizedlist>
  441. </listitem>
  442. <listitem>
  443. <para>
  444. <emphasis>editActionInterval</emphasis> wird verwendet um Events für die Undo
  445. Operationen zu gruppieren. Standardmäßig ist dieser Wert 3 Sekunden. Die Methode
  446. <code>setEditActionInterval($interval)</code> kann verwendet werden um den Wert
  447. zu setzen, wärend <code>getEditActionInterval()</code> ihn zurückgibt.
  448. </para>
  449. </listitem>
  450. <listitem>
  451. <para>
  452. <emphasis>focusOnLoad</emphasis> wird verwendet um zu erkennen ob dieser spezielle
  453. Editor den Fokus erhält wenn die Seite geladen wurde. Standardmäßig ist er false.
  454. Die Methode <code>setFocusOnLoad($flag)</code> kann verwendet werden um den Wert zu
  455. setzen, wärend <code>getFocusOnLoad()</code> ihn empfängt.
  456. </para>
  457. </listitem>
  458. <listitem>
  459. <para>
  460. <emphasis>height</emphasis> spezifiziert die Höhe des Editors; standardmäßig ist
  461. sie 300px. Die Methode <code>setHeight($height)</code> kann verwendet werden um den
  462. Wert zu setzen, wärend <code>getHeight()</code> ihn zurückgibt.
  463. </para>
  464. </listitem>
  465. <listitem>
  466. <para>
  467. <emphasis>inheritWidth</emphasis> wird verwendet um zu erkennen ob der Editor die
  468. Breite des Parent Containers verwendet, oder einfach auf 100% Höhe. Standardmäßig
  469. ist er false (im Normalfall wird der die Breite des Fensters ausfüllen). Die
  470. Methode <code>setInheritWidth($flag)</code> kann verwendet werden um den Wert zu
  471. setzen, wärend <code>getInheritWidth()</code> ihn zurückgibt.
  472. </para>
  473. </listitem>
  474. <listitem>
  475. <para>
  476. <emphasis>minHeight</emphasis> zeigt die Mindesthöhe des Editors an; standardmäßig
  477. ist sie 1em. Die Methode <code>setMinHeight($height)</code> kann verwendet werden um
  478. den Wert zu setzen, wärend <code>getMinHeight()</code> ihn empfängt.
  479. </para>
  480. </listitem>
  481. <listitem>
  482. <para>
  483. <emphasis>styleSheets</emphasis> zeigt an welche zusätzlichen CSS Stylesheets verwendet
  484. werden sollen um die Anzeige des Editors zu beeinflussen. Standardmäßig sind keine
  485. registriert, und es verwendet die Seitenstile. Die folgenden Zugriffsmethoden und
  486. Mutatoren sind für die Manipulation von Editor Stylesheets vorhanden:
  487. </para>
  488. <itemizedlist>
  489. <listitem><para><code>addStyleSheet($styleSheet)</code></para></listitem>
  490. <listitem><para><code>addStyleSheets(array $styleSheets)</code></para></listitem>
  491. <listitem><para><code>setStyleSheets(array $styleSheets)</code></para></listitem>
  492. <listitem><para><code>getStyleSheets()</code></para></listitem>
  493. <listitem><para><code>hasStyleSheet($styleSheet)</code></para></listitem>
  494. <listitem><para><code>removeStyleSheet($styleSheet)</code></para></listitem>
  495. <listitem><para><code>clearStyleSheets()</code></para></listitem>
  496. </itemizedlist>
  497. </listitem>
  498. </itemizedlist>
  499. <example id="zend.dojo.form.elements.editor.example">
  500. <title>Beispiel der Verwendung des Editor dijit Elements</title>
  501. <programlisting role="php"><![CDATA[
  502. $form->addElement('editor', 'content', array(
  503. 'plugins' => array('undo', '|', 'bold', 'italic'),
  504. 'editActionInterval' => 2,
  505. 'focusOnLoad' => true,
  506. 'height' => '250px',
  507. 'inheritWidth' => true,
  508. 'styleSheets' => array('/js/custom/editor.css'),
  509. ));
  510. ]]></programlisting>
  511. </example>
  512. </sect3>
  513. <sect3 id="zend.dojo.form.elements.horizontalSlider">
  514. <title>HorizontalSlider</title>
  515. <para>
  516. HorizontalSlider bietet ein Schieber UI Widget für die Auswahl eines nummerischen Wertes in einem
  517. Bereich. Intern, setzt es den Wert eines versteckten Elements welches vom Formular übermittelt wird.
  518. </para>
  519. <para>
  520. HorizontalSlider ist vom <link linkend="zend.dojo.form.elements.slider">abstrakten Slider Dijit
  521. Element</link> abgeleitet. Zusätzlich hat es eine Vielzahl von Methoden für das Setzen und
  522. Konfigurieren der Schieberregeln und Regel Labels.
  523. </para>
  524. <itemizedlist>
  525. <listitem>
  526. <para>
  527. <code>setTopDecorationDijit($dijit)</code> und <code>setBottomDecorationDijit($dijit)</code>:
  528. Setzt den Namen des Dijits das entweder oberhalb oder unterhalb des Schiebers verwendet
  529. werden soll. Es darf nicht den "dijit.form." Präfix enthalten, sondern nur den endgültigen
  530. Namen -- entweder "HorizontalRule" oder "HorizontalRuleLabels".
  531. </para>
  532. </listitem>
  533. <listitem>
  534. <para>
  535. <code>setTopDecorationContainer($container)</code> und
  536. <code>setBottomDecorationContainer($container)</code>: Spezifiziert den Namen der für das
  537. Containerelement der Regeln verwendet werden soll; z.B. 'topRule', 'topContainer', usw.
  538. </para>
  539. </listitem>
  540. <listitem>
  541. <para>
  542. <code>setTopDecorationLabels(array $labels)</code> und
  543. <code>setBottomDecorationLabels(array $labels)</code>: Setzt die Labels die für eine der
  544. RuleLabel Dijit Typen verwendet werden sollen. Diese sollten ein indiziertes Array sein;
  545. spezifiziere eine einzelnes Leerzeichen um eine gegebene Labelposition zu überspringen
  546. (wie beim Beginn oder dem Ende).
  547. </para>
  548. </listitem>
  549. <listitem>
  550. <para>
  551. <code>setTopDecorationParams(array $params)</code> und
  552. <code>setBottomDecorationParams(array $params)</code>: Dijit Parameter die verwendet
  553. werden sollen wenn die gegebene Rule oder RuleLabels Dijits konfiguriert werden
  554. </para>
  555. </listitem>
  556. <listitem>
  557. <para>
  558. <code>setTopDecorationAttribs(array $attribs)</code> und
  559. <code>setBottomDecorationAttribs(array $attribs)</code>: HTML Attribute die für die
  560. gegebene Rule oder RuleLabels HTML Elementcontainer spezifiziert werden.
  561. </para>
  562. </listitem>
  563. <listitem>
  564. <para>
  565. <code>getTopDecoration()</code> und <code>getBottomDecoration()</code>: Geben alle
  566. Metadaten für eine gegebene Rule oder RuleLabels Definition zurück, wie von den obigen
  567. Mutatoren geliefert.
  568. </para>
  569. </listitem>
  570. </itemizedlist>
  571. <example id="zend.dojo.form.elements.horizontalSlider.example">
  572. <title>Beispiel der Verwendung des HorizontalSlider Dijit Elements</title>
  573. <para>
  574. Das folgende erzeugt eine horizontale Schieberauswahl mit Integerwerten die von -10 bis 10
  575. reichen. Oben sind Labels bei den 20%, 40%, 60% und 80% Marken. Unten sind Regeln bei 0, 50%
  576. und 100%. Jedesmal wenn der Wert geändert wird, wird das versteckte Element das den Wert
  577. speichert aktualisiert.
  578. </para>
  579. <programlisting role="php"><![CDATA[
  580. $form->addElement(
  581. 'HorizontalSlider',
  582. 'horizontal',
  583. array(
  584. 'label' => 'HorizontalSlider',
  585. 'value' => 5,
  586. 'minimum' => -10,
  587. 'maximum' => 10,
  588. 'discreteValues' => 11,
  589. 'intermediateChanges' => true,
  590. 'showButtons' => true,
  591. 'topDecorationDijit' => 'HorizontalRuleLabels',
  592. 'topDecorationContainer' => 'topContainer',
  593. 'topDecorationLabels' => array(
  594. ' ',
  595. '20%',
  596. '40%',
  597. '60%',
  598. '80%',
  599. ' ',
  600. ),
  601. 'topDecorationParams' => array(
  602. 'container' => array(
  603. 'style' => 'height:1.2em; font-size=75%;color:gray;',
  604. ),
  605. 'list' => array(
  606. 'style' => 'height:1em; font-size=75%;color:gray;',
  607. ),
  608. ),
  609. 'bottomDecorationDijit' => 'HorizontalRule',
  610. 'bottomDecorationContainer' => 'bottomContainer',
  611. 'bottomDecorationLabels' => array(
  612. '0%',
  613. '50%',
  614. '100%',
  615. ),
  616. 'bottomDecorationParams' => array(
  617. 'list' => array(
  618. 'style' => 'height:1em; font-size=75%;color:gray;',
  619. ),
  620. ),
  621. )
  622. );
  623. ]]></programlisting>
  624. </example>
  625. </sect3>
  626. <sect3 id="zend.dojo.form.elements.numberSpinner">
  627. <title>NumberSpinner</title>
  628. <para>
  629. Ein Nummernkreisel (Number Spinner) ist ein Textelement für die Eingabe von nummerischen Werten;
  630. es enthält auch Elemente für das inkrementieren und dekrementieren des Wertes mit einer
  631. gesetzten Anzahl.
  632. </para>
  633. <para>
  634. Die folgenden Methoden sind vorhanden:
  635. </para>
  636. <itemizedlist>
  637. <listitem><para>
  638. <code>setDefaultTimeout($timeout)</code> und <code>getDefaultTimeout()</code>: Setzt und gibt
  639. den Standardtimeout, in Millisekunden, zurück der zwischen dem gedrückt halten des Buttons
  640. und der Änderung des Wertes ist.
  641. </para></listitem>
  642. <listitem><para>
  643. <code>setTimeoutChangeRate($rate)</code> und <code>getTimeoutChangeRate()</code>: Setzt und
  644. gibe die Rate, in Millisekunden, zurück mit der Änderungen durchgeführt werden wenn ein
  645. Button gedrückt gehalten wird.
  646. </para></listitem>
  647. <listitem><para>
  648. <code>setLargeDelta($delta)</code> und <code>getLargeDelta()</code>: Setzt und gibt die
  649. Menge zurück mit welcher der nummerische Wert geändert werden soll wenn ein Button
  650. gedrückt gehalten wird.
  651. </para></listitem>
  652. <listitem><para>
  653. <code>setSmallDelta($delta)</code> und <code>getSmallDelta()</code>: Setzt und gibt das
  654. Delta zurück mit dem die Nummer geändert werden soll wenn ein Button einmal gedrückt wird.
  655. </para></listitem>
  656. <listitem><para>
  657. <code>setIntermediateChanges($flag)</code> und <code>getIntermediateChanges()</code>:
  658. Setzt un gibt das Flag zurück das anzeigt ob jede Änderung des Werte angezeigt werden soll
  659. wenn der Button gedrückt gehalten wird, oder nicht.
  660. </para></listitem>
  661. <listitem><para>
  662. <code>setRangeMessage($message)</code> und <code>getRangeMessage()</code>: Setzt und gibt
  663. die Nachricht zurück die den Bereich der möglichen Werte anzeigt.
  664. </para></listitem>
  665. <listitem><para>
  666. <code>setMin($value)</code> und <code>getMin()</code>: Setzt und gibt den mindesten möglichen
  667. Wert zurück.
  668. </para></listitem>
  669. <listitem><para>
  670. <code>setMax($value)</code> und <code>getMax()</code>: Setzt und gibt den maximalen möglichen
  671. Wert zurück.
  672. </para></listitem>
  673. </itemizedlist>
  674. <example id="zend.dojo.form.elements.numberSpinner.example">
  675. <title>Beispiel der Verwendung des NumberSpinner Dijit Elements</title>
  676. <programlisting role="php"><![CDATA[
  677. $form->addElement(
  678. 'NumberSpinner',
  679. 'foo',
  680. array(
  681. 'value' => '7',
  682. 'label' => 'NumberSpinner',
  683. 'smallDelta' => 5,
  684. 'largeDelta' => 25,
  685. 'defaultTimeout' => 500,
  686. 'timeoutChangeRate' => 100,
  687. 'min' => 9,
  688. 'max' => 1550,
  689. 'places' => 0,
  690. 'maxlength' => 20,
  691. )
  692. );
  693. ]]></programlisting>
  694. </example>
  695. </sect3>
  696. <sect3 id="zend.dojo.form.elements.numberTextBox">
  697. <title>NumberTextBox</title>
  698. <para>
  699. Eine NumberTextBox ist ein Textelement für die Eingabe von nummerischen Werten; anders als beim
  700. NummerSpinner, werden Nummern manuell eingegeben. Prüfungen und Abhängigkeiten können angegeben
  701. werden um sicherzustellen das die Nummer immer in einem bestimmten Bereich oder Format ist.
  702. </para>
  703. <para>
  704. Intern wird NumberTextBox abgeleitet von
  705. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link> und
  706. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>; alle in diesen Klassen vorhandenen
  707. Methoden sind vorhanden. Zusätzlich können die folgenden Methoden verwendet werden um individuelle
  708. Abhängigkeiten zu setzen:
  709. </para>
  710. <itemizedlist>
  711. <listitem><para>
  712. <code>setLocale($locale)</code> und <code>getLocale()</code>: Spezifiziert und gibt ein
  713. spezifisches oder alternatives Gebietsschema zurück das mit diesem Dijit verwendet werden soll.
  714. </para></listitem>
  715. <listitem><para>
  716. <code>setPattern($pattern)</code> und <code>getPattern()</code>: Setzt und gibt ein
  717. <ulink url="http://www.unicode.org/reports/tr35/#Number_Format_Patterns">Nummern Patternformat</ulink>
  718. zurück das verwendet wird um eine Nummer zu formatieren.
  719. </para></listitem>
  720. <listitem><para>
  721. <code>setType($type)</code> und <code>getType()</code>: Setzt und gibt eine nummerischen
  722. Formattyp zurück der verwendet wird (sollte 'decimal', 'percent' oder 'currency' sein).
  723. </para></listitem>
  724. <listitem><para>
  725. <code>setPlaces($places)</code> und <code>getPlaces()</code>: Setzt und gibt die Anzahl der
  726. Dezimalstellen die unterstützt werden sollen zurück.
  727. </para></listitem>
  728. <listitem><para>
  729. <code>setStrict($flag)</code> und <code>getStrict()</code>: Setzt und gibt den Wert des
  730. Strictflags zurück, welches anzeigt wieviel Ungenauigkeit in Bezug auf Leerzeichen und
  731. nicht-nummerische Zeichen erlaubt ist.
  732. </para></listitem>
  733. </itemizedlist>
  734. <example id="zend.dojo.form.elements.numberTextBox.example">
  735. <title>Beispiel der Verwendung des NumberTextBox Dijit Elements</title>
  736. <programlisting role="php"><![CDATA[
  737. $form->addElement(
  738. 'NumberTextBox',
  739. 'elevation',
  740. array(
  741. 'label' => 'NumberTextBox',
  742. 'required' => true,
  743. 'invalidMessage' => 'Ungültige Eingabe.',
  744. 'places' => 0,
  745. 'constraints' => array(
  746. 'min' => -20000,
  747. 'max' => 20000,
  748. ),
  749. )
  750. );
  751. ]]></programlisting>
  752. </example>
  753. </sect3>
  754. <sect3 id="zend.dojo.form.elements.passwordTextBox">
  755. <title>PasswordTextBox</title>
  756. <para>
  757. PasswordTextBox ist einfach eine ValidationTextBox die an eine Passworteingabe gebunden ist;
  758. Ihre primäre Aufgabe ist es eine Dijit-bezogene Texteingabe für Passwörter zu erlauben
  759. die Client-seitige Prüfungen erlaubt.
  760. </para>
  761. <para>
  762. Intern wird NumberTextBox abgeleitet von
  763. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link> und
  764. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>; alle in diesen Klassen
  765. vorhandenen Methoden sind vorhanden.
  766. </para>
  767. <example id="zend.dojo.form.elements.passwordTextBox.example">
  768. <title>Beispiel für die Verwendung des PasswordTextBox Dijit Elements</title>
  769. <programlisting role="php"><![CDATA[
  770. $form->addElement(
  771. 'PasswordTextBox',
  772. 'password',
  773. array(
  774. 'label' => 'Passwort',
  775. 'required' => true,
  776. 'trim' => true,
  777. 'lowercase' => true,
  778. 'regExp' => '^[a-z0-9]{6,}$',
  779. 'invalidMessage' => 'Ungültiges Passwort; muß mindestens 6 '
  780. . 'alphanummerische Zeichen lang sein',
  781. )
  782. );
  783. ]]></programlisting>
  784. </example>
  785. </sect3>
  786. <sect3 id="zend.dojo.form.elements.radioButton">
  787. <title>RadioButton</title>
  788. <para>
  789. RadioButton umschließt ein standard Radio-Input Element um ein konsistentes Look and Feel mit
  790. den anderen Dojo Dijits zu bieten.
  791. </para>
  792. <para>
  793. RadioButton erweitert DijitMulti, welches es erlaubt Selectoptionen über die
  794. <code>setMultiOptions()</code> und <code>setMultiOption()</code> Methoden zu spezifizieren.
  795. </para>
  796. <para>
  797. Standardmäßig registriert dieses Element eine <code>InArray</code> Prüfung welche die
  798. Arrayschlüssel gegen registrierte Optionen prüft. Dieses Verhalten kann deaktiviert werden
  799. indem entweder <code>setRegisterInArrayValidator(false)</code> ausgerufen, oder ein false
  800. Wert an den Registrierungsschlüssel <code>registerInArrayValidator</code> übergeben wird.
  801. </para>
  802. <example id="zend.dojo.form.elements.radioButton.example">
  803. <title>Beispiel der Verwendung des RadioButton Dijit Elements</title>
  804. <programlisting role="php"><![CDATA[
  805. $form->addElement(
  806. 'RadioButton',
  807. 'foo',
  808. array(
  809. 'label' => 'RadioButton',
  810. 'multiOptions' => array(
  811. 'foo' => 'Foo',
  812. 'bar' => 'Bar',
  813. 'baz' => 'Baz',
  814. ),
  815. 'value' => 'bar',
  816. )
  817. );
  818. ]]></programlisting>
  819. </example>
  820. </sect3>
  821. <sect3 id="zend.dojo.form.elements.simpletextarea">
  822. <title>SimpleTextarea</title>
  823. <para>
  824. SimpleTextarea arbeitet primär wie ein Standard HTML Textarea. Trotzdem unterstützt es
  825. weder die rows noch die cols Einstellung. Stattdessen, sollte die Breite von Textarea
  826. durch die Verwendung von standard CSS Maßeinheiten definiert werden. Anders als Textarea
  827. wird er nicht automatisch wachsen
  828. </para>
  829. <example id="zend.dojo.form.elements.simpletextarea.example">
  830. <title>Beispiel der Verwendung des SimpleTextarea Dijit Elements</title>
  831. <programlisting role="php"><![CDATA[
  832. $form->addElement(
  833. 'SimpleTextarea',
  834. 'simpletextarea',
  835. array(
  836. 'label' => 'SimpleTextarea',
  837. 'required' => true,
  838. 'style' => 'width: 80em; height: 25em;',
  839. )
  840. );
  841. ]]></programlisting>
  842. </example>
  843. </sect3>
  844. <sect3 id="zend.dojo.form.elements.slider">
  845. <title>Abstraktes Slider Element</title>
  846. <para>
  847. Slider ist ein abstraktes Element welches abgeleitet ist von
  848. <link linkend="zend.dojo.form.elements.horizontalSlider">HorizontalSlider</link> und
  849. <link linkend="zend.dojo.form.elements.verticalSlider">VerticalSlider</link>. Es bietet
  850. eine Anzahl von üblichen Methoden für die Konfiguration von Slidern an, inklusive:
  851. </para>
  852. <itemizedlist>
  853. <listitem><para>
  854. <code>setClickSelect($flag)</code> und <code>getClickSelect()</code>: Setzt und gibt das
  855. Flag zurück das anzeigt ob das Klicken auf den Slider den Wert ändert oder nicht.
  856. </para></listitem>
  857. <listitem><para>
  858. <code>setIntermediateChanges($flag)</code> und <code>getIntermediateChanges()</code>:
  859. Setzt und gibt das Flag zurück das anzeigt ob das Dijit eine Benachrichtigung bei jedem
  860. Slider-Event schickt oder nicht.
  861. </para></listitem>
  862. <listitem><para>
  863. <code>setShowButtons($flag)</code> und <code>getShowButtons()</code>: Setzt und gibt das
  864. Flag zurück das anzeigt ob Buttons an den Enden angezeigt werden oder nicht; wenn ja, dann
  865. kann der Benutzer diese anklicken und damit den Wert des Sliders ändern.
  866. </para></listitem>
  867. <listitem><para>
  868. <code>setDiscreteValues($value)</code> und <code>getDiscreteValues()</code>: Setzt und gibt
  869. die Anzahl an diskreten Werte zurück die vom Slider repräsentiert werden.
  870. </para></listitem>
  871. <listitem><para>
  872. <code>setMaximum($value)</code> und <code>getMaximum()</code>: Setzt den maximalen Wert des
  873. Sliders.
  874. </para></listitem>
  875. <listitem><para>
  876. <code>setMinimum($value)</code> und <code>getMinimum()</code>: Setzt den minimalen Wert des
  877. Sliders.
  878. </para></listitem>
  879. <listitem><para>
  880. <code>setPageIncrement($value)</code> und <code>getPageIncrement()</code>: Setzt den Wert um den
  881. sich der Slider auf Tastaturereignisse ändert.
  882. </para></listitem>
  883. </itemizedlist>
  884. <para>
  885. Ein Beispiel der Verwendung wird mit jeder konkreten Klasse angegeben die diese Klasse erweitert.
  886. </para>
  887. </sect3>
  888. <sect3 id="zend.dojo.form.elements.submitButton">
  889. <title>SubmitButton</title>
  890. <para>
  891. Wärend es kein Dijit gibt das SubmitButton heißt, wurde dieses inkludiert um ein Button Dijit
  892. anzubieten das fähig ist ein Formular zu übertragen ohne das irgendeine zusätzliche
  893. Javascript Verknüpfung benötigt wird. Es funktioniert exakt wie das
  894. <link linkend="zend.dojo.form.elements.button">Button Dijit</link>.
  895. </para>
  896. <example id="zend.dojo.form.elements.submitButton.example">
  897. <title>Beispiel der Verwendung des SubmitButton Dijit Elements</title>
  898. <programlisting role="php"><![CDATA[
  899. $form->addElement(
  900. 'SubmitButton',
  901. 'foo',
  902. array(
  903. 'required' => false,
  904. 'ignore' => true,
  905. 'label' => 'Submit Button!',
  906. )
  907. );
  908. ]]></programlisting>
  909. </example>
  910. </sect3>
  911. <sect3 id="zend.dojo.form.elements.textBox">
  912. <title>TextBox</title>
  913. <para>
  914. TextBox wurde primär inkludiert um eine Text Eingabe anzubieten die das gleiche Look-and-Feel wie
  915. die anderen Dijits hat. Trotzdem enthält es einige Filter- und Prüfmöglichkeiten, die in den
  916. folgenden Methoden repräsentiert sind:
  917. </para>
  918. <itemizedlist>
  919. <listitem><para>
  920. <code>setLowercase($flag)</code> und <code>getLowercase()</code>: Setzt und gibt das
  921. Tag zurück das anzeigt ob die Eingabe auf Kleinschreibung (lowercase) geändert wird oder nicht.
  922. </para></listitem>
  923. <listitem><para>
  924. <code>setPropercase($flag)</code> und <code>getPropercase()</code>: Setzt und gibt das
  925. Tag zurück das anzeigt ob die Eingabe auf Proper Case geändert wird oder nicht.
  926. </para></listitem>
  927. <listitem><para>
  928. <code>setUppercase($flag)</code> und <code>getUppercase()</code>: Setzt und retourniert
  929. das Flag das anzeigt ob die Eingabe auf Großschreibung (UPPERCASE) geändert wird oder nicht.
  930. </para></listitem>
  931. <listitem><para>
  932. <code>setTrim($flag)</code> und <code>getTrim()</code>: Setzt und retourniert das Flag das
  933. anzeigt ob führende Leerzeichen entfernt werden oder nicht.
  934. </para></listitem>
  935. <listitem><para>
  936. <code>setMaxLength($length)</code> und <code>getMaxLength()</code>: Setzt und retourniert die
  937. maximale Länge der Eingabe.
  938. </para></listitem>
  939. </itemizedlist>
  940. <example id="zend.dojo.form.elements.textBox.example">
  941. <title>Beispiel der Verwendung des TextBox Dijit Elements</title>
  942. <programlisting role="php"><![CDATA[
  943. $form->addElement(
  944. 'TextBox',
  945. 'foo',
  946. array(
  947. 'value' => 'irgendein Text',
  948. 'label' => 'TextBox',
  949. 'trim' => true,
  950. 'propercase' => true,
  951. )
  952. );
  953. ]]></programlisting>
  954. </example>
  955. </sect3>
  956. <sect3 id="zend.dojo.form.elements.textarea">
  957. <title>Textarea</title>
  958. <para>
  959. Textarea funktioniert primär wie eine standard HTML Textarea. Trotzdem unterstützt es weder die
  960. Zeilen- noch die Spalteneinstellungen. Stattdessen sollte die Breite von Textarea durch Verwendung
  961. von CSS Maßeinheiten spezifiziert werden; Zeilen sollten komplett vermieden werden. Die
  962. Textarea wird dann vertikal wachsen wenn Text hinzugefügt wird.
  963. </para>
  964. <example id="zend.dojo.form.elements.textarea.example">
  965. <title>Beispiel der Verwendung des Textarea Dijit Elements</title>
  966. <programlisting role="php"><![CDATA[
  967. $form->addElement(
  968. 'Textarea',
  969. 'textarea',
  970. array(
  971. 'label' => 'Textarea',
  972. 'required' => true,
  973. 'style' => 'width: 200px;',
  974. )
  975. );
  976. ]]></programlisting>
  977. </example>
  978. </sect3>
  979. <sect3 id="zend.dojo.form.elements.timeTextBox">
  980. <title>TimeTextBox</title>
  981. <para>
  982. TimeTextBox ist eine Texteingabe die einen Drop-Down für die Auswahl einer Zeit bietet. Der
  983. Drop-Down kann so konfiguriert werden das ein bestimmtes Zeitfenster, mit speziellen
  984. Inkrementierungen, angezeigt wird.
  985. </para>
  986. <para>
  987. Intern wird die TimeTextBox von
  988. <link linkend="zend.dojo.form.elements.dateTextBox">DateTextBox</link>,
  989. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link> und
  990. <link linkend="zend.dojo.form.elements.textBox">TextBox</link> abgeleitet; alle vorhandenen
  991. Methoden dieser Klassen sind vorhanden. Zusätzlich können die folgenden Methoden verwendet
  992. werden um individuelle Abhängigkeiten einzustellen:
  993. </para>
  994. <itemizedlist>
  995. <listitem><para>
  996. <code>setTimePattern($pattern)</code> und <code>getTimePattern()</code>: Setzt und
  997. retourniert den <ulink url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">Unicode
  998. Zeitformat Pattern</ulink> für die Formatierung der Zeit.
  999. </para></listitem>
  1000. <listitem><para>
  1001. <code>setClickableIncrement($format)</code> und <code>getClickableIncrement()</code>:
  1002. Setzt den <ulink url="http://en.wikipedia.org/wiki/ISO_8601">ISO-8601</ulink> String der
  1003. die Anzahl repräsentiert mit dem jedes anklickbare Element der Zeitauswahl inkrementiert wird.
  1004. </para></listitem>
  1005. <listitem><para>
  1006. <code>setVisibleIncrement($format)</code> und <code>getVisibleIncrement()</code>: Definiert das
  1007. der Inkrement in der Zeitauswahl sichtbar ist; muß dem ISO-8601 Format entsprechen.
  1008. </para></listitem>
  1009. <listitem><para>
  1010. <code>setVisibleRange($format)</code> und <code>getVisibleRange()</code>: Setzt und retorniert
  1011. den Zeitbereich der in der Zeitauswahl zu jedem Zeitpunkt sichtbar ist; muß dem ISO-8601
  1012. Format entsprechen.
  1013. </para></listitem>
  1014. </itemizedlist>
  1015. <example id="zend.dojo.form.elements.timeTextBox.example">
  1016. <title>Beispiel der Verwendung des TimeTextBox Dijit Elements</title>
  1017. <para>
  1018. Das folgende erstellt eine TimeTextBox die 2 Stunden zugleich anzeigt und um 10 Minuten
  1019. inkrementiert.
  1020. </para>
  1021. <programlisting role="php"><![CDATA[
  1022. $form->addElement(
  1023. 'TimeTextBox',
  1024. 'foo',
  1025. array(
  1026. 'label' => 'TimeTextBox',
  1027. 'required' => true,
  1028. 'visibleRange' => 'T04:00:00',
  1029. 'visibleIncrement' => 'T00:10:00',
  1030. 'clickableIncrement' => 'T00:10:00',
  1031. )
  1032. );
  1033. ]]></programlisting>
  1034. </example>
  1035. </sect3>
  1036. <sect3 id="zend.dojo.form.elements.validationTextBox">
  1037. <title>ValidationTextBox</title>
  1038. <para>
  1039. ValidationTextBox bietet die Möglichkeit Prüfungen und Abhängigkeiten zu einer Texteingabe
  1040. hinzuzufügen. Intern ist Sie von <link linkend="zend.dojo.form.elements.textBox">TextBox</link>
  1041. abgeleitet, und fügt die folgenden Zugriffsmethoden und Mutatoren für die Manipulation der
  1042. Dijit Parameter hinzu:
  1043. </para>
  1044. <itemizedlist>
  1045. <listitem><para>
  1046. <code>setInvalidMessage($message)</code> und <code>getInvalidMessage()</code>: Setzt und
  1047. retourniert die Tooltipnachricht die angezeigt werden soll wenn der Wert nicht gültig ist.
  1048. </para></listitem>
  1049. <listitem><para>
  1050. <code>setPromptMessage($message)</code> und <code>getPromptMessage()</code>: Setzt und
  1051. retourniert die Tooltipnachricht die angezeigt werden soll wenn das Element verwendet wird.
  1052. </para></listitem>
  1053. <listitem><para>
  1054. <code>setRegExp($regexp)</code> und <code>getRegExp()</code>: Setzt und retourniert den
  1055. regulären Ausdruck der für die Prüfung des Elements verwendet wird. Der reguläre Ausdruck
  1056. benötigt keine Begrenzungen (anders als PHP's Funktionsfamilie preg*).
  1057. </para></listitem>
  1058. <listitem><para>
  1059. <code>setConstraint($key, $value)</code> und <code>getConstraint($key)</code>: Setzt und
  1060. retourniert zusätzliche Abhängigkeiten die für die Prüfung des Elements verwendet werden;
  1061. wird primär mit Unterklassen verwendet. Abhängigkeiten werden im 'constraints' Schlüssel der
  1062. Dijit Parameter abgespeichert.
  1063. </para></listitem>
  1064. <listitem><para>
  1065. <code>setConstraints(array $constraints)</code> und <code>getConstraints()</code>: Setzt und
  1066. retourniert individuelle Abhängigkeiten die bei der Prüfung eines Elements verwendet werden;
  1067. wird primär mit Unterklassen verwendet.
  1068. </para></listitem>
  1069. <listitem><para>
  1070. <code>hasConstraint($key)</code>: Testet ob eine angegebene Abhängigkeit existiert.
  1071. </para></listitem>
  1072. <listitem><para>
  1073. <code>removeConstraint($key)</code> und <code>clearConstraints()</code>: Entfernt eine
  1074. einzelne oder alle Abhängigkeiten des Elements.
  1075. </para></listitem>
  1076. </itemizedlist>
  1077. <example id="zend.dojo.form.elements.validationTextBox.example">
  1078. <title>Beispiel für die Verwendung des ValidationTextBox Dijit Elements</title>
  1079. <para>
  1080. Das folgende erstellt eine ValidationTextBox die einen einzelnen String benötigt der nur aus
  1081. Buchstaben besteht (z.B, keine Leerzeichen, die meisten Trennungen sind ungültig).
  1082. </para>
  1083. <programlisting role="php"><![CDATA[
  1084. $form->addElement(
  1085. 'ValidationTextBox',
  1086. 'foo',
  1087. array(
  1088. 'label' => 'ValidationTextBox',
  1089. 'required' => true,
  1090. 'regExp' => '[\w]+',
  1091. 'invalidMessage' => 'Ungültige Buchstaben.',
  1092. )
  1093. );
  1094. ]]></programlisting>
  1095. </example>
  1096. </sect3>
  1097. <sect3 id="zend.dojo.form.elements.verticalSlider">
  1098. <title>VerticalSlider</title>
  1099. <para>
  1100. VerticalSlider ist der Schwager von
  1101. <link linkend="zend.dojo.form.elements.horizontalSlider">HorizontalSlider</link>, und funktioniert
  1102. auf dem gleichen Weg wie dieses Element. Der einzige wirkliche Unterschied besteht darin, das die
  1103. 'top*' und 'bottom*' Methoden mit 'left*' und 'right*' ersetzt wurden, und statt
  1104. HorizontalRule und HorizontalRuleLabels jetzt VerticalRule und VerticalRuleLabels verwendet
  1105. werden sollten.
  1106. </para>
  1107. <example id="zend.dojo.form.elements.verticalSlider.example">
  1108. <title>Beispiel der Verwendung des VerticalSlider Dijit Elements</title>
  1109. <para>
  1110. Das folgende erstellt eine Vertikale Schieberauswahl mit Ganzzahlen die von -10 bis 10
  1111. reichen. Die linke Seite hat Label bei den 20%, 40%, 60% und 80% Marken. Die rechte Seite
  1112. hat Regeln bei 0, 50% und 100%. Jedesmal wenn der Wert verändert wird, wird auch das
  1113. versteckte Element, das den Wert speichert, aktualisiert.
  1114. </para>
  1115. <programlisting role="php"><![CDATA[
  1116. $form->addElement(
  1117. 'VerticalSlider',
  1118. 'foo',
  1119. array(
  1120. 'label' => 'VerticalSlider',
  1121. 'value' => 5,
  1122. 'style' => 'height: 200px; width: 3em;',
  1123. 'minimum' => -10,
  1124. 'maximum' => 10,
  1125. 'discreteValues' => 11,
  1126. 'intermediateChanges' => true,
  1127. 'showButtons' => true,
  1128. 'leftDecorationDijit' => 'VerticalRuleLabels',
  1129. 'leftDecorationContainer' => 'leftContainer',
  1130. 'leftDecorationLabels' => array(
  1131. ' ',
  1132. '20%',
  1133. '40%',
  1134. '60%',
  1135. '80%',
  1136. ' ',
  1137. ),
  1138. 'rightDecorationDijit' => 'VerticalRule',
  1139. 'rightDecorationContainer' => 'rightContainer',
  1140. 'rightDecorationLabels' => array(
  1141. '0%',
  1142. '50%',
  1143. '100%',
  1144. ),
  1145. )
  1146. );
  1147. ]]></programlisting>
  1148. </example>
  1149. </sect3>
  1150. </sect2>
  1151. <!--
  1152. vim:se ts=4 sw=4 et:
  1153. -->