Commit 24127a0b98ed6f3c4334dc8569cfbec94654f974
Exists in
master
Merge branch 'master' of http://gitlab.nologostudio.ru/alarionov/rekamore-su
Showing 7 changed files Inline Diff
app/Http/Controllers/Admin/CompanyController.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Http\Controllers\Admin; | 3 | namespace App\Http\Controllers\Admin; |
4 | 4 | ||
5 | use App\Classes\Meta; | ||
5 | use App\Http\Controllers\Controller; | 6 | use App\Http\Controllers\Controller; |
6 | use App\Http\Requests\PagesRequest; | 7 | use App\Http\Requests\PagesRequest; |
7 | use App\Http\Requests\SEORequest; | 8 | use App\Http\Requests\SEORequest; |
8 | use App\Models\Employer; | 9 | use App\Models\Employer; |
9 | use App\Models\employers_main; | 10 | use App\Models\employers_main; |
10 | use App\Models\header_footer; | 11 | use App\Models\header_footer; |
11 | use App\Models\Job_title; | 12 | use App\Models\Job_title; |
12 | use App\Models\job_titles_main; | 13 | use App\Models\job_titles_main; |
13 | use App\Models\pages; | 14 | use App\Models\pages; |
14 | use App\Models\reclame; | 15 | use App\Models\reclame; |
15 | use App\Models\SEO; | 16 | use App\Models\SEO; |
16 | use Illuminate\Http\Request; | 17 | use Illuminate\Http\Request; |
17 | 18 | ||
18 | class CompanyController extends Controller | 19 | class CompanyController extends Controller |
19 | { | 20 | { |
20 | // кабинет - редактор сайта | 21 | // кабинет - редактор сайта |
21 | public function editor() { | 22 | public function editor() { |
22 | return; | 23 | return; |
23 | } | 24 | } |
24 | 25 | ||
25 | // кабинет - редактор должности на главной | 26 | // кабинет - редактор должности на главной |
26 | public function job_titles_main(Request $request) { | 27 | public function job_titles_main(Request $request) { |
27 | if ($request->ajax()) { | 28 | if ($request->ajax()) { |
28 | $user = job_titles_main::find($request->id); | 29 | $user = job_titles_main::find($request->id); |
29 | $request->offsetUnset('id'); | 30 | $request->offsetUnset('id'); |
30 | $user->update($request->all()); | 31 | $user->update($request->all()); |
31 | } | 32 | } |
32 | 33 | ||
33 | $jobs = job_titles_main::query()->OrderBy('sort')->paginate(10); | 34 | $jobs = job_titles_main::query()->OrderBy('sort')->paginate(10); |
34 | $list_job_titles = Job_title::query()->active()->orderBy('name')->get(); | 35 | $list_job_titles = Job_title::query()->active()->orderBy('name')->get(); |
35 | 36 | ||
36 | if ($request->ajax()) { | 37 | if ($request->ajax()) { |
37 | return view('admin.job_main.index_ajax', compact('jobs', 'list_job_titles')); | 38 | return view('admin.job_main.index_ajax', compact('jobs', 'list_job_titles')); |
38 | } else { | 39 | } else { |
39 | return view('admin.job_main.index', compact('jobs', 'list_job_titles')); | 40 | return view('admin.job_main.index', compact('jobs', 'list_job_titles')); |
40 | } | 41 | } |
41 | } | 42 | } |
42 | 43 | ||
43 | // кабинет - редактор шапки-футера сайта | 44 | // кабинет - редактор шапки-футера сайта |
44 | public function editblocks() { | 45 | public function editblocks() { |
45 | $header_footer = header_footer::query()->OrderBy('name')->paginate(15); | 46 | $header_footer = header_footer::query()->OrderBy('name')->paginate(15); |
46 | return view('admin.editbloks.index', compact('header_footer')); | 47 | return view('admin.editbloks.index', compact('header_footer')); |
47 | } | 48 | } |
48 | 49 | ||
49 | // кабинет - редактор работодатели на главной | 50 | // кабинет - редактор работодатели на главной |
50 | public function employers_main(Request $request) { | 51 | public function employers_main(Request $request) { |
51 | if ($request->ajax()) { | 52 | if ($request->ajax()) { |
52 | $user = employers_main::find($request->id); | 53 | $user = employers_main::find($request->id); |
53 | $request->offsetUnset('id'); | 54 | $request->offsetUnset('id'); |
54 | $user->update($request->all()); | 55 | $user->update($request->all()); |
55 | } | 56 | } |
56 | 57 | ||
57 | $employers = employers_main::query()->OrderBy('sort')->paginate(10); | 58 | $employers = employers_main::query()->OrderBy('sort')->paginate(10); |
58 | $list_employers = Employer::query()->active()->orderBy('name_company')->get(); | 59 | $list_employers = Employer::query()->active()->orderBy('name_company')->get(); |
59 | 60 | ||
60 | if ($request->ajax()) { | 61 | if ($request->ajax()) { |
61 | return view('admin.employer_main.index_ajax', compact('employers', 'list_employers')); | 62 | return view('admin.employer_main.index_ajax', compact('employers', 'list_employers')); |
62 | } else { | 63 | } else { |
63 | return view('admin.employer_main.index', compact('employers', 'list_employers')); | 64 | return view('admin.employer_main.index', compact('employers', 'list_employers')); |
64 | } | 65 | } |
65 | } | 66 | } |
66 | 67 | ||
67 | //////////// кабинет - редактор seo-сайта ///////////////////////////// | 68 | //////////// кабинет - редактор seo-сайта ///////////////////////////// |
68 | public function editor_seo() { | 69 | public function editor_seo() { |
69 | $pages = SEO::query()->OrderBy('url')->paginate(15); | 70 | $pages = SEO::query()->OrderBy('url')->paginate(15); |
70 | return view('admin.seo.index', compact('pages')); | 71 | return view('admin.seo.index', compact('pages')); |
71 | } | 72 | } |
72 | 73 | ||
73 | public function editor_seo_add() { | 74 | public function editor_seo_add() { |
74 | return view('admin.seo.add'); | 75 | return view('admin.seo.add'); |
75 | } | 76 | } |
76 | 77 | ||
77 | public function editor_seo_store(SEORequest $request) { | 78 | public function editor_seo_store(SEORequest $request) { |
78 | SEO::create($request->all()); | 79 | SEO::create($request->all()); |
79 | return redirect()->route('admin.editor-seo'); | 80 | return redirect()->route('admin.editor-seo'); |
80 | } | 81 | } |
81 | 82 | ||
83 | public function editor_seo_ajax(Request $request) { | ||
84 | $url = $request->get('url'); // post('url'); | ||
85 | $metaData = Array(); | ||
86 | //$url = json_decode($url, true); | ||
87 | |||
88 | if (!empty($url)) { | ||
89 | |||
90 | $meta = new Meta($url); | ||
91 | $meta->parse(); | ||
92 | $metaData = $meta->finalize(); | ||
93 | |||
94 | return json_encode($metaData); | ||
95 | } else { | ||
96 | return json_encode(Array('Error URL')); | ||
97 | } | ||
98 | } | ||
99 | |||
82 | public function editor_seo_edit(SEO $page) { | 100 | public function editor_seo_edit(SEO $page) { |
83 | return view('admin.seo.edit', compact('page')); | 101 | return view('admin.seo.edit', compact('page')); |
84 | } | 102 | } |
85 | 103 | ||
86 | public function editor_seo_update(SEORequest $request, SEO $page) { | 104 | public function editor_seo_update(SEORequest $request, SEO $page) { |
87 | $page->update($request->all()); | 105 | $page->update($request->all()); |
88 | return redirect()->route('admin.editor-seo'); | 106 | return redirect()->route('admin.editor-seo'); |
89 | } | 107 | } |
90 | 108 | ||
91 | public function editor_seo_destroy(SEO $page) { | 109 | public function editor_seo_destroy(SEO $page) { |
92 | $page->delete(); | 110 | $page->delete(); |
93 | return redirect()->route('admin.editor-seo'); | 111 | return redirect()->route('admin.editor-seo'); |
94 | } | 112 | } |
95 | /////////////////////////////////////////////////////////////////////// | 113 | /////////////////////////////////////////////////////////////////////// |
96 | 114 | ||
97 | /////////// кабинет - редактор страниц //////////////////////////////// | 115 | /////////// кабинет - редактор страниц //////////////////////////////// |
98 | public function editor_pages() { | 116 | public function editor_pages() { |
99 | $pages = pages::query()->OrderBy('name')->paginate(15); | 117 | $pages = pages::query()->OrderBy('name')->paginate(15); |
100 | return view('admin.pages.index', compact('pages')); | 118 | return view('admin.pages.index', compact('pages')); |
101 | } | 119 | } |
102 | 120 | ||
103 | public function editor_pages_add() { | 121 | public function editor_pages_add() { |
104 | return view('admin.pages.add'); | 122 | return view('admin.pages.add'); |
105 | } | 123 | } |
106 | 124 | ||
107 | public function editor_pages_store(PagesRequest $request) { | 125 | public function editor_pages_store(PagesRequest $request) { |
108 | pages::create($request->all()); | 126 | pages::create($request->all()); |
109 | return redirect()->route('admin.editor-pages'); | 127 | return redirect()->route('admin.editor-pages'); |
110 | } | 128 | } |
111 | 129 | ||
112 | public function editor_pages_edit(pages $page) { | 130 | public function editor_pages_edit(pages $page) { |
113 | return view('admin.pages.edit', compact('page')); | 131 | return view('admin.pages.edit', compact('page')); |
114 | } | 132 | } |
115 | 133 | ||
116 | public function editor_pages_update(PagesRequest $request, pages $page) { | 134 | public function editor_pages_update(PagesRequest $request, pages $page) { |
117 | $page->update($request->all()); | 135 | $page->update($request->all()); |
118 | return redirect()->route('admin.editor-pages'); | 136 | return redirect()->route('admin.editor-pages'); |
119 | } | 137 | } |
120 | 138 | ||
121 | public function editor_pages_destroy(pages $page) { | 139 | public function editor_pages_destroy(pages $page) { |
122 | $page->delete(); | 140 | $page->delete(); |
123 | return redirect()->route('admin.editor-pages'); | 141 | return redirect()->route('admin.editor-pages'); |
124 | } | 142 | } |
125 | /////////////////////////////////////////////////////////////////// | 143 | /////////////////////////////////////////////////////////////////// |
126 | 144 | ||
127 | // кабинет - реклама сайта | 145 | // кабинет - реклама сайта |
128 | public function reclames() { | 146 | public function reclames() { |
129 | $reclames = reclame::query()->OrderBy('title')->paginate(15); | 147 | $reclames = reclame::query()->OrderBy('title')->paginate(15); |
130 | return view('admin.reclames.index', compact('reclames')); | 148 | return view('admin.reclames.index', compact('reclames')); |
131 | } | 149 | } |
132 | } | 150 | } |
133 | 151 |
app/Http/Requests/SEORequest.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Http\Requests; | 3 | namespace App\Http\Requests; |
4 | 4 | ||
5 | use Illuminate\Foundation\Http\FormRequest; | 5 | use Illuminate\Foundation\Http\FormRequest; |
6 | 6 | ||
7 | class SEORequest extends FormRequest | 7 | class SEORequest extends FormRequest |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * Determine if the user is authorized to make this request. | 10 | * Determine if the user is authorized to make this request. |
11 | * | 11 | * |
12 | * @return bool | 12 | * @return bool |
13 | */ | 13 | */ |
14 | public function authorize() | 14 | public function authorize() |
15 | { | 15 | { |
16 | return false; | 16 | return true; |
17 | } | 17 | } |
18 | 18 | ||
19 | /** | 19 | /** |
20 | * Get the validation rules that apply to the request. | 20 | * Get the validation rules that apply to the request. |
21 | * | 21 | * |
22 | * @return array<string, mixed> | 22 | * @return array<string, mixed> |
23 | */ | 23 | */ |
24 | public function rules() | 24 | public function rules() |
25 | { | 25 | { |
26 | return [ | 26 | return [ |
27 | // | 27 | 'title' => [ |
28 | 'required', | ||
29 | 'string', | ||
30 | 'min:3', | ||
31 | 'max:255', | ||
32 | ], | ||
33 | 'url' => [ | ||
34 | 'required', | ||
35 | 'string', | ||
36 | 'min: 5', | ||
37 | 'max:2555', | ||
38 | ], | ||
39 | ]; | ||
40 | } | ||
41 | |||
42 | public function messages() { | ||
43 | return [ | ||
44 | 'required' => 'Поле :attribute обязательно для ввода', | ||
45 | 'unique' => 'Поле :attribute должно быть уникальным', | ||
46 | 'mimes' => 'Допускаются файлы только с расширением jpeg,jpg,png', | ||
47 | 'min' => [ | ||
48 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | ||
49 | 'integer' => 'Поле «:attribute» должно быть :min или больше', | ||
50 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | ||
51 | ], | ||
52 | |||
53 | 'max' => [ | ||
54 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | ||
55 | 'integer' => 'Поле «:attribute» должно быть :max или меньше', | ||
56 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | ||
57 | ], | ||
58 | |||
28 | ]; | 59 | ]; |
29 | } | 60 | } |
30 | } | 61 | } |
31 | 62 |
app/Models/SEO.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class SEO extends Model | 8 | class SEO extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | |||
12 | protected $fillable = [ | ||
13 | 'url', | ||
14 | 'title', | ||
15 | 'description', | ||
16 | 'keywords', | ||
17 | 'name', ]; | ||
11 | } | 18 | } |
12 | 19 |
resources/views/admin/seo/add.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Добавление SEO страницы']) | ||
2 | |||
3 | @section('content') | ||
4 | <form method="POST" action="{{ route('admin.add-seo-store') }}"> | ||
5 | @include('admin.seo.form') | ||
6 | </form> | ||
7 | @endsection | ||
8 |
resources/views/admin/seo/edit.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Редактирование SEO страницы']) | ||
2 | |||
3 | @section('content') | ||
4 | <form method="POST" action="{{ route('admin.update-seo', ['page' => $page->id]) }}"> | ||
5 | @include('admin.seo.form') | ||
6 | </form> | ||
7 | @endsection | ||
8 |
resources/views/admin/seo/form.blade.php
1 | @csrf | ||
2 | |||
3 | @isset($page) | ||
4 | @method('PUT') | ||
5 | @endisset | ||
6 | <script> | ||
7 | window.onload = function() { | ||
8 | const MetaURLBtn = document.querySelector('#GetMetaData'); | ||
9 | |||
10 | MetaURLBtn.addEventListener('click', (e) => { | ||
11 | e.preventDefault(); | ||
12 | console.log('Click button for get info metadata'); | ||
13 | |||
14 | let url = document.querySelector('#url').value; | ||
15 | |||
16 | $.ajax({ | ||
17 | type: "GET", | ||
18 | url: "{{ route('admin.ajax.seo') }}", | ||
19 | data: "url=" + url, | ||
20 | success: function (data) { | ||
21 | console.log('URL был передан '); | ||
22 | data = JSON.parse(data); | ||
23 | console.log(data); | ||
24 | |||
25 | document.querySelector('#title').value = data['title']; | ||
26 | document.querySelector('#keywords').value = data['keywords']; | ||
27 | document.querySelector('#description').value = data['description']; | ||
28 | }, | ||
29 | headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, | ||
30 | error: function (data) { | ||
31 | console.log('Error: ' + data); | ||
32 | } | ||
33 | }); | ||
34 | |||
35 | }); | ||
36 | } | ||
37 | |||
38 | </script> | ||
39 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | ||
40 | |||
41 | <label class="block text-sm"> | ||
42 | <span class="text-gray-700 dark:text-gray-400">URL страницы</span> | ||
43 | <input name="url" id="url" | ||
44 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
45 | placeholder="URL страницы" value="{{ old('url') ?? $page->url ?? '' }}" | ||
46 | /> | ||
47 | @error('url') | ||
48 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
49 | {{ $message }} | ||
50 | </span> | ||
51 | @enderror | ||
52 | </label> | ||
53 | <div style="margin-top: 10px;"> | ||
54 | <a id="GetMetaData" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" style="margin-top:10px;">Получить мета-данные</a><br><br> | ||
55 | </div> | ||
56 | <label class="block text-sm"> | ||
57 | <span class="text-gray-700 dark:text-gray-400">Заголовок страницы (meta title)</span> | ||
58 | <input name="title" id="title" | ||
59 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
60 | placeholder="Заголовок страницы" value="{{ old('title') ?? $page->title ?? '' }}" | ||
61 | /> | ||
62 | @error('title') | ||
63 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
64 | {{ $message }} | ||
65 | </span> | ||
66 | @enderror | ||
67 | </label><br> | ||
68 | |||
69 | <label class="block text-sm"> | ||
70 | <span class="text-gray-700 dark:text-gray-400">Описание (meta description)</span> | ||
71 | <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
72 | name="description" id="description" placeholder="Описание" required | ||
73 | rows="3">{{ old('description') ?? $page->description ?? '' }}</textarea> | ||
74 | @error('description') | ||
75 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
76 | {{ $message }} | ||
77 | </span> | ||
78 | @enderror | ||
79 | </label><br> | ||
80 | |||
81 | <label class="block text-sm"> | ||
82 | <span class="text-gray-700 dark:text-gray-400">Ключевые слова (meta keywords)</span> | ||
83 | <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
84 | name="keywords" id="keywords" placeholder="Описание" required | ||
85 | rows="3">{{ old('keywords') ?? $page->keywords ?? '' }}</textarea> | ||
86 | @error('keywords') | ||
87 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
88 | {{ $message }} | ||
89 | </span> | ||
90 | @enderror | ||
91 | </label><br> | ||
92 | |||
93 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | ||
94 | <div> | ||
95 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | ||
96 | Сохранить | ||
97 | </button> | ||
98 | </div> | ||
99 | </div> | ||
100 | </div> | ||
101 |
routes/web.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use App\Http\Controllers\Admin\AdminController; | 3 | use App\Http\Controllers\Admin\AdminController; |
4 | use App\Http\Controllers\Admin\CategoryController; | 4 | use App\Http\Controllers\Admin\CategoryController; |
5 | use App\Http\Controllers\Admin\EmployersController; | 5 | use App\Http\Controllers\Admin\EmployersController; |
6 | use App\Http\Controllers\Admin\InfoBloksController; | 6 | use App\Http\Controllers\Admin\InfoBloksController; |
7 | use App\Http\Controllers\Admin\JobTitlesController; | 7 | use App\Http\Controllers\Admin\JobTitlesController; |
8 | use App\Http\Controllers\Admin\UsersController; | 8 | use App\Http\Controllers\Admin\UsersController; |
9 | use App\Http\Controllers\Admin\WorkersController; | 9 | use App\Http\Controllers\Admin\WorkersController; |
10 | use App\Http\Controllers\Auth\LoginController; | 10 | use App\Http\Controllers\Auth\LoginController; |
11 | use App\Http\Controllers\Auth\RegisterController; | 11 | use App\Http\Controllers\Auth\RegisterController; |
12 | use App\Http\Controllers\CKEditorController; | 12 | use App\Http\Controllers\CKEditorController; |
13 | use App\Models\User; | 13 | use App\Models\User; |
14 | use App\Http\Controllers\MainController; | 14 | use App\Http\Controllers\MainController; |
15 | use App\Http\Controllers\HomeController; | 15 | use App\Http\Controllers\HomeController; |
16 | use Illuminate\Support\Facades\Route; | 16 | use Illuminate\Support\Facades\Route; |
17 | use App\Http\Controllers\Admin\CompanyController; | 17 | use App\Http\Controllers\Admin\CompanyController; |
18 | use App\Http\Controllers\Admin\Ad_EmployersController; | 18 | use App\Http\Controllers\Admin\Ad_EmployersController; |
19 | use App\Http\Controllers\Admin\MsgAnswersController; | 19 | use App\Http\Controllers\Admin\MsgAnswersController; |
20 | use App\Http\Controllers\Admin\GroupsController; | 20 | use App\Http\Controllers\Admin\GroupsController; |
21 | use App\Http\Controllers\PagesController; | 21 | use App\Http\Controllers\PagesController; |
22 | 22 | ||
23 | 23 | ||
24 | /* | 24 | /* |
25 | |-------------------------------------------------------------------------- | 25 | |-------------------------------------------------------------------------- |
26 | | Web Routes | 26 | | Web Routes |
27 | |-------------------------------------------------------------------------- | 27 | |-------------------------------------------------------------------------- |
28 | | | 28 | | |
29 | | Here is where you can register web routes for your application. These | 29 | | Here is where you can register web routes for your application. These |
30 | | routes are loaded by the RouteServiceProvider within a group which | 30 | | routes are loaded by the RouteServiceProvider within a group which |
31 | | contains the "web" middleware group. Now create something great! | 31 | | contains the "web" middleware group. Now create something great! |
32 | | | 32 | | |
33 | */ | 33 | */ |
34 | /* | 34 | /* |
35 | Route::get('/', function () { | 35 | Route::get('/', function () { |
36 | return view('welcome'); | 36 | return view('welcome'); |
37 | })->name('index'); | 37 | })->name('index'); |
38 | */ | 38 | */ |
39 | Route::get('/', [MainController::class, 'index'])->name('index'); | 39 | Route::get('/', [MainController::class, 'index'])->name('index'); |
40 | 40 | ||
41 | //Роуты авторизации, регистрации, восстановления, аутентификации | 41 | //Роуты авторизации, регистрации, восстановления, аутентификации |
42 | Auth::routes(['verify' => true]); | 42 | Auth::routes(['verify' => true]); |
43 | //Личный кабинет пользователя | 43 | //Личный кабинет пользователя |
44 | Route::get('/home', [HomeController::class, 'index'])->name('home'); | 44 | Route::get('/home', [HomeController::class, 'index'])->name('home'); |
45 | 45 | ||
46 | /* | 46 | /* |
47 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { | 47 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { |
48 | $user = User::where('email',$request->input('email'))->first(); | 48 | $user = User::where('email',$request->input('email'))->first(); |
49 | 49 | ||
50 | $user->sendEmailVerificationNotification(); | 50 | $user->sendEmailVerificationNotification(); |
51 | 51 | ||
52 | return 'your response'; | 52 | return 'your response'; |
53 | })->middleware('throttle:6,1')->name('verification.resend'); | 53 | })->middleware('throttle:6,1')->name('verification.resend'); |
54 | */ | 54 | */ |
55 | 55 | ||
56 | // Авторизация, регистрация в админку | 56 | // Авторизация, регистрация в админку |
57 | Route::group([ | 57 | Route::group([ |
58 | 'as' => 'admin.', // имя маршрута, например auth.index | 58 | 'as' => 'admin.', // имя маршрута, например auth.index |
59 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 59 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
60 | 'middleware' => ['guest'], | 60 | 'middleware' => ['guest'], |
61 | ], function () { | 61 | ], function () { |
62 | // Форма регистрации | 62 | // Форма регистрации |
63 | Route::get('register', [AdminController::class, 'register'])->name('register'); | 63 | Route::get('register', [AdminController::class, 'register'])->name('register'); |
64 | 64 | ||
65 | // Создание пользователя | 65 | // Создание пользователя |
66 | Route::post('register', [AdminController::class, 'create'])->name('create'); | 66 | Route::post('register', [AdminController::class, 'create'])->name('create'); |
67 | //Форма входа | 67 | //Форма входа |
68 | Route::get('login', [AdminController::class, 'login'])->name('login'); | 68 | Route::get('login', [AdminController::class, 'login'])->name('login'); |
69 | 69 | ||
70 | // аутентификация | 70 | // аутентификация |
71 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); | 71 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); |
72 | 72 | ||
73 | }); | 73 | }); |
74 | 74 | ||
75 | // Личный кабинет админки | 75 | // Личный кабинет админки |
76 | Route::group([ | 76 | Route::group([ |
77 | 'as' => 'admin.', // имя маршрута, например auth.index | 77 | 'as' => 'admin.', // имя маршрута, например auth.index |
78 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 78 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
79 | 'middleware' => ['auth'], ['admin'], | 79 | 'middleware' => ['auth'], ['admin'], |
80 | ], function() { | 80 | ], function() { |
81 | 81 | ||
82 | // выход | 82 | // выход |
83 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); | 83 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); |
84 | 84 | ||
85 | // кабинет главная страница | 85 | // кабинет главная страница |
86 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); | 86 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); |
87 | 87 | ||
88 | // кабинет профиль админа - форма | 88 | // кабинет профиль админа - форма |
89 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); | 89 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); |
90 | // кабинет профиль админа - сохранение формы | 90 | // кабинет профиль админа - сохранение формы |
91 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); | 91 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); |
92 | 92 | ||
93 | // кабинет профиль - форма пароли | 93 | // кабинет профиль - форма пароли |
94 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); | 94 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); |
95 | // кабинет профиль - сохранение формы пароля | 95 | // кабинет профиль - сохранение формы пароля |
96 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); | 96 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); |
97 | 97 | ||
98 | 98 | ||
99 | // кабинет профиль пользователя - форма | 99 | // кабинет профиль пользователя - форма |
100 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); | 100 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); |
101 | // кабинет профиль пользователя - сохранение формы | 101 | // кабинет профиль пользователя - сохранение формы |
102 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); | 102 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); |
103 | 103 | ||
104 | // кабинет профиль работодатель - форма | 104 | // кабинет профиль работодатель - форма |
105 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); | 105 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); |
106 | // кабинет профиль работодатель - сохранение формы | 106 | // кабинет профиль работодатель - сохранение формы |
107 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); | 107 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); |
108 | 108 | ||
109 | // кабинет профиль работник - форма | 109 | // кабинет профиль работник - форма |
110 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile'); | 110 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile'); |
111 | 111 | ||
112 | // кабинет настройки сайта - форма | 112 | // кабинет настройки сайта - форма |
113 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); | 113 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); |
114 | // кабинет настройки сайта сохранение формы | 114 | // кабинет настройки сайта сохранение формы |
115 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); | 115 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); |
116 | 116 | ||
117 | // кабинет - пользователи | 117 | // кабинет - пользователи |
118 | Route::get('users', [UsersController::class, 'index'])->name('users'); | 118 | Route::get('users', [UsersController::class, 'index'])->name('users'); |
119 | 119 | ||
120 | // кабинет - пользователи | 120 | // кабинет - пользователи |
121 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); | 121 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); |
122 | 122 | ||
123 | // кабинет - работодатели | 123 | // кабинет - работодатели |
124 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); | 124 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); |
125 | 125 | ||
126 | // кабинет - соискатели | 126 | // кабинет - соискатели |
127 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); | 127 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); |
128 | 128 | ||
129 | // кабинет - вакансии | 129 | // кабинет - вакансии |
130 | Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); | 130 | Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); |
131 | 131 | ||
132 | // кабинет - категории | 132 | // кабинет - категории |
133 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); | 133 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); |
134 | /* | 134 | /* |
135 | * CRUD-операции над Справочником Категории | 135 | * CRUD-операции над Справочником Категории |
136 | */ | 136 | */ |
137 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); | 137 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); |
138 | 138 | ||
139 | 139 | ||
140 | //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); | 140 | //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); |
141 | /* | 141 | /* |
142 | * кабинет - CRUD-операции по справочнику должности | 142 | * кабинет - CRUD-операции по справочнику должности |
143 | * | 143 | * |
144 | */ | 144 | */ |
145 | Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); | 145 | Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); |
146 | 146 | ||
147 | // кабинет - сообщения | 147 | // кабинет - сообщения |
148 | Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); | 148 | Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); |
149 | 149 | ||
150 | /* | 150 | /* |
151 | * Расписанный подход в описании каждой директорий групп пользователей. | 151 | * Расписанный подход в описании каждой директорий групп пользователей. |
152 | */ | 152 | */ |
153 | // кабинет - группы пользователей | 153 | // кабинет - группы пользователей |
154 | Route::get('groups', [GroupsController::class, 'index'])->name('groups'); | 154 | Route::get('groups', [GroupsController::class, 'index'])->name('groups'); |
155 | // кабинет - добавление форма группы пользователей | 155 | // кабинет - добавление форма группы пользователей |
156 | Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); | 156 | Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); |
157 | // кабинет - сохранение формы группы пользователей | 157 | // кабинет - сохранение формы группы пользователей |
158 | Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); | 158 | Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); |
159 | // кабинет - редактирование форма группы пользователей | 159 | // кабинет - редактирование форма группы пользователей |
160 | Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); | 160 | Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); |
161 | // кабинет - сохранение редактированной формы группы пользователей | 161 | // кабинет - сохранение редактированной формы группы пользователей |
162 | Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); | 162 | Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); |
163 | // кабинет - удаление группы пользователей | 163 | // кабинет - удаление группы пользователей |
164 | Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); | 164 | Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); |
165 | 165 | ||
166 | // кабинет - список админов | 166 | // кабинет - список админов |
167 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); | 167 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); |
168 | 168 | ||
169 | /////редактор////// кабинет - редактор сайта//////////////////////// | 169 | /////редактор////// кабинет - редактор сайта//////////////////////// |
170 | Route::get('editor-site', function() { | 170 | Route::get('editor-site', function() { |
171 | return view('admin.editor.index'); | 171 | return view('admin.editor.index'); |
172 | })->name('editor-site'); | 172 | })->name('editor-site'); |
173 | 173 | ||
174 | // кабинет - редактор шапки-футера сайта | 174 | // кабинет - редактор шапки-футера сайта |
175 | Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); | 175 | Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); |
176 | 176 | ||
177 | // кабинет - редактор должности на главной | 177 | // кабинет - редактор должности на главной |
178 | Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); | 178 | Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); |
179 | 179 | ||
180 | // кабинет - редактор работодатели на главной | 180 | // кабинет - редактор работодатели на главной |
181 | Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); | 181 | Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); |
182 | 182 | ||
183 | // кабинет - редактор seo-сайта | 183 | // кабинет - редактор seo-сайта |
184 | Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); | 184 | Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); |
185 | Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); | 185 | Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); |
186 | Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); | 186 | Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); |
187 | Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); | ||
187 | Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); | 188 | Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); |
188 | Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); | 189 | Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); |
189 | Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); | 190 | Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); |
190 | 191 | ||
191 | 192 | ||
192 | // кабинет - редактор страниц | 193 | // кабинет - редактор страниц |
193 | Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); | 194 | Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); |
194 | // кабинет - добавление страницы | 195 | // кабинет - добавление страницы |
195 | Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); | 196 | Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); |
196 | // кабинет - сохранение формы страницы | 197 | // кабинет - сохранение формы страницы |
197 | Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); | 198 | Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); |
198 | // кабинет - редактирование форма страницы | 199 | // кабинет - редактирование форма страницы |
199 | Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); | 200 | Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); |
200 | // кабинет - сохранение редактированной формы страницы | 201 | // кабинет - сохранение редактированной формы страницы |
201 | Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); | 202 | Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); |
202 | // кабинет - удаление страницы | 203 | // кабинет - удаление страницы |
203 | Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); | 204 | Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); |
204 | 205 | ||
205 | 206 | ||
206 | // кабинет - реклама сайта | 207 | // кабинет - реклама сайта |
207 | Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); | 208 | Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); |
208 | //////////////////////////////////////////////////////////////////////// | 209 | //////////////////////////////////////////////////////////////////////// |
209 | 210 | ||
210 | // кабинет - отзывы о работодателе для модерации | 211 | // кабинет - отзывы о работодателе для модерации |
211 | Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); | 212 | Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); |
212 | 213 | ||
213 | // Общая страница статистики | 214 | // Общая страница статистики |
214 | Route::get('statics', function () { | 215 | Route::get('statics', function () { |
215 | return view('admin.static.index'); | 216 | return view('admin.static.index'); |
216 | })->name('statics'); | 217 | })->name('statics'); |
217 | 218 | ||
218 | // кабинет - статистика работников | 219 | // кабинет - статистика работников |
219 | Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); | 220 | Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); |
220 | 221 | ||
221 | // кабинет - статистика вакансий работодателя | 222 | // кабинет - статистика вакансий работодателя |
222 | Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); | 223 | Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); |
223 | 224 | ||
224 | // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника | 225 | // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника |
225 | /* | 226 | /* |
226 | * CRUD-операции над справочником дипломы и документы | 227 | * CRUD-операции над справочником дипломы и документы |
227 | */ | 228 | */ |
228 | //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); | 229 | //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); |
229 | Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); | 230 | Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); |
230 | 231 | ||
231 | // кабинет - роли пользователя | 232 | // кабинет - роли пользователя |
232 | Route::get('roles', [UsersController::class, 'roles'])->name('roles'); | 233 | Route::get('roles', [UsersController::class, 'roles'])->name('roles'); |
233 | 234 | ||
234 | }); | 235 | }); |
235 | 236 | ||
236 | Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); | 237 | Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); |
237 | 238 | ||
238 | Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); | 239 | Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); |
239 | 240 |