elvandar / kazetenn-admin
为kazetenn项目构建的symfon管理器构建库
Requires
- php: 8.1.*
- composer/package-versions-deprecated: 1.11.99.4
- doctrine/annotations: 1.13.*
- doctrine/doctrine-bundle: 2.7.*
- doctrine/doctrine-migrations-bundle: 3.2.*
- doctrine/orm: 2.12.*
- phpdocumentor/reflection-docblock: >=5.2
- stof/doctrine-extensions-bundle: >=1.7
- symfony/asset: 6.2.*
- symfony/config: 6.2.*
- symfony/console: 6.2.*
- symfony/dotenv: 6.2.*
- symfony/expression-language: 6.2.*
- symfony/flex: 2.2.*
- symfony/form: 6.2.*
- symfony/framework-bundle: 6.2.*
- symfony/http-client: 6.2.*
- symfony/intl: 6.2.*
- symfony/mailer: 6.2.*
- symfony/mime: 6.2.*
- symfony/monolog-bundle: 3.*
- symfony/notifier: 6.2.*
- symfony/process: 6.2.*
- symfony/property-access: 6.2.*
- symfony/property-info: 6.2.*
- symfony/proxy-manager-bridge: 6.2.*
- symfony/runtime: 6.2.*
- symfony/security-bundle: 6.2.*
- symfony/serializer: 6.2.*
- symfony/string: 6.2.*
- symfony/translation: 6.2.*
- symfony/twig-bundle: 6.2.*
- symfony/uid: 6.2.*
- symfony/validator: 6.2.*
- symfony/web-link: 6.2.*
- symfony/yaml: 6.2.*
- twig/extra-bundle: 3.4.*
- twig/twig: 3.4.*
Requires (Dev)
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- rector/rector: ^0.12.23
- symfony/browser-kit: 6.*
- symfony/css-selector: 6.*
- symfony/debug-bundle: 6.*
- symfony/maker-bundle: ^1.0
- symfony/phpunit-bridge: ^6.0
- symfony/stopwatch: 6.*
- symfony/web-profiler-bundle: 6.*
- symfony/webpack-encore-bundle: ^1.13
README
描述
Kazetenn Admin是一个symfony包,允许您以编程方式处理基本页面。
安装
您可以使用
composer require elvandar/kazetenn_core_admin
来安装此包。
用法
此包提供了一个管理面板和菜单,用于创建后台办公室。
配置
以下是包的配置参考,您可以在config/packages/kazetenn_admin.yaml
中配置它。
kazetenn_admin: authorized_roles: [] admin_url: admin translation_domain: kazetenn_admin pages: name: function: ~ menu_entries: name: target: '' display_name: '' translation_domain: '' order: 0 type: route authorized_roles: [] orientation: vertical children: name: target: '' order: 0 display_name: '' translation_domain: '' authorized_roles: [] type: route
让我们详细看看这些。
基本配置
kazetenn_admin: admin_url: admin translation_domain: kazetenn_admin authorized_roles: [] pages: name: function: ~ menu_entries: []
admin_url
这是管理菜单URL的前缀。这将生成以下格式的URL:
http://your_domain/admin_url/
默认情况下,它设置为'admin'。
translation_domain
这将定义整体菜单的翻译域。如果没有为其他菜单定义它,它也将是翻译域回退。
authorized_roles
这是一个有权访问菜单的角色集合。这些是经典的symfony角色。
如果您想允许未经认证的用户访问管理菜单,您必须使用'ANONYMOUS'角色。
除非设置了'ANONYMOUS'角色,否则用户必须拥有所有定义的角色才能访问菜单。
如果您没有为每个单独的菜单定义角色,则此数组将用作回退。
页面
您将能够在这里定义管理页面。
menu_entries
您将能够在这里定义不同的菜单。
菜单条目配置
name: target: '' display_name: '' translation_domain: '' order: 0 type: route authorized_roles: [] orientation: vertical children: []
这允许您配置管理页面上每个菜单条目。
name
您的条目名称
type
条目的类型,可以是以下之一:
- link
- page
- route
- header
这告诉包如何解释'target'条目。
标题类型是仅在上层菜单中可用的特殊类型。这将渲染一个没有链接的菜单,用于创建主菜单和标题菜单。
target
代码将根据您提供的类型使用的字符串
- link: 一个指向外部来源的链接(
https://google.com
) - page: 管理页面的名称
- route: 一个symfony路由
- header: 无
display_name
将显示的名称(并翻译)
translation_domain
用于翻译名称的翻译域。如果为空,则包将回退到默认定义的域。
order
菜单渲染的顺序。如果两个菜单具有相同的顺序,则包将抛出一个警告。
authorized_roles
这是一个有权访问菜单的角色集合。这些是经典的symfony角色。
如果您想允许未经认证的用户访问管理菜单,您必须使用'ANONYMOUS'角色。
除非设置了'ANONYMOUS'角色,否则用户必须拥有所有定义的角色才能访问菜单。
如果您没有为每个单独的菜单定义角色,则此数组将用作回退。
orientation
这将定义您的菜单是否将显示在水平头部菜单或垂直侧菜单中。值是:
- horizontal
- vertical
children
您可以在这里定义子菜单
子菜单条目配置
name: target: '' order: 0 display_name: '' translation_domain: '' authorized_roles: [] type: route
name
您的条目名称
type
条目的类型,可以是以下之一:
- link
- page
- route
这告诉包如何解释'target'条目。
标题类型是仅在上层菜单中可用的特殊类型。这将渲染一个没有链接的菜单,用于创建主菜单和标题菜单。
target
代码将根据您提供的类型使用的字符串
- link: 一个指向外部来源的链接(
https://google.com
) - page: 管理页面的名称
- route: 一个symfony路由
display_name
将显示的名称(并翻译)
translation_domain
用于翻译名称的翻译域。如果为空,则包将回退到默认定义的域。
order
菜单渲染的顺序。如果两个菜单具有相同的顺序,则包将抛出一个警告。
authorized_roles
这是一个有权访问菜单的角色集合。这些是经典的symfony角色。
如果您想允许未经认证的用户访问管理菜单,您必须使用'ANONYMOUS'角色。
除非设置了'ANONYMOUS'角色,否则用户必须拥有所有定义的角色才能访问菜单。
如果您没有为每个单独的菜单定义角色,则此数组将用作回退。
菜单显示
有多种方法可以在菜单内创建Vue
自定义控制器
此包附带一个抽象控制器(Kazetenn\Admin\Controller\BaseAdminController
)。当您扩展它时,render方法将自动为您提供包含已注册菜单的参数。
您可以使用它与现有的twig模板(Admin/Resources/views/admin_base.html.twig
)一起使用或创建自己的。
页面
管理页面是一种确保您创建的代码将在管理模板中显示的方法。您可以使用这部分YAML进行配置。
pages: name: function: 'FQCN\Of\Your\file::yourFunction'
页面名称将用于生成页面URL。
函数必须符合一组特定的标准。
- 它不能有参数(您可以使用构造器注入)。
- 它必须返回一个包含HTML的字符串。
如果您正确地这样做,您可以使用 http://your_domain/admin_url/display_page/page_name
访问您的页面。
管理界面定制
默认管理界面是使用Bulma (https://bulma.org.cn/) 创建的。
许可证
页面组件在MIT许可证下。