2017-07-07 90 views
0

我在Symfony 2.8安装中成功配置了Sonata Admin v3.2和Sonata Media Bundle。正如你所看到的后端工作正常:Symfony with Sonata Admin Bundle和丰富的HTML编辑器

enter image description here

我想呈现content属性作为一个丰富的HTML,所以我遵循相应的指南:

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

我配置SonataFormatterBundle按照指导逐步执行,但字段无法正确显示。这是我的配置:

#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 

这是我PostAdmin类:

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

该页面未显示任何错误,但该领域保持作为一个正常的textarea(见我上面的截图)。

+1

你所需要的JavaScript和CSS文件添加到您的布局模板?请参阅https://sonata-project.org/bundles/formatter/3-x/doc/reference/formatter_widget.html步骤5.4。奏鸣曲管理集成 – user2476294

+0

嘿,谢谢!我从你提供的链接复制了html,并且它工作正常!可能我是用markitup从错误的版本中获取代码。如果你写一个答案,我会标记为已解决。 – StockBreak

回答

1

因此,对于那些谁没有寻找到的意见:

在SonataFormatterBundle丰富的文本编辑器需要一些JavaScript和样式表工作。您需要按照here所述将其添加到管理员布局模板中。

从文档复制(代码版本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 %} 
相关问题