2017-08-03 24 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

相关问题