Просмотр файла app/Http/Controllers/Admin/RuleController.php

Размер файла: 1.73Kb
  1. <?php
  2.  
  3. declare(strict_types=1);
  4.  
  5. namespace App\Http\Controllers\Admin;
  6.  
  7. use App\Classes\Validator;
  8. use App\Models\Rule;
  9. use Illuminate\Http\RedirectResponse;
  10. use Illuminate\Http\Request;
  11. use Illuminate\View\View;
  12.  
  13. class RuleController extends AdminController
  14. {
  15. /**
  16. * Главная страница
  17. *
  18. * @return View
  19. */
  20. public function index(): View
  21. {
  22. $rules = Rule::query()->first();
  23.  
  24. $replace = [
  25. '%SITENAME%' => setting('title'),
  26. ];
  27.  
  28. if ($rules) {
  29. $rules->text = str_replace(array_keys($replace), $replace, $rules->text);
  30. }
  31.  
  32. return view('admin/rules/index', compact('rules'));
  33. }
  34.  
  35. /**
  36. * Редактирование правил
  37. *
  38. * @param Request $request
  39. * @param Validator $validator
  40. *
  41. * @return View|RedirectResponse
  42. */
  43. public function edit(Request $request, Validator $validator)
  44. {
  45. $rules = Rule::query()->firstOrNew([]);
  46.  
  47. if ($request->isMethod('post')) {
  48. $msg = $request->input('msg');
  49.  
  50. $validator
  51. ->equal($request->input('_token'), csrf_token(), __('validator.token'))
  52. ->notEmpty($msg, ['msg' => __('admin.rules.rules_empty')]);
  53.  
  54. if ($validator->isValid()) {
  55. $rules->fill([
  56. 'text' => $msg,
  57. 'created_at' => SITETIME,
  58. ])->save();
  59.  
  60. setFlash('success', __('admin.rules.rules_success_saved'));
  61.  
  62. return redirect('admin/rules');
  63. }
  64.  
  65. setInput($request->all());
  66. setFlash('danger', $validator->getErrors());
  67. }
  68.  
  69. return view('admin/rules/edit', compact('rules'));
  70. }
  71. }