datepicker symfony-2.1 jquery-ui-datepicker symfony-sonata sonata-admin

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.