Commit 7c115bff1b6da3dd756680c7026e2086c20b26c3

Authored by Андрей Ларионов
1 parent 3a94dc815e
Exists in master

Админка - объекты недвижимости

Showing 15 changed files with 366 additions and 42 deletions Inline Diff

app/Classes/RusDate.php
1 <?php 1 <?php
2 2
3 3
4 namespace App\Classes; 4 namespace App\Classes;
5 5
6 6
7 class RusDate 7 class RusDate
8 { 8 {
9 public static function russian_date($date = null){ 9 public static function russian_date($date = null){
10 $date=explode(".", date("d.m.Y")); 10 $date=explode(".", date("d.m.Y"));
11 $m = ""; 11 $m = "";
12 12
13 switch ($date[1]){ 13 switch ($date[1]){
14 case 1: $m = 'января'; break; 14 case 1: $m = 'января'; break;
15 case 2: $m = 'февраля'; break; 15 case 2: $m = 'февраля'; break;
16 case 3: $m = 'марта'; break; 16 case 3: $m = 'марта'; break;
17 case 4: $m = 'апреля'; break; 17 case 4: $m = 'апреля'; break;
18 case 5: $m = 'мая'; break; 18 case 5: $m = 'мая'; break;
19 case 6: $m = 'июня'; break; 19 case 6: $m = 'июня'; break;
20 case 7: $m = 'июля'; break; 20 case 7: $m = 'июля'; break;
21 case 8: $m = 'августа'; break; 21 case 8: $m = 'августа'; break;
22 case 9: $m = 'сентября'; break; 22 case 9: $m = 'сентября'; break;
23 case 10: $m = 'октября'; break; 23 case 10: $m = 'октября'; break;
24 case 11: $m = 'ноября'; break; 24 case 11: $m = 'ноября'; break;
25 case 12: $m = 'декабря'; break; 25 case 12: $m = 'декабря'; break;
26 } 26 }
27 return $date[0].' '.$m.' '.$date[2]; 27 return $date[0].' '.$m.' '.$date[2];
28 } 28 }
29 29
30 public static function russian_month($month) { 30 public static function russian_month($month) {
31 switch ($month){ 31 switch ($month){
32 case 1: $m = 'января'; break; 32 case 1: $m = 'января'; break;
33 case 2: $m = 'февраля'; break; 33 case 2: $m = 'февраля'; break;
34 case 3: $m = 'марта'; break; 34 case 3: $m = 'марта'; break;
35 case 4: $m = 'апреля'; break; 35 case 4: $m = 'апреля'; break;
36 case 5: $m = 'мая'; break; 36 case 5: $m = 'мая'; break;
37 case 6: $m = 'июня'; break; 37 case 6: $m = 'июня'; break;
38 case 7: $m = 'июля'; break; 38 case 7: $m = 'июля'; break;
39 case 8: $m = 'августа'; break; 39 case 8: $m = 'августа'; break;
40 case 9: $m = 'сентября'; break; 40 case 9: $m = 'сентября'; break;
41 case 10: $m = 'октября'; break; 41 case 10: $m = 'октября'; break;
42 case 11: $m = 'ноября'; break; 42 case 11: $m = 'ноября'; break;
43 case 12: $m = 'декабря'; break; 43 case 12: $m = 'декабря'; break;
44 } 44 }
45 return $m; 45 return $m;
46 } 46 }
47 47
48 public static function selected_item($item) { 48 public static function selected_item($item) {
49 if (empty($_COOKIE['favorite_house'])) 49 if (empty($_COOKIE['favorite_house']))
50 return ""; 50 return "";
51 else { 51 else {
52 $Str = json_decode($_COOKIE['favorite_house'], true); 52 $Str = json_decode($_COOKIE['favorite_house'], true);
53 //$Arr = explode(",", $Str); 53 //$Arr = explode(",", $Str);
54 if (in_array($item, $Str)) 54 if (in_array($item, $Str))
55 return " active "; 55 return " active ";
56 else 56 else
57 return ""; 57 return "";
58 } 58 }
59 } 59 }
60 60
61 public static function count_item_fav() { 61 public static function count_item_fav() {
62 if (empty($_COOKIE['favorite_house'])) 62 if (empty($_COOKIE['favorite_house']))
63 return 0; 63 return 0;
64 else { 64 else {
65 $Arr = json_decode($_COOKIE['favorite_house'], true); 65 $Arr = json_decode($_COOKIE['favorite_house'], true);
66 return count($Arr); 66 return count($Arr);
67 } 67 }
68 } 68 }
69 69
70 public static function clear_items() { 70 public static function clear_items() {
71 unset($_COOKIE['favorite_house']); 71 if (!empty($_COOKIE['favorite_house']))
72 unset($_COOKIE['favorite_house']);
72 //print_r($_COOKIE['arr']); 73 //print_r($_COOKIE['arr']);
73 } 74 }
74 } 75 }
75 76
app/Http/Controllers/Admin/AreaController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Http\Requests\AreasRequest;
6 use App\Models\Area; 7 use App\Models\Area;
7 use Illuminate\Http\Request; 8 use Illuminate\Http\Request;
9 use Illuminate\Support\Facades\Storage;
8 10
9 class AreaController extends Controller 11 class AreaController extends Controller
10 { 12 {
11 /** 13 /**
12 * Display a listing of the resource. 14 * Display a listing of the resource.
13 * 15 *
14 * @return \Illuminate\Http\Response 16 * @return \Illuminate\Http\Response
15 */ 17 */
16 public function index() 18 public function index()
17 { 19 {
18 $areas = Area::query()->orderByDesc('created_at')->paginate(5); 20 $areas = Area::query()->orderByDesc('created_at')->paginate(5);
19 return view('admin.area.index', compact('areas')); 21 return view('admin.area.index', compact('areas'));
20 } 22 }
21 23
22 /** 24 /**
23 * Show the form for creating a new resource. 25 * Show the form for creating a new resource.
24 * 26 * Форма создания объекта
25 * @return \Illuminate\Http\Response 27 * @return \Illuminate\Http\Response
26 */ 28 */
27 public function create() 29 public function create()
28 { 30 {
29 // 31 return view('admin.area.create');
30 } 32 }
31 33
32 34
33 public function area_category() { 35 public function area_category() {
34 36
35 } 37 }
36 38
37 /** 39 /**
38 * Store a newly created resource in storage. 40 * Store a newly created resource in storage.
39 * 41 *
40 * @param \Illuminate\Http\Request $request 42 * @param \Illuminate\Http\Request $request
41 * @return \Illuminate\Http\Response 43 * @return \Illuminate\Http\Response
42 */ 44 */
43 public function store(Request $request) 45 public function store(AreasRequest $request)
44 { 46 {
45 // 47 $params = $request->all();
48 //unset($params['foto_main']);
49
50 if ($request->has('foto_main')) {
51 $params['foto_main'] = $request->file('foto_main')->store('areas', 'public');
52 }
53
54 Area::create($params);
55 return redirect()->route('admin.area.index');
46 } 56 }
47 57
48 /** 58 /**
49 * Display the specified resource. 59 * Display the specified resource.
50 * 60 * Просмотр объекта недвижимости
51 * @param \App\Models\Area $area 61 * @param \App\Models\Area $area
52 * @return \Illuminate\Http\Response 62 * @return \Illuminate\Http\Response
53 */ 63 */
54 public function show(Area $area) 64 public function show(Area $area)
55 { 65 {
56 // 66 return view('admin.area.view', compact('area'));
57 } 67 }
58 68
59 /** 69 /**
60 * Show the form for editing the specified resource. 70 * Show the form for editing the specified resource.
61 * 71 * Форма редактирования объекта
62 * @param \App\Models\Area $area 72 * @param \App\Models\Area $area
63 * @return \Illuminate\Http\Response 73 * @return \Illuminate\Http\Response
64 */ 74 */
65 public function edit(Area $area) 75 public function edit(Area $area)
66 { 76 {
67 // 77 return view('admin.area.edit', compact('area'));
68 } 78 }
69 79
70 /** 80 /**
71 * Update the specified resource in storage. 81 * Update the specified resource in storage.
72 * 82 * Обновление-сохранение объекта недвижимости
73 * @param \Illuminate\Http\Request $request 83 * @param \Illuminate\Http\Request $request
74 * @param \App\Models\Area $area 84 * @param \App\Models\Area $area
75 * @return \Illuminate\Http\Response 85 * @return \Illuminate\Http\Response
76 */ 86 */
77 public function update(Request $request, Area $area) 87 public function update(AreasRequest $request, Area $area)
78 { 88 {
79 // 89 $params = $request->all();
90 unset($params['foto_main']);
91 if ($request->has('foto_main')) {
92 Storage::delete($area->foto_main);
93 $params['foto_main'] = $request->file('foto_main')->store('areas', 'public');
94 }
95
96 $area->update($params);
97 return redirect()->route('admin.area.index');
80 } 98 }
81 99
82 /** 100 /**
83 * Remove the specified resource from storage. 101 * Remove the specified resource from storage.
84 * 102 * Удаление объекта недвижимости
85 * @param \App\Models\Area $area 103 * @param \App\Models\Area $area
86 * @return \Illuminate\Http\Response 104 * @return \Illuminate\Http\Response
87 */ 105 */
88 public function destroy(Area $area) 106 public function destroy(Area $area)
89 { 107 {
90 // 108 if (!empty($area->foto_main)) {
109 Storage::delete($area->foto_main);
110 }
111 $area->delete();
112 return redirect()->route('admin.area.index');
91 } 113 }
92 } 114 }
93 115
app/Http/Controllers/AdminController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers; 3 namespace App\Http\Controllers;
4 4
5 use Illuminate\Http\Request; 5 use Illuminate\Http\Request;
6 6
7 class AdminController extends Controller 7 class AdminController extends Controller
8 { 8 {
9 // главная страница административного раздела 9 // главная страница административного раздела
10 public function index() { 10 public function index() {
11 return view('admin.index'); 11 return view('admin.index');
12 } 12 }
13
14 // страница
15 } 13 }
16 14
app/Http/Requests/AreasRequest.php
File was created 1 <?php
2
3 namespace App\Http\Requests;
4
5 use Illuminate\Foundation\Http\FormRequest;
6
7 class AreasRequest extends FormRequest
8 {
9 /**
10 * Determine if the user is authorized to make this request.
11 *
12 * @return bool
13 */
14 public function authorize()
15 {
16 return true;
17 }
18
19 /**
20 * Get the validation rules that apply to the request.
21 *
22 * @return array<string, mixed>
23 */
24 public function rules()
25 {
26 return [
27 'name_area' => 'required|min:3|max:255',
28 'description' => 'required|min:5',
29 ];
30 }
31
32 public function messages() {
33 return [
34 'required' => 'Поле :attribute обязательно для ввода',
35 'min' => 'Поле :attribute должно иметь минимум :min символов',
36 'max' => 'Поле :attribute должно содержать не более :max символов'
37 ];
38 }
39
40 }
41
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 Area extends Model 8 class Area extends Model
9 { 9 {
10 use HasFactory; 10 use HasFactory;
11 11
12 protected $fillable = ['name_area', 'description', 'foto_main', 'coord_x', 'coord_y'];
13
14
12 /* 15 /*
13 * Связь Объектов недвижимости с офисами 16 * Связь Объектов недвижимости с офисами
14 */ 17 */
15 public function house() { 18 public function house() {
16 return $this->hasMany(House::class); 19 return $this->hasMany(House::class);
17 } 20 }
18 21
19 /* 22 /*
20 * Связь объектов недвижимости с фотогалереей 23 * Связь объектов недвижимости с фотогалереей
21 */ 24 */
22 public function fotos() { 25 public function fotos() {
23 return $this->hasMany(foto_area::class); 26 return $this->hasMany(foto_area::class);
24 } 27 }
25 28
26 } 29 }
27 30
database/migrations/2023_03_01_072712_create_areas_table.php
1 <?php 1 <?php
2 2
3 use Illuminate\Database\Migrations\Migration; 3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint; 4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Facades\Schema; 5 use Illuminate\Support\Facades\Schema;
6 6
7 return new class extends Migration 7 return new class extends Migration
8 { 8 {
9 /** 9 /**
10 * Run the migrations. 10 * Run the migrations.
11 * 11 *
12 * @return void 12 * @return void
13 */ 13 */
14 public function up() 14 public function up()
15 { 15 {
16 Schema::create('areas', function (Blueprint $table) { 16 Schema::create('areas', function (Blueprint $table) {
17 $table->id(); 17 $table->id();
18 $table->string('name_area', 255); 18 $table->string('name_area', 255)->nullable();
19 $table->string('slug', 255)->unique(); 19 $table->string('slug', 255)->unique()->nullable();
20 $table->text('description'); 20 $table->text('description')->nullable();
21 $table->string('map_coord')->default(''); 21 $table->string('map_coord')->default('');
22 $table->float('coord_x')->default(0.0); 22 $table->integer('coord_x')->default(0);
23 $table->float('coord_y')->default(0.0); 23 $table->integer('coord_y')->default(0);
24 $table->string('foto_main', 255); 24 $table->string('foto_main', 255)->nullable();
25 $table->timestamps(); 25 $table->timestamps();
26 }); 26 });
27 } 27 }
28 28
29 /** 29 /**
30 * Reverse the migrations. 30 * Reverse the migrations.
31 * 31 *
32 * @return void 32 * @return void
33 */ 33 */
34 public function down() 34 public function down()
35 { 35 {
36 Schema::dropIfExists('areas'); 36 Schema::dropIfExists('areas');
37 } 37 }
38 }; 38 };
39 39
resources/views/admin/area/create.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Создание нового объекта'])
2
3 @section('content')
4 <section class="favorites">
5 <div class="favorites-top">
6 <div class="container">
7 <div class="breadcrumbs">
8 <ul class="breadcrumbs__list">
9 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('user.index') }}">Главная</a></li>
10 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.area.index') }}">Объекты недвижимости </a></li>
11 <li class="breadcrumbs__item"><span class="breadcrumbs__link">Создание объекта недвижимости </span></li>
12 </ul>
13 </div>
14 <h1 class="favorites__title title-main">Создание объекта недвижимости</h1>
15 </div>
16 </div>
17 <div class="favorites-cnt">
18 <div class="container">
19 <form method="post" enctype="multipart/form-data" action="{{ route('admin.area.store') }}" style="width:100%">
20 @include('admin.area.form')
21 </form>
22 </div>
23 </div>
24 </section>
25 @endsection
26
resources/views/admin/area/edit.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Изменение объекта'])
2
3 @section('content')
4 <section class="favorites">
5 <div class="favorites-top">
6 <div class="container">
7 <div class="breadcrumbs">
8 <ul class="breadcrumbs__list">
9 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('user.index') }}">Главная</a></li>
10 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.area.index') }}">Объекты недвижимости </a></li>
11 <li class="breadcrumbs__item"><span class="breadcrumbs__link">Изменение объекта недвижимости </span></li>
12 </ul>
13 </div>
14 <h1 class="favorites__title title-main">Изменение объекта недвижимости</h1>
15 </div>
16 </div>
17 <div class="favorites-cnt">
18 <div class="container">
19 <form method="post" enctype="multipart/form-data" action="{{ route('admin.area.update', ['area' => $area->id]) }}" style="width:100%">
20 @include('admin.area.form')
21 </form>
22 </div>
23 </div>
24 </section>
25 @endsection
26
27
resources/views/admin/area/form.blade.php
File was created 1 @csrf
2
3 @isset($area)
4 @method('PUT')
5 @endisset
6
7 <label for="name_area">Название объекта: <span class="req">*</span></label>
8 @error('name_area')
9 <div class="alert alert-danger">{{ $message }}</div>
10 @enderror
11 <input type="text" class="form-control_ txt" name="name_area" placeholder="Название объекта"
12 required maxlength="100" style="width: 80%" value="{{ old('name_area') ?? $area->name_area ?? '' }}"><br>
13
14 <label for="description">Описание объекта: <span class="req">*</span></label>
15 @error('description')
16 <div class="alert alert-danger">{{ $message }}</div>
17 @enderror
18 <textarea class="form-control_ txtarea ckeditor" name="description" placeholder="Описание" required
19 rows="10" style="width: 80%">{{ old('description') ?? $area->description ?? '' }}</textarea><br>
20
21 <label for="coord_X">Коорд. X: </label>
22 <input type="text" class="form-control_ txt" name="coord_X" placeholder="Координаты X"
23 required maxlength="100" value="{{ old('coord_x') ?? $area->coord_x ?? '' }}"><br>
24
25 <label for="coord_Y">Коорд. Y: </label>
26 <input type="text" class="form-control_ txt" name="coord_Y" placeholder="Координаты Y"
27 required maxlength="100" value="{{ old('coord_y') ?? $area->coord_y ?? '' }}"><br>
28
29
30 <label for="foto_main">Файл-картинка:</label>
31 <input type="file" class="form-control-file txt" name="foto_main" id="foto_main" accept="image/png, image/jpeg">
32
33 @isset($area->foto_main)
34 <div class="form-group form-check">
35 <img src="<?=asset(Storage::url($area->foto_main))?>" width="100px"/>
36 <input type="checkbox" class="form-check-input" name="remove" id="remove">
37 <label class="form-check-label" for="remove">
38 Удалить загруженное изображение
39 </label>
40 </div>
41 @endisset
42 <br><br>
43 <button type="submit" class="btn hero-search__btn btn--main">Сохранить</button>
44
45
46
resources/views/admin/area/index.blade.php
1 @extends('layout.admin', ['title' => 'Объекты недвижимости']) 1 @extends('layout.admin', ['title' => 'Объекты недвижимости'])
2 2
3 @section('content') 3 @section('content')
4 <section class="favorites"> 4 <section class="favorites">
5 <div class="favorites-top"> 5 <div class="favorites-top">
6 <div class="container"> 6 <div class="container">
7 <div class="breadcrumbs"> 7 <div class="breadcrumbs">
8 <ul class="breadcrumbs__list"> 8 <ul class="breadcrumbs__list">
9 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('user.index') }}">Главная</a></li> 9 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('user.index') }}">Главная</a></li>
10 <li class="breadcrumbs__item"><span class="breadcrumbs__link">Объекты недвижимости </span></li> 10 <li class="breadcrumbs__item"><span class="breadcrumbs__link">Объекты недвижимости </span></li>
11 </ul> 11 </ul>
12 </div> 12 </div>
13 <h1 class="favorites__title title-main">Объекты недвижимости</h1> 13 <h1 class="favorites__title title-main">Объекты недвижимости</h1>
14 </div> 14 </div>
15 </div> 15 </div>
16 <div class="favorites-cnt"> 16 <div class="favorites-cnt">
17 <div class="container"> 17 <div class="container">
18 <a href="{{ route('admin.area.create') }}" class="btn hero-search__btn btn--main">
19 Создать объект
20 </a><br><br>
18 <table class="table" style="width: 100%"> 21 <table class="table" style="width: 100%">
19 <thead> 22 <thead>
20 <tr> 23 <tr>
21 <th>First Name</th> 24 <th>Фото</th>
22 <th>Last Name</th> 25 <th>ID</th>
23 <th>ZIP</th> 26 <th>Название объекта</th>
24 <th>Birthday</th> 27 <th>Координаты X</th>
25 <th>Points</th> 28 <th>Координаты Y</th>
26 <th>Average</th> 29 <th>Дата создания</th>
27 <th>Amount</th> 30 <th>Действия</th>
28 </tr> 31 </tr>
29 </thead> 32 </thead>
30 <tbody> 33 <tbody>
31 <tr> 34 @if ($areas->count())
32 <td>Gloria</td> 35 @foreach($areas as $area)
33 <td>Reeves</td> 36 <tr>
34 <td>67439</td> 37 <td><? if (empty($area->foto_main)) {?>Нет фото<?} else {?><img src="<?=asset(Storage::url($area->foto_main))?>" width="100px"/><?}?></td>
35 <td>10/18/1985</td> 38 <td>{{ $area->id }}</td>
36 <td>4</td> 39 <td>{{ $area->name_area }}</td>
37 <td>0.1</td> 40 <td>{{ $area->coord_x }}</td>
38 <td>$50</td> 41 <td>{{ $area->coord_y }}</td>
39 </tr> 42 <td>{{ $area->created_at }}</td>
40 ... 43 <td> <form action="{{ route('admin.area.destroy', $area) }}" method="POST">
44 <a style="color:green" href="{{ route('admin.area.show', ['area' => $area->id]) }}">
45 Просмотр
46 </a> |
47 <a href="{{ route('admin.area.edit', ['area' => $area->id]) }}">
48 Редактировать
49 </a> |
50 @csrf
51 @method('DELETE')
52 <input class=" btn-danger" type="submit" value="Удалить">
53 </form>
54 </td>
55 </tr>
56 @endforeach
57 @else
58 <tr>
59 <td>-</td>
60 <td>-</td>
61 <td>-</td>
62 <td>-</td>
63 <td>-</td>
64 <td>-</td>
65 <td>-</td>
66 </tr>
67 @endif
68
41 </tbody> 69 </tbody>
42 </table> 70 </table>
43 71 {{ $areas->onEachSide(1)->links('catalogs.paginate') }}
44 <div class="favorites__items"> 72 <div class="favorites__items">
45 73
46 74
47 75
48 <!--<div class="favorites-item"> 76 <!--<div class="favorites-item">
49 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-1.svg" alt=""></div> 77 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-1.svg" alt=""></div>
50 <p class="favorites-item__descr"><a href="#">Найдите</a> идеальную планировку на сайте Renttorg</p> 78 <p class="favorites-item__descr"><a href="#">Найдите</a> идеальную планировку на сайте Renttorg</p>
51 </div> 79 </div>
52 <div class="favorites-item"> 80 <div class="favorites-item">
53 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-2.svg" alt=""></div> 81 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-2.svg" alt=""></div>
54 <p class="favorites-item__descr">Нажмите на <img src="images/favorites-icon-mini.svg" alt=""> для добавления недвижемости в избранное</p> 82 <p class="favorites-item__descr">Нажмите на <img src="images/favorites-icon-mini.svg" alt=""> для добавления недвижемости в избранное</p>
55 </div> 83 </div>
56 <div class="favorites-item"> 84 <div class="favorites-item">
57 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-3.svg" alt=""></div> 85 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-3.svg" alt=""></div>
58 <p class="favorites-item__descr">Перейдите в избранное или сравнение для выбора планировки</p> 86 <p class="favorites-item__descr">Перейдите в избранное или сравнение для выбора планировки</p>
59 </div>--> 87 </div>-->
60 </div> 88 </div>
61 </div> 89 </div>
62 </div> 90 </div>
63 </section> 91 </section>
64 @endsection 92 @endsection
65 93
resources/views/admin/area/view.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Просмотр объекта'])
2
3 @section('content')
4 <section class="favorites">
5 <div class="favorites-top">
6 <div class="container">
7 <div class="breadcrumbs">
8 <ul class="breadcrumbs__list">
9 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('user.index') }}">Главная</a></li>
10 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.area.index') }}">Объекты недвижимости </a></li>
11 <li class="breadcrumbs__item"><span class="breadcrumbs__link">Просмотр объекта недвижимости </span></li>
12 </ul>
13 </div>
14 <h1 class="favorites__title title-main">Просмотр объекта недвижимости</h1>
15 </div>
16 </div>
17 <div class="favorites-cnt">
18 <div class="container">
19 <label for="name_area">Название объекта: <span class="req">*</span></label><br>
20 <input type="text" class="form-control_ txt" name="name_area" placeholder="Название объекта"
21 required maxlength="100" style="width: 80%" value="{{ old('name_area') ?? $area->name_area ?? '' }}"><br><br>
22
23 <label for="description">Описание объекта: <span class="req">*</span></label><br>
24 <textarea class="form-control_ txtarea ckeditor" name="description" placeholder="Описание" required
25 rows="10" style="width: 80%">{{ old('description') ?? $area->description ?? '' }}</textarea><br><br>
26
27 <label for="coord_X">Коорд. X: </label><br>
28 <input type="text" class="form-control_ txt" name="coord_X" placeholder="Координаты X"
29 required maxlength="100" value="{{ old('coord_x') ?? $area->coord_x ?? '' }}"><br><br>
30
31 <label for="coord_Y">Коорд. Y: </label><br>
32 <input type="text" class="form-control_ txt" name="coord_Y" placeholder="Координаты Y"
33 required maxlength="100" value="{{ old('coord_y') ?? $area->coord_y ?? '' }}"><br><br>
34
35
36 <label for="foto_main">Файл-картинка:</label><br>
37 @isset($area->foto_main)
38 <div class="form-group form-check">
39 <img src="<?=asset(Storage::url($area->foto_main))?>" width="100px"/>
40 </div>
41 @endisset
42 <br>
43 <a href="{{ route('admin.area.index') }}" class="btn hero-search__btn btn--main">Вернуться к объектам</a>
44 </div>
45 </div>
46 </section>
47 @endsection
48
49
resources/views/admin/index.blade.php
1 @extends('layout.site', ['title' => 'Личный кабинет']) 1 @extends('layout.site', ['title' => 'Личный кабинет'])
2 2
3 @section('content') 3 @section('content')
4 <section class="favorites"> 4 <section class="favorites">
5 <div class="favorites-top"> 5 <div class="favorites-top">
6 <div class="container"> 6 <div class="container">
7 <div class="breadcrumbs"> 7 <div class="breadcrumbs">
8 <ul class="breadcrumbs__list"> 8 <ul class="breadcrumbs__list">
9 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> 9 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li>
10 <li class="breadcrumbs__item"><span class="breadcrumbs__link">Админка </span></li> 10 <li class="breadcrumbs__item"><span class="breadcrumbs__link">Админка </span></li>
11 </ul> 11 </ul>
12 </div> 12 </div>
13 <h1 class="favorites__title title-main">Личный кабинет</h1> 13 <h1 class="favorites__title title-main">Личный кабинет</h1>
14 <p class="favorites__descr"> 14 <p class="favorites__descr">
15 Добрый день {{ auth()->user()->name }}!<br> 15 Добрый день {{ auth()->user()->name }}!<br>
16 Это личный кабинет пользователя сайта.<br> 16 Это личный кабинет пользователя сайта.<br>
17 <a class="btn btn-success" href="{{ route('auth.logout') }}">Выйти из системы</a><br> 17 <a class="btn btn-success" href="{{ route('auth.logout') }}">Выйти из системы</a><br>
18 </p> 18 </p>
19 <h2>Меню</h2> 19 <h2>Меню</h2>
20 <ul class="breadcrumbs__list"> 20 <ul class="breadcrumbs__list">
21 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Сайт</a></li> 21 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Сайт</a></li>
22 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('user.index') }}">Главная (админкв) </a></li> 22 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.area.index') }}">Объекты </a></li>
23 </ul> 23 </ul>
24 </div> 24 </div>
25 </div> 25 </div>
26 <div class="favorites-cnt"> 26 <div class="favorites-cnt">
27 <div class="container"> 27 <div class="container">
28 <div class="favorites__items"> 28 <div class="favorites__items">
29 <div class="favorites-item"> 29 <div class="favorites-item">
30 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-1.svg" alt=""></div> 30 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-1.svg" alt=""></div>
31 <p class="favorites-item__descr"><a href="#">Найдите</a> идеальную планировку на сайте Renttorg</p> 31 <p class="favorites-item__descr"><a href="#">Найдите</a> идеальную планировку на сайте Renttorg</p>
32 </div> 32 </div>
33 <div class="favorites-item"> 33 <div class="favorites-item">
34 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-2.svg" alt=""></div> 34 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-2.svg" alt=""></div>
35 <p class="favorites-item__descr">Нажмите на <img src="images/favorites-icon-mini.svg" alt=""> для добавления недвижемости в избранное</p> 35 <p class="favorites-item__descr">Нажмите на <img src="images/favorites-icon-mini.svg" alt=""> для добавления недвижемости в избранное</p>
36 </div> 36 </div>
37 <div class="favorites-item"> 37 <div class="favorites-item">
38 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-3.svg" alt=""></div> 38 <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-3.svg" alt=""></div>
39 <p class="favorites-item__descr">Перейдите в избранное или сравнение для выбора планировки</p> 39 <p class="favorites-item__descr">Перейдите в избранное или сравнение для выбора планировки</p>
40 </div> 40 </div>
41 </div> 41 </div>
42 </div> 42 </div>
43 </div> 43 </div>
44 </section> 44 </section>
45 @endsection 45 @endsection
46 46
47 47
resources/views/auth/vefiry-message.blade.php
File was created 1 @extends('layout.site', ['title' => 'Неудачный вход в личный кабинет'])
2
3 @section('content')
4 <section class="favorites">
5 <div class="favorites-top">
6 <div class="container">
7
8 <div class="footer-top">
9 <div class="container">
10 <div class="footer-feedback">
11 <div class="footer-feedback__cnt">
12 <h2 class="footer-feedback__title title">Вход в личный кабинет не удался!</h2>
13 <p class="footer-feedback__descr">Обратитесь к администратору за правами!</p>
14 </div>
15
16 </div>
17 </div>
18 </div>
19
20 </div>
21 </div>
22 </section>
23 @endsection
24
resources/views/layout/admin.blade.php
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> 2 <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
3 <head> 3 <head>
4 <meta charset="UTF-8"> 4 <meta charset="UTF-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>{{$title}}</title> 7 <title>{{$title}}</title>
8 <link rel="preload" href="{{ asset('fonts/Manrope-ExtraLight.woff2') }}" as="font" type="font/woff2" crossorigin> 8 <link rel="preload" href="{{ asset('fonts/Manrope-ExtraLight.woff2') }}" as="font" type="font/woff2" crossorigin>
9 <link rel="preload" href="{{ asset('fonts/Manrope-Light.woff2" as="font') }}" type="font/woff2" crossorigin> 9 <link rel="preload" href="{{ asset('fonts/Manrope-Light.woff2" as="font') }}" type="font/woff2" crossorigin>
10 <link rel="preload" href="{{ asset('fonts/Manrope-Regular.woff2') }}" as="font" type="font/woff2" crossorigin> 10 <link rel="preload" href="{{ asset('fonts/Manrope-Regular.woff2') }}" as="font" type="font/woff2" crossorigin>
11 <link rel="preload" href="{{ asset('fonts/Manrope-Medium.woff2') }}" as="font" type="font/woff2" crossorigin> 11 <link rel="preload" href="{{ asset('fonts/Manrope-Medium.woff2') }}" as="font" type="font/woff2" crossorigin>
12 <link rel="preload" href="{{ asset('fonts/Manrope-SemiBold.woff2') }}" as="font" type="font/woff2" crossorigin> 12 <link rel="preload" href="{{ asset('fonts/Manrope-SemiBold.woff2') }}" as="font" type="font/woff2" crossorigin>
13 <link rel="preload" href="{{ asset('fonts/Manrope-Bold.woff2') }}" as="font" type="font/woff2" crossorigin> 13 <link rel="preload" href="{{ asset('fonts/Manrope-Bold.woff2') }}" as="font" type="font/woff2" crossorigin>
14 <link rel="preload" href="{{ asset('fonts/Manrope-ExtraBold.woff2') }}" as="font" type="font/woff2" crossorigin> 14 <link rel="preload" href="{{ asset('fonts/Manrope-ExtraBold.woff2') }}" as="font" type="font/woff2" crossorigin>
15 <link rel="stylesheet" href="{{ asset('css/swiper-bundle.min.css') }}"> 15 <link rel="stylesheet" href="{{ asset('css/swiper-bundle.min.css') }}">
16 <link rel="stylesheet" href="{{ asset('css/style.css') }}"> 16 <link rel="stylesheet" href="{{ asset('css/style.css') }}">
17 <link rel="stylesheet" href="{{ asset('css/style_table.css') }}"> 17 <link rel="stylesheet" href="{{ asset('css/style_table.css') }}">
18 <style>
19 /* form styles */
20 form .row {
21 display: block;
22 padding: 7px 8px;
23 margin-bottom: 7px;
24 }
25 form .row:hover {
26 background: #f1f7fa;
27 }
28
29 form label {
30 display: inline-block;
31 font-size: 1.2em;
32 font-weight: bold;
33 width: 120px;
34 padding: 6px 0;
35 color: #464646;
36 vertical-align: top;
37 }
38 form .req { color: #ca5354; }
39
40 form .note {
41 font-size: 1.2em;
42 line-height: 1.33em;
43 font-weight: normal;
44 padding: 2px 7px;
45 margin-bottom: 10px;
46 }
47
48 form input:focus, form textarea:focus { outline: none; }
49
50 /* placeholder styles: http://stackoverflow.com/a/2610741/477958 */
51 ::-webkit-input-placeholder { color: #aaafbd; font-style: italic; } /* WebKit */
52 :-moz-placeholder { color: #aaafbd; font-style: italic; } /* Mozilla Firefox 4 to 18 */
53 ::-moz-placeholder { color: #aaafbd; font-style: italic; } /* Mozilla Firefox 19+ */
54 :-ms-input-placeholder { color: #aaafbd; font-style: italic; } /* Internet Explorer 10+ */
55
56 form .txt {
57 display: inline-block;
58 padding: 8px 9px;
59 padding-right: 30px;
60 width: 240px;
61 font-family: 'Oxygen', sans-serif;
62 font-size: 1.35em;
63 font-weight: normal;
64 color: #898989;
65 }
66
67 form .txtarea {
68 display: inline-block;
69 padding: 8px 9px;
70 padding-right: 30px;
71 font-family: 'Oxygen', sans-serif;
72 font-size: 1.35em;
73 font-weight: normal;
74 color: #898989;
75 }
76 </style>
18 </head> 77 </head>
19 <body> 78 <body>
20 <div class="spinner"></div> 79 <div class="spinner"></div>
21 <div class="wrapper"> 80 <div class="wrapper">
22 <header class="header js_header"> 81 <header class="header js_header">
23 <div class="container"> 82 <div class="container">
24 <div class="header__wrap"><a class="header__logo" href="{{ route('index') }}"><img src="{{ asset('images/logo.svg') }}" alt="Лого"></a> 83 <div class="header__wrap"><a class="header__logo" href="{{ route('index') }}"><img src="{{ asset('images/logo.svg') }}" alt="Лого"></a>
25 <nav class="header__nav nav"> 84 <nav class="header__nav nav">
26 <ul class="nav__list"> 85 <ul class="nav__list">
27 <li class="nav__item"><a class="nav__link" href="{{ route('catalog') }}">Каталог</a></li> 86 <li class="nav__item"><a class="nav__link" href="{{ route('admin.area.index') }}">Объекты</a></li>
28 <li class="nav__item"><a class="nav__link" href="{{ route('about') }}">О компании</a></li> 87 <li class="nav__item"><a class="nav__link" href="{{ route('about') }}">О компании</a></li>
29 <li class="nav__item"><a class="nav__link" href="{{ route('contact') }}">Контакты</a></li> 88 <li class="nav__item"><a class="nav__link" href="{{ route('contact') }}">Контакты</a></li>
30 <li class="nav__item"><a class="nav__link nav__link-favorites" href="{{ route('favorite') }}">Избранное<span><?=\App\Classes\RusDate::count_item_fav();?></span></a></li> 89 <li class="nav__item"><a class="nav__link nav__link-favorites" href="{{ route('favorite') }}">Избранное<span><?=\App\Classes\RusDate::count_item_fav();?></span></a></li>
31 </ul> 90 </ul>
32 </nav> 91 </nav>
33 <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback"> 92 <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback">
34 <svg width="22" height="22"> 93 <svg width="22" height="22">
35 <use xlink:href="{{ asset('images/sprite.svg#header-btn-phone') }}"></use> 94 <use xlink:href="{{ asset('images/sprite.svg#header-btn-phone') }}"></use>
36 </svg></a> 95 </svg></a>
37 <button class="header__burger js_header_burger" type="button">Меню 96 <button class="header__burger js_header_burger" type="button">Меню
38 <svg width="28" height="18"> 97 <svg width="28" height="18">
39 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use> 98 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use>
40 </svg> 99 </svg>
41 </button> 100 </button>
42 </div> 101 </div>
43 <div class="menu js_menu"> 102 <div class="menu js_menu">
44 <div class="menu__wrap"> 103 <div class="menu__wrap">
45 <button class="menu__close js_menu_close" type="button">Меню 104 <button class="menu__close js_menu_close" type="button">Меню
46 <svg width="20" height="20"> 105 <svg width="20" height="20">
47 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> 106 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use>
48 </svg> 107 </svg>
49 </button> 108 </button>
50 <div class="menu__inner"> 109 <div class="menu__inner">
51 <nav class="menu__nav"> 110 <nav class="menu__nav">
52 <ul class="menu__list"> 111 <ul class="menu__list">
53 <li class="menu__item"><a class="menu__link" href="{{ route('about') }}">О компании</a></li> 112 <li class="menu__item"><a class="menu__link" href="{{ route('about') }}">О компании</a></li>
54 <li class="menu__item"><a class="menu__link menu__link-favorites" href="{{ route('favorite') }}">Избранное<span>5</span></a></li> 113 <li class="menu__item"><a class="menu__link menu__link-favorites" href="{{ route('favorite') }}">Избранное<span>5</span></a></li>
55 <li class="menu__item"><a class="menu__link" href="{{ route('catalog') }}">Каталог</a></li> 114 <li class="menu__item"><a class="menu__link" href="{{ route('catalog') }}">Каталог</a></li>
56 <li class="menu__item"><a class="menu__link" href="{{ route('news') }}">Новости</a></li> 115 <li class="menu__item"><a class="menu__link" href="{{ route('news') }}">Новости</a></li>
57 <li class="menu__item"><a class="menu__link" href="{{ route('contact') }}">Контакты</a></li> 116 <li class="menu__item"><a class="menu__link" href="{{ route('contact') }}">Контакты</a></li>
58 </ul> 117 </ul>
59 </nav> 118 </nav>
60 <div class="menu__contacts"><a class="menu__contact" href="mailto:info@renttorg.ru">E-MAIL<span>info@renttorg.ru</span></a><a class="menu__contact" href="tel:+79290127262">ТЕЛЕФОН<span>+7 (929) 012-72-62</span></a></div> 119 <div class="menu__contacts"><a class="menu__contact" href="mailto:info@renttorg.ru">E-MAIL<span>info@renttorg.ru</span></a><a class="menu__contact" href="tel:+79290127262">ТЕЛЕФОН<span>+7 (929) 012-72-62</span></a></div>
61 <div class="menu__social social"> 120 <div class="menu__social social">
62 <ul class="social__list"> 121 <ul class="social__list">
63 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li> 122 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li>
64 <li class="social__item"><a class="social__link" href="#" target="_blank"> 123 <li class="social__item"><a class="social__link" href="#" target="_blank">
65 <svg width="40" height="40"> 124 <svg width="40" height="40">
66 <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use> 125 <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use>
67 </svg></a></li> 126 </svg></a></li>
68 </ul> 127 </ul>
69 </div> 128 </div>
70 </div> 129 </div>
71 </div> 130 </div>
72 </div> 131 </div>
73 </div> 132 </div>
74 </div> 133 </div>
75 </header> 134 </header>
76 <main> 135 <main>
77 @if ($message = Session::get('success')) 136 @if ($message = Session::get('success'))
78 <section> 137 <section>
79 <div class="alert alert-success alert-dismissible mt-0" role="alert"> 138 <div class="alert alert-success alert-dismissible mt-0" role="alert">
80 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 139 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
81 <span aria-hidden="true">&times;</span> 140 <span aria-hidden="true">&times;</span>
82 </button> 141 </button>
83 {{ $message }} 142 {{ $message }}
84 </div> 143 </div>
85 </section> 144 </section>
86 @endif 145 @endif
87 146
88 @if ($errors->any()) 147 @if ($errors->any())
89 <section> 148 <section>
90 <div class="alert alert-danger alert-dismissible mt-4" role="alert"> 149 <div class="alert alert-danger alert-dismissible mt-4" role="alert">
91 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 150 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
92 <span aria-hidden="true">&times;</span> 151 <span aria-hidden="true">&times;</span>
93 </button> 152 </button>
94 <ul class="mb-0"> 153 <ul class="mb-0">
95 @foreach ($errors->all() as $error) 154 @foreach ($errors->all() as $error)
96 <li>{{ $error }}</li> 155 <li>{{ $error }}</li>
97 @endforeach 156 @endforeach
98 </ul> 157 </ul>
99 </div> 158 </div>
100 </section> 159 </section>
101 @endif 160 @endif
102 <!-- Основной контент --> 161 <!-- Основной контент -->
103 @yield('content') 162 @yield('content')
104 163
105 </main> 164 </main>
106 165
107 <footer class="footer" style="background-image:url({{ asset('images/footer-bg.jpg')}})"> 166 <footer class="footer" style="background-image:url({{ asset('images/footer-bg.jpg')}})">
108 <div class="footer__buttons"> 167 <div class="footer__buttons">
109 <button class="footer__btn footer__btn-phone js_btn_contact_us" type="button"> 168 <button class="footer__btn footer__btn-phone js_btn_contact_us" type="button">
110 <svg width="30" height="32"> 169 <svg width="30" height="32">
111 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-phone')}}"></use> 170 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-phone')}}"></use>
112 </svg> 171 </svg>
113 </button> 172 </button>
114 <button class="footer__btn footer__btn-up js_btn_up" type="button"> 173 <button class="footer__btn footer__btn-up js_btn_up" type="button">
115 <svg width="19" height="11"> 174 <svg width="19" height="11">
116 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-up')}}"></use> 175 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-up')}}"></use>
117 </svg> 176 </svg>
118 </button> 177 </button>
119 </div> 178 </div>
120 179
121 <!-- Сам футер мееню --> 180 <!-- Сам футер мееню -->
122 <div class="footer-middle"> 181 <div class="footer-middle">
123 <div class="container"> 182 <div class="container">
124 <div class="footer-middle__wrap"> 183 <div class="footer-middle__wrap">
125 <div class="footer__col footer__col-intro"><a class="footer__logo" href="index.html"><img src="{{ asset('images/logo-footer.svg')}}" alt="Лого"></a> 184 <div class="footer__col footer__col-intro"><a class="footer__logo" href="index.html"><img src="{{ asset('images/logo-footer.svg')}}" alt="Лого"></a>
126 <p class="footer__descr">В группу “Renttorg” входит ряд ведущих российских девелоперских компаний полного цикла, реализующих масштабные объекты недвижимости.</p> 185 <p class="footer__descr">В группу “Renttorg” входит ряд ведущих российских девелоперских компаний полного цикла, реализующих масштабные объекты недвижимости.</p>
127 <div class="footer-questions"> 186 <div class="footer-questions">
128 <h3 class="footer-questions__title">Есть вопросы или предложения?</h3><a class="footer-questions__btn btn btn--main" href="#" data-btn="feedback">Напишите нам</a> 187 <h3 class="footer-questions__title">Есть вопросы или предложения?</h3><a class="footer-questions__btn btn btn--main" href="#" data-btn="feedback">Напишите нам</a>
129 </div> 188 </div>
130 </div> 189 </div>
131 <div class="footer__col footer__col-menu js_footer_col"> 190 <div class="footer__col footer__col-menu js_footer_col">
132 <h3 class="footer__caption js_footer_caption">Меню</h3> 191 <h3 class="footer__caption js_footer_caption">Меню</h3>
133 <div class="footer__block js_footer_block"> 192 <div class="footer__block js_footer_block">
134 <ul class="footer__list"> 193 <ul class="footer__list">
135 <li class="footer__item"><a class="footer__link" href="{{ route('index') }}">Главная</a></li> 194 <li class="footer__item"><a class="footer__link" href="{{ route('index') }}">Главная</a></li>
136 <li class="footer__item"><a class="footer__link" href="{{ route('catalog') }}">Каталог</a></li> 195 <li class="footer__item"><a class="footer__link" href="{{ route('catalog') }}">Каталог</a></li>
137 <li class="footer__item"><a class="footer__link" href="{{ route('about') }}">О компании</a></li> 196 <li class="footer__item"><a class="footer__link" href="{{ route('about') }}">О компании</a></li>
138 <li class="footer__item"><a class="footer__link" href="{{ route('contact') }}">Контакты</a></li> 197 <li class="footer__item"><a class="footer__link" href="{{ route('contact') }}">Контакты</a></li>
139 <li class="footer__item"><a class="footer__link" href="{{ route('favorite') }}">Избранное</a></li> 198 <li class="footer__item"><a class="footer__link" href="{{ route('favorite') }}">Избранное</a></li>
140 <li class="footer__item"><a class="footer__link" href="{{ route('news') }}">Новости</a></li> 199 <li class="footer__item"><a class="footer__link" href="{{ route('news') }}">Новости</a></li>
141 </ul> 200 </ul>
142 201
143 </div><a class="footer__author" href="#" target="_blank"><img src="{{ asset('images/author.png')}}" alt="Лого разработчика"></a> 202 </div><a class="footer__author" href="#" target="_blank"><img src="{{ asset('images/author.png')}}" alt="Лого разработчика"></a>
144 </div> 203 </div>
145 <div class="footer__col js_footer_col"> 204 <div class="footer__col js_footer_col">
146 <h3 class="footer__caption js_footer_caption">Админка</h3> 205 <h3 class="footer__caption js_footer_caption">Админка</h3>
147 <div class="footer__block js_footer_block"> 206 <div class="footer__block js_footer_block">
148 <ul class="footer__list"> 207 <ul class="footer__list">
149 <li class="footer__item"><a class="footer__link" href="{{ route('user.index') }}">Главная</a></li> 208 <li class="footer__item"><a class="footer__link" href="{{ route('user.index') }}">Главная</a></li>
150 209
151 </ul> 210 </ul>
152 </div> 211 </div>
153 </div> 212 </div>
154 <div class="footer__col js_footer_col"> 213 <div class="footer__col js_footer_col">
155 <h3 class="footer__caption js_footer_caption">Система</h3> 214 <h3 class="footer__caption js_footer_caption">Система</h3>
156 <div class="footer__block js_footer_block"> 215 <div class="footer__block js_footer_block">
157 <ul class="footer__list"> 216 <ul class="footer__list">
158 <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Авторизация</a></li> 217 <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Авторизация</a></li>
159 <li class="footer__item"><a class="footer__link" href="{{ route('auth.register') }}">Регистрация</a></li> 218 <li class="footer__item"><a class="footer__link" href="{{ route('auth.register') }}">Регистрация</a></li>
160 </ul> 219 </ul>
161 </div> 220 </div>
162 </div> 221 </div>
163 <div class="footer__col footer__col-contacts"> 222 <div class="footer__col footer__col-contacts">
164 <h3 class="footer__caption js_footer_caption">Контакты</h3> 223 <h3 class="footer__caption js_footer_caption">Контакты</h3>
165 <ul class="footer__list"> 224 <ul class="footer__list">
166 <li class="footer__item"><a class="footer__link" href="">EmailAdmin</a></li> 225 <li class="footer__item"><a class="footer__link" href="">EmailAdmin</a></li>
167 <li class="footer__item"><a class="footer__link" href="">ТелефонАдмин</a></li> 226 <li class="footer__item"><a class="footer__link" href="">ТелефонАдмин</a></li>
168 </ul> 227 </ul>
169 <div class="footer__social social"> 228 <div class="footer__social social">
170 <ul class="social__list"> 229 <ul class="social__list">
171 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg')}}" alt=""></a></li> 230 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg')}}" alt=""></a></li>
172 <li class="social__item"><a class="social__link" href="#" target="_blank"> 231 <li class="social__item"><a class="social__link" href="#" target="_blank">
173 <svg width="40" height="40"> 232 <svg width="40" height="40">
174 <use xlink:href="{{ asset('images/sprite.svg#wa') }}"></use> 233 <use xlink:href="{{ asset('images/sprite.svg#wa') }}"></use>
175 </svg></a></li> 234 </svg></a></li>
176 </ul> 235 </ul>
177 </div> 236 </div>
178 </div> 237 </div>
179 </div> 238 </div>
180 </div> 239 </div>
181 </div> 240 </div>
182 241
183 <div class="footer-bottom"> 242 <div class="footer-bottom">
184 <div class="container"> 243 <div class="container">
185 <div class="footer-bottom__wrap"> 244 <div class="footer-bottom__wrap">
186 <div class="footer__copy">© 2023 RentTorg</div><a class="footer__plicy" href="{{ route('conf') }}">Политика конфиденциальности</a> 245 <div class="footer__copy">© 2023 RentTorg</div><a class="footer__plicy" href="{{ route('conf') }}">Политика конфиденциальности</a>
187 </div> 246 </div>
188 </div> 247 </div>
189 </div> 248 </div>
190 </footer> 249 </footer>
191 </div> 250 </div>
192 251
193 <!-- Вплывающие окна --> 252 <!-- Вплывающие окна -->
194 <div class="popup popup-feedback" data-popup="feedback"> 253 <div class="popup popup-feedback" data-popup="feedback">
195 <div class="popup__wrap"> 254 <div class="popup__wrap">
196 <button class="popup__close js_popup_close" type="button"> 255 <button class="popup__close js_popup_close" type="button">
197 <svg width="20" height="20"> 256 <svg width="20" height="20">
198 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 257 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
199 </svg> 258 </svg>
200 </button> 259 </button>
201 <form class="popup-feedback__form js_popup_feedback_form" action="{{ route('header_form') }}" method="POST"> 260 <form class="popup-feedback__form js_popup_feedback_form" action="{{ route('header_form') }}" method="POST">
202 @csrf 261 @csrf
203 <div class="popup-feedback__title">Как с вами связаться</div> 262 <div class="popup-feedback__title">Как с вами связаться</div>
204 <div class="popup-feedback__fields"> 263 <div class="popup-feedback__fields">
205 <label class="popup-feedback__field field"> 264 <label class="popup-feedback__field field">
206 <input type="text" placeholder="Имя" name="NameUser"> 265 <input type="text" placeholder="Имя" name="NameUser">
207 </label> 266 </label>
208 <label class="popup-feedback__field field"> 267 <label class="popup-feedback__field field">
209 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> 268 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser">
210 </label> 269 </label>
211 </div> 270 </div>
212 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 271 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
213 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> 272 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p>
214 </form> 273 </form>
215 </div> 274 </div>
216 </div> 275 </div>
217 <div class="popup popup-feedback" data-popup="viewing"> 276 <div class="popup popup-feedback" data-popup="viewing">
218 <div class="popup__wrap"> 277 <div class="popup__wrap">
219 <button class="popup__close js_popup_close" type="button"> 278 <button class="popup__close js_popup_close" type="button">
220 <svg width="20" height="20"> 279 <svg width="20" height="20">
221 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 280 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
222 </svg> 281 </svg>
223 </button> 282 </button>
224 <form class="popup-feedback__form js_popup_viewing_form" action="{{ route('rec_view_form') }}" method="POST"> 283 <form class="popup-feedback__form js_popup_viewing_form" action="{{ route('rec_view_form') }}" method="POST">
225 @csrf 284 @csrf
226 <div class="popup-feedback__title">Записаться на просмотр</div> 285 <div class="popup-feedback__title">Записаться на просмотр</div>
227 <div class="popup-feedback__fields"> 286 <div class="popup-feedback__fields">
228 <label class="popup-feedback__field field"> 287 <label class="popup-feedback__field field">
229 <input type="text" placeholder="Имя" name="NameUser"> 288 <input type="text" placeholder="Имя" name="NameUser">
230 </label> 289 </label>
231 <label class="popup-feedback__field field"> 290 <label class="popup-feedback__field field">
232 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> 291 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser">
233 </label> 292 </label>
234 </div> 293 </div>
235 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 294 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
236 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="#">Политикой конфиденциальности</a>.</p> 295 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="#">Политикой конфиденциальности</a>.</p>
237 </form> 296 </form>
238 </div> 297 </div>
239 </div> 298 </div>
240 <div class="popup popup-success" data-popup="success"> 299 <div class="popup popup-success" data-popup="success">
241 <div class="popup__wrap"> 300 <div class="popup__wrap">
242 <button class="popup__close js_popup_close" type="button"> 301 <button class="popup__close js_popup_close" type="button">
243 <svg width="20" height="20"> 302 <svg width="20" height="20">
244 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> 303 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use>
245 </svg> 304 </svg>
246 </button> 305 </button>
247 <div class="popup-success__inner"> 306 <div class="popup-success__inner">
248 <div class="popup-success__logo"> 307 <div class="popup-success__logo">
249 <svg width="48" height="39"> 308 <svg width="48" height="39">
250 <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use> 309 <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use>
251 </svg> 310 </svg>
252 </div> 311 </div>
253 <div class="popup-success__title">Спасибо за заявку</div> 312 <div class="popup-success__title">Спасибо за заявку</div>
254 <p class="popup-success__descr">В ближайшее время с вами свяжется наш специалист для уточнения деталей вашей задачи.</p> 313 <p class="popup-success__descr">В ближайшее время с вами свяжется наш специалист для уточнения деталей вашей задачи.</p>
255 </div> 314 </div>
256 </div> 315 </div>
257 </div> 316 </div>
258 <div class="popup popup-feedback" data-popup="sending"> 317 <div class="popup popup-feedback" data-popup="sending">
259 <div class="popup__wrap"> 318 <div class="popup__wrap">
260 <button class="popup__close js_popup_close" type="button"> 319 <button class="popup__close js_popup_close" type="button">
261 <svg width="20" height="20"> 320 <svg width="20" height="20">
262 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 321 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
263 </svg> 322 </svg>
264 </button> 323 </button>
265 <form class="popup-feedback__form js_popup_sending_form" action="{{ route('email_form') }}" method="POST"> 324 <form class="popup-feedback__form js_popup_sending_form" action="{{ route('email_form') }}" method="POST">
266 @csrf 325 @csrf
267 <div class="popup-feedback__title">Отправить на почту</div> 326 <div class="popup-feedback__title">Отправить на почту</div>
268 <div class="popup-feedback__fields"> 327 <div class="popup-feedback__fields">
269 <label class="popup-feedback__field field"> 328 <label class="popup-feedback__field field">
270 <input class="js_input_email" type="text" placeholder="Электронная почта" name="EmailUser"> 329 <input class="js_input_email" type="text" placeholder="Электронная почта" name="EmailUser">
271 </label> 330 </label>
272 </div> 331 </div>
273 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 332 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
274 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> 333 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p>
275 </form> 334 </form>
276 </div> 335 </div>
277 </div> 336 </div>
278 <div class="contact-us js_contact_us"> 337 <div class="contact-us js_contact_us">
279 <div class="contact-us__top"> 338 <div class="contact-us__top">
280 <button class="contact-us__close js_contact_us_close" type="button"> 339 <button class="contact-us__close js_contact_us_close" type="button">
281 <svg width="20" height="20"> 340 <svg width="20" height="20">
282 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 341 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
283 </svg> 342 </svg>
284 </button> 343 </button>
285 <div class="contact-us__title">Свяжитесь с нами</div> 344 <div class="contact-us__title">Свяжитесь с нами</div>
286 </div> 345 </div>
287 <div class="contact-us__body"> 346 <div class="contact-us__body">
288 <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" data-btn="feedback"> 347 <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" data-btn="feedback">
289 <div class="contact-us-item__icon"> 348 <div class="contact-us-item__icon">
290 <svg width="34" height="34"> 349 <svg width="34" height="34">
291 <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use> 350 <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use>
292 </svg> 351 </svg>
293 </div> 352 </div>
294 <div class="contact-us-item__name">Позвонить</div></a> 353 <div class="contact-us-item__name">Позвонить</div></a>
295 354
296 <a class="contact-us-item js_contact_us_close" data-btn="sending"> 355 <a class="contact-us-item js_contact_us_close" data-btn="sending">
297 <div class="contact-us-item__icon"> 356 <div class="contact-us-item__icon">
298 <svg width="44" height="44"> 357 <svg width="44" height="44">
299 <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use> 358 <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use>
300 </svg> 359 </svg>
301 </div> 360 </div>
302 <div class="contact-us-item__name">Написать</div></a> 361 <div class="contact-us-item__name">Написать</div></a>
303 362
304 <a class="contact-us-item js_contact_us_close" > 363 <a class="contact-us-item js_contact_us_close" >
305 <div class="contact-us-item__icon"> 364 <div class="contact-us-item__icon">
306 <svg width="34" height="34"> 365 <svg width="34" height="34">
307 <use xlink:href="{{ asset('images/sprite.svg#contact-us-chat')}}"></use> 366 <use xlink:href="{{ asset('images/sprite.svg#contact-us-chat')}}"></use>
308 </svg> 367 </svg>
309 </div> 368 </div>
310 <div class="contact-us-item__name">Онлайн-чат</div></a></div> 369 <div class="contact-us-item__name">Онлайн-чат</div></a></div>
311 <div class="contact-us__socials"><a class="contact-us-social js_contact_us_close" href="#" target="_blank"> 370 <div class="contact-us__socials"><a class="contact-us-social js_contact_us_close" href="#" target="_blank">
312 <div class="contact-us-social__icon contact-us-social__icon-tg"><img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div> 371 <div class="contact-us-social__icon contact-us-social__icon-tg"><img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div>
313 <div class="contact-us-social__name">Telegram</div></a><a class="contact-us-social js_contact_us_close" href="#" target="_blank"> 372 <div class="contact-us-social__name">Telegram</div></a><a class="contact-us-social js_contact_us_close" href="#" target="_blank">
314 <div class="contact-us-social__icon contact-us-social__icon-wa"> 373 <div class="contact-us-social__icon contact-us-social__icon-wa">
315 <svg width="31" height="31"> 374 <svg width="31" height="31">
316 <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use> 375 <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use>
317 </svg> 376 </svg>
318 </div> 377 </div>
319 <div class="contact-us-social__name">WhatsApp</div></a></div> 378 <div class="contact-us-social__name">WhatsApp</div></a></div>
320 </div> 379 </div>
321 </div> 380 </div>
322 <div class="offer-side-popup" data-popup="offer-side-popup"> 381 <div class="offer-side-popup" data-popup="offer-side-popup">
323 <div class="offer-side-popup__wrap"> 382 <div class="offer-side-popup__wrap">
324 <button class="offer-side-popup__close js_popup_close" type="button"> 383 <button class="offer-side-popup__close js_popup_close" type="button">
325 <svg width="20" height="20"> 384 <svg width="20" height="20">
326 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 385 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
327 </svg> 386 </svg>
328 </button> 387 </button>
329 <div class="offer-side-popup__cnt"> 388 <div class="offer-side-popup__cnt">
330 <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"><img src="{{ asset('images/offer-side-item-img-1.jpg')}}" alt="План объекта"></div> 389 <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"><img src="{{ asset('images/offer-side-item-img-1.jpg')}}" alt="План объекта"></div>
331 <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"><img src="{{ asset('images/offer-side-item-img-2.jpg')}}" alt="План этажа"></div> 390 <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"><img src="{{ asset('images/offer-side-item-img-2.jpg')}}" alt="План этажа"></div>
332 </div> 391 </div>
333 <div class="offer-side-popup__tabs"> 392 <div class="offer-side-popup__tabs">
334 <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> 393 <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button>
335 <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> 394 <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button>
336 </div> 395 </div>
337 <button class="offer-side-popup__sizeoff js_popup_close" type="button"> 396 <button class="offer-side-popup__sizeoff js_popup_close" type="button">
338 <svg width="18" height="18"> 397 <svg width="18" height="18">
339 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> 398 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use>
340 </svg> 399 </svg>
341 </button> 400 </button>
342 </div> 401 </div>
343 </div> 402 </div>
344 <div class="img-viewer js_img_viewer"> 403 <div class="img-viewer js_img_viewer">
345 <div class="img-viewer__wrap"> 404 <div class="img-viewer__wrap">
346 <button class="img-viewer__close js_img_viewer_close" type="button"> 405 <button class="img-viewer__close js_img_viewer_close" type="button">
347 <svg width="20" height="20"> 406 <svg width="20" height="20">
348 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 407 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
349 </svg> 408 </svg>
350 </button> 409 </button>
351 <div class="img-viewer__thumbs js_img_viewer_thumbs"> 410 <div class="img-viewer__thumbs js_img_viewer_thumbs">
352 <div class="img-viewer__thumbs-swiper js_img_viewer_thumbs_swiper swiper"> 411 <div class="img-viewer__thumbs-swiper js_img_viewer_thumbs_swiper swiper">
353 <div class="swiper-wrapper"></div> 412 <div class="swiper-wrapper"></div>
354 </div> 413 </div>
355 </div> 414 </div>
356 <div class="img-viewer__slider"> 415 <div class="img-viewer__slider">
357 <div class="img-viewer__slider-swiper js_img_viewer_slider_swiper swiper"> 416 <div class="img-viewer__slider-swiper js_img_viewer_slider_swiper swiper">
358 <div class="swiper-wrapper"></div> 417 <div class="swiper-wrapper"></div>
359 </div> 418 </div>
360 <div class="swiper-button-prev"> 419 <div class="swiper-button-prev">
361 <svg width="10" height="17"> 420 <svg width="10" height="17">
362 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> 421 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use>
363 </svg> 422 </svg>
364 </div> 423 </div>
365 <div class="swiper-button-next"> 424 <div class="swiper-button-next">
366 <svg width="10" height="17"> 425 <svg width="10" height="17">
367 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> 426 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use>
368 </svg> 427 </svg>
369 </div> 428 </div>
370 </div> 429 </div>
371 <div class="img-viewer__caption js_img_viewer_caption"></div> 430 <div class="img-viewer__caption js_img_viewer_caption"></div>
372 <button class="img-viewer__sizeoff js_img_viewer_close" type="button"> 431 <button class="img-viewer__sizeoff js_img_viewer_close" type="button">
373 <svg width="18" height="18"> 432 <svg width="18" height="18">
374 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use> 433 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use>
375 </svg> 434 </svg>
376 </button> 435 </button>
377 </div> 436 </div>
378 </div> 437 </div>
379 <div class="cookies js_cookies"> 438 <div class="cookies js_cookies">
380 <div class="container"> 439 <div class="container">
381 <div class="cookies__wrap"> 440 <div class="cookies__wrap">
382 <div class="cookies__top"> 441 <div class="cookies__top">
383 <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div> 442 <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div>
384 <div class="cookies__title">Cookies</div> 443 <div class="cookies__title">Cookies</div>
385 </div> 444 </div>
386 <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p> 445 <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p>
387 <div class="cookies__buttons"> 446 <div class="cookies__buttons">
388 <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a> 447 <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a>
389 </div> 448 </div>
390 </div> 449 </div>
391 </div> 450 </div>
392 </div> 451 </div>
393 <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script> 452 <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
394 <script src="{{ asset('js/swiper-bundle.min.js') }}"></script> 453 <script src="{{ asset('js/swiper-bundle.min.js') }}"></script>
395 <script src="{{ asset('js/main.js') }}"></script> 454 <script src="{{ asset('js/main.js') }}"></script>
396 <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script> 455 <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script>
397 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script> 456 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script>
398 @yield('custom_js') 457 @yield('custom_js')
399 @include('js.cookies_favorite') 458 @include('js.cookies_favorite')
400 </body> 459 </body>
401 </html> 460 </html>
402 461
1 <?php 1 <?php
2 2
3 use Illuminate\Support\Facades\Auth; 3 use Illuminate\Support\Facades\Auth;
4 use Illuminate\Support\Facades\Route; 4 use Illuminate\Support\Facades\Route;
5 use App\Http\Controllers\MainController; 5 use App\Http\Controllers\MainController;
6 use App\Http\Controllers\RegisterController; 6 use App\Http\Controllers\RegisterController;
7 use App\Http\Controllers\LoginController; 7 use App\Http\Controllers\LoginController;
8 use App\Http\Controllers\AdminController; 8 use App\Http\Controllers\AdminController;
9 use App\Http\Controllers\Admin\AreaController; 9 use App\Http\Controllers\Admin\AreaController;
10 10
11 /* 11 /*
12 |-------------------------------------------------------------------------- 12 |--------------------------------------------------------------------------
13 | Web Routes 13 | Web Routes
14 |-------------------------------------------------------------------------- 14 |--------------------------------------------------------------------------
15 | 15 |
16 | Here is where you can register web routes for your application. These 16 | Here is where you can register web routes for your application. These
17 | routes are loaded by the RouteServiceProvider within a group which 17 | routes are loaded by the RouteServiceProvider within a group which
18 | contains the "web" middleware group. Now create something great! 18 | contains the "web" middleware group. Now create something great!
19 | 19 |
20 */ 20 */
21 21
22 //Главная страница 22 //Главная страница
23 Route::get('/',[MainController::class, 'index'])->name('index'); 23 Route::get('/',[MainController::class, 'index'])->name('index');
24 24
25 //Страница Избранные 25 //Страница Избранные
26 Route::get('favorite',[MainController::class, 'favorite'])->name('favorite'); 26 Route::get('favorite',[MainController::class, 'favorite'])->name('favorite');
27 27
28 //Страница контакты 28 //Страница контакты
29 Route::get('contact',[MainController::class, 'contact'])->name('contact'); 29 Route::get('contact',[MainController::class, 'contact'])->name('contact');
30 30
31 //Страница каталог 31 //Страница каталог
32 Route::get('catalog',[MainController::class, 'catalog'])->name('catalog'); 32 Route::get('catalog',[MainController::class, 'catalog'])->name('catalog');
33 33
34 //Страница новости 34 //Страница новости
35 Route::get('news',[MainController::class, 'news'])->name('news'); 35 Route::get('news',[MainController::class, 'news'])->name('news');
36 36
37 //Страница о компании 37 //Страница о компании
38 Route::get('about',[MainController::class, 'about'])->name('about'); 38 Route::get('about',[MainController::class, 'about'])->name('about');
39 39
40 //Страница объекты на карте 40 //Страница объекты на карте
41 Route::get('maps',[MainController::class, 'mapsobj'])->name('maps'); 41 Route::get('maps',[MainController::class, 'mapsobj'])->name('maps');
42 42
43 // Политика конфедициальности 43 // Политика конфедициальности
44 Route::get('conf', function () { 44 Route::get('conf', function () {
45 return view('conf'); 45 return view('conf');
46 })->name('conf'); 46 })->name('conf');
47 47
48 //Детальная страница предложения недвижимости 48 //Детальная страница предложения недвижимости
49 Route::get('offer/{house:id}', [MainController::class, 'offer'])->name('offer'); 49 Route::get('offer/{house:id}', [MainController::class, 'offer'])->name('offer');
50 50
51 //Детальная страница новостей 51 //Детальная страница новостей
52 Route::get('detail-new/{news:id}', [MainController::class, 'DetailNew'])->name('new'); 52 Route::get('detail-new/{news:id}', [MainController::class, 'DetailNew'])->name('new');
53 53
54 //Страница ЖилойКомплекс 54 //Страница ЖилойКомплекс
55 Route::get('complex/{area:id}', [MainController::class, 'complex'])->name('complex'); 55 Route::get('complex/{area:id}', [MainController::class, 'complex'])->name('complex');
56 56
57 // ajax-фильтры каталога 57 // ajax-фильтры каталога
58 Route::get('catalog_ajax_filter', [MainController::class, 'catalog_ajax_filter'])->name('catalog_ajax_filter'); 58 Route::get('catalog_ajax_filter', [MainController::class, 'catalog_ajax_filter'])->name('catalog_ajax_filter');
59 59
60 //Категория 60 //Категория
61 Route::get('category/{cat}', [MainController::class, 'Category'])->name('category'); 61 Route::get('category/{cat}', [MainController::class, 'Category'])->name('category');
62 62
63 //Категория ajax 63 //Категория ajax
64 Route::get('category_ajax/{cat}', [MainController::class, 'category_ajax'])->name('category_ajax'); 64 Route::get('category_ajax/{cat}', [MainController::class, 'category_ajax'])->name('category_ajax');
65 65
66 //Страница куков 66 //Страница куков
67 Route::get('cookies', function () { 67 Route::get('cookies', function () {
68 return view('cookies'); 68 return view('cookies');
69 })->name('cookies'); 69 })->name('cookies');
70 70
71 //Форма обратной связи в футере 71 //Форма обратной связи в футере
72 Route::post('main_form', [MainController::class, 'main_form'])->name('main_form'); 72 Route::post('main_form', [MainController::class, 'main_form'])->name('main_form');
73 73
74 //Форма обратной связи в хедере 74 //Форма обратной связи в хедере
75 Route::post('header_form', [MainController::class, 'header_form'])->name('header_form'); 75 Route::post('header_form', [MainController::class, 'header_form'])->name('header_form');
76 76
77 //Форма записаться на просмотр в карточке офиса 77 //Форма записаться на просмотр в карточке офиса
78 Route::post('rec_view_form', [MainController::class, 'rec_view_form'])->name('rec_view_form'); 78 Route::post('rec_view_form', [MainController::class, 'rec_view_form'])->name('rec_view_form');
79 79
80 //Форма обратной связи на странице контакты 80 //Форма обратной связи на странице контакты
81 Route::post('page_contact_form', [MainController::class, 'page_contact_form'])->name('page_contact_form'); 81 Route::post('page_contact_form', [MainController::class, 'page_contact_form'])->name('page_contact_form');
82 82
83 //Форма обратной связи предложения по почте 83 //Форма обратной связи предложения по почте
84 Route::post('email_form', [MainController::class, 'email_form'])->name('email_form'); 84 Route::post('email_form', [MainController::class, 'email_form'])->name('email_form');
85 85
86 Route::group([ 86 Route::group([
87 'as' => 'auth.', // имя маршрута, например auth.index 87 'as' => 'auth.', // имя маршрута, например auth.index
88 'prefix' => 'auth', // префикс маршрута, например auth/index 88 'prefix' => 'auth', // префикс маршрута, например auth/index
89 ], function () { 89 ], function () {
90 // Форма регистрации 90 // Форма регистрации
91 Route::get('register', [RegisterController::class, 'register'])->name('register'); 91 Route::get('register', [RegisterController::class, 'register'])->name('register');
92 92
93 // Создание пользователя 93 // Создание пользователя
94 Route::post('register', [RegisterController::class, 'create'])->name('create'); 94 Route::post('register', [RegisterController::class, 'create'])->name('create');
95 //Форма входа 95 //Форма входа
96 Route::get('login', [LoginController::class, 'login'])->name('login'); 96 Route::get('login', [LoginController::class, 'login'])->name('login');
97 97
98 // аутентификация 98 // аутентификация
99 Route::post('login', [LoginController::class, 'autenticate'])->name('auth'); 99 Route::post('login', [LoginController::class, 'autenticate'])->name('auth');
100 100
101 // выход 101 // выход
102 Route::get('logout', [LoginController::class, 'logout'])->name('logout'); 102 Route::get('logout', [LoginController::class, 'logout'])->name('logout');
103
104 //Страница неудачной авторизации
105 Route::get('vefiry-message', function () {
106 return view('auth.vefiry-message');
107 })->name('vefiry-message');
108
103 }); 109 });
104 110
105 /* 111 /*
106 * Личный кабинет пользователя 112 * Личный кабинет пользователя
107 */ 113 */
108 Route::group([ 114 Route::group([
109 'as' => 'user.', // имя маршрута, например user.index 115 'as' => 'user.', // имя маршрута, например user.index
110 'prefix' => 'user', // префикс маршрута, например user/index 116 'prefix' => 'user', // префикс маршрута, например user/index
111 //'namespace' => 'User', // пространство имен контроллеров 117 //'namespace' => 'User', // пространство имен контроллеров
112 'middleware' => ['auth'] // один или несколько посредников 118 'middleware' => ['auth'] // один или несколько посредников
113 ], function () { 119 ], function () {
114 // главная страница 120 // главная страница
115 Route::get('index', [AdminController::class, 'index'])->name('index'); 121 Route::get('index', [AdminController::class, 'index'])->name('index');
116 }); 122 });
117 123
118 /* 124 /*
119 * Панель управления: CRUD-операции над постами, категориями, тегами 125 * Панель управления: CRUD-операции над постами, категориями, тегами
120 */ 126 */
121 Route::group([ 127 Route::group([
122 'as' => 'admin.', // имя маршрута, например admin.index 128 'as' => 'admin.', // имя маршрута, например admin.index
123 'prefix' => 'admin', // префикс маршрута, например admin/index 129 'prefix' => 'admin', // префикс маршрута, например admin/index
124 //'namespace' => 'Admin', // пространство имен контроллеров 130 //'namespace' => 'Admin', // пространство имен контроллеров
125 'middleware' => ['auth'] // один или несколько посредников 131 'middleware' => ['auth'] // один или несколько посредников
126 ], function () { 132 ], function () {
127 /* 133 /*
128 * CRUD-операции над постами Жилых комплексов 134 * CRUD-операции над постами Жилых комплексов
129 */ 135 */
130 Route::resource('area', AreaController::class, []); 136 Route::resource('area', AreaController::class, []);
131 137
132 //дополнительный маршрут для показа постов с жилыми массивами 138 //дополнительный маршрут для показа постов с жилыми массивами
133 Route::get('post/area/{area}', [AreaController::class, 'area_category']) 139 Route::get('post/area/{area}', [AreaController::class, 'area_category'])
134 ->name('post.area'); 140 ->name('post.area');
135 }); 141 });
136 142