2015-06-30 1 views
1

У меня проблемы с использованием Sonata Formatter Bundle.CKEditor, не показывающийся с помощью Sonata Formatter (соната для связи сонаты)

В моей config.yml У меня есть следующие (среди других вещей):

imports: 
    - { resource: sonata.yml } 

twig: 
    debug:   "%kernel.debug%" 
    strict_variables: "%kernel.debug%" 

    #sonata 
    form: 
     resources: 
      # ... 
      - 'SonataFormatterBundle:Form:formatter.html.twig' 

В моем файле sonata.yml Я:

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: 
    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: 
     layout:     DXEenhanaBundle:Admin:standard_layout.html.twig 

Я добавил необходимые CSS и JS для моего файла standard_layout.html.twig и они правильно загружены.

В моем файле администратора я следующее:

$formMapper 
    ->add('name', 'text', array('label' => 'Applicant Name')) 
    ->add('contacts', 'sonata_formatter_type', array(
     'event_dispatcher' => $formMapper->getFormBuilder()->getEventDispatcher(), 
     'format_field' => 'contacts', 
     'source_field' => 'contacts', 
     'source_field_options'  => array(
      'attr' => array('class' => 'span10', 'rows' => 7) 
     ), 
     'ckeditor_context' => 'default', 
     'listener'  => true, 
     'target_field' => 'contacts', 
     'label' => 'Contacts' 
    )) 
    ... 

Я вижу текстовое поле, но не CKEditor в моей текстового поля, что мне не хватает? Это то, что я вижу в своем браузере: enter image description here

Я также не получаю никаких ошибок в консоли или других ошибок ....

+0

Это, вероятно, не может быть так, но вы сделали это в вашем документе OnLoad? 'CKEDITOR.replace ('productEdit_PO_Note');' –

+0

Зачем мне это нужно, я не могу найти его в документации ... – nielsv

+0

Пожалуйста, проверьте http://docs.ckeditor.com/#!/guide/ dev_installation –

ответ

3

Вам необходимо перезаписать шаблон layout.html.twig администратора, как описано в разделе Sonata Admin Integration of SonataFormatterBundle Documentation.

Создать новый файл шаблона app\Resources\SonataAdminBundle\views\layout.html.twig:

{% 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 %} 

и обновить config.yml с:

sonata_admin: 
    templates: 
     layout: SonataAdminBundle::layout.html.twig 
3

Это может быть немного слишком поздно для вас, но у меня было то же самое проблема. Я должен был добавить класс «CKEditor» на поле:

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

И это сделало работу