lcharette / uf_configmanager
此插件提供核心和自定义网站设置的界面
Requires
- php: ^8.0
- lcharette/uf_formgenerator: ~5.1.0
- userfrosting/framework: ~5.1.0
- userfrosting/sprinkle-account: ~5.1.0
- userfrosting/sprinkle-admin: ~5.1.0
- userfrosting/sprinkle-core: ~5.1.0
- userfrosting/theme-adminlte: ~5.1.0
Requires (Dev)
- fakerphp/faker: ^1.17
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.2
- phpstan/phpstan: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-mockery: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- phpunit/phpunit: ^10.5
- slam/phpstan-extensions: ^6.0
README
为 UserFrosting 5 提供配置管理器插件。允许您从界面中编辑 UserFrosting 配置。
帮助和贡献
如果您需要使用此插件的帮助或发现任何错误,请随时打开问题或提交拉取请求。您通常可以在 UserFrosting Chat 上找到我以获得直接支持。
安装
在 Sprinkle 中安装
-
使用 Composer 添加此包
composer require lcharette/uf_configmanager "~4.1.0"
-
编辑 Sprinkle Recipe 以将 ConfigManager 作为 Sprinkle 依赖项包含
\UserFrosting\Sprinkle\ConfigManager\ConfigManager::class
-
添加 Config Manager 前端资源依赖项
npm i --save @lcharette/configmanager@~4.1.0
-
将 Config Manager 和 FormGenerator 前端入口添加到您的 webpack 入口。打开
webpack.config.js
并添加const sprinkles { ... }
FormGenerator: require('@lcharette/formgenerator/webpack.entries'), ConfigManager: require('@lcharette/configmanager/webpack.entries'),
-
运行
php bakery bake
工作示例
public/
目录作为 ConfigManager 的示例。您可以克隆此存储库并像安装任何 UserFrosting 5 插件一样进行安装
composer install
php bakery bake
php -S localhost:8080 -t public
权限
迁移将自动将 update_site_config
权限添加到 Site Administrator
角色。如果未自动添加,您可以使用 php bakery seed
命令运行 UserFrosting\Sprinkle\ConfigManager\Database\Seeds\SettingsPermissions
种子,或在管理 UI 中手动添加。要允许其他用户访问配置 UI,只需将 update_site_config
权限别名添加到该用户角色。
添加菜单链接
配置 UI 绑定到 /settings
路由。只需在您想要的位置添加到此路由的链接。checkAccess 将确保它只为具有适当权限的用户显示。例如,您可以将以下内容添加到侧边栏菜单
{% if checkAccess('update_site_config') %} <li> <a href="{{site.uri.public}}/settings"><i class="fa fa-gears fa-fw"></i> <span>{{ translate("CONFIG_MANAGER.TITLE") }}</span></a> </li> {% endif %}
添加自定义配置
在 UI 中,设置通过 主题 分隔。每个主题都由位于 schema/config/
的文件表示。与常规模式文件不同,所有条目都需要包裹在 config
键内。一个具有 name
和 desc
的顶级条目将允许定义主题的标题和描述。
{ "name" : "SITE.CONFIG", "desc" : "SITE.CONFIG.DESC", "config": { ... } }
例如,在 "UserFrosting 设置" 主题中添加 site.title
文本和 site.registration.enabled
复选框选项的条目
{ "name" : "SITE.CONFIG", "desc" : "SITE.CONFIG.DESC", "config": { "site.title" : { "validators" : { "required" : { "message" : "SITE.TITLE.REQUIRED" } }, "form" : { "type" : "text", "label" : "SITE.TITLE", "icon" : "fa-comment" } }, "site.registration.enabled" : { "validators" : {}, "form" : { "type" : "checkbox", "label" : "SITE.REGISTRATION.ENABLED" } } } }
注意:仅接受
.json
文件。目前无法使用Yaml
架构。
许可证
由 Louis Charette 提供。版权所有 (c) 2020,可按 MIT 许可证在个人和商业软件中使用。