我目前使用SonataAdminBundle
为创建一个后台的,我已经集成SonataMediaBundle
(APP-dev的版本)2天前。 编辑/创建奏鸣曲包模板但是有一些错误! 我已经固定他们(和他们只是小枝错误)。
但我不能只是做在供应商的变化。 什么是覆盖的正确方法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 %}
您覆盖它们,你会除了索纳塔使用的方便其他任何捆绑的应用程序,从而延长了同样的方法/资源创建一个名为ApplicationSonataMediaBundle或ApplicationSonataAdminBundle文件夹,该文件夹中创建同名的您要覆盖一个的文件夹中。
比如我目前使用以下命令:
App/Resources/ApplicationSonataNewsBundle/translations/SonataNewsBundle.en.xliff
要覆盖所有的英文译本在他们的新闻包或
App/Resources/ApplicationSonataUserBundle/views/layout.html.twig
以覆盖其布局模板。
我建议你需要创造这些方针的东西。
App/Resources/ApplicationSonataMediaBundle/views/MediaAdmin/edit.html.twig
和索纳塔代码复制进去,然后修改根据您的需要。
希望这可以帮助