2017-08-03 87 views
1

我想在我的管理中添加一個格式化程序。索納塔格式化程序和奏鳴曲管理與Symfony 3集成

我安裝了(正常工作)和SonataFormatterBundle

這裏是(的一部分)我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 

在正式文件,要求它添加在app/Resources/SonataAdminBundle/views/layout.html.twig。在Symfony 3中,沒有這樣的路徑,所以我創建了它。

在ArticleAdmin.php,我加

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

我也試過

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

但它有沒有效果,還有在我的預覽字段中沒有格式化。

我注意的是,「新」 layout.html.twigbundles/sonataformatter/...bundles/ivoryckeditor/...文件,但沒有包含在web/bundles/ivoryckeditorsonataformatter

也許這是一個版本問題。所以,這裏是「需要」我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" 

謝謝

回答

1
  1. 你有安裝包後安裝的資產? 我的意思是Symfony控制檯命令bin/console assets:install
  2. 我不知道你在說什麼layout.html.twig,但它可能是standard_layout.html。您必須在AppBundle中添加此佈局(如果您尚未覆蓋SonataBundle)。 在我的情況下佈局的路徑是:AppBundle/Resources/views/Admin/standard_layout.html.twig
    而在你config.yml你有你的一個替代非標準奏鳴曲佈局:

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

非常感謝你。安裝資產適用於我。 –

+0

不要忘記總是使用兩個命令: 'bin/console assets:install' - 安裝捆綁包之後。 'bin/console cache:clear' - 每次遇到任何問題時。 它會爲你節省很多時間。 – staskrak

相關問題