Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SonataAdminBundle custom rendering of text fields in list

I'm using symfony2 and SonataAdminBundle. I have a simple Entity called Post in which I have content field that is basically html text (from a ckeditor for the record). I need to display in the Post list the content field as raw html, without escaping it. Hacking base_list_field template like this

{% block field %}{{ value|raw }}{% endblock %}

works, but it's clearly not the proper way.

like image 524
giorrrgio Avatar asked Jan 04 '12 15:01

giorrrgio


1 Answers

The solution:

I've defined a custom html type in the config.yml for sonata_doctrine_orm_admin:

sonata_doctrine_orm_admin:
    templates:
      types:
        list:
          html: MyBundle:Default:list_html.html.twig

And created the custom list_html.html.twig template in which i do not escape HTML:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field%}
    {{value|raw}}
{% endblock %}

Now in the PostAdmin I can define the behaviour of the field in the configureListFields method:

$listMapper
    ->add('content', 'html')
like image 144
Besnik Avatar answered Oct 30 '22 02:10

Besnik