Sonata Admin Bundle: Gama DatePicker
symfony-2.1 jquery-ui-datepicker (2)
ACTUALIZADO 2016-02-02
Si estás usando 3. * Symfony se debe usar la siguiente configuración de ramita:
# app/config/config.yml twig: # ... form_themes: - ''SonataCoreBundle:Form:datepicker.html.twig''
ACTUALIZADO 2015-05-04
Usar el selector de fecha personalizado ya no es necesario. Sonata contiene el selector de fecha y hora nativo, que funciona bien con Twitter Boostrap.
Para activar los campos de formulario del selector de fecha y hora, debe agregar SonataCoreBundle:Form:datepicker.html.twig
en los recursos de formulario de ramita en app / config.yml:
twig:
# ...
form:
resources:
- ''SonataCoreBundle:Form:datepicker.html.twig''
Puede utilizar el selector en forma:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add(''createdAt'', ''sonata_type_date_picker'');
}
en el filtro de fecha y hora:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add(''createdAt'', ''doctrine_orm_datetime'', array(''field_type''=>''sonata_type_datetime_picker'',));
}
o como filtro de rango de fecha y hora:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add(''createdAt'', ''doctrine_orm_datetime_range'', array(''field_type''=>''sonata_type_datetime_range_picker'',));
}
ANTIGUA RESPUESTA
Para usar datePicker en doctrine_orm_datetime
use este código:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper->add(''datumUitgevoerd'', ''doctrine_orm_datetime'', array(), null, array(''widget'' => ''single_text'', ''required'' => false, ''attr'' => array(''class'' => ''datepicker'')));
}
O para usar datePicker en doctrine_orm_datetime_range
el código debería ser:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper->add(''datumUitgevoerd'', ''doctrine_orm_datetime_range'', array(), null, array(''widget'' => ''single_text'', ''required'' => false, ''attr'' => array(''class'' => ''datepicker'')));
}
Y debe sobrecargar la plantilla principal para agregar su archivo javascript personalizado para inicializar DatePicker.
#File app/config.yml
sonata_admin:
title: Admin
title_logo: /logo_admin.png
templates:
layout: AcmeDemoBundle::standard_layout.html.twig
#...another Sonata and Symfony settings...
{# File src/Acme/Bundle/DemoBundle/Resources/views/standard_layout.html.twig #}
{% extends ''SonataAdminBundle::standard_layout.html.twig'' %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset(''bundles/acmedemo/js/jquery_admin.js'') }}" type="text/javascript"></script>
{% endblock %}
//File web/bundles/acmedemo/js/jquery_admin.js
jQuery(document).ready(function(){
jQuery.datepicker.setDefaults( jQuery.datepicker.regional[ "" ] );
jQuery(".datepicker").datepicker( jQuery.datepicker.regional[ "en" ]);
});
¿Cómo crearía un filtro doctrine_orm_datetime_range
en el paquete de administración de Sonata que usa el selector de fechas de jQuery UI?
Intenté lo siguiente, pero no funciona:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add(''datumUitgevoerd'', ''doctrine_orm_datetime'', array(''widget'' => ''single_text''), null, array(''required'' => false, ''attr'' => array(''class'' => ''datepicker'')))
;
}
Sé que es un tema antiguo, pero me ayuda un poco de todos modos, así que quizás ayude a alguien en el futuro.
He encontrado una manera de configurar un formato de fecha para el selector de fechas:
$datagridMapper->add(''createdAt'', ''doctrine_orm_date_range'', [
''field_type''=>''sonata_type_date_range_picker'',
''field_options'' => [
''field_options'' => [
''format'' => ''yyyy-MM-dd''
]
]
]);
En forma predeterminada, el formato de parámetro se configura en Sonata / CoreBundle / Form / Type / DatePickerType.