我在Symfony 2.8安装中成功配置了Sonata Admin v3.2和Sonata Media Bundle。正如您所看到的,后端工作正常:
我想将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')
;
}
该页面未显示任何错误,但该字段仍为普通文本区域(请参阅上面的屏幕截图)。
答案 0 :(得分:1)
所以,对于那些没有查看评论的人:
SonataFormatterBundle中的富文本编辑器需要一些Javascript和Stylesheets才能工作。您需要按照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 %}