簡體   English   中英

如何覆蓋Sonata Media Bundle模板?

[英]How to override Sonata Media Bundle templates?

我目前正在使用SonataAdminBundle創建后台,並且SonataMediaBundle已經集成了SonataMediaBundle (應用程序開發版本)。 但是,奏鳴曲捆綁中的編輯/創建模板有一些錯誤! 我已經修復了它們(它們只是細枝錯誤)。

但是我不能只是在供應商中進行更改。 覆蓋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]] 

實際上,現在我已經弄清楚了。 為了覆蓋媒體預覽或表單,您應該覆蓋表單小部件或自定義表單主題。

示例:在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 %}

您以與其他捆綁軟件相同的方式覆蓋它們,除了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代碼復制到其中,然后根據需要進行修改。

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM