123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- declare(strict_types=1);
- namespace App\Controllers\Admin\Setting;
- use App\Controllers\BaseController;
- use App\Models\Setting;
- use Exception;
- use function json_encode;
- final class FeatureController extends BaseController
- {
- public static array $update_field = [
- 'display_media',
- 'display_subscribe_log',
- 'display_detect_log',
- 'display_docs',
- 'display_docs_only_for_paid_user',
- ];
- /**
- * @throws Exception
- */
- public function feature($request, $response, $args)
- {
- $settings = [];
- $settings_raw = Setting::get(['item', 'value', 'type']);
- foreach ($settings_raw as $setting) {
- if ($setting->type === 'bool') {
- $settings[$setting->item] = (bool) $setting->value;
- } else {
- $settings[$setting->item] = (string) $setting->value;
- }
- }
- return $response->write(
- $this->view()
- ->assign('update_field', self::$update_field)
- ->assign('settings', $settings)
- ->fetch('admin/setting/feature.tpl')
- );
- }
- public function saveFeature($request, $response, $args)
- {
- $list = self::$update_field;
- foreach ($list as $item) {
- $setting = Setting::where('item', '=', $item)->first();
- if ($setting->type === 'array') {
- $setting->value = json_encode($request->getParam($item));
- } else {
- $setting->value = $request->getParam($item);
- }
- if (! $setting->save()) {
- return $response->withJson([
- 'ret' => 0,
- 'msg' => "保存 {$item} 时出错",
- ]);
- }
- }
- return $response->withJson([
- 'ret' => 1,
- 'msg' => '保存成功',
- ]);
- }
- }
|