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 不推荐使用设置模板的方法?

Sonata Admin 覆盖模板 form_admin_fields.html.twig

Symfony Sonata Admin Bundle - 将带有树枝模板的自定义字段导出到 XLS

Sonata Admin Bundle - 表单类型:sonata_type_collection - 自定义模板?

Sonata Admin Bundle - 自定义模板