2017-08-03 5 views
1

Ich versuche, einen Formatierer innerhalb meiner Verwaltung hinzuzufügen.Sonata Formatter und Sonata Admin Integration mit Symfony 3

Ich installierte (funktioniert gut) und SonataFormatterBundle.

Hier ist (ein Teil) meine config.yml

sonata_block: 
    default_contexts: [cms] 
    blocks: 
     # enable the SonataAdminBundle block 
     sonata.admin.block.admin_list: 
      contexts: [admin] 

sonata_formatter: 
    default_formatter: text 
    formatters: 
     markdown: 
      service: sonata.formatter.text.markdown 
      extensions: 
       - sonata.formatter.twig.control_flow 
       - sonata.formatter.twig.gist 
       - sonata.media.formatter.twig #keep this commented unless you are using media bundle. 
     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 
    ckeditor: 
     templates: 
      browser: 'SonataFormatterBundle:Ckeditor:browser.html.twig' 
      upload: 'SonataFormatterBundle:Ckeditor:upload.html.twig' 

ivory_ck_editor: 
    configs: 
     default: 
      language: '%locale%' 
      toolbar: standard 

sonata_admin: 
    templates: 
     # default global templates 
     layout: SonataAdminBundle::layout.html.twig 

In der offiziellen Dokumentation wird gebeten, eine layout.html.twig in app/Resources/SonataAdminBundle/views/ hinzuzufügen. In Symfony 3 gibt es keinen solchen Pfad, also habe ich ihn erstellt.

In ArticleAdmin.php, fügte ich

->add('preview', 'sonata_simple_formatter_type', array('format' => 'richhtml', 'attr' => array('class' => 'ckeditor')))

Ich habe auch versucht

->add('preview', 'sonata_simple_formatter_type', array(
        'format' => 'richhtml', 
        'ckeditor_context' => 'default', // optional 
       )) 

Aber es hat keine Auswirkung, da kein Formatierer in meinem Vorschaufeld ist.

Ich stellte fest, dass die ‚neue‘ layout.html.twig zu bundles/sonataformatter/... und bundles/ivoryckeditor/... Dateien verweist aber es gibt keine ivoryckeditor oder sonataformatter in web/bundles/ enthalten.

Vielleicht ist es ein Versionsproblem. Also hier ist die "require" Teil meiner composer.json:

"require": { 
     "php": ">=5.5.9", 
     "doctrine/doctrine-bundle": "^1.6", 
     "doctrine/orm": "^2.5", 
     "friendsofsymfony/rest-bundle": "^2.2", 
     "incenteev/composer-parameter-handler": "^2.0", 
     "nelmio/api-doc-bundle": "^2.13", 
     "sensio/distribution-bundle": "^5.0.19", 
     "sensio/framework-extra-bundle": "^3.0.2", 
     "sonata-project/admin-bundle": "^3.20", 
     "sonata-project/doctrine-orm-admin-bundle": "^3.1", 
     "sonata-project/easy-extends-bundle": "^2.2", 
     "sonata-project/formatter-bundle": "^3.2", 
     "sonata-project/google-authenticator": "^1.0", 
     "sonata-project/media-bundle": "^3.6", 
     "stof/doctrine-extensions-bundle": "^1.2.2", 
     "symfony/monolog-bundle": "^3.1.0", 
     "symfony/polyfill-apcu": "^1.0", 
     "symfony/swiftmailer-bundle": "^2.3.10", 
     "symfony/symfony": "3.3.*", 
     "twig/twig": "^1.0||^2.0" 

Danke,

Antwort

1
  1. Haben Sie installiert Vermögenswerte nach dem Bündel zu installieren? meine ich Symfony Konsolenbefehl bin/console assets:install
  2. Ich weiß nicht sicher, was Sie über layout.html.twig sprechen, aber es könnte standard_layout.html sein. Dieses Layout müssen Sie in Ihrem AppBundle hinzufügen (wenn Sie das SonataBundle nicht überschrieben haben). In meinem Fall ist der Pfad zum Layout: AppBundle/Resources/views/Admin/standard_layout.html.twig.
    Und in Ihrem config.yml Sie haben standart Sonate Layout mit einem ersetzen: sehr viel

    sonata_admin: 
    title: 'Yor title' 
    templates: 
        ## ... 
        layout: 'AppBundle::Admin/standard_layout.html.twig' 
        ## ... 
    
+0

Danke. Das Installieren von Assets funktioniert für mich. –

+0

Vergessen Sie nicht immer zwei Befehle zu verwenden: 'bin/console assets: install' - nach der Installation der Bundles. 'bin/console cache: clear' - jedes Mal, wenn Sie ein Problem haben. Es wird viel Zeit für Sie sparen. – staskrak