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