Integrate a chosen library in SonataAdminBundle

Publié le par samuel

Configuration : Symfony 2.2.x

1 – Download a chosen library, for example : http://harvesthq.github.com/chosen/

2 – Install this library in your project : < MyBundle>/Ressources/Public

3 – Expand the default template of Sonata for include the library :

For this, add folder in this path : < MyBundle>/Ressources/views/Admin

And create file “standard_layout.html.twig”

In this file, I give an example for use library JS with Assetic :

{# extension du modèle de base #}

{% extends 'SonataAdminBundle::standard_layout.html.twig' %}

{# Add CSS #}

{% block stylesheets %}

    {# Get parent property #}

    {{ parent() }}

    {# My CSS #}

    {% stylesheets

    '@MyBundle/Resources/public/chosen/chosen.css'

    %}

    {% endstylesheets %}

{% endblock %}

{# Add JS #}

{% block javascripts %}

    {{ parent() }}

    {# My JS #}

    {% javascripts

    '@MyBundle/Resources/public/chosen/chosen.jquery.min.js'

    '@MyBundle/Resources/public/js/jquery_admin.js' %}

       <script src="{{ asset_url }}" type="text/javascript"></script>

    {% endjavascripts %}

{% endblock %}

4 – Configure new template on sonata in config.yml :

sonata_admin:

    title:      Admin

    templates:

       layout: MyBundle:Admin:standard_layout.html.twig

Now the library is import in all sonata template.

 

5 – use library Chosen

protected function configureFormFields(FormMapper $formMapper)

    {

       $formMapper->add('departements', 'sonata_type_model', array('expanded' => false, 'compound' => true, 'multiple' => true,'attr' => array('class' => 'chzn-select', 'multiple'=>'true')))

           ->end();

}

Done :

 

Chosen

integration chosen on sonata admin bundle

Cette entrée a été publiée dans Symfony 2 Utils. Vous pouvez la mettre en favoris avec ce permalien.



Une réponse à Integrate a chosen library in SonataAdminBundle

  1. Ping : Integrate a chosen library in SonataAdminBundle...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*


5 * eight =

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>