FeatureController.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controllers\Admin\Setting;
  4. use App\Controllers\BaseController;
  5. use App\Models\Config;
  6. use Exception;
  7. use Psr\Http\Message\ResponseInterface;
  8. use Slim\Http\Response;
  9. use Slim\Http\ServerRequest;
  10. final class FeatureController extends BaseController
  11. {
  12. private static array $update_field = [
  13. 'display_detect_log',
  14. 'display_docs',
  15. 'display_docs_only_for_paid_user',
  16. 'traffic_log',
  17. 'traffic_log_retention_days',
  18. 'subscribe_log',
  19. 'subscribe_log_retention_days',
  20. 'notify_new_subscribe',
  21. 'login_log',
  22. 'notify_new_login',
  23. 'enable_checkin',
  24. 'checkin_min',
  25. 'checkin_max',
  26. ];
  27. /**
  28. * @throws Exception
  29. */
  30. public function index(ServerRequest $request, Response $response, array $args): ResponseInterface
  31. {
  32. $settings = Config::getClass('feature');
  33. return $response->write(
  34. $this->view()
  35. ->assign('update_field', self::$update_field)
  36. ->assign('settings', $settings)
  37. ->fetch('admin/setting/feature.tpl')
  38. );
  39. }
  40. public function save(ServerRequest $request, Response $response, array $args): ResponseInterface
  41. {
  42. foreach (self::$update_field as $item) {
  43. if (! Config::set($item, $request->getParam($item))) {
  44. return $response->withJson([
  45. 'ret' => 0,
  46. 'msg' => '保存 ' . $item . ' 时出错',
  47. ]);
  48. }
  49. }
  50. return $response->withJson([
  51. 'ret' => 1,
  52. 'msg' => '保存成功',
  53. ]);
  54. }
  55. }