Как переопределить шаблоны Sonata Media Bundle?

В настоящее время я использую SonataAdminBundle для создания бэк-офиса, и я интегрировал SonataMediaBundle (версия для разработки приложений) 2 дня назад. Однако шаблон редактирования/создания из пакета сонаты содержит некоторые ошибки! Я исправил их (и это просто ошибки ветки).

Но я не могу просто внести изменения в поставщика. Как правильно перезаписать шаблоны SonataMediaBundle?
Я пробовал классический AdminBundle способ, но он не работает! вот код:

sonata.admin.media:
        class: Acme\AdminBundle\Admin\MediaAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Media Library", label: "Media" }
        arguments:
            - ~
            - ~
            - ~
            - @sonata.media.pool
        calls:
            - [ setTemplate, [edit, AcmeAdminBundle:Media:edit.html.twig]] 

person alexandra    schedule 15.04.2014    source источник


Ответы (2)


Собственно, теперь я разобрался. Чтобы перезаписать предварительный просмотр мультимедиа или форму, вы должны перезаписать виджет формы или настроить тему формы.

Пример: В файле config.yml добавьте конфигурацию:

twig:
    form:
        resources:
            # other files
            - 'AdminBundle:Form:mediaPreview.html.twig'

Файл предварительного просмотра мультимедиа должен выглядеть примерно так:

{% block sonata_media_type_widget %}
      << your code here >>
{% endblock sonata_media_type_widget %}
person alexandra    schedule 21.01.2015

Вы перезаписываете их так же, как и любой другой пакет, кроме простых расширений Sonata, поэтому в App/Resources создайте папку с именем ApplicationSonataMediaBundle или ApplicationSonataAdminBundle и внутри этой папки создайте папку с тем же именем, что и тот, который вы пытаетесь переопределить.

Например, в настоящее время я использую следующее:

App/Resources/ApplicationSonataNewsBundle/translations/SonataNewsBundle.en.xliff

Переопределить любой из английских переводов в их новостной рассылке ИЛИ

App/Resources/ApplicationSonataUserBundle/views/layout.html.twig

Чтобы переопределить их шаблон макета.

Я бы посоветовал вам создать что-то в этом духе.

App/Resources/ApplicationSonataMediaBundle/views/MediaAdmin/edit.html.twig

и скопируйте в него код Sonata, а затем измените по своему усмотрению.

Надеюсь это поможет

person Doug    schedule 12.06.2014