Zend_Dojo-Form-Elements.xml 61 KB

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