1

我目前正在SonataAdminBundle用于创建后台办公室,并且我已在SonataMediaBundle2 天前集成(应用程序开发版)。然而,奏鸣曲包中的编辑/创建模板有一些错误!我已经修复了它们(它们只是树枝错误)。

但我不能只在供应商中进行更改。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]] 
4

2 回答 2

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 %}
于 2015-01-21T09:59:25.427 回答
0

您覆盖它们的方式与除 Sonata 使用的 easy extends 之外的任何其他包相同,因此在 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

并将奏鸣曲代码复制到其中,然后根据需要进行修改。

希望这可以帮助

于 2014-06-12T20:08:26.007 回答