Zend_Dojo-Form-Elements.xml 57 KB

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