Hola, estoy tratando de construir una personalización que de de alta en una tabla propia un solo registro.
En el formulario quiero poner un elemento del tipo fecha, ¿Se puede con la versión de Zend Forms que sea tipo fecha? Se puede hacer que muestre el control tipo calendario? Si no es posible, al agrear el elemento al formulario tipo ‘text’…como se implementa el control de la validación de los valores? que sea una fecha válida y/o que esté dentro de una rango ?
En el builder del form tengo estos métodos implementados
function get_configuracion_layout_grilla()
{
return array(
array(
'grupo' => 'tramites',
'titulo' => trans('tit_abm_tramites'),
'filas' => array(
array('fecha' => array('span' => 9)),
)
),
);
}
function get_action()
{
// se posteará a la acción index del controlador
return kernel::vinculador()->crear('abm_tramites', 'index');
}
function generar_definicion(guarani_form $form, fabrica_formularios $fabrica)
{
$form->add_accion($fabrica->accion_boton_submit('agregar', kernel::traductor()->trans('abm_tramites_btn_agregar')));
$form->add_elemento($fabrica->elemento('fecha', array(
// notar el validador TIPO_ALPHA. Esto luego lo usaremos para ver el manejo de errores
form_elemento_config::filtro => validador::TIPO_DATE,
form_elemento_config::obligatorio => true,
form_elemento_config::elemento => array('tipo' => 'text'),
form_elemento_config::largo => 10
)));
}
function get_id_html()
{
return 'formulario_tramites';
}
fíjate como se esta haciendo en la operación Fechas de examen, en el archivo src/siu/operaciones/fecha_examen/filtro/builder_form_filtro.php campos fecha_desde y fecha_hasta:
luego en src/siu/operaciones/encuestas_respondidas/filtros/pagelet_filtros.js debajo de donde dice /* Datepickers */ se le da todo el comportamiento JS, el mismo se hace con la librería Jquery UI (la misma ya se encuentra cargada en el proyecto), ver:
Usé la segunda opción agregando el archivo javascript al formulario para configurar el elemento tipo fecha usando datepickers.
Por si a alguien le sirve, tener cuidado en la construcción del formulario de que la cantidad de elementos del arreglo para la entrada ‘filas’:
Ya que a mi me paso por despistado que quería agregar elementos solamente en generar_definicion() sin especificar en get_configuracion_layout_grilla(). No arroja errores aparentes pero no agrega el elemento.
¿pudiste solucionarlo o necesitas alguna otra ayuda? en tal caso no dudes en consultar.
Reitero que los DatePickers que utilizamos son los de jQuery UI, por defecto es un DatePicker simple para seleccionar una fecha, pero se puede personalizar vía JavaScript utilizando esta API y estos ejemplos.