Sonata 管理包模板
Posted
技术标签:
【中文标题】Sonata 管理包模板【英文标题】:Sonata admin bundle template 【发布时间】:2014-04-28 23:11:41 【问题描述】:我最近安装了 Symfony 和 Sonata 管理包,工作正常。 是否可以更改/自定义管理界面(模板)?我在哪里可以下载这些模板?任何教程如何做到这一点?
【问题讨论】:
【参考方案1】:可以更改任何模板。 为此,您需要:
安装 EasyExtendBundle运行命令 $php app/console sonata:easy-extends:generate SonataAdminBundle -d src
在 AppKernel.php 中注册生成的包(名称为 ApplicationSonataAdminBundle)
从供应商目录复制您需要扩展的模板,并将其放在新包中的相同层次结构下。
更改您的新模板并添加您想要的任何块
PS:你可以对 CSS 或 JS 文件做同样的事情
【讨论】:
【参考方案2】:您可以基于或不基于奏鸣曲模板编写新模板,并在请求页面时指示奏鸣曲管理员显示您的模板。在 Admin 类中,您必须重写“getTemplate”方法,如下所示:
public function getTemplate($name)
switch ($name)
case 'edit':
return 'YourBundle:YourFolder:yourEdit.html.twig';
break;
case 'list':
return 'YourBundle:YourFolder:yourList.html.twig';
break;
default:
return parent::getTemplate($name);
break;
该示例覆盖了“编辑”和“列表”操作的模板。对于其他动作,它将获得奏鸣曲模板。
【讨论】:
您也可以在此示例中使用 setter 注入方法:blog.webdevilopers.net/…【参考方案3】:您可以简单地覆盖捆绑包中的任何模板。查看文档here
默认所有模板都在config.yml中配置:
sonata_admin:
templates:
layout: SonataAdminBundle::standard_layout.html.twig
ajax: SonataAdminBundle::ajax_layout.html.twig
list: SonataAdminBundle:CRUD:list.html.twig
show: SonataAdminBundle:CRUD:show.html.twig
edit: SonataAdminBundle:CRUD:edit.html.twig
history: SonataAdminBundle:CRUD:history.html.twig
preview: SonataAdminBundle:CRUD:preview.html.twig
delete: SonataAdminBundle:CRUD:delete.html.twig
batch: SonataAdminBundle:CRUD:list__batch.html.twig
acl: SonataAdminBundle:CRUD:acl.html.twig
action: SonataAdminBundle:CRUD:action.html.twig
select: SonataAdminBundle:CRUD:list__select.html.twig
dashboard: SonataAdminBundle:Core:dashboard.html.twig
search: SonataAdminBundle:Core:search.html.twig
batch_confirmation: SonataAdminBundle:CRUD:batch_confirmation.html.twig
inner_list_row: SonataAdminBundle:CRUD:list_inner_row.html.twig
base_list_field: SonataAdminBundle:CRUD:base_list_field.html.twig
list_block: SonataAdminBundle:Block:block_admin_list.html.twig
user_block: SonataAdminBundle:Core:user_block.html.twig
pager_links: SonataAdminBundle:Pager:links.html.twig
pager_results: SonataAdminBundle:Pager:results.html.twig
history_revision_timestamp: SonataAdminBundle:CRUD:history_revision_timestamp.html.twig
short_object_description: SonataAdminBundle:Helper:short-object-description.html.twig
search_result_block: SonataAdminBundle:Block:block_search_result.html.twig
【讨论】:
以上是关于Sonata 管理包模板的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 2.8 Twig_Error_Runtime Sonata 管理包
Sonata Admin 覆盖模板 form_admin_fields.html.twig
Symfony Sonata Admin Bundle - 将带有树枝模板的自定义字段导出到 XLS