Zend_Dojo-Form-Elements.xml 56 KB

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