This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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([
|
||||
|
||||
Reference in New Issue
Block a user