All checks were successful
continuous-integration/drone/push Build is passing
- 从后台 ThemeController 的 save 方法中移除 partner 字段 - 从前台 ThemeController 的 config 方法中移除 partner 字段 - 确保数据保存和读取接口不再处理 partner 相关数据 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Theme Configurator 插件
此插件演示如何通过后台插件的方式为 BlackFruit-UI 主题提供可配置能力,支持设置导航、页脚、站点信息、SEO、首页轮播、友情链接、荣誉资质、反馈类型以及右侧浮窗,并提供 /console/v1/theme/config 接口与前端联动。
功能
- 后台界面(
template/admin/index.html)通过表单 + JSON 的方式维护主题参数:- SEO、站点基础信息(企业名称、电话、备案、协议链接、产品链接等);
- 首页轮播 Banner;
- 友情链接(friendly_link);
- 企业荣誉(honor);
- 反馈类型(feedback_type);
- 右侧浮窗(side / side_floating_window);
- 复杂导航结构(header_nav/footer_nav)可在"高级配置 (JSON)"中维护。
- 接口
GET/POST /{DIR_ADMIN}/v1/theme/config提供配置读取与保存; - 前台接口
GET /console/v1/theme/config输出与/console/v1/common同结构的数据,BlackFruit-UI 可以直接接入; - 插件安装时创建
addon_theme_configurator表并写入默认配置。
目录
plugins/addon/theme_configurator
├── ThemeConfigurator.php # 插件主文件
├── controller/
│ ├── ThemeController.php # 后台 API
│ └── clientarea/ThemeController.php # 前台 API
├── model/ThemeConfigModel.php # 主题配置模型
├── template/admin/index.html # 后台可视化页面
├── route.php # 自定义路由定义
├── sidebar*.php # 前后台导航
├── auth.php # 权限配置
└── lang/zh-cn.php # 多语言
使用步骤
- 将目录复制到业务系统的
public/plugins/addon下; - 在后台启用插件,安装脚本会自动创建
addon_theme_configurator表; - 进入“插件 > 主题配置”页(
index.html),按 JSON 结构维护导航、SEO、轮播、侧边栏等; - 前端 BlackFruit-UI 请求
/console/v1/theme/config以获取运行时配置。若需要兼容现有/console/v1/common,可在 Nginx 或网关层做转发。
banner 字段示例
"banner": [
{
"title": "中小企业的云计算底座",
"description": "自定义文案",
"img": "/upload/banner-1.png",
"url": "/cloud.html",
"blank": false,
"button_text": "立即查看",
"button_link": "/cloud.html",
"button_blank": false
}
]
BlackFruit-UI 会在首页读取 banner 数组动态渲染轮播图,url/blank 控制整张 Banner 的跳转,button_* 控制右下角按钮。