2017-07-07 51 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 %} 
相關問題