diff --git a/app/Http/Controllers/Admin/ThemeController.php b/app/Http/Controllers/Admin/ThemeController.php new file mode 100644 index 00000000..b78b9e67 --- /dev/null +++ b/app/Http/Controllers/Admin/ThemeController.php @@ -0,0 +1,47 @@ + $themeConfigs + ]); + } + + public function saveThemeConfig(Request $request) + { + $path = public_path('theme/'); + $files = array_map(function ($item) use ($path) { + return str_replace($path, '', $item); + }, glob($path . '*')); + $payload = $request->validate([ + 'name' => 'required|in:' . join(',', $files), + 'configs' => 'required|array' + ]); + $themeConfigFile = public_path("theme/{$payload['name']}/config.php"); + if (!File::exists($themeConfigFile)) abort(500, '主题不存在'); + $themeConfig = include($themeConfigFile); + $validateFields = array_column($themeConfig['configs'], 'field_name'); + dd($validateFields); + + } +} diff --git a/app/Http/Routes/AdminRoute.php b/app/Http/Routes/AdminRoute.php index a273da60..1adb549e 100644 --- a/app/Http/Routes/AdminRoute.php +++ b/app/Http/Routes/AdminRoute.php @@ -114,6 +114,9 @@ class AdminRoute $router->post('/payment/show', 'Admin\\PaymentController@show'); // System $router->get ('/system/getStatus', 'Admin\\SystemController@getStatus'); + // Theme + $router->get ('/theme/getThemes', 'Admin\\ThemeController@getThemes'); + $router->post('/theme/saveThemeConfig', 'Admin\\ThemeController@saveThemeConfig'); }); } } diff --git a/public/theme/v2board/config.php b/public/theme/v2board/config.php new file mode 100644 index 00000000..da07a9ea --- /dev/null +++ b/public/theme/v2board/config.php @@ -0,0 +1,17 @@ + 'V2board', + 'description' => '这是一个描述', + 'version' => '1.5.6', + 'configs' => [ + [ + 'field_name' => 'theme', // 字段名 + 'description' => '这是一个字段主题', // 描述 + 'field_type' => 'select', // 字段类型: select,input,switch + 'select_options' => [ // [filed_type]_options + '奶绿' + ] + ] + ] +];