Zend_Form-StandardElements.xml 39 KB

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