Zend_Dojo-Form-Elements.xml 73 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 19143 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.dojo.form.elements">
  5. <title>Elementos de Formularios Dijit-Specific</title>
  6. <para>
  7. Cada formulario dijit para el que se provee un ayudante tiene un
  8. elemento correspondiente
  9. <classname>Zend_Form</classname>
  10. . Todos ellos
  11. tienen los siguientes métodos disponibles para manipular los parámetros
  12. dijit:
  13. </para>
  14. <itemizedlist>
  15. <listitem>
  16. <para>
  17. <methodname>setDijitParam($key, $value)</methodname>
  18. : establecer
  19. un único parámetro dijit. Si el parámetro dijit ya existe, se
  20. borrará y
  21. se reemplazará por el nuevo.
  22. </para>
  23. </listitem>
  24. <listitem>
  25. <para>
  26. <methodname>setDijitParams(array $params)</methodname>
  27. :
  28. establecer varios parámetros dijit a la vez. Cualquiera de los
  29. parámetros pasados
  30. que concuerden con los ya presentes se
  31. sobreescribirán.
  32. </para>
  33. </listitem>
  34. <listitem>
  35. <para>
  36. <methodname>hasDijitParam($key)</methodname>
  37. : si un determinado
  38. parámetro dijit está definido y presente, devolverá TRUE, de lo
  39. contrario devolverá FALSE.
  40. </para>
  41. </listitem>
  42. <listitem>
  43. <para>
  44. <methodname>getDijitParam($key)</methodname>
  45. : recupera el
  46. parámetro dijit. Si no está disponible, se devuelve un valor
  47. null.
  48. </para>
  49. </listitem>
  50. <listitem>
  51. <para>
  52. <methodname>getDijitParams()</methodname>
  53. : recupera todos los
  54. parámetros dijit.
  55. </para>
  56. </listitem>
  57. <listitem>
  58. <para>
  59. <methodname>removeDijitParam($key)</methodname>
  60. : elimina el
  61. parámetro dijit dado.
  62. </para>
  63. </listitem>
  64. <listitem>
  65. <para>
  66. <methodname>clearDijitParams()</methodname>
  67. : borra todos los
  68. parámetros dijit actualmente definidos.
  69. </para>
  70. </listitem>
  71. </itemizedlist>
  72. <para>
  73. Los parámetros Dijit se almacenan en la propiedad pública
  74. <methodname>dijitParams</methodname>
  75. . Así, puede habilitar dijit
  76. para un elemento de un formulario existente simplemente
  77. estableciendo
  78. esta propiedad en el elemento; sencillamante no tendrá los accessors
  79. anteriores
  80. a fin de facilitar la manipulación de parámetros.
  81. </para>
  82. <para>Además, los elementos específicos de dijit implementan una lista
  83. diferente de decoradores,
  84. correspondientes a lo siguiente:</para>
  85. <programlisting language="php"><![CDATA[
  86. $element->addDecorator('DijitElement')
  87. ->addDecorator('Errors')
  88. ->addDecorator('HtmlTag', array('tag' => 'dd'))
  89. ->addDecorator('Label', array('tag' => 'dt'));
  90. ]]></programlisting>
  91. <para>En efecto, el decorador DijitElement es utilizado en lugar del
  92. decorador standard
  93. ViewHelper.</para>
  94. <para>Finalmente, el elemento base Dijit asegura que el path del ayudante
  95. de vista de Dojo se
  96. establezca en la vista.</para>
  97. <para>
  98. Una variante de DijitElement, DijitMulti, ofrece la funcionalidad del
  99. elemento abstracto del
  100. formulario
  101. <methodname>Multi</methodname>
  102. ,
  103. permitiendo al desarrollador especificar 'multiOptions' -- típicamente
  104. opciones "select" u
  105. opciones de "radio".
  106. </para>
  107. <para>Los siguientes elementos dijit están incluídos en la distribución
  108. standard de Zend
  109. Framework.</para>
  110. <sect3 id="zend.dojo.form.elements.button">
  111. <title>Button</title>
  112. <para>
  113. Si bien no derivan del elemento standard Button
  114. <link linkend="zend.form.standardElements.button"/>
  115. , implementan la
  116. misma funcionalidad, y pueden ser utilizados como una sustitución de
  117. drop-in, como se expone en la siguiente funcionalidad:
  118. </para>
  119. <itemizedlist>
  120. <listitem>
  121. <para>
  122. <methodname>getLabel()</methodname>
  123. utilizará el nombre del
  124. elemento como el rótulo del botón si no se ha provisto el
  125. nombre. Además, traducirá el nombre si un adaptador de
  126. traducción encuentra
  127. concordancia con un mensaje disponible.
  128. </para>
  129. </listitem>
  130. <listitem>
  131. <para>
  132. <methodname>isChecked()</methodname>
  133. determina si el valor
  134. enviado coincide con la etiqueta; si así fuera, devuelve
  135. true. Esto es útil para determinar qué botón se utilizó
  136. cuando se envió un
  137. formulario.
  138. </para>
  139. </listitem>
  140. </itemizedlist>
  141. <para>
  142. Además, sólo los decoradores
  143. <methodname>DijitElement</methodname>
  144. y
  145. <methodname>DtDdWrapper</methodname>
  146. se utilizan para elementos
  147. Button.
  148. </para>
  149. <example id="zend.dojo.form.elements.button.example">
  150. <title>Ejemplo de Uso del Elemento Button dijit</title>
  151. <programlisting language="php"><![CDATA[
  152. $form->addElement(
  153. 'Button',
  154. 'foo',
  155. array(
  156. 'label' => 'Button Label',
  157. )
  158. );
  159. ]]></programlisting>
  160. </example>
  161. </sect3>
  162. <sect3 id="zend.dojo.form.elements.checkBox">
  163. <title>CheckBox</title>
  164. <para>
  165. Si bien no derivan del elemento standard Checkbox
  166. <link linkend="zend.form.standardElements.checkbox"/>
  167. , aplican la
  168. misma funcionalidad. Esto significa exponer los siguientes métodos:
  169. </para>
  170. <itemizedlist>
  171. <listitem>
  172. <para>
  173. <methodname>setCheckedValue($value)</methodname>
  174. : establecer
  175. el valor a usar cuando el elemento está marcado (checked).
  176. </para>
  177. </listitem>
  178. <listitem>
  179. <para>
  180. <methodname>getCheckedValue()</methodname>
  181. : obtener el valor
  182. del item a usar cuando está comprobado (checked).
  183. </para>
  184. </listitem>
  185. <listitem>
  186. <para>
  187. <methodname>setUncheckedValue($value)</methodname>
  188. :
  189. establecer el valor del item a utilizar cuando está
  190. desactivado (unchecked).
  191. </para>
  192. </listitem>
  193. <listitem>
  194. <para>
  195. <methodname>getUncheckedValue()</methodname>
  196. : obtener el
  197. valor del item a utilizar cuando está desactivado
  198. (unchecked).
  199. </para>
  200. </listitem>
  201. <listitem>
  202. <para>
  203. <methodname>setChecked($flag)</methodname>
  204. : marcar el
  205. elemento como activado (checked) o desactivado (unchecked).
  206. </para>
  207. </listitem>
  208. <listitem>
  209. <para>
  210. <methodname>isChecked()</methodname>
  211. : determina si el
  212. elemento está activo (checked) actualmente.
  213. </para>
  214. </listitem>
  215. </itemizedlist>
  216. <example id="zend.dojo.form.elements.checkBox.example">
  217. <title>Ejemplo de Uso de Elementos CheckBox dijit</title>
  218. <programlisting language="php"><![CDATA[
  219. $form->addElement(
  220. 'CheckBox',
  221. 'foo',
  222. array(
  223. 'label' => 'A check box',
  224. 'checkedValue' => 'foo',
  225. 'uncheckedValue' => 'bar',
  226. 'checked' => true,
  227. )
  228. );
  229. ]]></programlisting>
  230. </example>
  231. </sect3>
  232. <sect3 id="zend.dojo.form.elements.comboBox">
  233. <title>ComboBox y FilteringSelect</title>
  234. <para>
  235. Como se señaló en la documentación del ayudante de vista de
  236. ComboBox dijit
  237. <link linkend="zend.dojo.view.dijit.form"/>
  238. , los
  239. ComboBoxes son un híbrido entre "select" y "text input", permitiendo
  240. el
  241. autocompletado y la capacidad para especificar una alternativa a
  242. las opciones provistas.
  243. FilteringSelects es lo mismo, pero no
  244. permite entradas arbitrarias.
  245. </para>
  246. <note>
  247. <title>ComboBoxes que Devuelven los Valores de los Labels</title>
  248. <para>
  249. Los ComboBoxes devuelven los valores de los rótulos (labels),
  250. y no los valores de
  251. opción, que pueden llevar a una
  252. desvinculación de las expectativas. Por esta razón,
  253. los
  254. ComboBoxes no auto-registran un validador
  255. <methodname>InArray</methodname>
  256. (aunque los
  257. FilteringSelects si lo hacen).
  258. </para>
  259. </note>
  260. <para>
  261. Los elementos de forms de ComboBox y FilteringSelect proporcionan
  262. accessors y mutators
  263. para examinar y establecer las opciones
  264. seleccionadas, así como para especificar un
  265. datastore dojo.data (si
  266. se usa). Se extienden desde DijitMulti, que le permite
  267. especificar
  268. opciones de selección vía los métodos
  269. <methodname>setMultiOptions()</methodname>
  270. y
  271. <methodname>setMultiOption()</methodname>
  272. . Además, están
  273. disponibles los siguientes métodos:
  274. </para>
  275. <itemizedlist>
  276. <listitem>
  277. <para>
  278. <methodname>getStoreInfo()</methodname>
  279. : Obtener del
  280. datastore toda la información establecida actualmente.
  281. Devuelve un
  282. array vacío si no hay datos actualmente
  283. establecidos.
  284. </para>
  285. </listitem>
  286. <listitem>
  287. <para>
  288. <methodname>setStoreId($identifier)</methodname>
  289. : establece
  290. la variable del identificador (generalmente referenciado por
  291. el
  292. atributo 'jsId' en Dojo). Este debe ser un nombre de
  293. variable válido para
  294. javascript.
  295. </para>
  296. </listitem>
  297. <listitem>
  298. <para>
  299. <methodname>getStoreId()</methodname>
  300. : recupera el nombre de
  301. la variable del identificador del datastore.
  302. </para>
  303. </listitem>
  304. <listitem>
  305. <para>
  306. <methodname>setStoreType($dojoType)</methodname>
  307. : establece
  308. la clase del datastore a usar; por ejemplo,
  309. "dojo.data.ItemFileReadStore".
  310. </para>
  311. </listitem>
  312. <listitem>
  313. <para>
  314. <methodname>getStoreType()</methodname>
  315. : obtiene la clase
  316. del datastore a usar.
  317. </para>
  318. </listitem>
  319. <listitem>
  320. <para>
  321. <methodname>setStoreParams(array $params)</methodname>
  322. :
  323. establece cualquiera de los parámetros utilizados para
  324. configurar el objeto
  325. datastore. Como ejemplo, el datastore
  326. dojo.data.ItemFileReadStore esperaría un
  327. parámetro 'url'
  328. apuntando a un lugar que devolvería el objeto dojo.data.
  329. </para>
  330. </listitem>
  331. <listitem>
  332. <para>
  333. <methodname>getStoreParams()</methodname>
  334. : obtiene
  335. cualquiera de los parámetros del datastore actualmente
  336. establecido; si
  337. no hay ninguno, se devuelve un array vacío.
  338. </para>
  339. </listitem>
  340. <listitem>
  341. <para>
  342. <methodname>setAutocomplete($flag)</methodname>
  343. : indica si
  344. será usado o no el elemento seleccionado una vez que el
  345. usuario deje
  346. el elemento.
  347. </para>
  348. </listitem>
  349. <listitem>
  350. <para>
  351. <methodname>getAutocomplete()</methodname>
  352. : obtener el valor
  353. del flag de autocomplete.
  354. </para>
  355. </listitem>
  356. </itemizedlist>
  357. <para>
  358. Por defecto, si no hay ningún dojo.data registrado con el
  359. elemento, este elemento
  360. registra un validador
  361. <methodname>InArray</methodname>
  362. que valida contra las claves
  363. del array de las opciones registradas. Puede desactivar este
  364. comportamiento ya sea llamando a
  365. <methodname>setRegisterInArrayValidator(false)</methodname>
  366. , o
  367. pasando un valor false a la clave de configuración
  368. <methodname>registerInArrayValidator</methodname>
  369. .
  370. </para>
  371. <example id="zend.dojo.form.elements.comboBox.selectExample">
  372. <title>Elemento de ComboBox dijit Usado como select input</title>
  373. <programlisting language="php"><![CDATA[
  374. $form->addElement(
  375. 'ComboBox',
  376. 'foo',
  377. array(
  378. 'label' => 'ComboBox (select)',
  379. 'value' => 'blue',
  380. 'autocomplete' => false,
  381. 'multiOptions' => array(
  382. 'red' => 'Rouge',
  383. 'blue' => 'Bleu',
  384. 'white' => 'Blanc',
  385. 'orange' => 'Orange',
  386. 'black' => 'Noir',
  387. 'green' => 'Vert',
  388. ),
  389. )
  390. );
  391. ]]></programlisting>
  392. </example>
  393. <example id="zend.dojo.form.elements.comboBox.datastoreExample">
  394. <title>Elemento de ComboBox dijit Usado con datastore</title>
  395. <programlisting language="php"><![CDATA[
  396. $form->addElement(
  397. 'ComboBox',
  398. 'foo',
  399. array(
  400. 'label' => 'ComboBox (datastore)',
  401. 'storeId' => 'stateStore',
  402. 'storeType' => 'dojo.data.ItemFileReadStore',
  403. 'storeParams' => array(
  404. 'url' => '/js/states.txt',
  405. ),
  406. 'dijitParams' => array(
  407. 'searchAttr' => 'name',
  408. ),
  409. )
  410. );
  411. ]]></programlisting>
  412. </example>
  413. <para>
  414. Los ejemplos anteriores también podrían utilizar
  415. <methodname>FilteringSelect</methodname>
  416. en vez de
  417. <methodname>ComboBox</methodname>
  418. .
  419. </para>
  420. </sect3>
  421. <sect3 id="zend.dojo.form.elements.currencyTextBox">
  422. <title>CurrencyTextBox</title>
  423. <para>El CurrencyTextBox principalmente brinda apoyo a la entrada de
  424. moneda. La moneda puede
  425. ser localizada, y puede manejar tanto a
  426. valores fraccionarios como no fraccionarios.</para>
  427. <para>
  428. Internamente, CurrencyTextBox deriva de
  429. <link linkend="zend.dojo.form.elements.numberTextBox">NumberTextBox</link>
  430. ,
  431. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
  432. , y
  433. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>
  434. ; todos
  435. los métodos disponibles a esas clases están disponibles. Además,
  436. pueden utilizarse
  437. los siguientes métodos restrictivos:
  438. </para>
  439. <itemizedlist>
  440. <listitem>
  441. <para>
  442. <methodname>setCurrency($currency)</methodname>
  443. : establecer
  444. el tipo de moneda a usar; y debe seguir la especificación
  445. <ulink url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink>
  446. </para>
  447. </listitem>
  448. <listitem>
  449. <para>
  450. <methodname>getCurrency()</methodname>
  451. : recupera el tipo de
  452. moneda actual.
  453. </para>
  454. </listitem>
  455. <listitem>
  456. <para>
  457. <methodname>setSymbol($symbol)</methodname>
  458. : establece el
  459. símbolo de 3 letras
  460. <ulink url="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</ulink>
  461. de la moneda a usar.
  462. </para>
  463. </listitem>
  464. <listitem>
  465. <para>
  466. <methodname>getSymbol()</methodname>
  467. : recupera el símbolo de
  468. la moneda actual.
  469. </para>
  470. </listitem>
  471. <listitem>
  472. <para>
  473. <methodname>setFractional($flag)</methodname>
  474. : establece si
  475. la moneda debería permitir o no valores fraccionarios.
  476. </para>
  477. </listitem>
  478. <listitem>
  479. <para>
  480. <methodname>getFractional()</methodname>
  481. : recupera el status
  482. del flag fraccional.
  483. </para>
  484. </listitem>
  485. </itemizedlist>
  486. <example id="zend.dojo.form.elements.currencyTextBox.example">
  487. <title>Ejemplo de Uso del Elemento CurrencyTextBox dijit</title>
  488. <programlisting language="php"><![CDATA[
  489. $form->addElement(
  490. 'CurrencyTextBox',
  491. 'foo',
  492. array(
  493. 'label' => 'Currency:',
  494. 'required' => true,
  495. 'currency' => 'USD',
  496. 'invalidMessage' => 'Invalid amount. ' .
  497. 'Include dollar sign, commas, and cents.',
  498. 'fractional' => false,
  499. )
  500. );
  501. ]]></programlisting>
  502. </example>
  503. </sect3>
  504. <sect3 id="zend.dojo.form.elements.dateTextBox">
  505. <title>DateTextBox</title>
  506. <para>DateTextBox establece un calendario desplegable (drop-down) para
  507. seleccionar una fecha,
  508. así como validación y formateo de fechas del
  509. lado del clente.</para>
  510. <para>
  511. Internamente, DateTextBox deriva de
  512. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
  513. y
  514. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>
  515. ; todos
  516. los métodos disponibles a esas clases están disponibles. Además, los
  517. siguientes
  518. métodos pueden utilizarse para establecer restricciones
  519. individuales:
  520. </para>
  521. <itemizedlist>
  522. <listitem>
  523. <para>
  524. <methodname>setAmPm($flag)</methodname>
  525. y
  526. <methodname>getAmPm()</methodname>
  527. : Cuándo usar o no los
  528. strings AM/PM en los fortmatos de horas.
  529. </para>
  530. </listitem>
  531. <listitem>
  532. <para>
  533. <methodname>setStrict($flag)</methodname>
  534. y
  535. <methodname>getStrict()</methodname>
  536. : Cuándo usar o no
  537. el matching para una expresión regular estricta al validar
  538. la
  539. entrada. Si es falso, que es el valor por defecto, será
  540. indulgente sobre espacios
  541. en blanco y algunas abreviaturas.
  542. </para>
  543. </listitem>
  544. <listitem>
  545. <para>
  546. <methodname>setLocale($locale)</methodname>
  547. y
  548. <methodname>getLocale()</methodname>
  549. : Establece y
  550. recupera la localidad a utilizar con este elemento
  551. específico.
  552. </para>
  553. </listitem>
  554. <listitem>
  555. <para>
  556. <methodname>setDatePattern($pattern)</methodname>
  557. y
  558. <methodname>getDatePattern()</methodname>
  559. : provee y
  560. recupera el
  561. <ulink url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">
  562. patrón de formato de fechas unicode</ulink>
  563. para el
  564. formateo de fechas.
  565. </para>
  566. </listitem>
  567. <listitem>
  568. <para>
  569. <methodname>setFormatLength($formatLength)</methodname>
  570. y
  571. <methodname>getFormatLength()</methodname>
  572. : proporciona
  573. y recupera la longitud del tipo de formato a usar; debe ser
  574. uno de
  575. los siguientes: "long", "short", "medium" o "full".
  576. </para>
  577. </listitem>
  578. <listitem>
  579. <para>
  580. <methodname>setSelector($selector)</methodname>
  581. y
  582. <methodname>getSelector()</methodname>
  583. : proporciona y
  584. recupera el estilo del selector; debe ser "date" o "time".
  585. </para>
  586. </listitem>
  587. </itemizedlist>
  588. <example id="zend.dojo.form.elements.dateTextBox.example">
  589. <title>Ejemplo de Uso del Elemento DateTextBox dijit</title>
  590. <programlisting language="php"><![CDATA[
  591. $form->addElement(
  592. 'DateTextBox',
  593. 'foo',
  594. array(
  595. 'label' => 'Date:',
  596. 'required' => true,
  597. 'invalidMessage' => 'Invalid date specified.',
  598. 'formatLength' => 'long',
  599. )
  600. );
  601. ]]></programlisting>
  602. </example>
  603. </sect3>
  604. <sect3 id="zend.dojo.form.elements.editor">
  605. <title>Editor</title>
  606. <para>
  607. Editor proporciona un editor WYSIWYG que puede ser utilizado
  608. tanto para crear como para
  609. editar contenidos
  610. <acronym>HTML</acronym>
  611. ricos.
  612. dijit.Editor es pluggable y podrá ampliarse con plugins
  613. personalizados si lo desea;
  614. para más detalles vea en
  615. <ulink
  616. url="http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/advanced-editing-and-display/editor-rich-text"
  617. > la documentación de dijit.Editor</ulink>
  618. .
  619. </para>
  620. <para>El elemento form de Editor proporciona un número de accessors y
  621. mutators para manipular
  622. diversos parámetros dijit, tal como sigue:</para>
  623. <itemizedlist>
  624. <listitem>
  625. <para>
  626. <emphasis>captureEvents</emphasis>
  627. son eventos que se
  628. conectan al área de edición en si. Los siguientes accessors
  629. y
  630. mutators están disponibles para manipular la captura de
  631. eventos:
  632. </para>
  633. <itemizedlist>
  634. <listitem>
  635. <para>
  636. <methodname>addCaptureEvent($event)</methodname>
  637. </para>
  638. </listitem>
  639. <listitem>
  640. <para>
  641. <methodname>addCaptureEvents(array
  642. $events)</methodname>
  643. </para>
  644. </listitem>
  645. <listitem>
  646. <para>
  647. <methodname>setCaptureEvents(array
  648. $events)</methodname>
  649. </para>
  650. </listitem>
  651. <listitem>
  652. <para>
  653. <methodname>getCaptureEvents()</methodname>
  654. </para>
  655. </listitem>
  656. <listitem>
  657. <para>
  658. <methodname>hasCaptureEvent($event)</methodname>
  659. </para>
  660. </listitem>
  661. <listitem>
  662. <para>
  663. <methodname>removeCaptureEvent($event)</methodname>
  664. </para>
  665. </listitem>
  666. <listitem>
  667. <para>
  668. <methodname>clearCaptureEvents()</methodname>
  669. </para>
  670. </listitem>
  671. </itemizedlist>
  672. </listitem>
  673. <listitem>
  674. <para>
  675. <emphasis>events</emphasis>
  676. son eventos DOM estándar, como
  677. onClick, onKeyup, etc. Los siguientes accessors y
  678. mutators
  679. están disponibles para manipular eventos:
  680. </para>
  681. <itemizedlist>
  682. <listitem>
  683. <para>
  684. <methodname>addEvent($event)</methodname>
  685. </para>
  686. </listitem>
  687. <listitem>
  688. <para>
  689. <methodname>addEvents(array $events)</methodname>
  690. </para>
  691. </listitem>
  692. <listitem>
  693. <para>
  694. <methodname>setEvents(array $events)</methodname>
  695. </para>
  696. </listitem>
  697. <listitem>
  698. <para>
  699. <methodname>getEvents()</methodname>
  700. </para>
  701. </listitem>
  702. <listitem>
  703. <para>
  704. <methodname>hasEvent($event)</methodname>
  705. </para>
  706. </listitem>
  707. <listitem>
  708. <para>
  709. <methodname>removeEvent($event)</methodname>
  710. </para>
  711. </listitem>
  712. <listitem>
  713. <para>
  714. <methodname>clearEvents()</methodname>
  715. </para>
  716. </listitem>
  717. </itemizedlist>
  718. </listitem>
  719. <listitem>
  720. <para>
  721. <emphasis>plugins</emphasis>
  722. añaden funcionalidad al Editor
  723. -- herramientas adicionales para la barra de
  724. herramientas,
  725. estilos adicionales a permitir, etc. Los siguientes
  726. accessors y
  727. mutators están disponibles para manipular
  728. plugins:
  729. </para>
  730. <itemizedlist>
  731. <listitem>
  732. <para>
  733. <methodname>addPlugin($plugin)</methodname>
  734. </para>
  735. </listitem>
  736. <listitem>
  737. <para>
  738. <methodname>addPlugins(array $plugins)</methodname>
  739. </para>
  740. </listitem>
  741. <listitem>
  742. <para>
  743. <methodname>setPlugins(array $plugins)</methodname>
  744. </para>
  745. </listitem>
  746. <listitem>
  747. <para>
  748. <methodname>getPlugins()</methodname>
  749. </para>
  750. </listitem>
  751. <listitem>
  752. <para>
  753. <methodname>hasPlugin($plugin)</methodname>
  754. </para>
  755. </listitem>
  756. <listitem>
  757. <para>
  758. <methodname>removePlugin($plugin)</methodname>
  759. </para>
  760. </listitem>
  761. <listitem>
  762. <para>
  763. <methodname>clearPlugins()</methodname>
  764. </para>
  765. </listitem>
  766. </itemizedlist>
  767. </listitem>
  768. <listitem>
  769. <para>
  770. <emphasis>editActionInterval</emphasis>
  771. se utiliza para
  772. agrupar eventos para deshacer operaciones. Por defecto, este
  773. valor es de 3 segundos. El método
  774. <methodname>setEditActionInterval($interval)</methodname>
  775. puede ser usado para establecer el valor, mientras que
  776. <methodname>getEditActionInterval()</methodname>
  777. lo
  778. recuperará.
  779. </para>
  780. </listitem>
  781. <listitem>
  782. <para>
  783. <emphasis>focusOnLoad</emphasis>
  784. se utiliza para determinar
  785. si este editor en particular recibirá atención cuando
  786. la
  787. página se haya cargado. Por defecto, esto es falso. El
  788. método
  789. <methodname>setFocusOnLoad($flag)</methodname>
  790. puede
  791. usarse para establecer el valor, mientras que
  792. <methodname>getFocusOnLoad()</methodname>
  793. lo recuperará.
  794. </para>
  795. </listitem>
  796. <listitem>
  797. <para>
  798. <emphasis>height</emphasis>
  799. especifica la altura del editor;
  800. por defecto, es de 300px. El método
  801. <methodname>setHeight($height)</methodname>
  802. puede ser
  803. utilizado para establecer el valor, mientras que
  804. <methodname>getHeight()</methodname>
  805. lo recupera.
  806. </para>
  807. </listitem>
  808. <listitem>
  809. <para>
  810. <emphasis>inheritWidth</emphasis>
  811. se utiliza para determinar
  812. si el editor utilizará el ancho del contenedor padre o
  813. simplemente toma por defecto el 100% del ancho. Por defecto,
  814. esto es falso (es
  815. decir, llenará el ancho de la ventana). El
  816. método
  817. <methodname>setInheritWidth($flag)</methodname>
  818. puede
  819. ser utilizado para establecer el valor, mientras que
  820. <methodname>getInheritWidth()</methodname>
  821. lo
  822. recuperará.
  823. </para>
  824. </listitem>
  825. <listitem>
  826. <para>
  827. <emphasis>minHeight</emphasis>
  828. indica la altura mínima del
  829. editor; por defecto, es de 1em. El método
  830. <methodname>setMinHeight($height)</methodname>
  831. puede ser
  832. utilizado para establecer el valor, mientras que
  833. <methodname>getMinHeight()</methodname>
  834. lo recuperará.
  835. </para>
  836. </listitem>
  837. <listitem>
  838. <para>
  839. <emphasis>styleSheets</emphasis>
  840. indica qué otras hojas de
  841. estilo
  842. <acronym>CSS</acronym>
  843. deberían ser utilizadas para incidir sobre la
  844. pantalla del Editor. Por defecto,
  845. ninguna está registrada, y
  846. hereda la página de estilos. Los siguientes accessors
  847. y
  848. mutators están disponibles para manipular al editor de hojas
  849. de estilo
  850. (stylesheets):
  851. </para>
  852. <itemizedlist>
  853. <listitem>
  854. <para>
  855. <methodname>addStyleSheet($styleSheet)</methodname>
  856. </para>
  857. </listitem>
  858. <listitem>
  859. <para>
  860. <methodname>addStyleSheets(array
  861. $styleSheets)</methodname>
  862. </para>
  863. </listitem>
  864. <listitem>
  865. <para>
  866. <methodname>setStyleSheets(array
  867. $styleSheets)</methodname>
  868. </para>
  869. </listitem>
  870. <listitem>
  871. <para>
  872. <methodname>getStyleSheets()</methodname>
  873. </para>
  874. </listitem>
  875. <listitem>
  876. <para>
  877. <methodname>hasStyleSheet($styleSheet)</methodname>
  878. </para>
  879. </listitem>
  880. <listitem>
  881. <para>
  882. <methodname>removeStyleSheet($styleSheet)</methodname>
  883. </para>
  884. </listitem>
  885. <listitem>
  886. <para>
  887. <methodname>clearStyleSheets()</methodname>
  888. </para>
  889. </listitem>
  890. </itemizedlist>
  891. </listitem>
  892. </itemizedlist>
  893. <example id="zend.dojo.form.elements.editor.example">
  894. <title>Ejemplo de Uso del Elemento Editor dijit</title>
  895. <programlisting language="php"><![CDATA[
  896. $form->addElement('editor', 'content', array(
  897. 'plugins' => array('undo', '|', 'bold', 'italic'),
  898. 'editActionInterval' => 2,
  899. 'focusOnLoad' => true,
  900. 'height' => '250px',
  901. 'inheritWidth' => true,
  902. 'styleSheets' => array('/js/custom/editor.css'),
  903. ));
  904. ]]></programlisting>
  905. </example>
  906. <note>
  907. <title>Editor Dijit uses div by default</title>
  908. <para>
  909. The Editor dijit uses an
  910. <acronym>HTML</acronym>
  911. <acronym>DIV</acronym>
  912. by default.
  913. The
  914. <classname>dijit._editor.RichText</classname>
  915. documentation indicates that
  916. having it built on an
  917. <acronym>HTML</acronym>
  918. <acronym>TEXTAREA</acronym>
  919. can potentially have security
  920. implications.
  921. </para>
  922. <para>
  923. That said, there may be times when you want an Editor widget that can gracefully
  924. degrade to a
  925. <acronym>TEXTAREA</acronym>
  926. . In such situations, you can do so by setting the
  927. <varname>degrade</varname>
  928. property to
  929. <constant>true</constant>
  930. :
  931. </para>
  932. <programlisting language="php"><![CDATA[
  933. // At instantiation:
  934. $editor = new Zend_Dojo_Form_Element_Editor('foo', array(
  935. 'degrade' => true,
  936. ));
  937. // Construction via the form:
  938. $form->addElement('editor', 'content', array(
  939. 'degrade' => true,
  940. ));
  941. // Or after instantiation:
  942. $editor->degrade = true;
  943. ]]></programlisting>
  944. </note>
  945. </sect3>
  946. <sect3 id="zend.dojo.form.elements.horizontalSlider">
  947. <title>HorizontalSlider</title>
  948. <para>
  949. HorizontalSlider proporciona un widget deslizador de UI para
  950. seleccionar un valor
  951. numérico dentro de un rango.
  952. Internamente, establece el valor de un elemento oculto que
  953. es
  954. enviado por el formulario.
  955. </para>
  956. <para>
  957. HorizontalSlider proviene del elemento abstracto
  958. <link linkend="zend.dojo.form.elements.slider">Slider dijit</link>
  959. .
  960. Además, tiene una variedad de métodos de ajuste y configuración
  961. de reglas deslizantes y
  962. etiquetas para esas reglas.
  963. </para>
  964. <itemizedlist>
  965. <listitem>
  966. <para>
  967. <methodname>setTopDecorationDijit($dijit)</methodname>
  968. y
  969. <methodname>setBottomDecorationDijit($dijit)</methodname>
  970. : establecen el
  971. nombre de la dijit a utilizar bien para la parte superior o
  972. inferior de la barra deslizante.
  973. Esto no debería incluir el prefijo
  974. "dijit.form.",
  975. sino sólo el último nombre -- "HorizontalRule" o
  976. "HorizontalRuleLabels".
  977. </para>
  978. </listitem>
  979. <listitem>
  980. <para>
  981. <methodname>setTopDecorationContainer($container)</methodname>
  982. y
  983. <methodname>setBottomDecorationContainer($container)</methodname>
  984. :
  985. especifican el nombre a utilizar para el elemento
  986. contenedor de las reglas; por
  987. ejemplo 'Toprule',
  988. 'topContainer', etc.
  989. </para>
  990. </listitem>
  991. <listitem>
  992. <para>
  993. <methodname>setTopDecorationLabels(array $labels)</methodname>
  994. y
  995. <methodname>setBottomDecorationLabels(array $labels)</methodname>
  996. :
  997. establecen las etiquetas a usar por uno de los tipos
  998. RuleLabels dijit. Debe ser
  999. un array indexado; especificar un
  1000. único espacio vacío para saltar a la posición
  1001. de una
  1002. determinada etiqueta (como ser al comienzo o al final).
  1003. </para>
  1004. </listitem>
  1005. <listitem>
  1006. <para>
  1007. <methodname>setTopDecorationParams(array $params)</methodname>
  1008. y
  1009. <methodname>setBottomDecorationParams(array $params)</methodname>
  1010. :
  1011. parámetros dijit para utilizar al configurar la Regla o
  1012. RuleLabels dijit.
  1013. </para>
  1014. </listitem>
  1015. <listitem>
  1016. <para>
  1017. <methodname>setTopDecorationAttribs(array $attribs)</methodname>
  1018. y
  1019. <methodname>setBottomDecorationAttribs(array $attribs)</methodname>
  1020. :
  1021. atributos
  1022. <acronym>HTML</acronym>
  1023. para especificar una Regla dada o el
  1024. elemento contenedor de
  1025. <acronym>HTML</acronym>
  1026. RuleLabels.
  1027. </para>
  1028. </listitem>
  1029. <listitem>
  1030. <para>
  1031. <methodname>getTopDecoration()</methodname>
  1032. y
  1033. <methodname>getBottomDecoration()</methodname>
  1034. : recuperar todos los
  1035. metadatos para una determinada Regla o definición de
  1036. RuleLabels, tal como han sido provistos por los mutators
  1037. anteriores.
  1038. </para>
  1039. </listitem>
  1040. </itemizedlist>
  1041. <example id="zend.dojo.form.elements.horizontalSlider.example">
  1042. <title>Ejemplo de Uso del Elemento HorizontalSlider dijit</title>
  1043. <para>
  1044. Lo siguiente creará un deslizador horizontal de selección con
  1045. valores enteros que
  1046. van desde -10 a 10. La parte superior tendrá
  1047. etiquetas en las marcas del 20%, 40%,
  1048. 60%, y 80%.
  1049. La parte inferior será una regla con marcas en el 0, 50%, y 100%.
  1050. Cada vez
  1051. que se cambie el valor, el elemento oculto almacenará
  1052. el valor actualizado.
  1053. </para>
  1054. <programlisting language="php"><![CDATA[
  1055. $form->addElement(
  1056. 'HorizontalSlider',
  1057. 'horizontal',
  1058. array(
  1059. 'label' => 'HorizontalSlider',
  1060. 'value' => 5,
  1061. 'minimum' => -10,
  1062. 'maximum' => 10,
  1063. 'discreteValues' => 11,
  1064. 'intermediateChanges' => true,
  1065. 'showButtons' => true,
  1066. 'topDecorationDijit' => 'HorizontalRuleLabels',
  1067. 'topDecorationContainer' => 'topContainer',
  1068. 'topDecorationLabels' => array(
  1069. ' ',
  1070. '20%',
  1071. '40%',
  1072. '60%',
  1073. '80%',
  1074. ' ',
  1075. ),
  1076. 'topDecorationParams' => array(
  1077. 'container' => array(
  1078. 'style' => 'height:1.2em; font-size=75%;color:gray;',
  1079. ),
  1080. 'list' => array(
  1081. 'style' => 'height:1em; font-size=75%;color:gray;',
  1082. ),
  1083. ),
  1084. 'bottomDecorationDijit' => 'HorizontalRule',
  1085. 'bottomDecorationContainer' => 'bottomContainer',
  1086. 'bottomDecorationLabels' => array(
  1087. '0%',
  1088. '50%',
  1089. '100%',
  1090. ),
  1091. 'bottomDecorationParams' => array(
  1092. 'list' => array(
  1093. 'style' => 'height:1em; font-size=75%;color:gray;',
  1094. ),
  1095. ),
  1096. )
  1097. );
  1098. ]]></programlisting>
  1099. </example>
  1100. </sect3>
  1101. <sect3 id="zend.dojo.form.elements.numberSpinner">
  1102. <title>NumberSpinner</title>
  1103. <para>Un número spinner es un elemento de texto para introducir valores
  1104. numéricos; también
  1105. incluye elementos de incremento y decremento del
  1106. valor por una cantidad fija.</para>
  1107. <para>Se encuentran disponibles los siguientes métodos:</para>
  1108. <itemizedlist>
  1109. <listitem>
  1110. <para>
  1111. <methodname>setDefaultTimeout($timeout)</methodname>
  1112. y
  1113. <methodname>getDefaultTimeout()</methodname>
  1114. : establece
  1115. y recupera el tiempo de espera predeterminado en
  1116. milisegundos, entre
  1117. cuando el botón se mantiene presionado y
  1118. cambia el valor.
  1119. </para>
  1120. </listitem>
  1121. <listitem>
  1122. <para>
  1123. <methodname>setTimeoutChangeRate($rate)</methodname>
  1124. y
  1125. <methodname>getTimeoutChangeRate()</methodname>
  1126. :
  1127. establece y recupera la tasa en milisegundos, en la que se
  1128. harán cambios cuando
  1129. un botón se mantiene presionado.
  1130. </para>
  1131. </listitem>
  1132. <listitem>
  1133. <para>
  1134. <methodname>setLargeDelta($delta)</methodname>
  1135. y
  1136. <methodname>getLargeDelta()</methodname>
  1137. : establece y
  1138. recupera la cantidad en la que el valor numérico debería
  1139. cambiar
  1140. cuando un botón se mantiene presionado.
  1141. </para>
  1142. </listitem>
  1143. <listitem>
  1144. <para>
  1145. <methodname>setSmallDelta($delta)</methodname>
  1146. y
  1147. <methodname>getSmallDelta()</methodname>
  1148. : establece y
  1149. recupera el delta con la que el número debería cambiar
  1150. cuando se
  1151. pulsa un botón una vez.
  1152. </para>
  1153. </listitem>
  1154. <listitem>
  1155. <para>
  1156. <methodname>setIntermediateChanges($flag)</methodname>
  1157. y
  1158. <methodname>getIntermediateChanges()</methodname>
  1159. :
  1160. establece y recupera el flag que indica si debe o no ser
  1161. mostrado cada cambio de
  1162. valor cuando un botón se mantiene
  1163. presionado.
  1164. </para>
  1165. </listitem>
  1166. <listitem>
  1167. <para>
  1168. <methodname>setRangeMessage($message)</methodname>
  1169. y
  1170. <methodname>getRangeMessage()</methodname>
  1171. : establece y
  1172. recupera el mensaje indicando el rango de valores
  1173. disponibles.
  1174. </para>
  1175. </listitem>
  1176. <listitem>
  1177. <para>
  1178. <methodname>setMin($value)</methodname>
  1179. y
  1180. <methodname>getMin()</methodname>
  1181. : establece y recupera
  1182. el valor mínimo posible.
  1183. </para>
  1184. </listitem>
  1185. <listitem>
  1186. <para>
  1187. <methodname>setMax($value)</methodname>
  1188. y
  1189. <methodname>getMax()</methodname>
  1190. : establece y recupera
  1191. el valor máximo posible.
  1192. </para>
  1193. </listitem>
  1194. </itemizedlist>
  1195. <example id="zend.dojo.form.elements.numberSpinner.example">
  1196. <title>Ejemplo de Uso del Elemento NumberSpinner dijit</title>
  1197. <programlisting language="php"><![CDATA[
  1198. $form->addElement(
  1199. 'NumberSpinner',
  1200. 'foo',
  1201. array(
  1202. 'value' => '7',
  1203. 'label' => 'NumberSpinner',
  1204. 'smallDelta' => 5,
  1205. 'largeDelta' => 25,
  1206. 'defaultTimeout' => 500,
  1207. 'timeoutChangeRate' => 100,
  1208. 'min' => 9,
  1209. 'max' => 1550,
  1210. 'places' => 0,
  1211. 'maxlength' => 20,
  1212. )
  1213. );
  1214. ]]></programlisting>
  1215. </example>
  1216. </sect3>
  1217. <sect3 id="zend.dojo.form.elements.numberTextBox">
  1218. <title>NumberTextBox</title>
  1219. <para>Un cuadro de texto numérico es un elemento de texto de
  1220. introducción de valores
  1221. numéricos; a diferencia de NumberSpinner, se
  1222. introducen manualmente. Se pueden
  1223. proporcionar validaciones y
  1224. restricciones para garantizar que el número permanece en un
  1225. rango o
  1226. formato particular.</para>
  1227. <para>
  1228. Internmente, NumberTextBox proviene de
  1229. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
  1230. y
  1231. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>
  1232. ; todos
  1233. los métodos disponibles a esas clases están disponibles. Además, los
  1234. siguientes
  1235. métodos pueden utilizarse para establecer restricciones
  1236. individuales:
  1237. </para>
  1238. <itemizedlist>
  1239. <listitem>
  1240. <para>
  1241. <methodname>setLocale($locale)</methodname>
  1242. y
  1243. <methodname>getLocale()</methodname>
  1244. : especifica y
  1245. recupera un "locale" determinado o alternativo para usar con
  1246. este
  1247. dijit.
  1248. </para>
  1249. </listitem>
  1250. <listitem>
  1251. <para>
  1252. <methodname>setPattern($pattern)</methodname>
  1253. y
  1254. <methodname>getPattern()</methodname>
  1255. : establece y
  1256. recupera un
  1257. <ulink url="http://www.unicode.org/reports/tr35/#Number_Format_Patterns">
  1258. patrón de formato numérico </ulink>
  1259. a usar en el
  1260. formateo de números.
  1261. </para>
  1262. </listitem>
  1263. <listitem>
  1264. <para>
  1265. <methodname>setType($type)</methodname>
  1266. y
  1267. <methodname>getType()</methodname>
  1268. : establece y recupera
  1269. el tipo de formato numérico a utilizar (deberán ser uno de
  1270. 'decimal', 'percent', o 'currency').
  1271. </para>
  1272. </listitem>
  1273. <listitem>
  1274. <para>
  1275. <methodname>setPlaces($places)</methodname>
  1276. y
  1277. <methodname>getPlaces()</methodname>
  1278. : establece y
  1279. recupera el número de decimales que soportará.
  1280. </para>
  1281. </listitem>
  1282. <listitem>
  1283. <para>
  1284. <methodname>setStrict($flag)</methodname>
  1285. y
  1286. <methodname>getStrict()</methodname>
  1287. : establece y
  1288. recupera el valor estricto del flag, que indica cuánta
  1289. indulgencia
  1290. es permitida en relación con espacios en blanco
  1291. y con caracteres no numéricos.
  1292. </para>
  1293. </listitem>
  1294. </itemizedlist>
  1295. <example id="zend.dojo.form.elements.numberTextBox.example">
  1296. <title>Ejemplo de Uso del Elemento NumberTextBox dijit</title>
  1297. <programlisting language="php"><![CDATA[
  1298. $form->addElement(
  1299. 'NumberTextBox',
  1300. 'elevation',
  1301. array(
  1302. 'label' => 'NumberTextBox',
  1303. 'required' => true,
  1304. 'invalidMessage' => 'Invalid elevation.',
  1305. 'places' => 0,
  1306. 'constraints' => array(
  1307. 'min' => -20000,
  1308. 'max' => 20000,
  1309. ),
  1310. )
  1311. );
  1312. ]]></programlisting>
  1313. </example>
  1314. </sect3>
  1315. <sect3 id="zend.dojo.form.elements.passwordTextBox">
  1316. <title>PasswordTextBox</title>
  1317. <para>PasswordTextBox es simplemente un ValidationTextBox que está
  1318. ligado a una contraseña;
  1319. su único objetivo es permitir la entrada de
  1320. texto de contraseñas de dijit que también
  1321. proporciona validación del
  1322. lado del cliente.</para>
  1323. <para>
  1324. Internmente, PasswordTextBox proviene de
  1325. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
  1326. y
  1327. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>
  1328. ; todos
  1329. los métodos disponibles a esas clases están disponibles.
  1330. </para>
  1331. <example id="zend.dojo.form.elements.passwordTextBox.example">
  1332. <title>Ejemplo de Uso del Elemento PasswordTextBox dijit</title>
  1333. <programlisting language="php"><![CDATA[
  1334. $form->addElement(
  1335. 'PasswordTextBox',
  1336. 'password',
  1337. array(
  1338. 'label' => 'Password',
  1339. 'required' => true,
  1340. 'trim' => true,
  1341. 'lowercase' => true,
  1342. 'regExp' => '^[a-z0-9]{6,}$',
  1343. 'invalidMessage' => 'Invalid password; ' .
  1344. 'must be at least 6 alphanumeric characters',
  1345. )
  1346. );
  1347. ]]></programlisting>
  1348. </example>
  1349. </sect3>
  1350. <sect3 id="zend.dojo.form.elements.radioButton">
  1351. <title>RadioButton</title>
  1352. <para>RadioButton envuelve a elementos standard de entrada tipo radio
  1353. para brindar un
  1354. look-and-feel consistente con otros dojo dijits.</para>
  1355. <para>
  1356. RadioButton se extiende desde DijitMulti, que le permite
  1357. especificar la selección de
  1358. opciones vía los métodos
  1359. <methodname>setMultiOptions()</methodname>
  1360. y
  1361. <methodname>setMultiOption()</methodname>
  1362. .
  1363. </para>
  1364. <para>
  1365. Por defecto, este elemento registra un validador
  1366. <methodname>InArray</methodname>
  1367. que valida contra las calves
  1368. del array de las opciones registradas. Puede desactivar este
  1369. comportamiento ya sea llamando a
  1370. <methodname>setRegisterInArrayValidator(false)</methodname>
  1371. , o
  1372. pasando un valor falso a la clave de configuración
  1373. <methodname>registerInArrayValidator</methodname>
  1374. .
  1375. </para>
  1376. <example id="zend.dojo.form.elements.radioButton.example">
  1377. <title>Ejemplo de Uso del Elemento RadioButton dijit</title>
  1378. <programlisting language="php"><![CDATA[
  1379. $form->addElement(
  1380. 'RadioButton',
  1381. 'foo',
  1382. array(
  1383. 'label' => 'RadioButton',
  1384. 'multiOptions' => array(
  1385. 'foo' => 'Foo',
  1386. 'bar' => 'Bar',
  1387. 'baz' => 'Baz',
  1388. ),
  1389. 'value' => 'bar',
  1390. )
  1391. );
  1392. ]]></programlisting>
  1393. </example>
  1394. </sect3>
  1395. <sect3 id="zend.dojo.form.elements.simpletextarea">
  1396. <title>SimpleTextarea</title>
  1397. <para>
  1398. SimpleTextarea actúa principalmente como un textarea estándar de
  1399. <acronym>HTML</acronym>
  1400. . Sin embargo, no permite establecer filas ni columnas. En su
  1401. lugar, el ancho de textarea
  1402. debe especificarse utilizando medidas
  1403. <acronym>CSS</acronym>
  1404. estándar. A diferencia de Textarea, esta no aumentará
  1405. automáticamente.
  1406. </para>
  1407. <example id="zend.dojo.form.elements.simpletextarea.example">
  1408. <title>Ejemplo de Uso del Elemento SimpleTextarea dijit</title>
  1409. <programlisting language="php"><![CDATA[
  1410. $form->addElement(
  1411. 'SimpleTextarea',
  1412. 'simpletextarea',
  1413. array(
  1414. 'label' => 'SimpleTextarea',
  1415. 'required' => true,
  1416. 'style' => 'width: 80em; height: 25em;',
  1417. )
  1418. );
  1419. ]]></programlisting>
  1420. </example>
  1421. </sect3>
  1422. <sect3 id="zend.dojo.form.elements.slider">
  1423. <title>Elemento abstracto Slider</title>
  1424. <para>
  1425. Slider es un elemento abstracto que proviene de ambos
  1426. <link linkend="zend.dojo.form.elements.horizontalSlider">
  1427. HorizontalSlider</link>
  1428. y
  1429. <link linkend="zend.dojo.form.elements.verticalSlider">VerticalSlider</link>
  1430. . Expone una serie de métodos comunes para
  1431. configurar sus deslizadores, incluyendo a:
  1432. </para>
  1433. <itemizedlist>
  1434. <listitem>
  1435. <para>
  1436. <methodname>setClickSelect($flag)</methodname>
  1437. y
  1438. <methodname>getClickSelect()</methodname>
  1439. : establece y
  1440. recupera el flag que indica cuando al presionar el botón
  1441. deslizante
  1442. cambia o no el valor.
  1443. </para>
  1444. </listitem>
  1445. <listitem>
  1446. <para>
  1447. <methodname>setIntermediateChanges($flag)</methodname>
  1448. y
  1449. <methodname>getIntermediateChanges()</methodname>
  1450. :
  1451. establece y recupera el flag que indica si dijit enviará o
  1452. no una notificación
  1453. sobre cada evento de cambio del
  1454. deslizador.
  1455. </para>
  1456. </listitem>
  1457. <listitem>
  1458. <para>
  1459. <methodname>setShowButtons($flag)</methodname>
  1460. y
  1461. <methodname>getShowButtons()</methodname>
  1462. : establece y
  1463. recupera el flag que indica si los botones de uno u otro
  1464. extremo se
  1465. mostrarán o no; si es así, el usuario puede hacer
  1466. clic sobre éstos para cambiar
  1467. el valor de la barra
  1468. deslizante.
  1469. </para>
  1470. </listitem>
  1471. <listitem>
  1472. <para>
  1473. <methodname>setDiscreteValues($value)</methodname>
  1474. y
  1475. <methodname>getDiscreteValues()</methodname>
  1476. : establece
  1477. y recupera el número de valores discretos representados por
  1478. el
  1479. deslizador.
  1480. </para>
  1481. </listitem>
  1482. <listitem>
  1483. <para>
  1484. <methodname>setMaximum($value)</methodname>
  1485. y
  1486. <methodname>getMaximum()</methodname>
  1487. : establece y
  1488. recupera el valor máximo del deslizador.
  1489. </para>
  1490. </listitem>
  1491. <listitem>
  1492. <para>
  1493. <methodname>setMinimum($value)</methodname>
  1494. y
  1495. <methodname>getMinimum()</methodname>
  1496. : establece y
  1497. recupera el valor mínimo del deslizador.
  1498. </para>
  1499. </listitem>
  1500. <listitem>
  1501. <para>
  1502. <methodname>setPageIncrement($value)</methodname>
  1503. y
  1504. <methodname>getPageIncrement()</methodname>
  1505. : establece
  1506. la cantidad en que cambiará el deslizador por eventos del
  1507. teclado.
  1508. </para>
  1509. </listitem>
  1510. </itemizedlist>
  1511. <para>Ejemplos de uso provistos con cada clase extendida concretamente.
  1512. </para>
  1513. </sect3>
  1514. <sect3 id="zend.dojo.form.elements.submitButton">
  1515. <title>SubmitButton</title>
  1516. <para>
  1517. Si bien no hay Dijit llamado SubmitButton, incluimos uno aquí
  1518. para proporcionar un botón
  1519. dijit capaz de enviar un formulario sin
  1520. que se exijan ligaduras con javascript. Funciona
  1521. exactamente igual
  1522. que el
  1523. <link linkend="zend.dojo.form.elements.button">Button
  1524. dijit</link>
  1525. .
  1526. </para>
  1527. <example id="zend.dojo.form.elements.submitButton.example">
  1528. <title>Ejemplo de Uso del Elemento SubmitButton dijit</title>
  1529. <programlisting language="php"><![CDATA[
  1530. $form->addElement(
  1531. 'SubmitButton',
  1532. 'foo',
  1533. array(
  1534. 'required' => false,
  1535. 'ignore' => true,
  1536. 'label' => 'Submit Button!',
  1537. )
  1538. );
  1539. ]]></programlisting>
  1540. </example>
  1541. </sect3>
  1542. <sect3 id="zend.dojo.form.elements.textBox">
  1543. <title>TextBox</title>
  1544. <para>Textbox se incluyó principalmente para proporcionar una entrada
  1545. de texto con apariencia
  1546. coherente y con el look-and-feel de los
  1547. demás dijits. Sin embargo, también incluye
  1548. algunas pequeñas
  1549. capacidades de filtrado y validación, representadas en los métodos
  1550. siguientes:</para>
  1551. <itemizedlist>
  1552. <listitem>
  1553. <para>
  1554. <methodname>setLowercase($flag)</methodname>
  1555. y
  1556. <methodname>getLowercase()</methodname>
  1557. : establece y
  1558. recupera el flag que indica si la entrada debe o no ser
  1559. presentada
  1560. en minúsculas.
  1561. </para>
  1562. </listitem>
  1563. <listitem>
  1564. <para>
  1565. <methodname>setPropercase($flag)</methodname>
  1566. y
  1567. <methodname>getPropercase()</methodname>
  1568. : establece y
  1569. recupera el flag que indica si la entrada debe ser o no ser
  1570. presentada como Proper Case.
  1571. </para>
  1572. </listitem>
  1573. <listitem>
  1574. <para>
  1575. <methodname>setUppercase($flag)</methodname>
  1576. y
  1577. <methodname>getUppercase()</methodname>
  1578. : establece y
  1579. recupera el flag que indica si la entrada debe ser
  1580. presentada como
  1581. mayúsculas (UPPERCASE).
  1582. </para>
  1583. </listitem>
  1584. <listitem>
  1585. <para>
  1586. <methodname>setTrim($flag)</methodname>
  1587. y
  1588. <methodname>getTrim()</methodname>
  1589. : establece y recupera
  1590. el flag que indica si los espacios al comienzo o al final
  1591. deben ser eliminados o no.
  1592. </para>
  1593. </listitem>
  1594. <listitem>
  1595. <para>
  1596. <methodname>setMaxLength($length)</methodname>
  1597. y
  1598. <methodname>getMaxLength()</methodname>
  1599. : establece y
  1600. recupera la longitud máxima del input.
  1601. </para>
  1602. </listitem>
  1603. </itemizedlist>
  1604. <example id="zend.dojo.form.elements.textBox.example">
  1605. <title>Ejemplo de Uso del Elemento TextBox dijit</title>
  1606. <programlisting language="php"><![CDATA[
  1607. $form->addElement(
  1608. 'TextBox',
  1609. 'foo',
  1610. array(
  1611. 'value' => 'some text',
  1612. 'label' => 'TextBox',
  1613. 'trim' => true,
  1614. 'propercase' => true,
  1615. )
  1616. );
  1617. ]]></programlisting>
  1618. </example>
  1619. </sect3>
  1620. <sect3 id="zend.dojo.form.elements.textarea">
  1621. <title>Textarea</title>
  1622. <para>
  1623. Textarea actúa principalmente como un textarea estándar de
  1624. <acronym>HTML</acronym>
  1625. .
  1626. Sin embargo, no permite establecer filas y columnas. En su lugar, el
  1627. ancho de la
  1628. textarea debe especificarse utilizando medidas
  1629. <acronym>CSS</acronym>
  1630. estándar; las filas debe omitirse totalmente. Luego, la textarea
  1631. crecerá verticalmente
  1632. tanto como texto se añada a ella.
  1633. </para>
  1634. <example id="zend.dojo.form.elements.textarea.example">
  1635. <title>Ejemplo de Uso del Elemento Textarea dijit</title>
  1636. <programlisting language="php"><![CDATA[
  1637. $form->addElement(
  1638. 'Textarea',
  1639. 'textarea',
  1640. array(
  1641. 'label' => 'Textarea',
  1642. 'required' => true,
  1643. 'style' => 'width: 200px;',
  1644. )
  1645. );
  1646. ]]></programlisting>
  1647. </example>
  1648. </sect3>
  1649. <sect3 id="zend.dojo.form.elements.timeTextBox">
  1650. <title>TimeTextBox</title>
  1651. <para>TimeTextBox es una entrada de texto que proporciona una lista
  1652. desplegable (drop-down)
  1653. para seleccionar un tiempo (fecha y hora).
  1654. La lista desplegable, puede ser configurada
  1655. para mostrar una cierta
  1656. ventana de tiempo, con incrementos especificados.</para>
  1657. <para>
  1658. Internamente, TimeTextBox proviene de
  1659. <link linkend="zend.dojo.form.elements.dateTextBox">DateTextBox</link>
  1660. ,
  1661. <link linkend="zend.dojo.form.elements.validationTextBox">ValidationTextBox</link>
  1662. y
  1663. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>
  1664. ; todos
  1665. los métodos disponibles a esas clases están disponibles. Además, los
  1666. siguientes
  1667. métodos pueden utilizarse para establecer restricciones
  1668. individuales:
  1669. </para>
  1670. <itemizedlist>
  1671. <listitem>
  1672. <para>
  1673. <methodname>setTimePattern($pattern)</methodname>
  1674. y
  1675. <methodname>getTimePattern()</methodname>
  1676. : establece y
  1677. recupera el
  1678. <ulink url="http://www.unicode.org/reports/tr35/#Date_Format_Patterns">patrón
  1679. de formato de fecha y hora unicode</ulink>
  1680. para
  1681. el formato correspondiente.
  1682. </para>
  1683. </listitem>
  1684. <listitem>
  1685. <para>
  1686. <methodname>setClickableIncrement($format)</methodname>
  1687. y
  1688. <methodname>getClickableIncrement()</methodname>
  1689. :
  1690. establece y recupera el string
  1691. <ulink url="http://en.wikipedia.org/wiki/ISO_8601">ISO-8601</ulink>
  1692. representando la cantidad de tiempo a
  1693. incrementar cada vez que se recolecta un
  1694. elemento clickable.
  1695. </para>
  1696. </listitem>
  1697. <listitem>
  1698. <para>
  1699. <methodname>setVisibleIncrement($format)</methodname>
  1700. y
  1701. <methodname>getVisibleIncrement()</methodname>
  1702. :
  1703. establece y recupera el incremento visible en el selector de
  1704. tiempo; debe seguir
  1705. los formatos ISO-8601.
  1706. </para>
  1707. </listitem>
  1708. <listitem>
  1709. <para>
  1710. <methodname>setVisibleRange($format)</methodname>
  1711. y
  1712. <methodname>getVisibleRange()</methodname>
  1713. : establece y
  1714. recupera el intervalo de tiempo visible en el selector de
  1715. tiempo en
  1716. cualquier momento; debe seguir los formatos
  1717. ISO-8601.
  1718. </para>
  1719. </listitem>
  1720. </itemizedlist>
  1721. <example id="zend.dojo.form.elements.timeTextBox.example">
  1722. <title>Ejemplo de Uso del Elemento TimeTextBox dijit</title>
  1723. <para>Lo siguiente creará un TimeTextBox que muestra 2 horas a la
  1724. vez, con incrementos de
  1725. 10 minutos.</para>
  1726. <programlisting language="php"><![CDATA[
  1727. $form->addElement(
  1728. 'TimeTextBox',
  1729. 'foo',
  1730. array(
  1731. 'label' => 'TimeTextBox',
  1732. 'required' => true,
  1733. 'visibleRange' => 'T04:00:00',
  1734. 'visibleIncrement' => 'T00:10:00',
  1735. 'clickableIncrement' => 'T00:10:00',
  1736. )
  1737. );
  1738. ]]></programlisting>
  1739. </example>
  1740. </sect3>
  1741. <sect3 id="zend.dojo.form.elements.validationTextBox">
  1742. <title>ValidationTextBox</title>
  1743. <para>
  1744. ValidationTextBox ofrece la posibilidad de añadir validaciones y
  1745. limitaciones a una
  1746. entrada de texto. Internamente, proviene de
  1747. <link linkend="zend.dojo.form.elements.textBox">TextBox</link>
  1748. , y
  1749. añade los siguientes accessors y mutators para manejar parámetros
  1750. dijit:
  1751. </para>
  1752. <itemizedlist>
  1753. <listitem>
  1754. <para>
  1755. <methodname>setInvalidMessage($message)</methodname>
  1756. y
  1757. <methodname>getInvalidMessage()</methodname>
  1758. : establece
  1759. y recupera el mensaje de tooltip para mostrar cuando el
  1760. valor no se
  1761. validó.
  1762. </para>
  1763. </listitem>
  1764. <listitem>
  1765. <para>
  1766. <methodname>setPromptMessage($message)</methodname>
  1767. y
  1768. <methodname>getPromptMessage()</methodname>
  1769. : establece y
  1770. recupera el mensaje de tooltip a mostrar para el uso del
  1771. elemento.
  1772. </para>
  1773. </listitem>
  1774. <listitem>
  1775. <para>
  1776. <methodname>setRegExp($regexp)</methodname>
  1777. y
  1778. <methodname>getRegExp()</methodname>
  1779. : establece y
  1780. recupera la expresión regular a utilizar para validar el
  1781. elemento.
  1782. La expresión regular no necesita límites (a
  1783. diferencia de la familia de funciones
  1784. preg*, de
  1785. <acronym>PHP</acronym>
  1786. ).
  1787. </para>
  1788. </listitem>
  1789. <listitem>
  1790. <para>
  1791. <methodname>setConstraint($key, $value)</methodname>
  1792. y
  1793. <methodname>getConstraint($key)</methodname>
  1794. : establece
  1795. y recupera restricciones adicionales para utilizar al
  1796. validar el
  1797. elemento; se utiliza principalmente con
  1798. subclases. Las restricciones son
  1799. almacenados en la clave
  1800. 'constraints' de los parámetros dijit.
  1801. </para>
  1802. </listitem>
  1803. <listitem>
  1804. <para>
  1805. <methodname>setConstraints(array $constraints)</methodname>
  1806. y
  1807. <methodname>getConstraints()</methodname>
  1808. : establece y
  1809. recupera las restricciones para utilizar al validar el
  1810. elemento; se
  1811. utiliza principalmente con subclases.
  1812. </para>
  1813. </listitem>
  1814. <listitem>
  1815. <para>
  1816. <methodname>hasConstraint($key)</methodname>
  1817. : prueba si una
  1818. restricción dada existe.
  1819. </para>
  1820. </listitem>
  1821. <listitem>
  1822. <para>
  1823. <methodname>removeConstraint($key)</methodname>
  1824. y
  1825. <methodname>clearConstraints()</methodname>
  1826. : elimina una
  1827. restricción individual o todas las restricciones para el
  1828. elemento.
  1829. </para>
  1830. </listitem>
  1831. </itemizedlist>
  1832. <example id="zend.dojo.form.elements.validationTextBox.example">
  1833. <title>Ejemplo de Uso del Elemento ValidationTextBox dijit</title>
  1834. <para>Lo siguiente creará un ValidationTextBox que requiere un solo
  1835. string compuesto
  1836. exclusivamente por caracteres de palabra (es
  1837. decir, sin espacios, la mayor parte de
  1838. la puntuación es
  1839. inválida).</para>
  1840. <programlisting language="php"><![CDATA[
  1841. $form->addElement(
  1842. 'ValidationTextBox',
  1843. 'foo',
  1844. array(
  1845. 'label' => 'ValidationTextBox',
  1846. 'required' => true,
  1847. 'regExp' => '[\w]+',
  1848. 'invalidMessage' => 'Invalid non-space text.',
  1849. )
  1850. );
  1851. ]]></programlisting>
  1852. </example>
  1853. </sect3>
  1854. <sect3 id="zend.dojo.form.elements.verticalSlider">
  1855. <title>VerticalSlider</title>
  1856. <para>
  1857. VerticalSlider es el hermano de
  1858. <link linkend="zend.dojo.form.elements.horizontalSlider">HorizontalSlider</link>
  1859. , y opera en todos los sentidos como ese
  1860. elemento. La única diferencia real es que los
  1861. métodos 'top*' y
  1862. 'bottom*' son sustituidos por 'left*' y 'right*', y en lugar de
  1863. utilizar
  1864. HorizontalRule y HorizontalRuleLabels, debe usarse
  1865. VerticalRule y VerticalRuleLabels.
  1866. </para>
  1867. <example id="zend.dojo.form.elements.verticalSlider.example">
  1868. <title>Ejemplo de Uso del Elemento VerticalSlider dijit</title>
  1869. <para>Lo siguiente creará una selección deslizante vertical con
  1870. valores enteros desde -10
  1871. a 10. La izquierda tendrá etiquetas en
  1872. las marcas correspondientes al 20%, 40%, 60%,
  1873. y 80%. El derecho
  1874. tiene reglas en un 0, 50%, y 100%. Cada vez que se cambie el
  1875. valor,
  1876. se actualizará el elemento oculto que almacena el valor.</para>
  1877. <programlisting language="php"><![CDATA[
  1878. $form->addElement(
  1879. 'VerticalSlider',
  1880. 'foo',
  1881. array(
  1882. 'label' => 'VerticalSlider',
  1883. 'value' => 5,
  1884. 'style' => 'height: 200px; width: 3em;',
  1885. 'minimum' => -10,
  1886. 'maximum' => 10,
  1887. 'discreteValues' => 11,
  1888. 'intermediateChanges' => true,
  1889. 'showButtons' => true,
  1890. 'leftDecorationDijit' => 'VerticalRuleLabels',
  1891. 'leftDecorationContainer' => 'leftContainer',
  1892. 'leftDecorationLabels' => array(
  1893. ' ',
  1894. '20%',
  1895. '40%',
  1896. '60%',
  1897. '80%',
  1898. ' ',
  1899. ),
  1900. 'rightDecorationDijit' => 'VerticalRule',
  1901. 'rightDecorationContainer' => 'rightContainer',
  1902. 'rightDecorationLabels' => array(
  1903. '0%',
  1904. '50%',
  1905. '100%',
  1906. ),
  1907. )
  1908. );
  1909. ]]></programlisting>
  1910. </example>
  1911. </sect3>
  1912. </sect2>