Zend_Dojo-Form-Elements.xml 60 KB

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