[英]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.