Zend_Form-StandardElements.xml 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15103 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.form.standardElements">
  5. <title>Elementos Enviados en el Formulario Estandard de Zend Framework</title>
  6. <para>
  7. Zend Framework viene con clases de elementos concretos cubriendo la
  8. mayoría de los elementos de los formularios HTML. La mayoría simplemente
  9. especifica una vista de ayuda para usar cuando se decora el elemento,
  10. pero varios ofrecen funcionalidad adicional. La siguiente es una lista
  11. de todas las clases, así como también una descripción de la
  12. funcionalidad que ofrecen.
  13. </para>
  14. <sect2 id="zend.form.standardElements.button">
  15. <title>Zend_Form_Element_Button</title>
  16. <para>
  17. Usada para crear elementos HTML de tipo button,
  18. <classname>Zend_Form_Element_Button</classname> extiende <link linkend="zend.form.standardElements.submit">Zend_Form_Element_Submit</link>,
  19. derivandi sy funcionalidad personalizada. It specifies the 'formButton'
  20. view helper for decoration.
  21. </para>
  22. <para>
  23. Like the submit element, it uses the element's label as the element
  24. value for display purposes; in other words, to set the text of the
  25. button, set the value of the element. The label will be translated
  26. if a translation adapter is present.
  27. </para>
  28. <para>
  29. Because the label is used as part of the element, the button element
  30. uses only the <link linkend="zend.form.standardDecorators.viewHelper">ViewHelper</link>
  31. and <link linkend="zend.form.standardDecorators.dtDdWrapper">DtDdWrapper</link>
  32. decorators.
  33. </para>
  34. <para>
  35. Después de llenar o validar un formulario, se puede verificar si el
  36. botón dado fue pulsado usando el método <methodname>isChecked()</methodname>.
  37. </para>
  38. </sect2>
  39. <sect2 id="zend.form.standardElements.captcha">
  40. <title>Zend_Form_Element_Captcha</title>
  41. <para>
  42. Los CAPTCHAs son usados para prevenir el envio automático de
  43. formularios por los robots y otros procesos automatizados.
  44. </para>
  45. <para>
  46. The Captcha form element allows you to specify which
  47. <link linkend="zend.captcha.adapters">Zend_Captcha adapter</link> you
  48. wish to utilize as a form captcha. It then sets this adapter as a
  49. validator to the object, and uses a Captcha decorator for rendering
  50. (which proxies to the CAPTCHA adapter).
  51. </para>
  52. <para>
  53. Adapters may be any adapters in <classname>Zend_Captcha</classname>, as well
  54. as any custom adapters you may have defined elsewhere. To allow
  55. this, you may pass an additional plugin loader type key, 'CAPTCHA'
  56. or 'captcha', when specifying a plugin loader prefix path:
  57. </para>
  58. <programlisting language="php"><![CDATA[
  59. $element->addPrefixPath('My_Captcha', 'My/Captcha/', 'captcha');
  60. ]]></programlisting>
  61. <para>
  62. Los Captcha entonces pueden ser cargados usando el método
  63. <methodname>setCaptcha()</methodname>, el cual puede tomar una instancia
  64. cualquiera de CAPTCHA instance, o el nombre corto del adaptador
  65. captcha:
  66. </para>
  67. <programlisting language="php"><![CDATA[
  68. // instancia concreta:
  69. $element->setCaptcha(new Zend_Captcha_Figlet());
  70. // Usando nombre corto:
  71. $element->setCaptcha('Dumb');
  72. ]]></programlisting>
  73. <para>
  74. Si desea cargar sus elementos configuración, especifique la clave
  75. 'captcha' con un array conteniendo la clave 'captcha', o
  76. ambas claves 'captcha' y 'captchaOptions':
  77. </para>
  78. <programlisting language="php"><![CDATA[
  79. // Usindo la clave captcha simple:
  80. $element = new Zend_Form_Element_Captcha('foo', array(
  81. 'label' => "Please verify you're a human",
  82. 'captcha' => array(
  83. 'captcha' => 'Figlet',
  84. 'wordLen' => 6,
  85. 'timeout' => 300,
  86. ),
  87. ));
  88. // Usindo captcha y captchaOptions:
  89. $element = new Zend_Form_Element_Captcha('foo', array(
  90. 'label' => "Please verify you're a human"
  91. 'captcha' => 'Figlet',
  92. 'captchaOptions' => array(
  93. 'captcha' => 'Figlet',
  94. 'wordLen' => 6,
  95. 'timeout' => 300,
  96. ),
  97. ));
  98. ]]></programlisting>
  99. <para>
  100. El decorador usado es determinado consultando el adaptador captcha.
  101. Por defecto, es usado el
  102. <link linkend="zend.form.standardDecorators.captcha">Captcha
  103. decorator</link>, pero un adaptador puede especificar uno
  104. diferente vía su método<methodname>getDecorator()</methodname>.
  105. </para>
  106. <para>
  107. Como ha notado, el adaptador CAPTCHA actúa él mismo como un validador
  108. para el elemento. Adicionalmente, el validador NotEmpty
  109. no es usado y el elemento es marcado como requerido. En la mayoría de
  110. los casos, usted no necesitará hacer nada más para tener un captcha
  111. presente en su formulario.
  112. </para>
  113. </sect2>
  114. <sect2 id="zend.form.standardElements.checkbox">
  115. <title>Zend_Form_Element_Checkbox</title>
  116. <para>
  117. Las casillas de verificación (checkboxes) HTML le permiten devolver
  118. un valor específico, pero básicamente funcionan como los booleanos:
  119. cuando está marcada, el valor es enviado; cuando no está marcada, no
  120. se envía nada. Internamente, Zend_Form_Element_Checkbox fuerza este
  121. estado.
  122. </para>
  123. <para>
  124. Por defecto, si la casilla (checkbox) está marcada su valor es '1',
  125. y si no está marcada su valor es '0'.
  126. You can specify the values to use using the
  127. <methodname>setCheckedValue()</methodname> and <methodname>setUncheckedValue()</methodname>
  128. accessors, respectively. Internally, any time you set the value, if
  129. the provided value matches the checked value, then it is set, but
  130. any other value causes the unchecked value to be set.
  131. </para>
  132. <para>
  133. Additionally, setting the value sets the <methodname>checked</methodname>
  134. property of the checkbox. You can query this using
  135. <methodname>isChecked()</methodname> or simply accessing the property. Using the
  136. <methodname>setChecked($flag)</methodname> method will both set the state of the
  137. flag as well as set the appropriate checked or unchecked value in the
  138. element. Please use this method when setting the checked state of a
  139. checkbox element to ensure the value is set properly.
  140. </para>
  141. <para>
  142. <classname>Zend_Form_Element_Checkbox</classname> uses the 'formCheckbox' view
  143. helper. The checked value is always used to populate it.
  144. </para>
  145. </sect2>
  146. <sect2 id="zend.form.standardElements.file">
  147. <title>Zend_Form_Element_File</title>
  148. <para>
  149. The File form element provides a mechanism for supplying file upload
  150. fields to your form. It utilizes <link linkend="zend.file.transfer.introduction">Zend_File_Transfer</link>
  151. internally to provide this functionality, and the
  152. <methodname>FormFile</methodname> view helper as also the <methodname>File</methodname>
  153. decorator to display the form element.
  154. </para>
  155. <para>
  156. By default, it uses the <methodname>Http</methodname> transfer adapter, which
  157. introspects the <methodname>$_FILES</methodname> array and allows you to attach
  158. validators and filters. Validators and filters attached to the form
  159. element will be attached to the transfer adapter.
  160. </para>
  161. <example id="zend.form.standardElements.file.usage">
  162. <title>File form element usage</title>
  163. <para>
  164. The above explanation of using the File form element may seem
  165. arcane, but actual usage is relatively trivial:
  166. </para>
  167. <programlisting language="php"><![CDATA[
  168. $element = new Zend_Form_Element_File('foo');
  169. $element->setLabel('Upload an image:')
  170. ->setDestination('/var/www/upload');
  171. // ensure only 1 file
  172. $element->addValidator('Count', false, 1);
  173. // limit to 100K
  174. $element->addValidator('Size', false, 102400);
  175. // only JPEG, PNG, and GIFs
  176. $element->addValidator('Extension', false, 'jpg,png,gif');
  177. $form->addElement($element, 'foo');
  178. ]]></programlisting>
  179. <para>
  180. También debe asegurarse de que se ha provisto un tipo de
  181. codificación corecto al formulario; se debe utilizar
  182. 'multipart/form-data'. Se puede hacer esto estableciendo el
  183. atributo 'enctype' en el formulario:
  184. </para>
  185. <programlisting language="php"><![CDATA[
  186. $form->setAttrib('enctype', 'multipart/form-data');
  187. ]]></programlisting>
  188. <para>
  189. After the form is validated successfully, you must receive the file
  190. to store it in the final destination using <methodname>receive()</methodname>. Additionally you
  191. can determinate the final location using <methodname>getFileName()</methodname>:
  192. </para>
  193. <programlisting language="php"><![CDATA[
  194. if (!$form->isValid) {
  195. print "Ohoh... validation error";
  196. }
  197. if (!$form->foo->receive()) {
  198. print "Error receiving the file";
  199. }
  200. $location = $form->foo->getFileName();
  201. ]]></programlisting>
  202. </example>
  203. <note>
  204. <title>Ubicaciones Predeterminadas para la Carga de Archivos</title>
  205. <para>
  206. Por defecto, los archivos son cargados al directorio temp del
  207. sistema.
  208. </para>
  209. </note>
  210. <note>
  211. <title>Valores de archivo</title>
  212. <para>
  213. Dentro de HTTP, un elemento file no tiene valor. Por tanto y a
  214. causa de razones de seguridad usted solo obtendrá el nombre del
  215. archivo cargado llamando a getValue() y no el destino completo.
  216. si usted necesita la información completa llame a getFileName() y
  217. le devolverá el destino y nombre de archivo completo.
  218. </para>
  219. </note>
  220. <para>
  221. Per default the file will automatically be received when you call
  222. <methodname>getValues()</methodname> on the form. The reason behind this behaviour is, that the
  223. file itself is the value of the file element.
  224. </para>
  225. <programlisting language="php"><![CDATA[
  226. $form->getValues();
  227. ]]></programlisting>
  228. <note>
  229. <para>
  230. Therefor another call of <methodname>receive()</methodname> after calling
  231. <methodname>getValues()</methodname> will not have an effect. Also creating a instance of
  232. <classname>Zend_File_Transfer</classname> will not have an effect as there no file anymore
  233. to receive.
  234. </para>
  235. </note>
  236. <para>
  237. Still, sometimes you may want to call <methodname>getValues()</methodname> without receiving the
  238. file. You can archive this by calling <methodname>setValueDisabled(true)</methodname>. To get the
  239. actual value of this flag you can call <methodname>isValueDisabled()</methodname>.
  240. </para>
  241. <example id="zend.form.standardElements.file.retrievement">
  242. <title>Explicit file retrievement</title>
  243. <para>
  244. First call <methodname>setValueDisabled(true)</methodname>.
  245. </para>
  246. <programlisting language="php"><![CDATA[
  247. $element = new Zend_Form_Element_File('foo');
  248. $element->setLabel('Upload an image:')
  249. ->setDestination('/var/www/upload')
  250. ->setValueDisabled(true);
  251. ]]></programlisting>
  252. <para>
  253. Now the file will not be received when you call <methodname>getValues()</methodname>.
  254. So you must call <methodname>receive()</methodname> on the file element, or an instance of
  255. <classname>Zend_File_Transfer</classname> yourself.
  256. </para>
  257. <programlisting language="php"><![CDATA[
  258. $values = $form->getValues();
  259. if ($form->isValid($form->getPost())) {
  260. if (!$form->foo->receive()) {
  261. print "Upload error";
  262. }
  263. }
  264. ]]></programlisting>
  265. </example>
  266. <para>
  267. There are several states of the uploaded file which can be checked
  268. with the following methods:
  269. </para>
  270. <itemizedlist>
  271. <listitem>
  272. <para>
  273. <methodname>isUploaded()</methodname>: Checks if the file element has
  274. been uploaded or not.
  275. </para>
  276. </listitem>
  277. <listitem>
  278. <para>
  279. <methodname>isReceived()</methodname>: Checks if the file element has
  280. already been received.
  281. </para>
  282. </listitem>
  283. <listitem>
  284. <para>
  285. <methodname>isFiltered()</methodname>: Checks if the filters have already
  286. been applied to the file element or not.
  287. </para>
  288. </listitem>
  289. </itemizedlist>
  290. <example id="zend.form.standardElements.file.isuploaded">
  291. <title>Checking if an optional file has been uploaded</title>
  292. <programlisting language="php"><![CDATA[
  293. $element = new Zend_Form_Element_File('foo');
  294. $element->setLabel('Upload an image:')
  295. ->setDestination('/var/www/upload')
  296. ->setRequired(false);
  297. $element->addValidator('Size', false, 102400);
  298. $form->addElement($element, 'foo');
  299. // The foo file element is optional but when it's given go into here
  300. if ($form->foo->isUploaded()) {
  301. // foo file given... do something
  302. }
  303. ]]></programlisting>
  304. </example>
  305. <para>
  306. <classname>Zend_Form_Element_File</classname> soporta también archivos
  307. múltiples. Para llamar el método <methodname>setMultiFile($count)</methodname>
  308. usted puede establecer la cantidad de elementos file que usted desea
  309. crear. Esto le previene de establecer la misma configuración varias
  310. veces.
  311. </para>
  312. <example id="zend.form.standardElements.file.multiusage">
  313. <title>Configuración de múltiples archivos</title>
  314. <para>
  315. Crear un elemento multi archivo es lo mismo que querer configurar
  316. un elemento único. Sólo tiene que llamar a
  317. <methodname>setMultiFile()</methodname> adicionalmente después de la creación:
  318. </para>
  319. <programlisting language="php"><![CDATA[
  320. $element = new Zend_Form_Element_File('foo');
  321. $element->setLabel('Upload an image:')
  322. ->setDestination('/var/www/upload');
  323. // asegura mínimo 1, maximo 3 archivos
  324. $element->addValidator('Count', false, array('min' => 1, 'max' => 3));
  325. // limita a 100K
  326. $element->addValidator('Size', false, 102400);
  327. // solo JPEG, PNG, y GIFs
  328. $element->addValidator('Extension', false, 'jpg,png,gif');
  329. // define 3 elementos file idénticos
  330. $element->setMultiFile(3);
  331. $form->addElement($element, 'foo');
  332. ]]></programlisting>
  333. <para>
  334. En su vista usted ahora obtendrá 3 elementos para carga de
  335. archivos idénticos los cuales comparten la misma configuración.
  336. Para obtener el conjunto del número de archivos múltiples
  337. simplemente llame a <methodname>getMultiFile()</methodname>.
  338. </para>
  339. </example>
  340. <note>
  341. <title>Elementos File en Subformularios</title>
  342. <para>
  343. Cuando usted use elementos file en subformularios debería
  344. establecer nombres únicos.
  345. Así, cuando usted nombre su elemento file en el subformulario1,
  346. debe darle un nombre diferente en el subformulario2.
  347. </para>
  348. <para>
  349. Tan pronto como haya dos elementos file nombrados de forma
  350. idéntica, el segundo elemento no se mostrará o enviará.
  351. </para>
  352. </note>
  353. <para>
  354. Para limitar el tamaño del archivo, el cual es cargado por el
  355. cliente, debe establecer el tamaño máximo de archivo que el
  356. formulario acepta . Esto limitará el tamaño del archivo en el lado
  357. del cliente configurando la opción <methodname>MAX_FILE_SIZE</methodname>
  358. en el formulario. Tan pronto como establezca este valor usando
  359. el método <methodname>setMaxFileSize($size)</methodname>, será generado
  360. con el elemento file.
  361. </para>
  362. <programlisting language="php"><![CDATA[
  363. $element = new Zend_Form_Element_File('foo');
  364. $element->setLabel('Upload an image:')
  365. ->setDestination('/var/www/upload')
  366. ->addValidator('Size', false, 102400) // límite en 100K
  367. ->setMaxFileSize(102400); // limita el tamaño del archivo en el lado del cliente
  368. $form->addElement($element, 'foo');
  369. ]]></programlisting>
  370. <note>
  371. <title>MaxFileSize con elementos file múltiples</title>
  372. <para>
  373. Cuando usted usa elementos file múltiples en los formularios tiene
  374. que establecer el <methodname>MAX_FILE_SIZE</methodname> una sola vez.
  375. Establecerlo otra vez sobreescribirá el valor previamente
  376. establecido.
  377. </para>
  378. <para>
  379. Note que usted puede establecer <methodname>MAX_FILE_SIZE</methodname>
  380. una sola vez, incluso si usa múltiples formularios.
  381. </para>
  382. </note>
  383. </sect2>
  384. <sect2 id="zend.form.standardElements.hidden">
  385. <title>Zend_Form_Element_Hidden</title>
  386. <para>
  387. Los elementos Hidden simplemente inyectan datos que deben ser
  388. enviados, pero que el usuario no debe manipular.
  389. <classname>Zend_Form_Element_Hidden</classname> logra esto a través del uso del helper de vista 'formHidden'.
  390. </para>
  391. </sect2>
  392. <sect2 id="zend.form.standardElements.hash">
  393. <title>Zend_Form_Element_Hash</title>
  394. <para>
  395. Este elemento provee protección de ataques desde CSRF sobre
  396. formularios, asegurando que el dato es enviado por la sesión del
  397. usuario que generó el formulario y no por un script malicioso.
  398. La protección se logra mediante la adición de un elemento hash a
  399. un formulario y verificandolo cuando el formulario es enviado.
  400. </para>
  401. <para>
  402. El nombre del elemento hash debe ser único. Se recomienda usar la
  403. opción <literal>salt</literal> para el elemento, dos hashes con
  404. el mismo nombre y diferentes salts no chocan:
  405. </para>
  406. <programlisting language="php"><![CDATA[
  407. $form->addElement('hash', 'no_csrf_foo', array('salt' => 'unique'));
  408. ]]></programlisting>
  409. <para>
  410. Puede establecer el salt más tarde usando el método
  411. <methodname>setSalt($salt)</methodname>.
  412. </para>
  413. <para>
  414. Internamente, el elemento almacena un identificador único usando
  415. <methodname>Zend_Session_Namespace</methodname>, y lo comprueba en el momento
  416. que se envía (comprueba que el TTL no ha espirado). El validador
  417. 'Identical' entonces es usado para asegurarse que el hash enviado
  418. marcha con el hash alamacenado.
  419. </para>
  420. <para>
  421. El helper de vista 'formHidden' es usado para generar el elemento
  422. en el formulario.
  423. </para>
  424. </sect2>
  425. <sect2 id="zend.form.standardElements.Image">
  426. <title>Zend_Form_Element_Image</title>
  427. <para>
  428. Las imágenes pueden ser usadas como elementos de formulario, y le
  429. permiten especificar elementos gráficos como botones de formulario.
  430. </para>
  431. <para>
  432. Los elementos Image necesitan una imagen fuente.
  433. <classname>Zend_Form_Element_Image</classname> le permite especificar esto
  434. usando el método de acceso <methodname>setImage()</methodname>
  435. (o clave de configuración 'image'). Opcionalmente, también puede
  436. especificar un valor para utilizar al momento de enviar la imagen
  437. utilizando el método de acceso <methodname>setImageValue()</methodname>
  438. (o clave de configuración 'imageValue'). Cuando el valor establecido
  439. para el elemento sea igual a <methodname>imageValue</methodname>, entonces
  440. el método de acceso <methodname>isChecked()</methodname> devolverá true.
  441. </para>
  442. <para>
  443. Los elementos Image usan el
  444. <link linkend="zend.form.standardDecorators.image">Decorador de
  445. Imagen </link> para generar (así como el estandard Errors,
  446. HtmlTag, y decorador Label). Opcionalmente, puede especificar una
  447. etiqueta para el decorador <methodname>Image</methodname> que luego
  448. envuelva al elemento imagen.
  449. </para>
  450. </sect2>
  451. <sect2 id="zend.form.standardElements.multiCheckbox">
  452. <title>Zend_Form_Element_MultiCheckbox</title>
  453. <para>
  454. En ocasiones, se tiene un conjunto de checkboxes, y se desea agrupar los
  455. resultados. Esto es como un
  456. <link linkend="zend.form.standardElements.multiselect">Multiselect</link>,
  457. pero en lugar de estar en una lista desplegable, necesita mostrarlos en pares checkbox/value (casilla de verificación/valor).
  458. </para>
  459. <para>
  460. <classname>Zend_Form_Element_MultiCheckbox</classname> hace esto sencillo. Like
  461. all other elements extending the base Multi element, you can specify
  462. a list of options, and easily validate against that same list. The
  463. 'formMultiCheckbox' view helper ensures that these are returned as
  464. an array in the form submission.
  465. </para>
  466. <para>
  467. Por defecto, este elemnto requiere un validador <methodname>InArray</methodname>
  468. el cual valida contra el array de llaves de las opciones registradas. Se
  469. puede desactivar esta caracteristica llamando a
  470. <methodname>setRegisterInArrayValidator(false)</methodname>, o pasando un
  471. valor falso a la configuración de llaves
  472. <methodname>registerInArrayValidator</methodname>.
  473. </para>
  474. <para>
  475. Se puede manipular las opciones de checkbox usando los siguinetes
  476. métodos:
  477. </para>
  478. <itemizedlist>
  479. <listitem><para><methodname>addMultiOption($option, $value)</methodname></para></listitem>
  480. <listitem><para><methodname>addMultiOptions(array $options)</methodname></para></listitem>
  481. <listitem><para><methodname>setMultiOptions(array $options)</methodname>
  482. (overwrites existing options)</para></listitem>
  483. <listitem><para>getMultiOption($option)</para></listitem>
  484. <listitem><para>getMultiOptions()</para></listitem>
  485. <listitem><para><methodname>removeMultiOption($option)</methodname></para></listitem>
  486. <listitem><para><methodname>clearMultiOptions()</methodname></para></listitem>
  487. </itemizedlist>
  488. <para>
  489. Para marcar los valores confirmados, se necesita pasar un array de valores a
  490. <methodname>setValue()</methodname>. El siguiente código verificará los valores "bar"
  491. y "bat":
  492. </para>
  493. <programlisting language="php"><![CDATA[
  494. $element = new Zend_Form_Element_MultiCheckbox('foo', array(
  495. 'multiOptions' => array(
  496. 'foo' => 'Foo Option',
  497. 'bar' => 'Bar Option',
  498. 'baz' => 'Baz Option',
  499. 'bat' => 'Bat Option',
  500. );
  501. ));
  502. $element->setValue(array('bar', 'bat'));
  503. ]]></programlisting>
  504. <para>
  505. Note que cuando se determina un asimple variable, se debe pasar un array.
  506. </para>
  507. </sect2>
  508. <sect2 id="zend.form.standardElements.multiselect">
  509. <title>Zend_Form_Element_Multiselect</title>
  510. <para>
  511. XHTML <methodname>selector</methodname> de elementos permite 'multiple' atributos,
  512. indicando multiples opciones pueden ser seleccionados por submision, en vez
  513. de lo usual. <classname>Zend_Form_Element_Multiselect</classname> extiende
  514. <link linkend="zend.form.standardElements.select">Zend_Form_Element_Select</link>,
  515. y define los atributos <methodname>multiple</methodname> a 'multiple'. Como las otras
  516. clases que heredan de la clase base
  517. <classname>Zend_Form_Element_Multi</classname>, se puede manipular las
  518. opciones del selector usando:
  519. </para>
  520. <itemizedlist>
  521. <listitem><para><methodname>addMultiOption($option, $value)</methodname></para></listitem>
  522. <listitem><para><methodname>addMultiOptions(array $options)</methodname></para></listitem>
  523. <listitem><para><methodname>setMultiOptions(array $options)</methodname>
  524. (overwrites existing options)</para></listitem>
  525. <listitem><para>getMultiOption($option)</para></listitem>
  526. <listitem><para>getMultiOptions()</para></listitem>
  527. <listitem><para><methodname>removeMultiOption($option)</methodname></para></listitem>
  528. <listitem><para><methodname>clearMultiOptions()</methodname></para></listitem>
  529. </itemizedlist>
  530. <para>
  531. Si un adaptador de tranducción es registrado con el formulario y/o elemnto,
  532. la opción valores será traducido para propósito de despliegue.
  533. </para>
  534. <para>
  535. Por defecto, este elemento registra un validador <methodname>InArray</methodname>
  536. el cual valida contra el array de llaves de opciones registradas. se puede
  537. deshabilitar esta caracteristica llamando a
  538. <methodname>setRegisterInArrayValidator(false)</methodname>, o pasando
  539. un valor falso a la configuracion de llaves
  540. <methodname>registerInArrayValidator</methodname>.
  541. </para>
  542. </sect2>
  543. <sect2 id="zend.form.standardElements.password">
  544. <title>Zend_Form_Element_Password</title>
  545. <para>
  546. Elementos contraseña son basicamente elementos de texto -- excepto que
  547. tipicamente no se quiera desplegar la contraseña en los mensajes de
  548. error o del elemnto en si cuando el formulario es re desplegado.
  549. </para>
  550. <para>
  551. <classname>Zend_Form_Element_Password</classname> archiva esto llamando
  552. <methodname>setObscureValue(true)</methodname> en cada validador (asegurando que
  553. la contraseña este oculta en mensajes de validación de errores), y usando
  554. la vista ayuda 'formPassword' (el cual no desplega el valor
  555. pasado).
  556. </para>
  557. </sect2>
  558. <sect2 id="zend.form.standardElements.radio">
  559. <title>Zend_Form_Element_Radio</title>
  560. <para>
  561. elementos de Radio permite especificar muchas opciones, de los cuales
  562. se necesita retornar un solo valor. <classname>Zend_Form_Element_Radio</classname>
  563. extiende la clase base <classname>Zend_Form_Element_Multi</classname>,
  564. permitiendonos especificar un numero de opciones, y luego usa la
  565. vista ayuda <methodname>formRadio</methodname> para desplegar.
  566. </para>
  567. <para>
  568. Por defecto, este elemento registra un validador <methodname>InArray</methodname>
  569. el cual valida contra el array de llaves de opciones registradas. se puede
  570. deshabilitar esta caracteristica llamando a
  571. <methodname>setRegisterInArrayValidator(false)</methodname>, o pasando
  572. un valor falso a la configuracion de llaves
  573. <methodname>registerInArrayValidator</methodname>.
  574. configuration key.
  575. </para>
  576. <para>
  577. Como todos los elementos se extienden del elemento clase base Multi,
  578. los siguientes métodos pueden ser usados para manipular las opciones de radio
  579. desplegadas:
  580. </para>
  581. <itemizedlist>
  582. <listitem><para><methodname>addMultiOption($option, $value)</methodname></para></listitem>
  583. <listitem><para><methodname>addMultiOptions(array $options)</methodname></para></listitem>
  584. <listitem><para><methodname>setMultiOptions(array $options)</methodname>
  585. (overwrites existing options)</para></listitem>
  586. <listitem><para>getMultiOption($option)</para></listitem>
  587. <listitem><para>getMultiOptions()</para></listitem>
  588. <listitem><para><methodname>removeMultiOption($option)</methodname></para></listitem>
  589. <listitem><para><methodname>clearMultiOptions()</methodname></para></listitem>
  590. </itemizedlist>
  591. </sect2>
  592. <sect2 id="zend.form.standardElements.reset">
  593. <title>Zend_Form_Element_Reset</title>
  594. <para>
  595. Botones Reset son tipicamente usados para limpiar un formulario, y no son parte
  596. de la información sometida. Como sea, como ellos sirven como propósito en el despliegue,
  597. son incluidos en los elementos estándar.
  598. </para>
  599. <para>
  600. <classname>Zend_Form_Element_Reset</classname> extends <link linkend="zend.form.standardElements.submit">Zend_Form_Element_Submit</link>.
  601. Tal cual, la etiqueta es usada para desplegar el botón y será
  602. traducido si el adaptador traducción esta presente. Se utiliza sólo los
  603. decoradores 'ViewHelper' y 'DtDdWrapper', nunca debería existir
  604. mensajes de error para tales elementos, no se necesitará una etiqueta.
  605. </para>
  606. </sect2>
  607. <sect2 id="zend.form.standardElements.select">
  608. <title>Zend_Form_Element_Select</title>
  609. <para>
  610. Cajas selectoras son una manera común de limitar espeficias opciones
  611. para un dado formulario datum. <classname>Zend_Form_Element_Select</classname> le permite
  612. generar esto rápido y fácil.
  613. </para>
  614. <para>
  615. Por defecto, este elemento registra un validador <methodname>InArray</methodname>
  616. el cual valida contra el array de llaves de opciones registradas. se puede
  617. deshabilitar esta caracteristica llamando a
  618. <methodname>setRegisterInArrayValidator(false)</methodname>, o pasando
  619. un valor falso a la configuracion de llaves
  620. <methodname>registerInArrayValidator</methodname>.
  621. configuration key.
  622. </para>
  623. <para>
  624. Como se extiende el elemento base Multi, los siguientes métodos pueden ser
  625. usados para manipular las opciones seleccionadas:
  626. </para>
  627. <itemizedlist>
  628. <listitem><para><methodname>addMultiOption($option, $value)</methodname></para></listitem>
  629. <listitem><para><methodname>addMultiOptions(array $options)</methodname></para></listitem>
  630. <listitem><para><methodname>setMultiOptions(array $options)</methodname>
  631. (overwrites existing options)</para></listitem>
  632. <listitem><para>getMultiOption($option)</para></listitem>
  633. <listitem><para>getMultiOptions()</para></listitem>
  634. <listitem><para><methodname>removeMultiOption($option)</methodname></para></listitem>
  635. <listitem><para><methodname>clearMultiOptions()</methodname></para></listitem>
  636. </itemizedlist>
  637. <para>
  638. <classname>Zend_Form_Element_Select</classname> usa la vista ayuda 'formSelect'
  639. para decoración.
  640. </para>
  641. </sect2>
  642. <sect2 id="zend.form.standardElements.submit">
  643. <title>Zend_Form_Element_Submit</title>
  644. <para>
  645. Submit buttons are used to submit a form. You may use multiple
  646. submit buttons; you can use the button used to submit the form to
  647. decide what action to take with the data submitted.
  648. <classname>Zend_Form_Element_Submit</classname> makes this decisioning easy,
  649. by adding a <methodname>isChecked()</methodname> method; as only one button
  650. element will be submitted by the form, after populating or
  651. validating the form, you can call this method on each submit button
  652. to determine which one was used.
  653. </para>
  654. <para>
  655. <classname>Zend_Form_Element_Submit</classname> usa la etiqueta como el "valor"
  656. del botón sometido, traduciendolo si el adaptador traducción esta
  657. presente. <methodname>isChecked()</methodname> verifica el valor sometido contra
  658. la etiqueta en orden to determinar si el botón ha sido usado.
  659. </para>
  660. <para>
  661. El <link linkend="zend.form.standardDecorators.viewHelper">ViewHelper</link>
  662. y <link linkend="zend.form.standardDecorators.dtDdWrapper">DtDdWrapper</link>
  663. decoradores generan al elemento. no decorador de etiquetas es usado, como el
  664. botón etiqueta es usado cuando se generan los elementos; asi tipicamente,
  665. no se asociarán errores con el elemnto sometido.
  666. </para>
  667. </sect2>
  668. <sect2 id="zend.form.standardElements.text">
  669. <title>Zend_Form_Element_Text</title>
  670. <para>
  671. Lejos el mas prevaleciente tipo de formulario es el elemento texto,
  672. permitido para entrada de texto limitado; es un elemento ideal para la
  673. entrada de la información. <classname>Zend_Form_Element_Text</classname> simplemente usa la
  674. vista ayuda 'formText' para desplegar el elemento.
  675. </para>
  676. </sect2>
  677. <sect2 id="zend.form.standardElements.textarea">
  678. <title>Zend_Form_Element_Textarea</title>
  679. <para>
  680. Textareas son usadas cuando se espera una larga cantidad de texto y
  681. no limites en la cantidad de texto sometido ( otro que el máximo tamaño
  682. tomado por su servidor or PHP).
  683. <classname>Zend_Form_Element_Textarea</classname> usa la vista ayuda 'textArea'
  684. para desplegar tales elementos, ocupando el valor como el contendio del elemento.
  685. </para>
  686. </sect2>
  687. </sect1>
  688. <!--
  689. vim:se ts=4 sw=4 tw=80 et:
  690. -->