Commit 24127a0b98ed6f3c4334dc8569cfbec94654f974

Authored by Андрей Ларионов
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
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
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