meuhmeuhconcept/sonata-admin-bundle

MeuhMeuhConcept 的 SonataAdmin 实现

安装次数: 2,402

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 1

开放问题: 2

语言:JavaScript

类型:bundle

2.1 2024-09-25 08:41 UTC

README

Build Status

MeuhMeuhConcept 的 SonataAdmin 实现

安装

通过 composer

composer require meuhmeuhconcept/sonata-admin-bundle

将组件的 web 资源安装到公共 web 目录下

bin/console assets:install

配置

添加组件

在 app/AppKernel.php 中,添加以下行

public function registerBundles()
{
    $bundles = [

        // ...

        new MMC\SonataAdminBundle\MMCSonataAdminBundle(),

        // These are the other bundles the SonataAdminBundle relies on
        new Sonata\CoreBundle\SonataCoreBundle(),
        new Sonata\BlockBundle\SonataBlockBundle(),
        new Knp\Bundle\MenuBundle\KnpMenuBundle(),

        // And finally, the storage and SonataAdminBundle
        new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),
        new Sonata\AdminBundle\SonataAdminBundle(),

        // ...
    ];

    // ...
}

配置组件

在 Twig 配置中添加 SonataAdmin 配置(仪表板、模板、安全等)和表单主题

# app/config/config.yml

sonata_block:
    default_contexts: [cms]
    blocks:
        # enable the SonataAdminBundle block
        sonata.admin.block.admin_list:
            contexts: [admin]

sonata_admin:
    templates:
        layout: MMCSonataAdminBundle::sonata_layout.html.twig
    security:
        handler: sonata.admin.security.handler.role

twig:
    form_themes:
        - 'SonataCoreBundle:Form:datepicker.html.twig'

添加角色层次结构(这是一个示例,更多详细信息请参阅 sonata 安全文档

# app/config/security.yml
    role_hierarchy:

        # for convenience, I decided to gather Sonata roles here
        ROLE_SONATA_FOO_READER:
            - ROLE_SONATA_ADMIN_DEMO_FOO_LIST
            - ROLE_SONATA_ADMIN_DEMO_FOO_VIEW
        ROLE_SONATA_FOO_EDITOR:
            - ROLE_SONATA_ADMIN_DEMO_FOO_CREATE
            - ROLE_SONATA_ADMIN_DEMO_FOO_EDIT
        ROLE_SONATA_FOO_ADMIN:
            - ROLE_SONATA_ADMIN_DEMO_FOO_DELETE
            - ROLE_SONATA_ADMIN_DEMO_FOO_EXPORT

        # those are the roles I will use (less verbose)
        ROLE_STAFF:             [ROLE_USER, ROLE_SONATA_FOO_READER]
        ROLE_ADMIN:             [ROLE_STAFF, ROLE_SONATA_FOO_EDITOR, ROLE_SONATA_FOO_ADMIN]
        ROLE_SUPER_ADMIN:       [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

添加 Sonata Admin 路由

# app/config/routing.yml
mmc_sonata_admin:
    resource: "@MMCSonataAdminBundle/Resources/config/routing.yml"
    prefix:   /admin

图像预览

安装 liip/imagine-bundle

官方文档

配置表单主题

# app/config/config.yml

twig:
    form_themes:
        - 'MMCSonataAdminBundle:Form:image_preview.html.twig'

添加过滤器

# app/config/config.yml

liip_imagine :

    resolvers :
        default :
            web_path : ~

    filter_sets :
        cache : ~
        admin_thumb:
            quality: 75
            filters:
                thumbnail: { size : [90, 50], mode : outbound }

        admin_poster:
            quality: 85
            filters:
                thumbnail: { size : [400, 300], mode : inset }

注意:如果您的 PHP 容器中没有启用 php_exif 扩展,请添加以下行

# app/config/parameters.yml && app/config/parameters.yml.dist

liip_imagine.meta_data.reader.class: Imagine\Image\Metadata\DefaultMetadataReader

显示模板类型

在编辑视图中插入模板

配置表单主题

# app/config/config.yml

twig:
    form_themes:
        - 'MMCSonataAdminBundle:Form:show_template.html.twig'

自定义

Sonata Admin

示例

# app/config/config.yml

sonata_admin:
    title : ExampleOfTitle
    dashboard:
        blocks: []
        groups:
            sonata.admin.group.myCustomGroup:
                label:           myCustomLabel
                icon:            '<i class="fa fa-th"></i>'
                items: ~ # Add class item here