• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

visavi / rotor / 27267213075

10 Jun 2026 09:35AM UTC coverage: 13.943% (+0.08%) from 13.868%
27267213075

push

github

visavi
Поправил кешировование настроек, тесты

8 of 14 new or added lines in 6 files covered. (57.14%)

2 existing lines in 1 file now uncovered.

807 of 5788 relevant lines covered (13.94%)

1.41 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/app/Http/Controllers/Admin/SettingController.php
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\Setting;
9
use Illuminate\Http\RedirectResponse;
10
use Illuminate\Http\Request;
11
use Illuminate\View\View;
12

13
class SettingController extends AdminController
14
{
15
    /**
16
     * Главная страница
17
     */
18
    public function index(Request $request, Validator $validator): View|RedirectResponse
×
19
    {
20
        $act = $request->input('act', 'mains');
×
21

22
        if (! in_array($act, Setting::getActions(), true)) {
×
23
            abort(404, __('settings.page_invalid'));
×
24
        }
25

26
        if ($request->isMethod('post')) {
×
27
            $sets = $request->input('sets');
×
28
            $mods = $request->input('mods');
×
29
            $opt = $request->input('opt');
×
30

31
            $validator->notEmpty($sets, ['sets' => __('settings.settings_empty')]);
×
32

33
            foreach ($sets as $name => $value) {
×
34
                if (empty($opt[$name]) || ! empty($value)) {
×
35
                    $validator->length($value, 1, 255, ['sets[' . $name . ']' => __('settings.field_required', ['field' => $name])]);
×
36
                }
37
            }
38

39
            if ($validator->isValid()) {
×
40
                foreach ($sets as $name => $value) {
×
41
                    if (isset($mods[$name])) {
×
42
                        $value *= $mods[$name];
×
43
                    }
44

45
                    Setting::query()->where('name', $name)->update(['value' => $value]);
×
46
                }
47

NEW
48
                clearCache('settings');
×
49
                setFlash('success', __('settings.settings_success_saved'));
×
50

51
                return redirect('admin/settings?act=' . $act);
×
52
            }
53

54
            setInput($request->all());
×
55
            setFlash('danger', $validator->getErrors());
×
56
        }
57

58
        $counters = [
×
59
            __('main.disable'),
×
60
            __('settings.hosts_hosts_all'),
×
61
            __('settings.hits_hits_all'),
×
62
            __('settings.hits_hosts'),
×
63
            __('settings.hits_all_hosts_all'),
×
64
        ];
×
65

66
        $statsite = [
×
67
            __('settings.site_open'),
×
68
            __('settings.site_closed_guest'),
×
69
            __('settings.site_closed_all'),
×
70
        ];
×
71

72
        $protects = [
×
73
            'disable'      => __('main.disable'),
×
74
            'graphical'    => __('settings.graphical'),
×
75
            'animated'     => __('settings.animated'),
×
76
            'recaptcha_v2' => 'Recaptcha v2',
×
77
            'recaptcha_v3' => 'Recaptcha v3',
×
78
        ];
×
79

80
        $slugs = [
×
81
            '%id%'             => 'id',
×
82
            '%id%-%slug%'      => 'id-slug',
×
83
            '%id%-%slug%.html' => 'id-slug.html',
×
84
        ];
×
85

86
        $settings = Setting::query()->pluck('value', 'name')->all();
×
87

88
        return view('admin/settings/index', compact('settings', 'act', 'counters', 'statsite', 'protects', 'slugs'));
×
89
    }
90
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc