Ya he hablado acerca del sfFormExtraPlugin en algunos artículos anteriores. Hoy, les presentare este plugin mas a fondo.
¿Qué es?
El sfFormExtraPlugin es un plugin mantenido por el symfony core team.
Contiene una gran cantidad de interesantes widgets, validadores, y forms que son muy útiles pero que no están en el núcleo porque tienen dependencias de terceros o su uso es demasiado específico.
¿Qué tiene adentro?
ReCaptcha widget and validator

sfWidgetFormReCaptcha emplea ReCaptcha para mostrar un captcha y
sfValidatorReCaptcha es el validador asociado.
Para usarlos, necesitas crear una clave del API en el sitio de ReCaptcha.
El widget toma la ReCaptcha public_key como una opción, mientras que el validador toma la ReCaptcha private_key:
$this->widgetSchema['captcha'] = new sfWidgetFormReCaptcha(array( 'public_key' => sfConfig::get('app_recaptcha_public_key') )); $this->validatorSchema['captcha'] = new sfValidatorReCaptcha(array( 'private_key' => sfConfig::get('app_recaptcha_private_key') ));
Como no es posible cambiar los nombres de los campos del ReCaptcha, necesitaras agregarlos manualmente when cargues un form de la petición HTTP.
He aquí un típico uso cuándo embebes un captcha en un form con un formato del nombre contact[%s]:
$captcha = array( 'recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field'), ); $this->form->bind(array_merge($request->getParameter('contact'), array('captcha' => $captcha)));
La siguiente tabla resume todas las opciones disponibles para el widget sfWidgetFormReCaptcha:
| Opción |
Descripción |
|---|---|
public_key |
La clave publica ReCaptcha |
use_ssl |
Si usas SSL o no (false esta por defecto) |
server_url |
La URL para la HTTP API |
server_url_ssl |
La URL para la HTTPS API (cuándo use_ssl es true) |
Y este es para sfValidatorReCaptcha:
| Opción | Descripción |
|---|---|
private_key |
La clave privada ReCaptcha |
remote_addr |
La dirección remota del usuario |
server_host |
El Host servidor ReCaptcha |
server_port |
El puerto servidor ReCaptcha |
server_path |
El path servidor ReCatpcha |
server_timeout |
El timeout to usado cuándo contacta el servidor ReCaptcha |
HTML WYSIWYG editor

sfWidgetFormTextareaTinyMCE es un editor HTML WYSIWYG basado en el popular TinyMCE.
El widget JavaScript es configurado con valores predeterminados sensibles,pero se puede cambiar unsado una opción config:
$this->widgetSchema['content'] = new sfWidgetFormTextareaTinyMCE(array( 'width' => 550, 'height' => 350, 'config' => 'theme_advanced_disable: "anchor,image,cleanup,help"', ));
La opcion config deben ser pares JavaScript de claves/valores.
| Opción | Descripción |
|---|---|
theme |
La plantilla Tiny MCE (por defecto) |
width |
El ancho del widget en píxeles |
height |
El alto del widget en píxeles |
config |
El JavaScript de configuración |
Rich date widget

sfWidgetFormJQueryDate muestra un lindo widget para dias, basado en el JQuery.
En cuanto al widget TinyMCE, está configurado por defecto con datos sensibles los cuales pueden ser sobreescritos gracias a la opción config:
$this->widgetSchema['published_at'] = new sfWidgetFormJQueryDate(array( 'config' => '{}', ));
Aquí está la lista de opciones del widget:
| Opción | Descripción |
|---|---|
image |
El path de la imagen que muestra el widget (false esta por defecto) |
config |
Un array JavaScript de configuración |
culture |
La Cultura a usar cuando se muestre el widget |
Language form

sfFormLanguage es un form que permite a los usuarios cambiar su cultura. Ya he publicado un articulo sobre sfFormLanguage, por lo que no voy describir lo de nuevo.
Double list widget

sfWidgetFormSelectDoubleList es un widget que muestra múltiples opciones como una doble lista. Este
widget ya ha sido explicado en un articulo anterior.
La siguiente tabla describe todas las opciones disponibles:
| Opción | Descripción |
|---|---|
choices |
Un array de las posibles opciones |
class |
La clase principal del widget |
class_select |
La clase para los dos select tags |
label_unassociated |
La etiqueta para unassociated |
label_associated |
La etiqueta para associated |
unassociate |
El HTML para el enlace unassociate |
associate |
El HTML para el enlace associate |
template |
La plantilla HTML a usar para mostrar este widget |
| Los marcadores disponibles son: | |
label_associated, label_unassociated, |
|
associate, unassociate, |
|
associated, unassociated, |
|
y class |
Autocompleter widget

sfWidgetFormJQueryAutocompleter es un widget autocompletado basado en JQuery.
sfWidgetFormPropelJQueryAutocompleter extiende de sfWidgetFormJQueryAutocompleter y relaciona el widget
a un modelo Propel.
Este widget ya ha sido explicado en un articulo anterior.
La siguiente tabla describe todas las opciones disponibles:
| Opción | Descripción |
|---|---|
url |
La URL a cargarl para obtener las opciones a usar |
config |
Un array JavaScript que configura el widget autocompletado JQuery |
value_callback |
Un callback que convierte el valor antes de que se muestre |
Contribuir
sfFormExtraPlugin todavía es joven y más widgets, validadores, y forms se añadirán en un futuro próximo, así que permanezcan atentos.
Si estas desarrollando un widget o validador para tu proyecto y quieres compartirlo con la comunidad symfony, crea un plugin de ello, o contribuye con este en el plugin sfFormExtraPlugin.
Este tutorial es el primer articulo de una serie nuevos plugins.
Si eres el desarrollador de un plugin o el usuario de un plugin, y quiere propagar la idea acerca de el, escribe un tutorial (en el formmato markdown), y enviamelo, y los mejores serán publicados en este blog en las próximas semanas.
La presente, es una traducción al castellano realizada por Roberto G. Puentes Diaz, sobre el artículo spice-up-your-forms-with-some-nice-widgets-and-validators de Fabien Potencier.
|
Este trabajo esta licenciado bajo una Licencia Creative Commons Atribución-No Comercial-Sin Obras Derivadas 3.0 Unported. |