Symfony 如何覆盖Sonata媒体包模板?
我目前正在使用Symfony 如何覆盖Sonata媒体包模板?,symfony,sonata-admin,sonata-media-bundle,Symfony,Sonata Admin,Sonata Media Bundle,我目前正在使用SonataAdminBundle创建后台办公室,2天前我集成了sonatamadiabundle(应用开发版本)。但是,sonata捆绑包中的编辑/创建模板有一些错误!我已经修复了它们(它们只是树枝上的错误) 但我不能只对供应商进行更改。覆盖SonataMediaBundle模板的正确方法是什么? 我尝试过经典的AdminBundle方法,但它不起作用!代码如下: sonata.admin.media: class: Acme\AdminBundle\Admin\
SonataAdminBundle
创建后台办公室,2天前我集成了sonatamadiabundle
(应用开发版本)。但是,sonata捆绑包中的编辑/创建模板有一些错误!我已经修复了它们(它们只是树枝上的错误)
但我不能只对供应商进行更改。覆盖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]]
您可以使用与除Sonata use的easy extends之外的任何其他捆绑包相同的方式覆盖它们,因此在应用程序/资源中创建一个名为ApplicationsOnAtamDiabundle或ApplicationSonataAdminBundle的文件夹,并在此文件夹中创建一个与您尝试覆盖的文件夹同名的文件夹 例如,我目前使用以下方法:
App/Resources/ApplicationSonataNewsBundle/translations/SonataNewsBundle.en.xliff
覆盖新闻包中的任何英文翻译,或
App/Resources/ApplicationSonataUserBundle/views/layout.html.twig
以替代其布局模板
我建议您需要按照这些思路创建一些东西
App/Resources/ApplicationSonataMediaBundle/views/MediaAdmin/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 %}
{%block sonata\u media\u type\u widget%}
>
{%endblock sonata_media_type_widget%}