2017-07-07 2 views
0

J'ai réussi à configurer Sonata Admin v3.2 et Sonata Media Bundle dans mon installation de Symfony 2.8. Comme vous pouvez le voir le back-end fonctionne bien:Symfony avec Sonata Admin Bundle et éditeur HTML enrichi

enter image description here

Je voulais rendre la propriété content comme riche HTML si je suivais le guide approprié:

https://sonata-project.org/bundles/formatter/3-x/doc/reference/formatter_widget.html

Je configuré le SonataFormatterBundle en suivant le guide étape par étape mais le champ ne s'affiche pas correctement. Ceci est ma config:

#Sonata with Symfony >= 2.6 
form_themes: 
    - 'SonataFormatterBundle:Form:formatter.html.twig' 

sonata_block: 
    default_contexts: [cms] 
    blocks: 
     # Enable the SonataAdminBundle block 
     sonata.admin.block.admin_list: 
      contexts: [admin] 
     # Your other blocks 
     sonata.formatter.block.formatter: 

sonata_formatter: 
ckeditor: 
    templates: 
     browser: 'SonataFormatterBundle:Ckeditor:browser.html.twig' 
     upload: 'SonataFormatterBundle:Ckeditor:upload.html.twig' 
default_formatter: richhtml 
formatters: 
    markdown: 
     service: sonata.formatter.text.markdown 
     extensions: 
      - sonata.formatter.twig.control_flow 
      - sonata.formatter.twig.gist 
      - sonata.media.formatter.twig 


    text: 
     service: sonata.formatter.text.text 
     extensions: 
      - sonata.formatter.twig.control_flow 
      - sonata.formatter.twig.gist 
      - sonata.media.formatter.twig 


    rawhtml: 
     service: sonata.formatter.text.raw 
     extensions: 
      - sonata.formatter.twig.control_flow 
      - sonata.formatter.twig.gist 
      - sonata.media.formatter.twig 


    richhtml: 
     service: sonata.formatter.text.raw 
     extensions: 
      - sonata.formatter.twig.control_flow 
      - sonata.formatter.twig.gist 
      - sonata.media.formatter.twig 


    twig: 
     service: sonata.formatter.text.twigengine 
     extensions: [] # Twig formatter cannot have extensions 

Et voici ma PostAdmin classe:

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('title') 
     ->add('content', 'sonata_simple_formatter_type', array(
      'format' => 'richhtml', 
      'ckeditor_context' => 'default', // optional 
     )) 
     ->add('category') 
    ; 
} 

La page ne montre pas des erreurs mais le champ reste comme textarea normal (voir ma capture d'écran ci-dessus).

+1

Avez-vous ajouté le Javascript est nécessaire et les fichiers CSS à votre modèle de mise en page? Voir https://sonata-project.org/bundles/formatter/3-x/doc/reference/formatter_widget.html Étape 5.4. Intégration Admin Sonate – user2476294

+0

Salut, merci! J'ai copié le code HTML du lien que vous avez fourni et cela a fonctionné! Probablement je prenais le code d'une mauvaise version avec markitup. Si vous écrivez une réponse, je la marquerai comme résolue. – StockBreak

Répondre

1

Donc, pour ceux qui ne sont pas à la recherche dans les commentaires:

Les éditeurs de texte riche en SonataFormatterBundle besoin d'un peu de Javascript et Stylesheets de travailler. Vous devez les ajouter dans votre modèle d'agencement d'administrateur, comme décrit here.

Copié de la documentation (Code pour la version 3.x):

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

{% block stylesheets %} 
{{ parent() }} 

<link rel="stylesheet" href="{{ asset('bundles/sonataformatter/markitup/skins/sonata/style.css') }}" type="text/css" media="all" /> 
<link rel="stylesheet" href="{{ asset('bundles/sonataformatter/markitup/sets/markdown/style.css') }}" type="text/css" media="all" /> 
<link rel="stylesheet" href="{{ asset('bundles/sonataformatter/markitup/sets/html/style.css') }}" type="text/css" media="all" /> 
<link rel="stylesheet" href="{{ asset('bundles/sonataformatter/markitup/sets/textile/style.css') }}" type="text/css" media="all" /> 
{% endblock %} 

{% block javascripts %} 
{{ parent() }} 

<script src="{{ asset('bundles/ivoryckeditor/ckeditor.js') }}" type="text/javascript"></script> 
<script src="{{ asset('bundles/sonataformatter/vendor/markitup-markitup/markitup/jquery.markitup.js') }}" type="text/javascript"></script> 
<script src="{{ asset('bundles/sonataformatter/markitup/sets/markdown/set.js') }}" type="text/javascript"></script> 
<script src="{{ asset('bundles/sonataformatter/markitup/sets/html/set.js') }}" type="text/javascript"></script> 
<script src="{{ asset('bundles/sonataformatter/markitup/sets/textile/set.js') }}" type="text/javascript"></script> 
{% endblock %}