修改插件代码格式
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
yiqiu
2025-11-21 13:01:04 +08:00
parent 5834ab9a74
commit b05595e090
3 changed files with 409 additions and 48 deletions

View File

@@ -2,32 +2,28 @@
namespace addon\theme_configurator\controller;
use addon\theme_configurator\model\ThemeConfigModel;
use app\admin\controller\PluginAdminBaseController;
use think\App;
use app\event\controller\PluginAdminBaseController;
use think\Response;
/**
* 后台主题配置控制器
*
* 注意:结构尽量与官方示例插件保持一致,避免因基类或构造方式不一致导致 500。
*/
class ThemeController extends PluginAdminBaseController
{
protected ThemeConfigModel $model;
public function __construct(App $app = null)
{
parent::__construct($app);
$this->model = new ThemeConfigModel();
}
/**
* 获取配置
*/
public function config(): Response
{
$model = new ThemeConfigModel();
$config = $model->getConfig();
return json([
'status' => 200,
'msg' => lang_plugins('theme_configurator_success'),
'data' => $this->model->getConfig(),
'data' => $config,
]);
}
@@ -37,6 +33,8 @@ class ThemeController extends PluginAdminBaseController
public function save(): Response
{
$param = $this->request->param();
// 与前端 payload 结构保持一致,只取需要的字段入库
$payload = [
'seo' => $param['seo'] ?? [],
'header_nav' => $param['header_nav'] ?? [],
@@ -45,13 +43,13 @@ class ThemeController extends PluginAdminBaseController
'friendly_link' => $param['friendly_link'] ?? [],
'banner' => $param['banner'] ?? [],
'side' => $param['side'] ?? [],
// 额外配置:荣誉、合作伙伴、反馈类型
'feedback_type' => $param['feedback_type'] ?? [],
'honor' => $param['honor'] ?? [],
'partner' => $param['partner'] ?? [],
];
$config = $this->model->saveConfig($payload);
$model = new ThemeConfigModel();
$config = $model->saveConfig($payload);
return json([
'status' => 200,

View File

@@ -2,55 +2,49 @@
namespace addon\theme_configurator\controller\clientarea;
use addon\theme_configurator\model\ThemeConfigModel;
use app\home\controller\PluginBaseController;
use think\App;
use app\event\controller\PluginBaseController;
use think\Response;
/**
* 前台主题配置读取控制器
*
* 返回给 BlackFruit-UI 的 /console/v1/common 同结构数据
*/
class ThemeController extends PluginBaseController
{
protected ThemeConfigModel $model;
public function __construct(App $app = null)
{
parent::__construct($app);
$this->model = new ThemeConfigModel();
}
/**
* 返回给 BlackFruit-UI 的 /console/v1/common 同结构数据
* 读取配置并按 /console/v1/common 扁平结构返回
*/
public function config(): Response
{
$config = $this->model->getConfig();
$model = new ThemeConfigModel();
$config = $model->getConfig();
$data = [
'enterprise_name' => $config['site_config']['enterprise_name'] ?? '',
'enterprise_telephone' => $config['site_config']['enterprise_telephone'] ?? '',
'enterprise_mailbox' => $config['site_config']['enterprise_mailbox'] ?? '',
'enterprise_qrcode' => $config['site_config']['enterprise_qrcode'] ?? '',
'official_website_logo' => $config['site_config']['official_website_logo'] ?? '',
'icp_info' => $config['site_config']['icp_info'] ?? '',
'icp_info_link' => $config['site_config']['icp_info_link'] ?? '',
'public_security_network_preparation' => $config['site_config']['public_security_network_preparation'] ?? '',
'public_security_network_preparation_link' => $config['site_config']['public_security_network_preparation_link'] ?? '',
'telecom_appreciation' => $config['site_config']['telecom_appreciation'] ?? '',
'copyright_info' => $config['site_config']['copyright_info'] ?? '',
'terms_service_url' => $config['site_config']['terms_service_url'] ?? '',
'terms_privacy_url' => $config['site_config']['terms_privacy_url'] ?? '',
'cloud_product_link' => $config['site_config']['cloud_product_link'] ?? '',
'dcim_product_link' => $config['site_config']['dcim_product_link'] ?? '',
'enterprise_name' => $config['site_config']['enterprise_name'] ?? '',
'enterprise_telephone' => $config['site_config']['enterprise_telephone'] ?? '',
'enterprise_mailbox' => $config['site_config']['enterprise_mailbox'] ?? '',
'enterprise_qrcode' => $config['site_config']['enterprise_qrcode'] ?? '',
'official_website_logo' => $config['site_config']['official_website_logo'] ?? '',
'icp_info' => $config['site_config']['icp_info'] ?? '',
'icp_info_link' => $config['site_config']['icp_info_link'] ?? '',
'public_security_network_preparation' => $config['site_config']['public_security_network_preparation'] ?? '',
'public_security_network_preparation_link' => $config['site_config']['public_security_network_preparation_link'] ?? '',
'telecom_appreciation' => $config['site_config']['telecom_appreciation'] ?? '',
'copyright_info' => $config['site_config']['copyright_info'] ?? '',
'terms_service_url' => $config['site_config']['terms_service_url'] ?? '',
'terms_privacy_url' => $config['site_config']['terms_privacy_url'] ?? '',
'cloud_product_link' => $config['site_config']['cloud_product_link'] ?? '',
'dcim_product_link' => $config['site_config']['dcim_product_link'] ?? '',
// 以下字段需与 /console/v1/common 保持一致的扁平结构
'honor' => $config['honor'] ?? ($config['site_config']['honor'] ?? []),
'partner' => $config['partner'] ?? ($config['site_config']['partner'] ?? []),
'friendly_link' => $config['friendly_link'] ?? [],
'banner' => $config['banner'] ?? [],
'header_nav' => $config['header_nav'] ?? [],
'footer_nav' => $config['footer_nav'] ?? [],
'side_floating_window' => $config['side'] ?? [],
'feedback_type' => $config['feedback_type'] ?? ($config['site_config']['feedback_type'] ?? []),
'honor' => $config['honor'] ?? ($config['site_config']['honor'] ?? []),
'partner' => $config['partner'] ?? ($config['site_config']['partner'] ?? []),
'friendly_link' => $config['friendly_link'] ?? [],
'banner' => $config['banner'] ?? [],
'header_nav' => $config['header_nav'] ?? [],
'footer_nav' => $config['footer_nav'] ?? [],
'side_floating_window' => $config['side'] ?? [],
'feedback_type' => $config['feedback_type'] ?? ($config['site_config']['feedback_type'] ?? []),
];
return json([