BasicController.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace App\Http\Controllers\Admin\Config\Setting;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\Config;
  6. use App\Models\User;
  7. class BasicController extends Controller
  8. {
  9. private Config $configModel;
  10. private User $userModel;
  11. public function __construct(Config $config, User $user)
  12. {
  13. $this->configModel = $config;
  14. $this->userModel = $user;
  15. }
  16. /**
  17. * 기본
  18. * @method GET
  19. * @see /admin/config/setting/basic
  20. */
  21. public function index()
  22. {
  23. // 관리자 회원
  24. return view('admin.config.setting.basic', [
  25. 'admins' => $this->userModel->getAdmins()
  26. ]);
  27. }
  28. /**
  29. * 기본 저장
  30. * @method POST
  31. * @see /admin/config/setting/basic
  32. */
  33. public function store(Request $request)
  34. {
  35. $rules = [
  36. 'admin_title' => 'string|nullable',
  37. 'site_title' => 'string|nullable',
  38. 'master_key' => 'string|nullable',
  39. 'master_email' => 'email|nullable',
  40. 'master_name' => 'string|nullable',
  41. 'footer_script' => 'string|nullable|max:2000',
  42. 'spam_word' => 'string|nullable',
  43. 'white_iframe' => 'string|nullable|max:2000',
  44. 'ip_display_style' => 'string|nullable',
  45. 'new_post_second' => 'required|numeric|min:0',
  46. 'open_current_visitor' => 'nullable|numeric',
  47. 'current_visitor_minute' => 'required|numeric|min:0',
  48. 'cache_expire_time' => 'required|numeric|min:1|max:86400',
  49. 'verify_expires_at' => 'required|numeric|min:1|max:3600',
  50. 'verify_send_limit' => 'required|numeric|min:0',
  51. 'use_post_copy_log' => 'required|numeric|in:0,1',
  52. 'use_header_search_log' => 'required|numeric|in:0,1'
  53. ];
  54. $attributes = [
  55. 'admin_title' => '관리자 제목',
  56. 'site_title' => '홈페이지 제목',
  57. 'master_key' => '최고관리자',
  58. 'master_email' => '관리자 이메일',
  59. 'master_name' => '관리자 이메일 이름',
  60. 'footer_script' => '하단 Script',
  61. 'spam_word' => '금지 단어',
  62. 'white_iframe' => '허용 Iframe',
  63. 'ip_display_style' => 'IP 공개시 표시 형식',
  64. 'new_post_second' => '새로운 글쓰기 시간',
  65. 'open_current_visitor' => '현재 접속자 공개 여부',
  66. 'current_visitor_minute' => '현재 접속자 기준',
  67. 'cache_expire_time' => '캐시 생성 시간',
  68. 'verify_expires_at' => '인증번호 만료시간',
  69. 'verify_send_limit' => '인증번호 발송 분당 제한 수',
  70. 'use_post_copy_log' => '게시물 이동 및 복사 기록',
  71. 'use_header_search_log' => '검색기록 저장 여부'
  72. ];
  73. $posts = $this->validate($request, $rules, [], $attributes);
  74. $this->configModel->save($posts, $attributes);
  75. $message = '기본 정보가 저장되었습니다.';
  76. return redirect()->route('admin.config.setting.basic.index')->with('message', $message);
  77. }
  78. }