lcharette/uf_configmanager

此插件提供核心和自定义网站设置的界面

资助包维护!
Ko Fi

安装: 870

依赖项: 0

建议者: 0

安全性: 0

星星: 7

关注者: 4

分支: 2

开放问题: 1

类型:userfrosting-sprinkle

This package is auto-updated.

Last update: 2024-09-06 01:26:05 UTC


README

Donate Latest Version UserFrosting Version Software License Build PHPStan Codecov StyleCI

UserFrosting 5 提供配置管理器插件。允许您从界面中编辑 UserFrosting 配置。

帮助和贡献

如果您需要使用此插件的帮助或发现任何错误,请随时打开问题或提交拉取请求。您通常可以在 UserFrosting Chat 上找到我以获得直接支持。

安装

在 Sprinkle 中安装

  1. 使用 Composer 添加此包

    composer require lcharette/uf_configmanager "~4.1.0"
    
  2. 编辑 Sprinkle Recipe 以将 ConfigManager 作为 Sprinkle 依赖项包含

    \UserFrosting\Sprinkle\ConfigManager\ConfigManager::class
    
  3. 添加 Config Manager 前端资源依赖项

    npm i --save @lcharette/configmanager@~4.1.0
    
  4. 将 Config Manager 和 FormGenerator 前端入口添加到您的 webpack 入口。打开 webpack.config.js 并添加 const sprinkles { ... }

    FormGenerator: require('@lcharette/formgenerator/webpack.entries'),
    ConfigManager: require('@lcharette/configmanager/webpack.entries'),
    
  5. 运行

    php bakery bake
    

工作示例

public/ 目录作为 ConfigManager 的示例。您可以克隆此存储库并像安装任何 UserFrosting 5 插件一样进行安装

  1. composer install
  2. php bakery bake
  3. 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 键内。一个具有 namedesc 的顶级条目将允许定义主题的标题和描述。

{
    "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 许可证在个人和商业软件中使用。