IvoryCKEditorBundle Symfony: Как использовать ckeditor_widget из шаблона TWIG IvoryCKEditorBundle в моем СОБСТВЕННО переопределенном шаблоне TWIG

Я реализовал IvoryCKEditorBundle в своем проекте SYMFONY 3.2.

Я следовал рекомендациям здесь и обзор документа на официальном сайте Symfony.

Теперь я вижу следующие файлы в каталоге IvoryCKEditorBundle:

  • [мой проект]\vendor\egoloen\ckeditor-bundle\Resources\views\Form\ckeditor_widget.html.twig
  • [мой проект]\vendor\egoloen\ckeditor-bundle\Twig\CKEditorExtension.php

А [my project]\vendor\egoloen\ckeditor-bundle\Resources\views\Form\ckeditor_widget.html.twig определяет {% block ckeditor_widget %}.

В моем проекте я переопределил свой собственный шаблон для отображения формы, используя все приемы, указанные в официальном документ. А под [my project]\src\MyBundle\Resources\views у меня есть файл input_inline_template.html.twig который выглядит так:

{% extends 'form_div_layout.html.twig' %}
{% use 'CKEditorBundle:Form:ckeditor_widget.html.twig' %}
{% block form_row  %}
   <div    class='col-12'  id={{ id ~ '_div_row_id'}}>
        {% block form_label   %}
         <div class='col-4' id={{ id ~ '_div_label_id' }}>
            {{ parent() }}
          </div>
        {% endblock %}

        {% if form.vars.block_prefixes.2 == "textarea" %}
            {% if (form.vars.block_prefixes.3 is defined) and (form.vars.block_prefixes.3 == "ckeditor") %} 
             {% block ckeditor_widget %}
                 <div class='col-8'>
                  {{ parent() }}
                 </div>
             {% endblock %}
         {% else %}
            {% block textarea_widget %}
                <div class='col-8'>
                  {{ parent() }}
                 </div>
            {% endblock %}
        {% endif %}
     {% endif %}
   </div>
{% endblock %}

Это не работает. Он говорит мне, что не может найти ckeditor_widget, если у меня нет строки {% use 'CKEditorBundle:Form:ckeditor_widget.html.twig' %}, он выдает ошибку:

Блок «ckeditor_widget» в шаблоне «form_div_layout.html.twig» не существует в «form_div_layout.html.twig».

И когда строка {% use 'CKEditorBundle:Form:ckeditor_widget.html.twig' %} реализована, она выдает ошибку:

Не удалось найти шаблон "CKEditorBundle:Form:ckeditor_widget.html.twig"

Он говорит мне, что ищет CKEditorBundle:Form:ckeditor_widget.html.twig в: [my_symf_project]\app/Resources/views, [my_symf_project]\vendor\symfony\symfony\src\Symfony\Bridge\Twig/Resources/views/Form, [my_symf_project]\vendor\knplabs\knp-menu\src\Knp\Menu/Resources/views.

Я не знаю, как настроить в [my project]\app\config\config.yml, чтобы он искал в [my project]\vendor\egoloen\ckeditor-bundle\Resources\views\Form\, чтобы найти ckeditor_widget.html.twig.


person nyluje    schedule 15.04.2017    source источник


Ответы (1)


Я нашел здесь подсказку.

В [my project]\src\MyBundle\Resources\views\input_inline_template.html.twig я заменил: {% use 'CKEditorBundle:Form:ckeditor_widget.html.twig' %} на: {% use 'IvoryCKEditorBundle:Form:ckeditor_widget.html.twig' %}.

Это исправило это.

person nyluje    schedule 15.04.2017