Zend_Dojo-Form-Elements.xml 66 KB

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