Commit 8634eac35b3751b39845609b81978ab03ab0dcd1
1 parent
f399180fcf
Exists in
master
Картинки обновленные для сайта и страница карты
Showing 17 changed files with 226 additions and 143 deletions Side-by-side Diff
- app/Http/Controllers/MainController.php
- app/Http/Requests/EmailRequest.php
- app/Providers/ComposerServiceProvider.php
- database/migrations/2023_03_01_072712_create_areas_table.php
- database/seeders/AreasTableSeeder.php
- public/js/main.js
- resources/views/admin/index.blade.php
- resources/views/catalogs/elemhouse.blade.php
- resources/views/catalogs/house_mini.blade.php
- resources/views/catalogs/new.blade.php
- resources/views/complex.blade.php
- resources/views/cookies.blade.php
- resources/views/house/post.blade.php
- resources/views/index.blade.php
- resources/views/layout/site.blade.php
- resources/views/mapsobj.blade.php
- resources/views/part/filter/mapsobj.blade.php
app/Http/Controllers/MainController.php
... | ... | @@ -262,6 +262,8 @@ class MainController extends Controller |
262 | 262 | $MailBD->form = 'Форма обратной связи по Email'; |
263 | 263 | $MailBD->text = "От почты: ".$request->EmailUser." Сообщение: Отправить на данную почту предложения RentTorg"; |
264 | 264 | $MailBD->save(); |
265 | + //dd('Email form'); | |
266 | + return redirect()->route('index'); | |
265 | 267 | } |
266 | 268 | |
267 | 269 | /* |
... | ... | @@ -672,7 +674,8 @@ class MainController extends Controller |
672 | 674 | /* |
673 | 675 | * Карта объектов |
674 | 676 | */ |
675 | - public function MapsObj() { | |
677 | + public function MapsObj(Request $request) { | |
678 | + | |
676 | 679 | return view('mapsobj'); |
677 | 680 | } |
678 | 681 |
app/Http/Requests/EmailRequest.php
app/Providers/ComposerServiceProvider.php
... | ... | @@ -19,7 +19,7 @@ class ComposerServiceProvider extends ServiceProvider |
19 | 19 | */ |
20 | 20 | public function register() |
21 | 21 | { |
22 | - $views = ['part.filter.main','part.filter.catalog', 'part.filter.category']; | |
22 | + $views = ['part.filter.main','part.filter.catalog', 'part.filter.category', 'part.filter.mapsobj']; | |
23 | 23 | |
24 | 24 | View::composer($views, |
25 | 25 | function($view) { |
database/migrations/2023_03_01_072712_create_areas_table.php
... | ... | @@ -16,7 +16,7 @@ return new class extends Migration |
16 | 16 | Schema::create('areas', function (Blueprint $table) { |
17 | 17 | $table->id(); |
18 | 18 | $table->string('name_area', 255)->nullable(); |
19 | - $table->string('slug', 255)->unique()->nullable(); | |
19 | + //$table->string('slug', 255)->unique()->nullable(); | |
20 | 20 | $table->text('description')->nullable(); |
21 | 21 | $table->string('map_coord')->default(''); |
22 | 22 | $table->integer('coord_x')->default(0); |
database/seeders/AreasTableSeeder.php
... | ... | @@ -19,56 +19,56 @@ class AreasTableSeeder extends Seeder |
19 | 19 | $data = [ |
20 | 20 | /*1 */[ |
21 | 21 | 'name_area' => 'ЖК Большое Путилково', |
22 | - 'slug' => 'JK_big_putilkovo', | |
22 | + //'slug' => 'JK_big_putilkovo', | |
23 | 23 | 'description' => 'ЖК Большое Путилково. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
24 | 24 | 'foto_main' => 'images/intro-item-img-1.jpg', |
25 | 25 | |
26 | 26 | ], |
27 | 27 | /*2*/[ |
28 | 28 | 'name_area' => 'ЖК Среда', |
29 | - 'slug' => 'JK_sreda', | |
29 | + //'slug' => 'JK_sreda', | |
30 | 30 | 'description' => 'ЖК Среда. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
31 | 31 | 'foto_main' => 'images/intro-item-img-1.jpg', |
32 | 32 | |
33 | 33 | ], |
34 | 34 | /*3*/[ |
35 | 35 | 'name_area' => 'ЖК Квартал Триумфальный', |
36 | - 'slug' => 'JK_kvartal_triumfalniy', | |
36 | + //'slug' => 'JK_kvartal_triumfalniy', | |
37 | 37 | 'description' => "ЖК Квартал Триумфальный. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.", |
38 | 38 | 'foto_main' => 'images/intro-item-img-1.jpg', |
39 | 39 | |
40 | 40 | ], |
41 | 41 | /*4*/[ |
42 | 42 | 'name_area' => 'ЖК Алые Паруса', |
43 | - 'slug' => 'JK_alie_parusa', | |
43 | + //'slug' => 'JK_alie_parusa', | |
44 | 44 | 'description' => 'ЖК Алые Паруса. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
45 | 45 | 'foto_main' => 'images/intro-item-img-1.jpg', |
46 | 46 | |
47 | 47 | ], |
48 | 48 | /*5*/[ |
49 | 49 | 'name_area' => 'ЖК Первый Московский', |
50 | - 'slug' => 'JK_Perviy_Moskovskie', | |
50 | + //'slug' => 'JK_Perviy_Moskovskie', | |
51 | 51 | 'description' => 'ЖК Первый Московский. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
52 | 52 | 'foto_main' => 'images/intro-item-img-1.jpg', |
53 | 53 | |
54 | 54 | ], |
55 | 55 | /*6*/[ |
56 | 56 | 'name_area' => 'ЖК Ильменский 17', |
57 | - 'slug' => 'JK_ilmenskiy_17', | |
57 | + //'slug' => 'JK_ilmenskiy_17', | |
58 | 58 | 'description' => 'ЖК Ильменский 17. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
59 | 59 | 'foto_main' => 'images/intro-item-img-1.jpg', |
60 | 60 | |
61 | 61 | ], |
62 | 62 | /*7*/[ |
63 | 63 | 'name_area' => 'ЖК Царская Площадь', |
64 | - 'slug' => 'JK_carskai_ploshad', | |
64 | + //'slug' => 'JK_carskai_ploshad', | |
65 | 65 | 'description' => 'ЖК Царская Площадь. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
66 | 66 | 'foto_main' => 'images/intro-item-img-1.jpg', |
67 | 67 | |
68 | 68 | ], |
69 | 69 | /*8*/[ |
70 | 70 | 'name_area' => 'ЖК Переделкино Ближнее', |
71 | - 'slug' => 'JK_peredelkino_bliznee', | |
71 | + //'slug' => 'JK_peredelkino_bliznee', | |
72 | 72 | 'description' => 'ЖК Переделкино Ближнее. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
73 | 73 | 'foto_main' => 'images/intro-item-img-1.jpg', |
74 | 74 | |
... | ... | @@ -78,7 +78,7 @@ class AreasTableSeeder extends Seeder |
78 | 78 | foreach ($data as $item) { |
79 | 79 | $albom = new Area(); |
80 | 80 | $albom->name_area = $item['name_area']; |
81 | - $albom->slug = $item['slug']; | |
81 | + //$albom->slug = $item['slug']; | |
82 | 82 | $albom->description = $item['description']; |
83 | 83 | $albom->foto_main = $item['foto_main']; |
84 | 84 | $albom->save(); |
public/js/main.js
... | ... | @@ -26,7 +26,8 @@ class App { |
26 | 26 | this.sendForm('.js_popup_viewing_form', '[data-popup="success"]'); // отправка формы в поп-апе 'записаться на просмотр'; |
27 | 27 | this.sendForm('.js_footer_feedback_form', '[data-popup="success"]'); // отправка формы в футере; |
28 | 28 | this.sendForm('.js_contacts_form', '.js_contacts_success'); // отправка формы на странице контакты; |
29 | - this.sendOffer(); //отправка предложения по e-mail; | |
29 | + this.sendForm('.js_popup_sending_form_', '[data-popup="success"]'); | |
30 | + //this.sendOffer(); //отправка предложения по e-mail; | |
30 | 31 | |
31 | 32 | this.setGeneralMap(); // карта на странице карт; |
32 | 33 | this.setComplexMap('complex-map', [55.726591050908745, 37.57244549999999], 'ЖК Садовые кварталы'); // карта на странице 'ЖК'; |
resources/views/admin/index.blade.php
... | ... | @@ -14,12 +14,18 @@ |
14 | 14 | <p class="favorites__descr"> |
15 | 15 | Добрый день {{ auth()->user()->name }}!<br> |
16 | 16 | Это личный кабинет пользователя сайта.<br> |
17 | - <a class="btn btn-success" href="{{ route('auth.logout') }}">Выйти из системы</a><br> | |
17 | + <a class="btn hero-search__btn btn--main" href="{{ route('auth.logout') }}">Выйти из системы</a><br> | |
18 | 18 | </p> |
19 | 19 | <h2>Меню</h2> |
20 | 20 | <ul class="breadcrumbs__list"> |
21 | 21 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Сайт</a></li> |
22 | 22 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.area.index') }}">Объекты </a></li> |
23 | + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.news.index') }}">Новости</a></li> | |
24 | + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.company.show', ['company' => 1]) }}">Компания</a></li> | |
25 | + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.typearea.index') }}">Типы недвижимости</a></li> | |
26 | + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.formatarea.index') }}">Форматы недвижимости</a></li> | |
27 | + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.message.index') }}">Сообщения</a></li> | |
28 | + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.houses.index') }}">Офисы</a></li> | |
23 | 29 | </ul> |
24 | 30 | </div> |
25 | 31 | </div> |
resources/views/catalogs/elemhouse.blade.php
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | @if (empty($house->foto_main)) |
5 | 5 | |
6 | 6 | @else |
7 | - <img src="{{ asset($house->foto_main) }}" alt="{{ $house->title }}" loading="lazy"/> | |
7 | + <img src="{{ asset(Storage::url($house->foto_main)) }}" alt="{{ $house->title }}" loading="lazy"/> | |
8 | 8 | @endif; |
9 | 9 | |
10 | 10 | <h3 class="card__title">{{$house->typearea->name_type }}</h3> |
resources/views/catalogs/house_mini.blade.php
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | @if (empty($house->foto_main)) |
4 | 4 | |
5 | 5 | @else |
6 | - <img src="{{ asset($house->foto_main) }}" alt="{{ $house->title }}" loading="lazy"/> | |
6 | + <img src="{{ asset(Storage::url($house->foto_main)) }}" alt="{{ $house->title }}" loading="lazy"/> | |
7 | 7 | @endif; |
8 | 8 | |
9 | 9 | <h3 class="card__title">{{$house->typearea->name_type }}</h3> |
resources/views/catalogs/new.blade.php
1 | 1 | <div class="swiper-slide"> |
2 | 2 | <div class="card-news"> |
3 | - <div class="card-news__top"><img src="{{ asset($new->foto) }}" alt="{{ $new->title }}" loading="lazy"> | |
3 | + <div class="card-news__top"> | |
4 | + <? if (empty($new->foto)) {?> | |
5 | + | |
6 | + <?} else {?> | |
7 | + <img src="{{ asset(Storage::url($new->foto)) }}" alt="{{ $new->title }}" loading="lazy"> | |
8 | + <? } ?> | |
4 | 9 | <div class="card-news__date"><span>{{ $new->created_at->format('d') }}</span><span>{{ \App\Classes\RusDate::russian_month($new->created_at->format('m')) }} {{$new->created_at->format('Y')}}</span></div> |
5 | 10 | </div> |
6 | 11 | <div class="card-news__cnt"> |
resources/views/complex.blade.php
... | ... | @@ -119,13 +119,24 @@ |
119 | 119 | </div> |
120 | 120 | <div class="intro__swiper swiper"> |
121 | 121 | <div class="swiper-wrapper"> |
122 | + <? if (!empty($area->foto_main)) {?> | |
123 | + <div class="swiper-slide"> | |
124 | + <div class="intro-item"> | |
125 | + <div class="intro-item__img"><img src="{{ asset(Storage::url($area->foto_main)) }}" alt=""></div> | |
126 | + <a class="intro-item__btn js_intro_item_btn" href="{{ asset(Storage::url($area->foto_main)) }}" data-caption="{{ $area->name_area }}"> | |
127 | + <svg width="16" height="16"> | |
128 | + <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | |
129 | + </svg></a> | |
130 | + </div> | |
131 | + </div> | |
132 | + <? } ?> | |
122 | 133 | <? $i = 1 ?> |
123 | 134 | @if ($area->fotos->count()) |
124 | 135 | @foreach($area->fotos as $img) |
125 | 136 | <div class="swiper-slide"> |
126 | 137 | <div class="intro-item"> |
127 | - <div class="intro-item__img"><img src="{{ asset($img->foto) }}" alt=""></div> | |
128 | - <a class="intro-item__btn js_intro_item_btn" href="{{ asset($img->foto) }}" data-caption="Фото {{ $i }}"> | |
138 | + <div class="intro-item__img"><img src="{{ asset(Storage::url($img->foto)) }}" alt=""></div> | |
139 | + <a class="intro-item__btn js_intro_item_btn" href="{{ asset(Storage::url($img->foto)) }}" data-caption="Фото {{ $i }}"> | |
129 | 140 | <svg width="16" height="16"> |
130 | 141 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
131 | 142 | </svg></a> |
resources/views/cookies.blade.php
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | <li>Страницы, с которых были совершены переходы.</li> |
37 | 37 | </ul> |
38 | 38 | <p>Для целей сбора статистики о посетителях сайта Оператор вправе осуществлять обработку моих персональных данных следующими способами: сбор, систематизация, накопление, хранение, обновление, изменение, использование. Оператор может обрабатывать файлы cookie самостоятельно или с привлечением иных сервисов. Настоящее согласие вступает в силу с момента моего перехода на сайт Оператора и действует до момента его отзыва. Согласие действует на период: 1 год. Согласие на обработку персональных данных может быть отозвано мною путем письменного уведомления по указанному адресу об этом не менее чем за один месяц до даты фактического прекращения обработки моих персональных данных Оператором.</p> |
39 | - </div><a class="page-cookies__btn btn btn--main" href="#">Принять и продолжить</a> | |
39 | + </div><a class="page-cookies__btn btn btn--main" href="{{ route('index') }}">Принять и продолжить</a> | |
40 | 40 | </div> |
41 | 41 | </div> |
42 | 42 | </section> |
resources/views/house/post.blade.php
... | ... | @@ -30,28 +30,31 @@ |
30 | 30 | </div> |
31 | 31 | </div> |
32 | 32 | <div class="intro__bottom"> |
33 | - <div class="intro__views">16 человек интересовались этим объектом за последние 24 ч</div><a class="intro__link-phone btn btn--main" href="tel:+70001234567"><span>Позвонить | |
34 | - <svg width="22" height="22"> | |
35 | - <use xlink:href="images/sprite.svg#intro-link-phone"></use> | |
36 | - </svg></span></a> | |
33 | + <div class="intro__views">16 человек интересовались этим объектом за последние 24 ч</div> | |
34 | + <a class="intro__link-phone btn btn--main" href="tel:+70001234567"><span>Позвонить | |
35 | + <svg width="22" height="22"> | |
36 | + <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> | |
37 | + </svg></span></a> | |
37 | 38 | </div> |
38 | 39 | </div> |
39 | 40 | <div class="intro__swiper swiper"> |
40 | 41 | <div class="swiper-wrapper"> |
42 | + <?if (!empty($house->foto_main)) {?> | |
41 | 43 | <div class="swiper-slide"> |
42 | 44 | <div class="intro-item"> |
43 | - <div class="intro-item__img"><img src="{{ asset('images/intro-item-img-1.jpg') }}" alt=""></div> | |
44 | - <a class="intro-item__btn js_intro_item_btn" href="{{asset('images/intro-item-img-1.jpg')}}" data-caption="Фото 1"> | |
45 | + <div class="intro-item__img"><img src="{{ asset(Storage::url($house->foto_main)) }}" alt=""></div> | |
46 | + <a class="intro-item__btn js_intro_item_btn" href="{{asset(Storage::url($house->foto_main))}}" data-caption="{{ $house->title }}"> | |
45 | 47 | <svg width="16" height="16"> |
46 | 48 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
47 | 49 | </svg></a> |
48 | 50 | </div> |
49 | 51 | </div> |
52 | + <?}?> | |
50 | 53 | @foreach($house->fotohouse as $foto) |
51 | 54 | <div class="swiper-slide"> |
52 | 55 | <div class="intro-item"> |
53 | - <div class="intro-item__img"><img src="{{ asset($foto->foto) }}" alt=""></div> | |
54 | - <a class="intro-item__btn js_intro_item_btn" href="{{ asset($foto->foto) }}" data-caption="Фото {{ $foto->id }}"> | |
56 | + <div class="intro-item__img"><img src="{{ asset(Storage::url($foto->foto)) }}" alt=""></div> | |
57 | + <a class="intro-item__btn js_intro_item_btn" href="{{ asset(Storage::url($foto->foto)) }}" data-caption="Фото {{ $foto->id }}"> | |
55 | 58 | <svg width="16" height="16"> |
56 | 59 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
57 | 60 | </svg></a> |
... | ... | @@ -87,19 +90,61 @@ |
87 | 90 | </div> |
88 | 91 | <div class="offer-side__cnt"> |
89 | 92 | <div class="offer-side-item js_offer_side_item active" data-item="1"> |
90 | - <div class="offer-side-item__img"><img src="{{ asset('images/offer-side-item-img-1.jpg') }}" alt="План объекта"></div> | |
93 | + <div class="offer-side-item__img"> | |
94 | + <? if (!empty($house->object_plan)) {?> | |
95 | + <img src="{{ asset(Storage::url($house->object_plan)) }}" alt="План объекта"> | |
96 | + <? } ?> | |
97 | + </div> | |
91 | 98 | <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> |
92 | 99 | <svg width="16" height="16"> |
93 | 100 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
94 | 101 | </svg></a> |
95 | 102 | </div> |
96 | 103 | <div class="offer-side-item js_offer_side_item" data-item="2"> |
97 | - <div class="offer-side-item__img"><img src="{{ asset('images/offer-side-item-img-2.jpg') }}" alt="План этажа"></div><a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> | |
104 | + <div class="offer-side-item__img"> | |
105 | + <? if (!empty($house->floor_plan)) { ?> | |
106 | + <img src="{{ asset(Storage::url($house->floor_plan)) }}" alt="План этажа"> | |
107 | + <? }?> | |
108 | + </div> | |
109 | + <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> | |
98 | 110 | <svg width="16" height="16"> |
99 | 111 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
100 | 112 | </svg></a> |
101 | 113 | </div> |
102 | 114 | </div> |
115 | + | |
116 | + <!---------------------------!> | |
117 | + <div class="offer-side-popup" data-popup="offer-side-popup"> | |
118 | + <div class="offer-side-popup__wrap"> | |
119 | + <button class="offer-side-popup__close js_popup_close" type="button"> | |
120 | + <svg width="20" height="20"> | |
121 | + <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | |
122 | + </svg> | |
123 | + </button> | |
124 | + <div class="offer-side-popup__cnt"> | |
125 | + <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"> | |
126 | + <? if (!empty($house->object_plan)) {?> | |
127 | + <img src="{{ asset(Storage::url($house->object_plan)) }}" alt="План объекта"> | |
128 | + <? } ?> | |
129 | + </div> | |
130 | + <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"> | |
131 | + <? if (!empty($house->floor_plan)) { ?> | |
132 | + <img src="{{ asset(Storage::url($house->floor_plan)) }}" alt="План этажа"> | |
133 | + <? }?> | |
134 | + </div> | |
135 | + </div> | |
136 | + <div class="offer-side-popup__tabs"> | |
137 | + <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> | |
138 | + <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> | |
139 | + </div> | |
140 | + <button class="offer-side-popup__sizeoff js_popup_close" type="button"> | |
141 | + <svg width="18" height="18"> | |
142 | + <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> | |
143 | + </svg> | |
144 | + </button> | |
145 | + </div> | |
146 | + </div> | |
147 | + <!---------------------------!> | |
103 | 148 | <div class="offer__lines"> |
104 | 149 | <div class="offer__line"><span>Аренда в год за м2</span><span>{{ $house->rent_in_year }} ₽</span></div> |
105 | 150 | <div class="offer__line"><span>Аренда в месяц</span><span>{{ $house->rent_in_month }} ₽</span></div> |
resources/views/index.blade.php
... | ... | @@ -305,7 +305,7 @@ |
305 | 305 | <div class="swiper-slide"> |
306 | 306 | <div class="partners__inner"> |
307 | 307 | @foreach ($partners as $partner) |
308 | - <div class="partners-item"><img src="{{ $partner->foto }}" alt="{{ $partner->name }}" loading="lazy"></div> | |
308 | + <div class="partners-item"><img src="{{ asset(Storage::url($partner->foto))}}" alt="{{ $partner->name }}" loading="lazy"></div> | |
309 | 309 | @endforeach |
310 | 310 | |
311 | 311 | </div> |
resources/views/layout/site.blade.php
... | ... | @@ -279,7 +279,7 @@ |
279 | 279 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
280 | 280 | </svg> |
281 | 281 | </button> |
282 | - <form class="popup-feedback__form js_popup_sending_form" action="{{ route('email_form') }}" method="POST"> | |
282 | + <form class="popup-feedback__form js_popup_sending_form_" action="{{ route('email_form') }}" method="POST"> | |
283 | 283 | @csrf |
284 | 284 | <div class="popup-feedback__title">Отправить на почту</div> |
285 | 285 | <div class="popup-feedback__fields"> |
... | ... | @@ -336,6 +336,8 @@ |
336 | 336 | <div class="contact-us-social__name">WhatsApp</div></a></div> |
337 | 337 | </div> |
338 | 338 | </div> |
339 | + | |
340 | +<!-- Всплывашка этажа и объекта | |
339 | 341 | <div class="offer-side-popup" data-popup="offer-side-popup"> |
340 | 342 | <div class="offer-side-popup__wrap"> |
341 | 343 | <button class="offer-side-popup__close js_popup_close" type="button"> |
... | ... | @@ -358,6 +360,8 @@ |
358 | 360 | </button> |
359 | 361 | </div> |
360 | 362 | </div> |
363 | +--> | |
364 | + | |
361 | 365 | <div class="img-viewer js_img_viewer"> |
362 | 366 | <div class="img-viewer__wrap"> |
363 | 367 | <button class="img-viewer__close js_img_viewer_close" type="button"> |
resources/views/mapsobj.blade.php
1 | 1 | @extends('layout.site', ['title' => 'Объекты на карте RentTorg']) |
2 | 2 | |
3 | +@section('filter') | |
4 | + @include('part.filter.mapsobj') | |
5 | +@endsection | |
6 | + | |
7 | +@section('custom_js') | |
8 | + @include('js.filter_value') | |
9 | +@endsection | |
10 | + | |
3 | 11 | @section('content') |
4 | - <section class="hero hero--modified2"> | |
5 | - <div class="container"> | |
6 | - <div class="hero__bg" style="background-image:url('images/page-map-bg.jpg')"></div> | |
7 | - <div class="hero__wrap"> | |
8 | - <div class="hero__inner"> | |
9 | - <div class="breadcrumbs"> | |
10 | - <ul class="breadcrumbs__list"> | |
11 | - <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="#">Главная</a></li> | |
12 | - <li class="breadcrumbs__item"><span class="breadcrumbs__link">Объекты на карте</span></li> | |
13 | - </ul> | |
14 | - </div> | |
15 | - <div class="hero__cnt"> | |
16 | - <h1 class="hero__title title-main">Объекты на карте</h1> | |
17 | - </div> | |
18 | - <div class="hero__bottom"> | |
19 | - <div class="hero-search"> | |
20 | - <div class="hero-search__control"> | |
21 | - <div class="hero-filter hero-filter--modified1 js_hero_filter"> | |
22 | - <input class="js_hero_filter_input" type="hidden"> | |
23 | - <div class="hero-filter__current js_hero_filter_current">Все объекты</div> | |
24 | - <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
25 | - <ul class="hero-filter__list"> | |
26 | - <li class="hero-filter__item" data-val="1">Все объекты</li> | |
27 | - <li class="hero-filter__item" data-val="2">ЖК Большое Путилково</li> | |
28 | - <li class="hero-filter__item" data-val="3">ЖК Ильменский 17</li> | |
29 | - <li class="hero-filter__item" data-val="4">ЖК Первый Московский</li> | |
30 | - <li class="hero-filter__item" data-val="5">ЖК Большое Путилково</li> | |
31 | - <li class="hero-filter__item" data-val="6">ЖК Ильменский 17</li> | |
32 | - <li class="hero-filter__item" data-val="7">ЖК Первый Московский</li> | |
33 | - </ul> | |
34 | - </div> | |
35 | - </div> | |
36 | - <div class="hero-filter hero-filter--modified2 js_hero_filter"> | |
37 | - <input class="js_hero_filter_input" type="hidden"> | |
38 | - <div class="hero-filter__current js_hero_filter_current">Тип недвижимости</div> | |
39 | - <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
40 | - <ul class="hero-filter__list"> | |
41 | - <li class="hero-filter__item" data-val="1">Выбрать все</li> | |
42 | - <li class="hero-filter__item" data-val="2">Индустриальная недвижимость</li> | |
43 | - <li class="hero-filter__item" data-val="3">Офисы</li> | |
44 | - <li class="hero-filter__item" data-val="4">Торговое помещение</li> | |
45 | - <li class="hero-filter__item" data-val="5">Индустриальная недвижимость</li> | |
46 | - <li class="hero-filter__item" data-val="6">Офисы</li> | |
47 | - <li class="hero-filter__item" data-val="7">Торговое помещение</li> | |
48 | - </ul> | |
49 | - </div> | |
50 | - </div> | |
51 | - <div class="hero-filter hero-filter--modified3 js_hero_filter"> | |
52 | - <input class="js_hero_filter_input" type="hidden"> | |
53 | - <div class="hero-filter__current js_hero_filter_current">Формат недвижимости</div> | |
54 | - <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
55 | - <ul class="hero-filter__list"> | |
56 | - <li class="hero-filter__item" data-val="1">Выбрать все</li> | |
57 | - <li class="hero-filter__item" data-val="2">Аптека</li> | |
58 | - <li class="hero-filter__item" data-val="3">Супермаркет</li> | |
59 | - <li class="hero-filter__item" data-val="4">Барбершоп</li> | |
60 | - <li class="hero-filter__item" data-val="5">Аптека</li> | |
61 | - <li class="hero-filter__item" data-val="6">Супермаркет</li> | |
62 | - <li class="hero-filter__item" data-val="7">Барбершоп</li> | |
63 | - </ul> | |
64 | - </div> | |
65 | - </div> | |
66 | - <div class="hero-filter hero-filter--modified4 js_hero_filter"> | |
67 | - <div class="hero-filter__current js_hero_filter_current">Площадь, м<sup>2</sup></div> | |
68 | - <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
69 | - <div class="hero-filter__fields"> | |
70 | - <label class="hero-filter__field"><span>От</span> | |
71 | - <input class="js_hero_filter_field js_hero_filter_from" type="text" data-min="50" placeholder="50"> | |
72 | - </label> | |
73 | - <label class="hero-filter__field"><span>До</span> | |
74 | - <input class="js_hero_filter_field js_hero_filter_to" type="text" data-max="125000" placeholder="125 000"> | |
75 | - </label> | |
76 | - </div> | |
77 | - <button class="hero-filter__reset js_hero_filter_reset" type="button">Очистить</button> | |
78 | - </div> | |
79 | - </div> | |
80 | - <div class="hero-filter hero-filter--modified5 js_hero_filter"> | |
81 | - <div class="hero-filter__current js_hero_filter_current">Стоимость, ₽</div> | |
82 | - <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
83 | - <div class="hero-filter__fields"> | |
84 | - <label class="hero-filter__field"><span>От</span> | |
85 | - <input class="js_hero_filter_field js_hero_filter_from" type="text" data-min="50" placeholder="50"> | |
86 | - </label> | |
87 | - <label class="hero-filter__field"><span>До</span> | |
88 | - <input class="js_hero_filter_field js_hero_filter_to" type="text" data-max="125000" placeholder="125 000"> | |
89 | - </label> | |
90 | - </div> | |
91 | - <button class="hero-filter__reset js_hero_filter_reset" type="button">Очистить</button> | |
92 | - </div> | |
93 | - </div> | |
94 | - </div> | |
95 | - <div class="hero-search__bottom"> | |
96 | - <div class="hero-search__field"> | |
97 | - <input type="text" placeholder="Укажите метро, округ, район, улицу"> | |
98 | - <button> | |
99 | - <svg width="20" height="20"> | |
100 | - <use xlink:href="images/sprite.svg#hero-search"> </use> | |
101 | - </svg> | |
102 | - </button> | |
103 | - </div> | |
104 | - <div class="hero-search__buttons"> | |
105 | - <button class="hero-search__btn btn btn--main js_hero_search_btn">Поиск</button> | |
106 | - </div> | |
107 | - </div> | |
108 | - </div> | |
109 | - </div> | |
110 | - </div> | |
111 | - </div> | |
112 | - </div> | |
113 | - </section> | |
114 | 12 | <section class="page-map"> |
115 | 13 | <div class="page-map__wrap"> |
116 | 14 | <h2 class="visually-hidden">Карта</h2> |
resources/views/part/filter/mapsobj.blade.php
... | ... | @@ -0,0 +1,110 @@ |
1 | +<section class="hero hero--modified2"> | |
2 | + <div class="container"> | |
3 | + <div class="hero__bg" style="background-image:url('images/page-map-bg.jpg')"></div> | |
4 | + <div class="hero__wrap"> | |
5 | + <div class="hero__inner"> | |
6 | + <div class="breadcrumbs"> | |
7 | + <ul class="breadcrumbs__list"> | |
8 | + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> | |
9 | + <li class="breadcrumbs__item"><span class="breadcrumbs__link">Объекты на карте</span></li> | |
10 | + </ul> | |
11 | + </div> | |
12 | + <div class="hero__cnt"> | |
13 | + <h1 class="hero__title title-main">Объекты на карте</h1> | |
14 | + </div> | |
15 | + <div class="hero__bottom"> | |
16 | + <form class="hero-search" action="{{ route('maps') }}" method="GET"> | |
17 | + <div class="hero-search__control"> | |
18 | + <div class="hero-filter hero-filter--modified1 js_hero_filter"> | |
19 | + <input class="js_hero_filter_input" id="area" name="area" type="hidden"> | |
20 | + <div class="hero-filter__current js_hero_filter_current" id="area_name" name="area_name">Все объекты</div> | |
21 | + <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
22 | + <ul class="hero-filter__list"> | |
23 | + <li class="hero-filter__item" data-val="0">Все объекты</li> | |
24 | + @if ($items_area->count()) | |
25 | + @foreach($items_area as $item_area) | |
26 | + <li class="hero-filter__item" data-val="{{ $item_area->id }}">{{ $item_area->name_area }}</li> | |
27 | + @endforeach | |
28 | + @endif | |
29 | + </ul> | |
30 | + </div> | |
31 | + </div> | |
32 | + <div class="hero-filter hero-filter--modified2 js_hero_filter"> | |
33 | + <input class="js_hero_filter_input" id="type_area" name="type_area" type="hidden"> | |
34 | + <div class="hero-filter__current js_hero_filter_current" id="type_area_name" name="type_area_name">Тип недвижимости</div> | |
35 | + <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
36 | + <ul class="hero-filter__list"> | |
37 | + <li class="hero-filter__item" data-val="0">Выбрать все</li> | |
38 | + @if ($items_type_area->count()) | |
39 | + @foreach($items_type_area as $item_type_area) | |
40 | + <li class="hero-filter__item" data-val="{{ $item_type_area->id }}">{{ $item_type_area->name_type }}</li> | |
41 | + @endforeach | |
42 | + @endif | |
43 | + </ul> | |
44 | + </div> | |
45 | + </div> | |
46 | + <div class="hero-filter hero-filter--modified3 js_hero_filter"> | |
47 | + <input class="js_hero_filter_input" id="format_area" name="format_area" type="hidden"> | |
48 | + <div class="hero-filter__current js_hero_filter_current" id="format_area_name" name="format_area_name">Формат недвижимости</div> | |
49 | + <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
50 | + <ul class="hero-filter__list"> | |
51 | + <li class="hero-filter__item" data-val="0">Выбрать все</li> | |
52 | + @if ($items_format_area->count()) | |
53 | + @foreach($items_format_area as $item_format_area) | |
54 | + <li class="hero-filter__item" data-val="{{ $item_format_area->id }}">{{ $item_format_area->name_format }}</li> | |
55 | + @endforeach | |
56 | + @endif | |
57 | + </ul> | |
58 | + </div> | |
59 | + </div> | |
60 | + <div class="hero-filter hero-filter--modified4 js_hero_filter"> | |
61 | + <div class="hero-filter__current js_hero_filter_current">Площадь, м<sup>2</sup></div> | |
62 | + <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
63 | + <div class="hero-filter__fields"> | |
64 | + <label class="hero-filter__field"><span>От</span> | |
65 | + <input class="js_hero_filter_field js_hero_filter_from" id="area_m2_min" name="area_m2_min" type="text" data-min="3" placeholder="3" value="<?if (isset($_GET['area_m2_min'])) { echo($_GET['area_m2_min']); }?>"> | |
66 | + </label> | |
67 | + <label class="hero-filter__field"><span>До</span> | |
68 | + <input class="js_hero_filter_field js_hero_filter_to" id="area_m2_max" name="area_m2_max" type="text" data-max="125000" placeholder="125 000" value="<?if (isset($_GET['area_m2_max'])) { echo($_GET['area_m2_max']);}?>"> | |
69 | + </label> | |
70 | + </div> | |
71 | + <button class="hero-filter__reset js_hero_filter_reset" type="button">Очистить</button> | |
72 | + </div> | |
73 | + </div> | |
74 | + <div class="hero-filter hero-filter--modified5 js_hero_filter"> | |
75 | + <div class="hero-filter__current js_hero_filter_current">Стоимость, ₽</div> | |
76 | + <div class="hero-filter__dropdown js_hero_filter_dropdown"> | |
77 | + <div class="hero-filter__fields"> | |
78 | + <label class="hero-filter__field"><span>От</span> | |
79 | + <input class="js_hero_filter_field js_hero_filter_from" id="price_min" name="price_min" type="text" data-min="50" placeholder="50" value="<?if (isset($_GET['price_min'])) { echo ($_GET['price_min']); } ?>"> | |
80 | + </label> | |
81 | + <label class="hero-filter__field"><span>До</span> | |
82 | + <input class="js_hero_filter_field js_hero_filter_to" id="price_max" name="price_max" type="text" data-max="125000" placeholder="125 000" value="<?if (isset($_GET['price_max'])) { echo ($_GET['price_max']); }?>"> | |
83 | + </label> | |
84 | + </div> | |
85 | + <button class="hero-filter__reset js_hero_filter_reset" type="button">Очистить</button> | |
86 | + </div> | |
87 | + </div> | |
88 | + </div> | |
89 | + <div class="hero-search__bottom"> | |
90 | + <div class="hero-search__field"> | |
91 | + <input type="text" id="address" name="address" placeholder="Укажите метро, округ, район, улицу" value="<?if (isset($_GET['address'])) { echo ($_GET['address']); }?>"> | |
92 | + <button> | |
93 | + <svg width="20" height="20"> | |
94 | + <use xlink:href="{{ asset('images/sprite.svg#hero-search') }}"> </use> | |
95 | + </svg> | |
96 | + </button> | |
97 | + </div> | |
98 | + <div class="hero-search__buttons"> | |
99 | + <a class="hero-search__btn btn btn--white js_hero_search_btn" href="{{ route('maps') }}">Показать на карте</a> | |
100 | + <button type="submit" class="hero-search__btn btn btn--main js_hero_search_btn"> | |
101 | + Искать | |
102 | + </button> | |
103 | + </div> | |
104 | + </div> | |
105 | + </form> | |
106 | + </div> | |
107 | + </div> | |
108 | + </div> | |
109 | + </div> | |
110 | +</section> |