Zend_Dojo-Form-Elements.xml 66 KB

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