Commit 65c2fc5f63c762c09cc6ce2a7f12850c99ff5357

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

Работа со скриптами карт. Работа со счетчиком на странице 'Офис'

Showing 12 changed files with 1719 additions and 1515 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 use DateTime;
8
7 class RusDate 9 class RusDate
8 { 10 {
9 public static function russian_date($date = null){ 11 public static function russian_date($date = null){
10 $date=explode(".", date("d.m.Y")); 12 $date=explode(".", date("d.m.Y"));
11 $m = ""; 13 $m = "";
12 14
13 switch ($date[1]){ 15 switch ($date[1]){
14 case 1: $m = 'января'; break; 16 case 1: $m = 'января'; break;
15 case 2: $m = 'февраля'; break; 17 case 2: $m = 'февраля'; break;
16 case 3: $m = 'марта'; break; 18 case 3: $m = 'марта'; break;
17 case 4: $m = 'апреля'; break; 19 case 4: $m = 'апреля'; break;
18 case 5: $m = 'мая'; break; 20 case 5: $m = 'мая'; break;
19 case 6: $m = 'июня'; break; 21 case 6: $m = 'июня'; break;
20 case 7: $m = 'июля'; break; 22 case 7: $m = 'июля'; break;
21 case 8: $m = 'августа'; break; 23 case 8: $m = 'августа'; break;
22 case 9: $m = 'сентября'; break; 24 case 9: $m = 'сентября'; break;
23 case 10: $m = 'октября'; break; 25 case 10: $m = 'октября'; break;
24 case 11: $m = 'ноября'; break; 26 case 11: $m = 'ноября'; break;
25 case 12: $m = 'декабря'; break; 27 case 12: $m = 'декабря'; break;
26 } 28 }
27 return $date[0].' '.$m.' '.$date[2]; 29 return $date[0].' '.$m.' '.$date[2];
28 } 30 }
29 31
30 public static function russian_month($month) { 32 public static function russian_month($month) {
31 switch ($month){ 33 switch ($month){
32 case 1: $m = 'января'; break; 34 case 1: $m = 'января'; break;
33 case 2: $m = 'февраля'; break; 35 case 2: $m = 'февраля'; break;
34 case 3: $m = 'марта'; break; 36 case 3: $m = 'марта'; break;
35 case 4: $m = 'апреля'; break; 37 case 4: $m = 'апреля'; break;
36 case 5: $m = 'мая'; break; 38 case 5: $m = 'мая'; break;
37 case 6: $m = 'июня'; break; 39 case 6: $m = 'июня'; break;
38 case 7: $m = 'июля'; break; 40 case 7: $m = 'июля'; break;
39 case 8: $m = 'августа'; break; 41 case 8: $m = 'августа'; break;
40 case 9: $m = 'сентября'; break; 42 case 9: $m = 'сентября'; break;
41 case 10: $m = 'октября'; break; 43 case 10: $m = 'октября'; break;
42 case 11: $m = 'ноября'; break; 44 case 11: $m = 'ноября'; break;
43 case 12: $m = 'декабря'; break; 45 case 12: $m = 'декабря'; break;
44 } 46 }
45 return $m; 47 return $m;
46 } 48 }
47 49
48 public static function selected_item($item) { 50 public static function selected_item($item) {
49 if (empty($_COOKIE['favorite_house'])) 51 if (empty($_COOKIE['favorite_house']))
50 return ""; 52 return "";
51 else { 53 else {
52 $Str = json_decode($_COOKIE['favorite_house'], true); 54 $Str = json_decode($_COOKIE['favorite_house'], true);
53 //$Arr = explode(",", $Str); 55 //$Arr = explode(",", $Str);
54 if (in_array($item, $Str)) 56 if (in_array($item, $Str))
55 return " active "; 57 return " active ";
56 else 58 else
57 return ""; 59 return "";
58 } 60 }
59 } 61 }
60 62
61 public static function count_item_fav() { 63 public static function count_item_fav() {
62 if (empty($_COOKIE['favorite_house'])) 64 if (empty($_COOKIE['favorite_house']))
63 return 0; 65 return 0;
64 else { 66 else {
65 $Arr = json_decode($_COOKIE['favorite_house'], true); 67 $Arr = json_decode($_COOKIE['favorite_house'], true);
66 return count($Arr); 68 return count($Arr);
67 } 69 }
68 } 70 }
69 71
70 public static function clear_items() { 72 public static function clear_items() {
71 if (!empty($_COOKIE['favorite_house'])) 73 if (!empty($_COOKIE['favorite_house']))
72 unset($_COOKIE['favorite_house']); 74 unset($_COOKIE['favorite_house']);
73 //print_r($_COOKIE['arr']); 75 //print_r($_COOKIE['arr']);
74 } 76 }
77
78 public static function interval_month($date) {
79 $now = new DateTime();
80 $date = new DateTime($date); //::createFromFormat("Y-m-d H:i", $date);
81 $interval = $now->diff($date);
82 $y = $interval->y;
83 $d = $interval->d;
84 $h = $interval->h;
85 $i = $interval->i;
86
87 if ($d > 30)
88 return true;
89 else
90 return false;
91 }
92
93 public static function interval_day($date) {
94 $now = new DateTime();
95 $date = new DateTime($date); //::createFromFormat("Y-m-d H:i", $date);
96 $interval = $now->diff($date);
97 $y = $interval->y;
98 $d = $interval->d;
99 $h = $interval->h;
100 $i = $interval->i;
101
102 if (($h > 24) || ($d > 0) || ($y > 0))
103 return true;
104 else
105 return false;
106 }
107
108 public static function ip_addr_client() {
109 $client = @$_SERVER['HTTP_CLIENT_IP'];
110 $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
111 $remote = @$_SERVER['REMOTE_ADDR'];
112
113 if(filter_var($client, FILTER_VALIDATE_IP)) $ip = $client;
114 elseif(filter_var($forward, FILTER_VALIDATE_IP)) $ip = $forward;
115 else $ip = $remote;
116
117 return $ip;
118 }
75 } 119 }
76 120
app/Http/Controllers/MainController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers; 3 namespace App\Http\Controllers;
4 4
5 use App\Http\Requests\EmailRequest; 5 use App\Http\Requests\EmailRequest;
6 use App\Http\Requests\FooterFeedbackRequest; 6 use App\Http\Requests\FooterFeedbackRequest;
7 use App\Models\Area; 7 use App\Models\Area;
8 use App\Models\Contact; 8 use App\Models\Contact;
9 use App\Models\format_area; 9 use App\Models\format_area;
10 use App\Models\House; 10 use App\Models\House;
11 use App\Models\ModelMailFeedback; 11 use App\Models\ModelMailFeedback;
12 use App\Models\News; 12 use App\Models\News;
13 use App\Models\Page;
13 use App\Models\Partners; 14 use App\Models\Partners;
14 use App\Models\type_area; 15 use App\Models\type_area;
15 use Illuminate\Database\Eloquent\Model; 16 use Illuminate\Database\Eloquent\Model;
16 use Illuminate\Http\Request; 17 use Illuminate\Http\Request;
17 use App\Classes\RusDate; 18 use App\Classes\RusDate;
19 use Illuminate\Support\Facades\DB;
18 use Illuminate\Support\Facades\Mail; 20 use Illuminate\Support\Facades\Mail;
19 use PhpParser\Node\Stmt\Switch_; 21 use PhpParser\Node\Stmt\Switch_;
20 use Illuminate\Support\Facades\Response; 22 use Illuminate\Support\Facades\Response;
21 23
22 class MainController extends Controller 24 class MainController extends Controller
23 { 25 {
24 /* 26 /*
25 * Главная страница проекта 27 * Главная страница проекта
26 */ 28 */
27 public function index() { 29 public function index() {
28 $houses = House::with('areas')->orderByDesc('created_at')->limit(8)->get(); 30 $houses = House::with('areas')->orderByDesc('created_at')->limit(8)->get();
29 $news = News::query()->orderByDesc('created_at')->limit(8)->get(); 31 $news = News::query()->orderByDesc('created_at')->limit(8)->get();
30 $partners = Partners::query()->limit(18)->get(); 32 $partners = Partners::query()->limit(18)->get();
31 return view('index', compact('houses', 'news', 'partners')); 33 return view('index', compact('houses', 'news', 'partners'));
32 } 34 }
33 35
34 /* 36 /*
35 * Фильтр ajax в каталоге 37 * Фильтр ajax в каталоге
36 */ 38 */
37 public function catalog_ajax_filter(Request $request) { 39 public function catalog_ajax_filter(Request $request) {
38 $Res = Array(); 40 $Res = Array();
39 if (!empty($request->area)) { 41 if (!empty($request->area)) {
40 $area_table = Area::where('id', '=', $request->area)->get(); 42 $area_table = Area::where('id', '=', $request->area)->get();
41 $Res[] = $area_table[0]->name_area; 43 $Res[] = $area_table[0]->name_area;
42 } else { 44 } else {
43 $Res[] = "Все объекты"; 45 $Res[] = "Все объекты";
44 } 46 }
45 47
46 if (!empty($request->type_area)) { 48 if (!empty($request->type_area)) {
47 $type_area_table = type_area::where('id', '=', $request->type_area)->get(); 49 $type_area_table = type_area::where('id', '=', $request->type_area)->get();
48 $Res[] = $type_area_table[0]->name_type; 50 $Res[] = $type_area_table[0]->name_type;
49 } else { 51 } else {
50 $Res[] = "Тип недвижимости"; 52 $Res[] = "Тип недвижимости";
51 } 53 }
52 54
53 if (!empty($request->format_area)) { 55 if (!empty($request->format_area)) {
54 $format_area_table = format_area::where('id', '=', $request->format_area)->get(); 56 $format_area_table = format_area::where('id', '=', $request->format_area)->get();
55 $Res[] = $format_area_table[0]->name_format; 57 $Res[] = $format_area_table[0]->name_format;
56 } else { 58 } else {
57 $Res[] = "Формат недвижимости"; 59 $Res[] = "Формат недвижимости";
58 } 60 }
59 61
60 return json_encode($Res); 62 return json_encode($Res);
61 } 63 }
62 64
63 /* 65 /*
64 * Страница ЖК 66 * Страница ЖК
65 */ 67 */
66 public function Complex(Area $area, Request $request) { 68 public function Complex(Area $area, Request $request) {
67 //////////раздел аренда 69 //////////раздел аренда
68 $house_arenda = House::with('areas')-> 70 $house_arenda = House::with('areas')->
69 where('area_id', '=', $area->id)-> 71 where('area_id', '=', $area->id)->
70 where('format_house', '=', 'Аренда'); 72 where('format_house', '=', 'Аренда');
71 73
72 if ($request->view == 'arenda') { 74 if ($request->view == 'arenda') {
73 switch ($request->sort_price) { 75 switch ($request->sort_price) {
74 case 1: $house_arenda = $house_arenda->orderBy('price');break; 76 case 1: $house_arenda = $house_arenda->orderBy('price');break;
75 case 2: $house_arenda = $house_arenda->orderByDesc('price');break; 77 case 2: $house_arenda = $house_arenda->orderByDesc('price');break;
76 } 78 }
77 switch ($request->sort_new) { 79 switch ($request->sort_new) {
78 case 1: $house_arenda = $house_arenda->orderByDesc('created_at');break; 80 case 1: $house_arenda = $house_arenda->orderByDesc('created_at');break;
79 case 2: $house_arenda = $house_arenda->orderBy('created_at');break; 81 case 2: $house_arenda = $house_arenda->orderBy('created_at');break;
80 } 82 }
81 switch ($request->sort_area) { 83 switch ($request->sort_area) {
82 case 1: $house_arenda = $house_arenda->orderByDesc('area')->get();break; 84 case 1: $house_arenda = $house_arenda->orderByDesc('area')->get();break;
83 case 2: $house_arenda = $house_arenda->orderBy('area')->get();break; 85 case 2: $house_arenda = $house_arenda->orderBy('area')->get();break;
84 } 86 }
85 } else { 87 } else {
86 $house_arenda = $house_arenda->orderBy('price')-> 88 $house_arenda = $house_arenda->orderBy('price')->
87 orderByDesc('created_at')-> 89 orderByDesc('created_at')->
88 orderByDesc('area')->get(); 90 orderByDesc('area')->get();
89 } 91 }
90 92
91 ////////раздел продажа 93 ////////раздел продажа
92 $house_prodaja = House::with('areas')-> 94 $house_prodaja = House::with('areas')->
93 where('area_id', '=', $area->id)-> 95 where('area_id', '=', $area->id)->
94 where('format_house', '=', 'Продажа'); 96 where('format_house', '=', 'Продажа');
95 97
96 if ($request->view == 'prodaja') { 98 if ($request->view == 'prodaja') {
97 switch ($request->sort_price) { 99 switch ($request->sort_price) {
98 case 1: $house_prodaja = $house_prodaja->orderBy('price');break; 100 case 1: $house_prodaja = $house_prodaja->orderBy('price');break;
99 case 2: $house_prodaja = $house_prodaja->orderByDesc('price');break; 101 case 2: $house_prodaja = $house_prodaja->orderByDesc('price');break;
100 } 102 }
101 switch ($request->sort_new) { 103 switch ($request->sort_new) {
102 case 1: $house_prodaja = $house_prodaja->orderByDesc('created_at');break; 104 case 1: $house_prodaja = $house_prodaja->orderByDesc('created_at');break;
103 case 2: $house_prodaja = $house_prodaja->orderBy('created_at');break; 105 case 2: $house_prodaja = $house_prodaja->orderBy('created_at');break;
104 } 106 }
105 switch ($request->sort_area) { 107 switch ($request->sort_area) {
106 case 1: $house_prodaja = $house_prodaja->orderByDesc('area')->get();break; 108 case 1: $house_prodaja = $house_prodaja->orderByDesc('area')->get();break;
107 case 2: $house_prodaja = $house_prodaja->orderBy('area')->get();break; 109 case 2: $house_prodaja = $house_prodaja->orderBy('area')->get();break;
108 } 110 }
109 } else { 111 } else {
110 $house_prodaja = $house_prodaja->orderBy('price')-> 112 $house_prodaja = $house_prodaja->orderBy('price')->
111 orderByDesc('created_at')-> 113 orderByDesc('created_at')->
112 orderByDesc('area')->get(); 114 orderByDesc('area')->get();
113 } 115 }
114 116
115 //////////////// Раздел бизнеса 117 //////////////// Раздел бизнеса
116 $house_bissnes = House::with('areas')-> 118 $house_bissnes = House::with('areas')->
117 where('area_id', '=', $area->id)-> 119 where('area_id', '=', $area->id)->
118 where('format_house', '=', 'Бизнес'); 120 where('format_house', '=', 'Бизнес');
119 //orderByDesc('created_at')->get(); 121 //orderByDesc('created_at')->get();
120 122
121 if ($request->view == 'bissnes') { 123 if ($request->view == 'bissnes') {
122 switch ($request->sort_price) { 124 switch ($request->sort_price) {
123 case 1: $house_bissnes = $house_bissnes->orderBy('price');break; 125 case 1: $house_bissnes = $house_bissnes->orderBy('price');break;
124 case 2: $house_bissnes = $house_bissnes->orderByDesc('price');break; 126 case 2: $house_bissnes = $house_bissnes->orderByDesc('price');break;
125 } 127 }
126 switch ($request->sort_new) { 128 switch ($request->sort_new) {
127 case 1: $house_bissnes = $house_bissnes->orderByDesc('created_at');break; 129 case 1: $house_bissnes = $house_bissnes->orderByDesc('created_at');break;
128 case 2: $house_bissnes = $house_bissnes->orderBy('created_at');break; 130 case 2: $house_bissnes = $house_bissnes->orderBy('created_at');break;
129 } 131 }
130 switch ($request->sort_area) { 132 switch ($request->sort_area) {
131 case 1: $house_bissnes = $house_bissnes->orderByDesc('area')->get();break; 133 case 1: $house_bissnes = $house_bissnes->orderByDesc('area')->get();break;
132 case 2: $house_bissnes = $house_bissnes->orderBy('area')->get();break; 134 case 2: $house_bissnes = $house_bissnes->orderBy('area')->get();break;
133 } 135 }
134 } else { 136 } else {
135 $house_bissnes = $house_bissnes->orderBy('price')-> 137 $house_bissnes = $house_bissnes->orderBy('price')->
136 orderByDesc('created_at')-> 138 orderByDesc('created_at')->
137 orderByDesc('area')->get(); 139 orderByDesc('area')->get();
138 } 140 }
139 141
140 //////////раздел арендованные 142 //////////раздел арендованные
141 $house_arendovannie = House::with('areas')-> 143 $house_arendovannie = House::with('areas')->
142 where('area_id', '=', $area->id)-> 144 where('area_id', '=', $area->id)->
143 where('format_house', '=', 'Арендованные'); 145 where('format_house', '=', 'Арендованные');
144 //orderByDesc('created_at')->get(); 146 //orderByDesc('created_at')->get();
145 147
146 if ($request->view == 'arendovannie') { 148 if ($request->view == 'arendovannie') {
147 switch ($request->sort_price) { 149 switch ($request->sort_price) {
148 case 1: $house_arendovannie = $house_arendovannie->orderBy('price');break; 150 case 1: $house_arendovannie = $house_arendovannie->orderBy('price');break;
149 case 2: $house_arendovannie = $house_arendovannie->orderByDesc('price');break; 151 case 2: $house_arendovannie = $house_arendovannie->orderByDesc('price');break;
150 } 152 }
151 switch ($request->sort_new) { 153 switch ($request->sort_new) {
152 case 1: $house_arendovannie = $house_arendovannie->orderByDesc('created_at');break; 154 case 1: $house_arendovannie = $house_arendovannie->orderByDesc('created_at');break;
153 case 2: $house_arendovannie = $house_arendovannie->orderBy('created_at');break; 155 case 2: $house_arendovannie = $house_arendovannie->orderBy('created_at');break;
154 } 156 }
155 switch ($request->sort_area) { 157 switch ($request->sort_area) {
156 case 1: $house_arendovannie = $house_arendovannie->orderByDesc('area')->get();break; 158 case 1: $house_arendovannie = $house_arendovannie->orderByDesc('area')->get();break;
157 case 2: $house_arendovannie = $house_arendovannie->orderBy('area')->get();break; 159 case 2: $house_arendovannie = $house_arendovannie->orderBy('area')->get();break;
158 } 160 }
159 } else { 161 } else {
160 $house_arendovannie = $house_arendovannie->orderBy('price')-> 162 $house_arendovannie = $house_arendovannie->orderBy('price')->
161 orderByDesc('created_at')-> 163 orderByDesc('created_at')->
162 orderByDesc('area')->get(); 164 orderByDesc('area')->get();
163 } 165 }
164 166
165 if ($request->ajax()) { 167 if ($request->ajax()) {
166 switch($request->view) { 168 switch($request->view) {
167 case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; 169 case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break;
168 case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; 170 case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break;
169 case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; 171 case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break;
170 case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; 172 case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break;
171 } 173 }
172 } 174 }
173 175
174 return view('complex', compact('area', 176 return view('complex', compact('area',
175 'house_arenda', 177 'house_arenda',
176 'house_prodaja', 178 'house_prodaja',
177 'house_bissnes', 179 'house_bissnes',
178 'house_arendovannie')); 180 'house_arendovannie'));
179 181
180 } 182 }
181 183
182 /* 184 /*
183 * О компании 185 * О компании
184 */ 186 */
185 public function About(): \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Contracts\Foundation\Application 187 public function About(): \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Contracts\Foundation\Application
186 { 188 {
187 $news = News::query()->orderByDesc('created_at')->limit(8)->get(); 189 $news = News::query()->orderByDesc('created_at')->limit(8)->get();
188 $partners = Partners::query()->limit(18)->get(); 190 $partners = Partners::query()->limit(18)->get();
189 return view('about', compact('news', 'partners')); 191 return view('about', compact('news', 'partners'));
190 } 192 }
191 193
192 /* 194 /*
193 * Форма обратной связи внизу сайта 195 * Форма обратной связи внизу сайта
194 */ 196 */
195 public function main_form(FooterFeedbackRequest $request) { 197 public function main_form(FooterFeedbackRequest $request) {
196 $RentTorg = Contact::query()->limit(1)->get(); 198 $RentTorg = Contact::query()->limit(1)->get();
197 $MailBD = new ModelMailFeedback(); 199 $MailBD = new ModelMailFeedback();
198 $MailBD->to = 'Администрации сайта'; 200 $MailBD->to = 'Администрации сайта';
199 $MailBD->from = $request->TelephoneUser; 201 $MailBD->from = $request->TelephoneUser;
200 $MailBD->subject = "Пользователь <".$request->NameUser.">"; 202 $MailBD->subject = "Пользователь <".$request->NameUser.">";
201 $MailBD->form = 'Форма в футере'; 203 $MailBD->form = 'Форма в футере';
202 $MailBD->text = "От пользователя: ".$request->NameUser.". Заявка на лучшие предложения. Сообщение: ".$request->TextUser; 204 $MailBD->text = "От пользователя: ".$request->NameUser.". Заявка на лучшие предложения. Сообщение: ".$request->TextUser;
203 $MailBD->save(); 205 $MailBD->save();
204 206
205 //return true; 207 //return true;
206 /* 208 /*
207 Mail::send('emails.feedback', ['user' => $user], 209 Mail::send('emails.feedback', ['user' => $user],
208 function ($message) use ($user) { 210 function ($message) use ($user) {
209 $message->from('sender@gmail.com', 'Sender'); 211 $message->from('sender@gmail.com', 'Sender');
210 $message->to($user->email, $user->name)->subject('Test message'); 212 $message->to($user->email, $user->name)->subject('Test message');
211 }); 213 });
212 */ 214 */
213 } 215 }
214 216
215 /* 217 /*
216 * Форма обратной связе в хедере 218 * Форма обратной связе в хедере
217 */ 219 */
218 public function header_form(FooterFeedbackRequest $request) { 220 public function header_form(FooterFeedbackRequest $request) {
219 $RentTorg = Contact::query()->limit(1)->get(); 221 $RentTorg = Contact::query()->limit(1)->get();
220 $MailBD = new ModelMailFeedback(); 222 $MailBD = new ModelMailFeedback();
221 $MailBD->to = 'Администрации сайта'; 223 $MailBD->to = 'Администрации сайта';
222 $MailBD->from = $request->TelephoneUser; 224 $MailBD->from = $request->TelephoneUser;
223 $MailBD->subject = "Пользователь <".$request->NameUser.">"; 225 $MailBD->subject = "Пользователь <".$request->NameUser.">";
224 $MailBD->form = 'Форма в заголовке сайта'; 226 $MailBD->form = 'Форма в заголовке сайта';
225 $MailBD->text = "От пользователя: ".$request->NameUser." Сообщение: Заказываю обратный звонок"; 227 $MailBD->text = "От пользователя: ".$request->NameUser." Сообщение: Заказываю обратный звонок";
226 $MailBD->save(); 228 $MailBD->save();
227 } 229 }
228 230
229 public function rec_view_form(FooterFeedbackRequest $request) { 231 public function rec_view_form(FooterFeedbackRequest $request) {
230 $RentTorg = Contact::query()->limit(1)->get(); 232 $RentTorg = Contact::query()->limit(1)->get();
231 $MailBD = new ModelMailFeedback(); 233 $MailBD = new ModelMailFeedback();
232 $MailBD->to = 'Администрации сайта'; 234 $MailBD->to = 'Администрации сайта';
233 $MailBD->from = $request->TelephoneUser; 235 $MailBD->from = $request->TelephoneUser;
234 $MailBD->subject = "Пользователь <".$request->NameUser.">"; 236 $MailBD->subject = "Пользователь <".$request->NameUser.">";
235 $MailBD->form = 'Форма записи на просмотр'; 237 $MailBD->form = 'Форма записи на просмотр';
236 $MailBD->text = "От пользователя: ".$request->NameUser." Сообщение: Заказываю просмотр офиса"; 238 $MailBD->text = "От пользователя: ".$request->NameUser." Сообщение: Заказываю просмотр офиса";
237 $MailBD->save(); 239 $MailBD->save();
238 } 240 }
239 241
240 /* 242 /*
241 * Форма обратной связи на странице "Контакты" 243 * Форма обратной связи на странице "Контакты"
242 */ 244 */
243 public function page_contact_form(FooterFeedbackRequest $request) { 245 public function page_contact_form(FooterFeedbackRequest $request) {
244 $RentTorg = Contact::query()->limit(1)->get(); 246 $RentTorg = Contact::query()->limit(1)->get();
245 $MailBD = new ModelMailFeedback(); 247 $MailBD = new ModelMailFeedback();
246 $MailBD->to = 'Администрации сайта'; 248 $MailBD->to = 'Администрации сайта';
247 $MailBD->from = $request->TelephoneUser; 249 $MailBD->from = $request->TelephoneUser;
248 $MailBD->subject = "Пользователь <".$request->NameUser."> Компания <".$request->NameCompany.">"; 250 $MailBD->subject = "Пользователь <".$request->NameUser."> Компания <".$request->NameCompany.">";
249 $MailBD->form = 'Форма на странице "Контакты"'; 251 $MailBD->form = 'Форма на странице "Контакты"';
250 $MailBD->text = "От пользователя: ".$request->NameUser."Телефон: ".$request->TelephoneUser." Почта: <".$request->EmailUser."> Сообщение:".$request->TextUser; 252 $MailBD->text = "От пользователя: ".$request->NameUser."Телефон: ".$request->TelephoneUser." Почта: <".$request->EmailUser."> Сообщение:".$request->TextUser;
251 $MailBD->save(); 253 $MailBD->save();
252 } 254 }
253 /* 255 /*
254 * Форма обратной связи по емайлу 256 * Форма обратной связи по емайлу
255 */ 257 */
256 public function email_form(EmailRequest $request) { 258 public function email_form(EmailRequest $request) {
257 $RentTorg = Contact::query()->limit(1)->get(); 259 $RentTorg = Contact::query()->limit(1)->get();
258 $MailBD = new ModelMailFeedback(); 260 $MailBD = new ModelMailFeedback();
259 $MailBD->to = 'Администрации сайта'; 261 $MailBD->to = 'Администрации сайта';
260 $MailBD->from = $request->EmailUser; 262 $MailBD->from = $request->EmailUser;
261 $MailBD->subject = "Пользователь <".$request->EmailUser.">"; 263 $MailBD->subject = "Пользователь <".$request->EmailUser.">";
262 $MailBD->form = 'Форма обратной связи по Email'; 264 $MailBD->form = 'Форма обратной связи по Email';
263 $MailBD->text = "От почты: ".$request->EmailUser." Сообщение: Отправить на данную почту предложения RentTorg"; 265 $MailBD->text = "От почты: ".$request->EmailUser." Сообщение: Отправить на данную почту предложения RentTorg";
264 $MailBD->save(); 266 $MailBD->save();
265 //dd('Email form'); 267 //dd('Email form');
266 return redirect()->route('index'); 268 return redirect()->route('index');
267 } 269 }
268 270
269 /* 271 /*
270 * Избранное 272 * Избранное
271 */ 273 */
272 public function Favorite(Request $request) { 274 public function Favorite(Request $request) {
273 if (empty($_COOKIE['favorite_house'])) { 275 if (empty($_COOKIE['favorite_house'])) {
274 $Arr = Array(); 276 $Arr = Array();
275 } else { 277 } else {
276 $Arr = json_decode($_COOKIE['favorite_house'], true); 278 $Arr = json_decode($_COOKIE['favorite_house'], true);
277 } 279 }
278 if (!empty($Arr) && is_array($Arr)) { 280 if (!empty($Arr) && is_array($Arr)) {
279 $houses = House::with('areas')->whereIn('id', $Arr); 281 $houses = House::with('areas')->whereIn('id', $Arr);
280 282
281 if (isset($request->sort_price)) { 283 if (isset($request->sort_price)) {
282 switch ($request->sort_price) { 284 switch ($request->sort_price) {
283 case 1: $houses = $houses->orderBy('price');break; 285 case 1: $houses = $houses->orderBy('price');break;
284 case 2: $houses = $houses->orderByDesc('price');break; 286 case 2: $houses = $houses->orderByDesc('price');break;
285 } 287 }
286 switch ($request->sort_new) { 288 switch ($request->sort_new) {
287 case 1: $houses = $houses->orderByDesc('created_at');break; 289 case 1: $houses = $houses->orderByDesc('created_at');break;
288 case 2: $houses = $houses->orderBy('created_at');break; 290 case 2: $houses = $houses->orderBy('created_at');break;
289 } 291 }
290 switch ($request->sort_area) { 292 switch ($request->sort_area) {
291 case 1: $houses = $houses->orderByDesc('area');break; 293 case 1: $houses = $houses->orderByDesc('area');break;
292 case 2: $houses = $houses->orderBy('area');break; 294 case 2: $houses = $houses->orderBy('area');break;
293 } 295 }
294 296
295 } else { 297 } else {
296 $houses = $houses->orderBy('price')-> 298 $houses = $houses->orderBy('price')->
297 orderByDesc('created_at')-> 299 orderByDesc('created_at')->
298 orderByDesc('area'); 300 orderByDesc('area');
299 } 301 }
300 302
301 $houses = $houses->paginate(4); 303 $houses = $houses->paginate(4);
302 304
303 if ($request->ajax()) { 305 if ($request->ajax()) {
304 return view('ajax.complex.favorite', compact('houses')); 306 return view('ajax.complex.favorite', compact('houses'));
305 } 307 }
306 308
307 return view('favorite_data', compact('houses')); 309 return view('favorite_data', compact('houses'));
308 } else { 310 } else {
309 return view('favorite', compact('Arr')); 311 return view('favorite', compact('Arr'));
310 } 312 }
311 313
312 314
313 } 315 }
314 316
315 /* 317 /*
316 * Категории каталога Аренда/Продажа/Бизнес 318 * Категории каталога Аренда/Продажа/Бизнес
317 */ 319 */
318 public function Category($cat, Request $request) { 320 public function Category($cat, Request $request) {
319 switch ($cat) { 321 switch ($cat) {
320 case 'arenda': 322 case 'arenda':
321 $title = "Аренда торговых помещениий"; 323 $title = "Аренда торговых помещениий";
322 $format_house = 'Аренда'; 324 $format_house = 'Аренда';
323 break; 325 break;
324 case 'sale': 326 case 'sale':
325 $title = "Продажа торговых помещений"; 327 $title = "Продажа торговых помещений";
326 $format_house = 'Продажа'; 328 $format_house = 'Продажа';
327 break; 329 break;
328 case 'bussiness': 330 case 'bussiness':
329 $title = "Арендый бизнес"; 331 $title = "Арендый бизнес";
330 $format_house = 'Бизнес'; 332 $format_house = 'Бизнес';
331 break; 333 break;
332 default: 334 default:
333 $title = "Аренда торговых помещениий"; 335 $title = "Аренда торговых помещениий";
334 $format_house = 'Аренда'; 336 $format_house = 'Аренда';
335 break; 337 break;
336 } 338 }
337 339
338 $houses = House::with('areas')-> 340 $houses = House::with('areas')->
339 where('format_house', '=', $format_house); 341 where('format_house', '=', $format_house);
340 //->appends(request()->query()); 342 //->appends(request()->query());
341 343
342 if (!empty($request->area)) { 344 if (!empty($request->area)) {
343 $houses = $houses->where('area_id', '=', $request->area); 345 $houses = $houses->where('area_id', '=', $request->area);
344 } 346 }
345 // условия поиска по типу недвижимости 347 // условия поиска по типу недвижимости
346 if (!empty($request->type_area)) { 348 if (!empty($request->type_area)) {
347 $houses = $houses->where('type_area_id', '=', $request->type_area); 349 $houses = $houses->where('type_area_id', '=', $request->type_area);
348 } 350 }
349 // условия поиска по формату недвижимости 351 // условия поиска по формату недвижимости
350 if (!empty($request->format_area)) { 352 if (!empty($request->format_area)) {
351 $houses = $houses->where('format_area_id', '=', $request->format_area); 353 $houses = $houses->where('format_area_id', '=', $request->format_area);
352 } 354 }
353 // условия поиска по площади - минимальная площадь 355 // условия поиска по площади - минимальная площадь
354 if (!empty($request->area_m2_min)) { 356 if (!empty($request->area_m2_min)) {
355 $houses = $houses->where('area', '>', $request->area_m2_min); 357 $houses = $houses->where('area', '>', $request->area_m2_min);
356 } 358 }
357 // условия поиска по площади - максимальная площадь 359 // условия поиска по площади - максимальная площадь
358 if (!empty($request->area_m2_max)) { 360 if (!empty($request->area_m2_max)) {
359 $houses = $houses->where('area', '<', $request->area_m2_max); 361 $houses = $houses->where('area', '<', $request->area_m2_max);
360 } 362 }
361 // условия поиска по цене - минимальная цена 363 // условия поиска по цене - минимальная цена
362 if (!empty($request->price_min)) { 364 if (!empty($request->price_min)) {
363 $houses = $houses->where('price', '>', $request->price_min); 365 $houses = $houses->where('price', '>', $request->price_min);
364 } 366 }
365 // условия поиска по цене - максимальная цена 367 // условия поиска по цене - максимальная цена
366 if (!empty($request->price_max)) { 368 if (!empty($request->price_max)) {
367 $houses = $houses->where('price', '<', $request->price_max); 369 $houses = $houses->where('price', '<', $request->price_max);
368 } 370 }
369 // условия поиска по адресу 371 // условия поиска по адресу
370 if (!empty($request->address)) { 372 if (!empty($request->address)) {
371 $houses = $houses->where('address', 'LIKE', "%".$request->address."%"); 373 $houses = $houses->where('address', 'LIKE', "%".$request->address."%");
372 } 374 }
373 375
374 if (isset($request->sort_price)) { 376 if (isset($request->sort_price)) {
375 switch ($request->sort_price) { 377 switch ($request->sort_price) {
376 case 1: $houses = $houses->orderBy('price');break; 378 case 1: $houses = $houses->orderBy('price');break;
377 case 2: $houses = $houses->orderByDesc('price');break; 379 case 2: $houses = $houses->orderByDesc('price');break;
378 } 380 }
379 switch ($request->sort_new) { 381 switch ($request->sort_new) {
380 case 1: $houses = $houses->orderByDesc('created_at');break; 382 case 1: $houses = $houses->orderByDesc('created_at');break;
381 case 2: $houses = $houses->orderBy('created_at');break; 383 case 2: $houses = $houses->orderBy('created_at');break;
382 } 384 }
383 switch ($request->sort_area) { 385 switch ($request->sort_area) {
384 case 1: $houses = $houses->orderByDesc('area');break; 386 case 1: $houses = $houses->orderByDesc('area');break;
385 case 2: $houses = $houses->orderBy('area');break; 387 case 2: $houses = $houses->orderBy('area');break;
386 } 388 }
387 389
388 } else { 390 } else {
389 $houses = $houses->orderBy('price')-> 391 $houses = $houses->orderBy('price')->
390 orderByDesc('created_at')-> 392 orderByDesc('created_at')->
391 orderByDesc('area'); 393 orderByDesc('area');
392 } 394 }
393 395
394 $houses = $houses->paginate(4); 396 $houses = $houses->paginate(4);
395 397
396 if ($request->ajax()) { 398 if ($request->ajax()) {
397 return view('ajax.complex.category', compact('houses')); 399 return view('ajax.complex.category', compact('houses'));
398 } 400 }
399 401
400 return view('category_catalog', compact('title', 'cat', 'houses')); 402 return view('category_catalog', compact('title', 'cat', 'houses'));
401 } 403 }
402 404
403 405
404 /* 406 /*
405 * Каталог 407 * Каталог
406 */ 408 */
407 public function Catalog(Request $request) { 409 public function Catalog(Request $request) {
408 410
409 //////////раздел аренда///////////////////////////////////////////////////////////////// 411 //////////раздел аренда/////////////////////////////////////////////////////////////////
410 $house_arenda = House::with('areas')-> 412 $house_arenda = House::with('areas')->
411 where('format_house', '=', 'Аренда'); 413 where('format_house', '=', 'Аренда');
412 // условия поиска по объектам комплексов 414 // условия поиска по объектам комплексов
413 if (!empty($request->area)) { 415 if (!empty($request->area)) {
414 $house_arenda = $house_arenda->where('area_id', '=', $request->area); 416 $house_arenda = $house_arenda->where('area_id', '=', $request->area);
415 } 417 }
416 // условия поиска по типу недвижимости 418 // условия поиска по типу недвижимости
417 if (!empty($request->type_area)) { 419 if (!empty($request->type_area)) {
418 $house_arenda = $house_arenda->where('type_area_id', '=', $request->type_area); 420 $house_arenda = $house_arenda->where('type_area_id', '=', $request->type_area);
419 } 421 }
420 // условия поиска по формату недвижимости 422 // условия поиска по формату недвижимости
421 if (!empty($request->format_area)) { 423 if (!empty($request->format_area)) {
422 $house_arenda = $house_arenda->where('format_area_id', '=', $request->format_area); 424 $house_arenda = $house_arenda->where('format_area_id', '=', $request->format_area);
423 } 425 }
424 // условия поиска по площади - минимальная площадь 426 // условия поиска по площади - минимальная площадь
425 if (!empty($request->area_m2_min)) { 427 if (!empty($request->area_m2_min)) {
426 $house_arenda = $house_arenda->where('area', '>', $request->area_m2_min); 428 $house_arenda = $house_arenda->where('area', '>', $request->area_m2_min);
427 } 429 }
428 // условия поиска по площади - максимальная площадь 430 // условия поиска по площади - максимальная площадь
429 if (!empty($request->area_m2_max)) { 431 if (!empty($request->area_m2_max)) {
430 $house_arenda = $house_arenda->where('area', '<', $request->area_m2_max); 432 $house_arenda = $house_arenda->where('area', '<', $request->area_m2_max);
431 } 433 }
432 // условия поиска по цене - минимальная цена 434 // условия поиска по цене - минимальная цена
433 if (!empty($request->price_min)) { 435 if (!empty($request->price_min)) {
434 $house_arenda = $house_arenda->where('price', '>', $request->price_min); 436 $house_arenda = $house_arenda->where('price', '>', $request->price_min);
435 } 437 }
436 // условия поиска по цене - максимальная цена 438 // условия поиска по цене - максимальная цена
437 if (!empty($request->price_max)) { 439 if (!empty($request->price_max)) {
438 $house_arenda = $house_arenda->where('price', '<', $request->price_max); 440 $house_arenda = $house_arenda->where('price', '<', $request->price_max);
439 } 441 }
440 // условия поиска по адресу 442 // условия поиска по адресу
441 if (!empty($request->address)) { 443 if (!empty($request->address)) {
442 $house_arenda = $house_arenda->where('address', 'LIKE', "%".$request->address."%"); 444 $house_arenda = $house_arenda->where('address', 'LIKE', "%".$request->address."%");
443 } 445 }
444 446
445 if ($request->view == 'arenda') { 447 if ($request->view == 'arenda') {
446 switch ($request->sort_price) { 448 switch ($request->sort_price) {
447 case 1: $house_arenda = $house_arenda->orderBy('price');break; 449 case 1: $house_arenda = $house_arenda->orderBy('price');break;
448 case 2: $house_arenda = $house_arenda->orderByDesc('price');break; 450 case 2: $house_arenda = $house_arenda->orderByDesc('price');break;
449 } 451 }
450 switch ($request->sort_new) { 452 switch ($request->sort_new) {
451 case 1: $house_arenda = $house_arenda->orderByDesc('created_at');break; 453 case 1: $house_arenda = $house_arenda->orderByDesc('created_at');break;
452 case 2: $house_arenda = $house_arenda->orderBy('created_at');break; 454 case 2: $house_arenda = $house_arenda->orderBy('created_at');break;
453 } 455 }
454 switch ($request->sort_area) { 456 switch ($request->sort_area) {
455 case 1: $house_arenda = $house_arenda->orderByDesc('area')->get();break; 457 case 1: $house_arenda = $house_arenda->orderByDesc('area')->get();break;
456 case 2: $house_arenda = $house_arenda->orderBy('area')->get();break; 458 case 2: $house_arenda = $house_arenda->orderBy('area')->get();break;
457 } 459 }
458 } else { 460 } else {
459 $house_arenda = $house_arenda->orderBy('price')-> 461 $house_arenda = $house_arenda->orderBy('price')->
460 orderByDesc('created_at')-> 462 orderByDesc('created_at')->
461 orderByDesc('area')->get(); 463 orderByDesc('area')->get();
462 } 464 }
463 465
464 ////////раздел продажа////////////////////////////////////////////////////////////////// 466 ////////раздел продажа//////////////////////////////////////////////////////////////////
465 $house_prodaja = House::with('areas')-> 467 $house_prodaja = House::with('areas')->
466 where('format_house', '=', 'Продажа'); 468 where('format_house', '=', 'Продажа');
467 469
468 // условия поиска по объектам комплексов 470 // условия поиска по объектам комплексов
469 if (!empty($request->area)) { 471 if (!empty($request->area)) {
470 $house_prodaja = $house_prodaja->where('area_id', '=', $request->area); 472 $house_prodaja = $house_prodaja->where('area_id', '=', $request->area);
471 } 473 }
472 // условия поиска по типу недвижимости 474 // условия поиска по типу недвижимости
473 if (!empty($request->type_area)) { 475 if (!empty($request->type_area)) {
474 $house_prodaja = $house_prodaja->where('type_area_id', '=', $request->type_area); 476 $house_prodaja = $house_prodaja->where('type_area_id', '=', $request->type_area);
475 } 477 }
476 // условия поиска по формату недвижимости 478 // условия поиска по формату недвижимости
477 if (!empty($request->format_area)) { 479 if (!empty($request->format_area)) {
478 $house_prodaja = $house_prodaja->where('format_area_id', '=', $request->format_area); 480 $house_prodaja = $house_prodaja->where('format_area_id', '=', $request->format_area);
479 } 481 }
480 // условия поиска по площади - минимальная площадь 482 // условия поиска по площади - минимальная площадь
481 if (!empty($request->area_m2_min)) { 483 if (!empty($request->area_m2_min)) {
482 $house_prodaja = $house_prodaja->where('area', '>', $request->area_m2_min); 484 $house_prodaja = $house_prodaja->where('area', '>', $request->area_m2_min);
483 } 485 }
484 // условия поиска по площади - максимальная площадь 486 // условия поиска по площади - максимальная площадь
485 if (!empty($request->area_m2_max)) { 487 if (!empty($request->area_m2_max)) {
486 $house_prodaja = $house_prodaja->where('area', '<', $request->area_m2_max); 488 $house_prodaja = $house_prodaja->where('area', '<', $request->area_m2_max);
487 } 489 }
488 // условия поиска по цене - минимальная цена 490 // условия поиска по цене - минимальная цена
489 if (!empty($request->price_min)) { 491 if (!empty($request->price_min)) {
490 $house_prodaja = $house_prodaja->where('price', '>', $request->price_min); 492 $house_prodaja = $house_prodaja->where('price', '>', $request->price_min);
491 } 493 }
492 // условия поиска по цене - максимальная цена 494 // условия поиска по цене - максимальная цена
493 if (!empty($request->price_max)) { 495 if (!empty($request->price_max)) {
494 $house_prodaja = $house_prodaja->where('price', '<', $request->price_max); 496 $house_prodaja = $house_prodaja->where('price', '<', $request->price_max);
495 } 497 }
496 // условия поиска по адресу 498 // условия поиска по адресу
497 if (!empty($request->address)) { 499 if (!empty($request->address)) {
498 $house_prodaja = $house_prodaja->where('address', 'LIKE', "%".$request->address."%"); 500 $house_prodaja = $house_prodaja->where('address', 'LIKE', "%".$request->address."%");
499 } 501 }
500 502
501 if ($request->view == 'prodaja') { 503 if ($request->view == 'prodaja') {
502 switch ($request->sort_price) { 504 switch ($request->sort_price) {
503 case 1: $house_prodaja = $house_prodaja->orderBy('price');break; 505 case 1: $house_prodaja = $house_prodaja->orderBy('price');break;
504 case 2: $house_prodaja = $house_prodaja->orderByDesc('price');break; 506 case 2: $house_prodaja = $house_prodaja->orderByDesc('price');break;
505 } 507 }
506 switch ($request->sort_new) { 508 switch ($request->sort_new) {
507 case 1: $house_prodaja = $house_prodaja->orderByDesc('created_at');break; 509 case 1: $house_prodaja = $house_prodaja->orderByDesc('created_at');break;
508 case 2: $house_prodaja = $house_prodaja->orderBy('created_at');break; 510 case 2: $house_prodaja = $house_prodaja->orderBy('created_at');break;
509 } 511 }
510 switch ($request->sort_area) { 512 switch ($request->sort_area) {
511 case 1: $house_prodaja = $house_prodaja->orderByDesc('area')->get();break; 513 case 1: $house_prodaja = $house_prodaja->orderByDesc('area')->get();break;
512 case 2: $house_prodaja = $house_prodaja->orderBy('area')->get();break; 514 case 2: $house_prodaja = $house_prodaja->orderBy('area')->get();break;
513 } 515 }
514 } else { 516 } else {
515 $house_prodaja = $house_prodaja->orderBy('price')-> 517 $house_prodaja = $house_prodaja->orderBy('price')->
516 orderByDesc('created_at')-> 518 orderByDesc('created_at')->
517 orderByDesc('area')->get(); 519 orderByDesc('area')->get();
518 } 520 }
519 521
520 //////////////// Раздел бизнеса///////////////////////////////////////////////////////// 522 //////////////// Раздел бизнеса/////////////////////////////////////////////////////////
521 $house_bissnes = House::with('areas')-> 523 $house_bissnes = House::with('areas')->
522 where('format_house', '=', 'Бизнес'); 524 where('format_house', '=', 'Бизнес');
523 //orderByDesc('created_at')->get(); 525 //orderByDesc('created_at')->get();
524 526
525 // условия поиска по объектам комплексов 527 // условия поиска по объектам комплексов
526 if (!empty($request->area)) { 528 if (!empty($request->area)) {
527 $house_bissnes = $house_bissnes->where('area_id', '=', $request->area); 529 $house_bissnes = $house_bissnes->where('area_id', '=', $request->area);
528 } 530 }
529 // условия поиска по типу недвижимости 531 // условия поиска по типу недвижимости
530 if (!empty($request->type_area)) { 532 if (!empty($request->type_area)) {
531 $house_bissnes = $house_bissnes->where('type_area_id', '=', $request->type_area); 533 $house_bissnes = $house_bissnes->where('type_area_id', '=', $request->type_area);
532 } 534 }
533 // условия поиска по формату недвижимости 535 // условия поиска по формату недвижимости
534 if (!empty($request->format_area)) { 536 if (!empty($request->format_area)) {
535 $house_bissnes = $house_bissnes->where('format_area_id', '=', $request->format_area); 537 $house_bissnes = $house_bissnes->where('format_area_id', '=', $request->format_area);
536 } 538 }
537 // условия поиска по площади - минимальная площадь 539 // условия поиска по площади - минимальная площадь
538 if (!empty($request->area_m2_min)) { 540 if (!empty($request->area_m2_min)) {
539 $house_bissnes = $house_bissnes->where('area', '>', $request->area_m2_min); 541 $house_bissnes = $house_bissnes->where('area', '>', $request->area_m2_min);
540 } 542 }
541 // условия поиска по площади - максимальная площадь 543 // условия поиска по площади - максимальная площадь
542 if (!empty($request->area_m2_max)) { 544 if (!empty($request->area_m2_max)) {
543 $house_bissnes = $house_bissnes->where('area', '<', $request->area_m2_max); 545 $house_bissnes = $house_bissnes->where('area', '<', $request->area_m2_max);
544 } 546 }
545 // условия поиска по цене - минимальная цена 547 // условия поиска по цене - минимальная цена
546 if (!empty($request->price_min)) { 548 if (!empty($request->price_min)) {
547 $house_bissnes = $house_bissnes->where('price', '>', $request->price_min); 549 $house_bissnes = $house_bissnes->where('price', '>', $request->price_min);
548 } 550 }
549 // условия поиска по цене - максимальная цена 551 // условия поиска по цене - максимальная цена
550 if (!empty($request->price_max)) { 552 if (!empty($request->price_max)) {
551 $house_bissnes = $house_bissnes->where('price', '<', $request->price_max); 553 $house_bissnes = $house_bissnes->where('price', '<', $request->price_max);
552 } 554 }
553 // условия поиска по адресу 555 // условия поиска по адресу
554 if (!empty($request->address)) { 556 if (!empty($request->address)) {
555 $house_bissnes = $house_bissnes->where('address', 'LIKE', "%".$request->address."%"); 557 $house_bissnes = $house_bissnes->where('address', 'LIKE', "%".$request->address."%");
556 } 558 }
557 559
558 if ($request->view == 'bissnes') { 560 if ($request->view == 'bissnes') {
559 switch ($request->sort_price) { 561 switch ($request->sort_price) {
560 case 1: $house_bissnes = $house_bissnes->orderBy('price');break; 562 case 1: $house_bissnes = $house_bissnes->orderBy('price');break;
561 case 2: $house_bissnes = $house_bissnes->orderByDesc('price');break; 563 case 2: $house_bissnes = $house_bissnes->orderByDesc('price');break;
562 } 564 }
563 switch ($request->sort_new) { 565 switch ($request->sort_new) {
564 case 1: $house_bissnes = $house_bissnes->orderByDesc('created_at');break; 566 case 1: $house_bissnes = $house_bissnes->orderByDesc('created_at');break;
565 case 2: $house_bissnes = $house_bissnes->orderBy('created_at');break; 567 case 2: $house_bissnes = $house_bissnes->orderBy('created_at');break;
566 } 568 }
567 switch ($request->sort_area) { 569 switch ($request->sort_area) {
568 case 1: $house_bissnes = $house_bissnes->orderByDesc('area')->get();break; 570 case 1: $house_bissnes = $house_bissnes->orderByDesc('area')->get();break;
569 case 2: $house_bissnes = $house_bissnes->orderBy('area')->get();break; 571 case 2: $house_bissnes = $house_bissnes->orderBy('area')->get();break;
570 } 572 }
571 } else { 573 } else {
572 $house_bissnes = $house_bissnes->orderBy('price')-> 574 $house_bissnes = $house_bissnes->orderBy('price')->
573 orderByDesc('created_at')-> 575 orderByDesc('created_at')->
574 orderByDesc('area')->get(); 576 orderByDesc('area')->get();
575 } 577 }
576 578
577 //////////раздел арендованные////////////////////////////////////////////////////////// 579 //////////раздел арендованные//////////////////////////////////////////////////////////
578 $house_arendovannie = House::with('areas')-> 580 $house_arendovannie = House::with('areas')->
579 where('format_house', '=', 'Арендованные'); 581 where('format_house', '=', 'Арендованные');
580 //orderByDesc('created_at')->get(); 582 //orderByDesc('created_at')->get();
581 583
582 // условия поиска по объектам комплексов 584 // условия поиска по объектам комплексов
583 if (!empty($request->area)) { 585 if (!empty($request->area)) {
584 $house_arendovannie = $house_arendovannie->where('area_id', '=', $request->area); 586 $house_arendovannie = $house_arendovannie->where('area_id', '=', $request->area);
585 } 587 }
586 // условия поиска по типу недвижимости 588 // условия поиска по типу недвижимости
587 if (!empty($request->type_area)) { 589 if (!empty($request->type_area)) {
588 $house_arendovannie = $house_arendovannie->where('type_area_id', '=', $request->type_area); 590 $house_arendovannie = $house_arendovannie->where('type_area_id', '=', $request->type_area);
589 } 591 }
590 // условия поиска по формату недвижимости 592 // условия поиска по формату недвижимости
591 if (!empty($request->format_area)) { 593 if (!empty($request->format_area)) {
592 $house_arendovannie = $house_arendovannie->where('format_area_id', '=', $request->format_area); 594 $house_arendovannie = $house_arendovannie->where('format_area_id', '=', $request->format_area);
593 } 595 }
594 // условия поиска по площади - минимальная площадь 596 // условия поиска по площади - минимальная площадь
595 if (!empty($request->area_m2_min)) { 597 if (!empty($request->area_m2_min)) {
596 $house_arendovannie = $house_arendovannie->where('area', '>', $request->area_m2_min); 598 $house_arendovannie = $house_arendovannie->where('area', '>', $request->area_m2_min);
597 } 599 }
598 // условия поиска по площади - максимальная площадь 600 // условия поиска по площади - максимальная площадь
599 if (!empty($request->area_m2_max)) { 601 if (!empty($request->area_m2_max)) {
600 $house_arendovannie = $house_arendovannie->where('area', '<', $request->area_m2_max); 602 $house_arendovannie = $house_arendovannie->where('area', '<', $request->area_m2_max);
601 } 603 }
602 // условия поиска по цене - минимальная цена 604 // условия поиска по цене - минимальная цена
603 if (!empty($request->price_min)) { 605 if (!empty($request->price_min)) {
604 $house_arendovannie = $house_arendovannie->where('price', '>', $request->price_min); 606 $house_arendovannie = $house_arendovannie->where('price', '>', $request->price_min);
605 } 607 }
606 // условия поиска по цене - максимальная цена 608 // условия поиска по цене - максимальная цена
607 if (!empty($request->price_max)) { 609 if (!empty($request->price_max)) {
608 $house_arendovannie = $house_arendovannie->where('price', '<', $request->price_max); 610 $house_arendovannie = $house_arendovannie->where('price', '<', $request->price_max);
609 } 611 }
610 // условия поиска по адресу 612 // условия поиска по адресу
611 if (!empty($request->address)) { 613 if (!empty($request->address)) {
612 $house_arendovannie = $house_arendovannie->where('address', 'LIKE', "%".$request->address."%"); 614 $house_arendovannie = $house_arendovannie->where('address', 'LIKE', "%".$request->address."%");
613 } 615 }
614 616
615 if ($request->view == 'arendovannie') { 617 if ($request->view == 'arendovannie') {
616 switch ($request->sort_price) { 618 switch ($request->sort_price) {
617 case 1: $house_arendovannie = $house_arendovannie->orderBy('price');break; 619 case 1: $house_arendovannie = $house_arendovannie->orderBy('price');break;
618 case 2: $house_arendovannie = $house_arendovannie->orderByDesc('price');break; 620 case 2: $house_arendovannie = $house_arendovannie->orderByDesc('price');break;
619 } 621 }
620 switch ($request->sort_new) { 622 switch ($request->sort_new) {
621 case 1: $house_arendovannie = $house_arendovannie->orderByDesc('created_at');break; 623 case 1: $house_arendovannie = $house_arendovannie->orderByDesc('created_at');break;
622 case 2: $house_arendovannie = $house_arendovannie->orderBy('created_at');break; 624 case 2: $house_arendovannie = $house_arendovannie->orderBy('created_at');break;
623 } 625 }
624 switch ($request->sort_area) { 626 switch ($request->sort_area) {
625 case 1: $house_arendovannie = $house_arendovannie->orderByDesc('area')->get();break; 627 case 1: $house_arendovannie = $house_arendovannie->orderByDesc('area')->get();break;
626 case 2: $house_arendovannie = $house_arendovannie->orderBy('area')->get();break; 628 case 2: $house_arendovannie = $house_arendovannie->orderBy('area')->get();break;
627 } 629 }
628 } else { 630 } else {
629 $house_arendovannie = $house_arendovannie->orderBy('price')-> 631 $house_arendovannie = $house_arendovannie->orderBy('price')->
630 orderByDesc('created_at')-> 632 orderByDesc('created_at')->
631 orderByDesc('area')->get(); 633 orderByDesc('area')->get();
632 } 634 }
633 635
634 if ($request->ajax()) { 636 if ($request->ajax()) {
635 switch($request->view) { 637 switch($request->view) {
636 case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; 638 case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break;
637 case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; 639 case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break;
638 case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; 640 case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break;
639 case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; 641 case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break;
640 } 642 }
641 } 643 }
642 if (session('message') == 'Искать') { 644 if (session('message') == 'Искать') {
643 session()->flash('message', 'Сброс'); 645 session()->flash('message', 'Сброс');
644 } else { 646 } else {
645 session()->flash('message', 'Искать'); 647 session()->flash('message', 'Искать');
646 } 648 }
647 649
648 if (empty($request)) { 650 if (empty($request)) {
649 session()->flash('message', 'Искать'); 651 session()->flash('message', 'Искать');
650 } 652 }
651 653
652 return view('catalog', compact( 654 return view('catalog', compact(
653 'house_arenda', 655 'house_arenda',
654 'house_prodaja', 656 'house_prodaja',
655 'house_bissnes', 657 'house_bissnes',
656 'house_arendovannie' 658 'house_arendovannie'
657 )); 659 ));
658 660
659 661
660 } 662 }
661 663
662 /* 664 /*
663 * Новости 665 * Новости
664 */ 666 */
665 public function News() { 667 public function News() {
666 //$news = News::orderByDesc('created_at')->limit(1)->paginate(); 668 //$news = News::orderByDesc('created_at')->limit(1)->paginate();
667 $news_ = News::query()->orderByDesc('created_at')->paginate(4); 669 $news_ = News::query()->orderByDesc('created_at')->paginate(4);
668 return view('news', compact('news_')); 670 return view('news', compact('news_'));
669 } 671 }
670 672
671 /* 673 /*
672 * Контакты 674 * Контакты
673 */ 675 */
674 public function Contact() { 676 public function Contact() {
675 return view('contact'); 677 return view('contact');
676 } 678 }
677 679
678 /* 680 /*
679 * Карта объектов 681 * Карта объектов
680 */ 682 */
681 public function MapsObj(Request $request) { 683 public function MapsObj(Request $request) {
682 //$houses = House::with('areas'); 684 //$houses = House::with('areas');
683 //$houses = $houses->orderBy('id')->get(); 685 //$houses = $houses->orderBy('id')->get();
684 $input = $request->all(); 686 $input = $request->all();
685 687
686 $houses = House::with('areas'); 688 $houses = House::with('areas');
687 if (empty($input)) { 689 if (empty($input)) {
688 690
689 } else { 691 } else {
690 692
691 // условия поиска по объектам комплексов 693 // условия поиска по объектам комплексов
692 if (!empty($request->area)) { 694 if (!empty($request->area)) {
693 $houses = $houses->where('area_id', '=', $request->area); 695 $houses = $houses->where('area_id', '=', $request->area);
694 } 696 }
695 // условия поиска по типу недвижимости 697 // условия поиска по типу недвижимости
696 if (!empty($request->type_area)) { 698 if (!empty($request->type_area)) {
697 $houses = $houses->where('type_area_id', '=', $request->type_area); 699 $houses = $houses->where('type_area_id', '=', $request->type_area);
698 } 700 }
699 // условия поиска по формату недвижимости 701 // условия поиска по формату недвижимости
700 if (!empty($request->format_area)) { 702 if (!empty($request->format_area)) {
701 $houses = $houses->where('format_area_id', '=', $request->format_area); 703 $houses = $houses->where('format_area_id', '=', $request->format_area);
702 } 704 }
703 // условия поиска по площади - минимальная площадь 705 // условия поиска по площади - минимальная площадь
704 if (!empty($request->area_m2_min)) { 706 if (!empty($request->area_m2_min)) {
705 $houses = $houses->where('area', '>', $request->area_m2_min); 707 $houses = $houses->where('area', '>', $request->area_m2_min);
706 } 708 }
707 // условия поиска по площади - максимальная площадь 709 // условия поиска по площади - максимальная площадь
708 if (!empty($request->area_m2_max)) { 710 if (!empty($request->area_m2_max)) {
709 $houses = $houses->where('area', '<', $request->area_m2_max); 711 $houses = $houses->where('area', '<', $request->area_m2_max);
710 } 712 }
711 // условия поиска по цене - минимальная цена 713 // условия поиска по цене - минимальная цена
712 if (!empty($request->price_min)) { 714 if (!empty($request->price_min)) {
713 $houses = $houses->where('price', '>', $request->price_min); 715 $houses = $houses->where('price', '>', $request->price_min);
714 } 716 }
715 // условия поиска по цене - максимальная цена 717 // условия поиска по цене - максимальная цена
716 if (!empty($request->price_max)) { 718 if (!empty($request->price_max)) {
717 $houses = $houses->where('price', '<', $request->price_max); 719 $houses = $houses->where('price', '<', $request->price_max);
718 } 720 }
719 // условия поиска по адресу 721 // условия поиска по адресу
720 if (!empty($request->address)) { 722 if (!empty($request->address)) {
721 $houses = $houses->where('address', 'LIKE', "%".$request->address."%"); 723 $houses = $houses->where('address', 'LIKE', "%".$request->address."%");
722 } 724 }
723 } 725 }
724 726
725 $houses = $houses->orderByDesc('id')->get(); 727 $houses = $houses->orderByDesc('id')->get();
726 728
727 $areas = Area::query()->orderBy('id')->get(); 729 $areas = Area::query()->orderBy('id')->get();
728 730
729 return view('mapsobj', compact('areas', 'input', 'houses')); 731 return view('mapsobj', compact('areas', 'input', 'houses'));
730 } 732 }
731 733
732 /* 734 /*
733 * Посмотр конктретного предложение офиса 735 * Посмотр конктретного предложение офиса
734 */ 736 */
735 public function Offer(House $house) { 737 public function Offer(House $house, Request $request) {
736 $houses = House::with('areas'); 738 $houses = House::with('areas');
737 $houses = $houses->where('type_area_id', '=', $house->typearea->id); 739 $houses = $houses->where('type_area_id', '=', $house->typearea->id);
738 $houses = $houses->where('format_house', '=', $house->format_house); 740 $houses = $houses->where('format_house', '=', $house->format_house);
739 $houses = $houses->orderByDesc('created_at')->limit(8)->get(); 741 $houses = $houses->orderByDesc('created_at')->limit(8)->get();
740 742
741 return view('house.post', compact('house', 'houses')); 743 //получение адреса страницы
744 $url = $request->url();
745 // получение ip-адреса клиента
746 $ip = RusDate::ip_addr_client();
747
748 //получение выборки данных из базы данных по данной странице
749 $page_ = Page::query()->where('url', '=', "$url")->
750 orderBy('created_at')->limit(1)->get();
751
752 //если интервал времени больше суток, то обнуляем счетчик
753 if ($page_->count()) {
754 $result = RusDate::interval_day($page_[0]->created_at);
755 if ($result) {
756 DB::table('pages')->where('url', '=', "$url")->delete();
757 }
758 }
759 // проверяем если в базе данных данный ip-адрес
760 $count_user = DB::table('pages')->where('ipaddress', '=', "$ip")->
761 where('url', '=', "$url")->get();
762 // если есть, то обновляем дату просмотра
763 if ($count_user->count() > 0) {
764 DB::table('pages')->where('ipaddress', '=', "$ip")->
765 where('url', '=', "$url")->update(['created_at' => date('Y-m-d H:i')]);
766 } else {
767 // в противном случае добавляем новый ip В бд
768 $page = new Page();
769 $page->ipaddress = $ip;
770 $page->url = $url;
771 $page->save();
772 }
773
774 // выводим количество пользователей гостей данной страницы
775 $count_user = DB::table('pages')->where('url', '=', "$url")->get();
776 return view('house.post', compact('house', 'houses', 'count_user'));
742 } 777 }
743 778
744 /* 779 /*
745 * Просмотр детально конкретной новости 780 * Просмотр детально конкретной новости
746 */ 781 */
747 public function DetailNew(News $news) { 782 public function DetailNew(News $news) {
748 $news_list = News::query()->orderByDesc('created_at')->limit(8)->get(); 783 $news_list = News::query()->orderByDesc('created_at')->limit(8)->get();
749 return view('new.post', compact('news', 'news_list')); 784 return view('new.post', compact('news', 'news_list'));
750 } 785 }
751 } 786 }
752 787
File was created 1 <?php
2
3 namespace App\Models;
4
5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model;
7
8 class Page extends Model
9 {
10 use HasFactory;
11 }
12
database/migrations/2023_03_20_110427_create_pages_table.php
File was created 1 <?php
2
3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Facades\Schema;
6
7 return new class extends Migration
8 {
9 /**
10 * Run the migrations.
11 *
12 * @return void
13 */
14 public function up()
15 {
16 Schema::create('pages', function (Blueprint $table) {
17 $table->id();
18 $table->string('ipaddress', 100);
19 $table->string('url', 255);
20 $table->timestamps();
21 });
22 }
23
24 /**
25 * Reverse the migrations.
26 *
27 * @return void
28 */
29 public function down()
30 {
31 Schema::dropIfExists('pages');
32 }
33 };
34
public/js/main_main.js
File was created 1 // управляющий класс App с методом init(), в котором собраны все используемые методы с комментариями о том, что конкретно делает каждый метод
2
3 class App {
4
5 constructor() {
6 this.patternPhone = /^(\+7|7|8)?[\s\-]?\(?[489][0-9]{2}\)?[\s\-]?[0-9]{3}[\s\-]?[0-9]{2}[\s\-]?[0-9]{2}$/; // рег. выражение для поля 'телефон';
7 this.patternEmail = /^[a-zA-Z0-9._%+-\.]+@[a-z0-9.-]+\.[a-z]{2,}$/i; // рег. выражение для поля 'электронная почта';
8 }
9
10 init() {
11
12 console.log('init');
13
14 this.stickyHeader(); // липкий хедер;
15 this.controlBurgerMenu(); // бургер-меню;
16 this.smoothScroll(); // плавный скролл к якорю (smooth scroll);
17 this.scrollUp(); // кнопка наверх;
18 this.addToFavorites(); // добавить в избранное (звёздочка);
19 this.initTypicalSlider(); // типовые слайдеры;
20 this.initPartnerslSlider(); // слайдер с партнёрами;
21 this.controlFilters(); // фильтры на главном экране;
22 this.controlPopups(); // открытие/закрытие поп-апов;
23 this.controlContactUsPopup(); // открытие/закрытие поп-апа 'обратный звонок';
24
25 this.sendForm('.js_popup_feedback_form', '[data-popup="success"]'); // отправка формы в поп-апе обратной связи;
26 this.sendForm('.js_popup_viewing_form', '[data-popup="success"]'); // отправка формы в поп-апе 'записаться на просмотр';
27 this.sendForm('.js_footer_feedback_form', '[data-popup="success"]'); // отправка формы в футере;
28 this.sendForm('.js_contacts_form', '.js_contacts_success'); // отправка формы на странице контакты;
29 this.sendForm('.js_popup_sending_form_', '[data-popup="success"]');
30 //this.sendOffer(); //отправка предложения по e-mail;
31
32 //this.setGeneralMap(); // карта на странице карт;
33 //this.setComplexMap('complex-map', [55.726591050908745, 37.57244549999999], 'ЖК Садовые кварталы'); // карта на странице 'ЖК';
34 //this.setComplexMap('offer-map', [55.70851106903402, 37.65864349999999], 'Аренда торгового помещения 321,6 м2'); // карта на странице 'Предложение';
35 this.setCatalogSorts(); // сортировка на странице 'каталог';
36 this.initIntroSlider(); // слайдер на странице жк и на странице предложения;
37 this.setTabs('.js_offer_side_tab', '.js_offer_side_item'); // табы с планами объекат и этажа на странице предложения;
38 this.setTabs('.js_offer_side_popup_tab', '.js_offer_side_popup_item'); // табы с планами объекат и этажа в поп-апе на странице предложения;
39 this.sontrolOfferSidePopup(); // логика открытия нужного таба при открытии поп-апа с планами объекат и этажа на странице предложения;
40 this.setCustomGallery(); // галлерея;
41 this.setCookies() // куки;
42 this.setFooterSpoilers() // аккордеон в футере;
43
44 }
45
46 // фиксация <body>
47 fixBodyPosition() {
48
49 setTimeout(function () {
50 // ставим необходимую задержку, чтобы не было «конфликта» в случае, если функция фиксации вызывается сразу после расфиксации (расфиксация отменяет действия расфиксации из-за одновременного действия)
51
52 if (!document.body.hasAttribute('data-body-scroll-fix')) {
53
54 // получаем позицию прокрутки
55 let scrollPosition = window.pageYOffset || document.documentElement.scrollTop;
56
57 // ставим нужные стили
58 document.body.setAttribute('data-body-scroll-fix', scrollPosition); // Cтавим атрибут со значением прокрутки
59 document.body.style.overflow = 'hidden';
60 document.body.style.position = 'fixed';
61 document.body.style.top = '-' + scrollPosition + 'px';
62 document.body.style.left = '0';
63 document.body.style.width = '100%';
64
65 if (window.innerWidth >= 1200) {
66 document.body.style.paddingRight = '8px';
67 }
68 }
69
70 }, 15); // можно задержку ещё меньше, но работает хорошо именно с этим значением на всех устройствах и браузерах
71
72 }
73
74
75 // расфиксация <body>
76 unfixBodyPosition() {
77
78 if (document.body.hasAttribute('data-body-scroll-fix')) {
79
80 // получаем позицию прокрутки из атрибута
81 let scrollPosition = document.body.getAttribute('data-body-scroll-fix');
82
83 // удаляем атрибут
84 document.body.removeAttribute('data-body-scroll-fix');
85
86 // удаляем ненужные стили
87 document.body.style.overflow = '';
88 document.body.style.position = '';
89 document.body.style.top = '';
90 document.body.style.left = '';
91 document.body.style.width = '';
92 document.body.style.paddingRight = '';
93
94 // прокручиваем страницу на полученное из атрибута значение
95 window.scroll(0, scrollPosition);
96
97 }
98
99 }
100
101
102 // бургер-меню
103 controlBurgerMenu() {
104
105 const headerBurger = document.querySelector('.js_header_burger');
106
107 if (headerBurger) {
108
109 const menu = document.querySelector('.js_menu');
110 const menuClose = menu.querySelector('.js_menu_close');
111
112 headerBurger.addEventListener('click', () => {
113 menu.classList.add('active');
114 this.fixBodyPosition();
115 });
116
117 menu.addEventListener('click', (e) => {
118
119 if (e.target == menu) {
120 menu.classList.remove('active');
121 this.unfixBodyPosition();
122 }
123
124 });
125
126 menuClose.addEventListener('click', () => {
127 menu.classList.remove('active');
128 this.unfixBodyPosition();
129 });
130
131 }
132
133 }
134
135
136 // липкий хедер
137 stickyHeader() {
138
139 const header = document.querySelector('.js_header');
140
141 if (header) {
142
143 window.addEventListener('scroll', () => {
144
145 if (window.scrollY > 200) {
146 header.classList.add('fixed');
147 } else {
148 header.classList.remove('fixed');
149 }
150
151 });
152
153 };
154
155 }
156
157
158 // плавный скролл к якорю (smooth scroll)
159 smoothScroll() {
160
161 const smoothLinks = document.querySelectorAll('.js_smooth_link');
162
163 if (smoothLinks.length) {
164
165 smoothLinks.forEach(link => {
166
167 link.addEventListener('click', function (e) {
168
169 e.preventDefault();
170
171 let href = this.getAttribute('href').substring(1);
172
173 const scrollTarget = document.getElementById(href);
174
175 // const topOffset = document.querySelector('.header').offsetHeight;
176 const topOffset = 0; // если не нужен отступ сверху
177 const elementPosition = scrollTarget.getBoundingClientRect().top;
178 const offsetPosition = elementPosition - topOffset;
179
180 window.scrollBy({
181 top: offsetPosition,
182 behavior: 'smooth'
183 });
184
185 });
186
187 });
188
189 }
190
191 }
192
193
194 // кнопка наверх
195 scrollUp() {
196
197 const toTopBtn = document.querySelector('.js_btn_up');
198
199 if (toTopBtn) {
200
201 toTopBtn.addEventListener('click', function () {
202
203 window.scrollTo({
204 top: 0,
205 behavior: 'smooth'
206 });
207
208 });
209
210 }
211
212 }
213
214
215 // добавить в избранное (звёздочка)
216 addToFavorites() {
217
218 const cardFavorites = document.querySelectorAll('.js_card_favorites');
219
220 if (cardFavorites.length) {
221
222 cardFavorites.forEach(item => {
223
224 item.addEventListener('click', (e) => {
225 e.preventDefault();
226 item.classList.toggle('active');
227 });
228
229 });
230
231 }
232
233 }
234
235
236 // типовые слайдеры
237 initTypicalSlider() {
238
239 const slidersWraps = document.querySelectorAll('.slider__wrap');
240
241 if (slidersWraps.length) {
242
243 slidersWraps.forEach(wrap => {
244
245 const slider = wrap.querySelector('.swiper');
246 const prev = wrap.querySelector('.swiper-button-prev');
247 const next = wrap.querySelector('.swiper-button-next');
248 const pagination = wrap.querySelector('.swiper-pagination');
249
250 let swiper1 = new Swiper(slider, {
251 navigation: {
252 nextEl: next,
253 prevEl: prev,
254 },
255 pagination: {
256 el: pagination,
257 clickable: true,
258 },
259 slidesPerView: 1,
260 spaceBetween: 20,
261 observer: true,
262 observeParents: true,
263 observeSlideChildren: true,
264 breakpoints: {
265 480: {
266 slidesPerView: 1.5,
267 },
268 640: {
269 slidesPerView: 2,
270 },
271 780: {
272 slidesPerView: 2.5,
273 },
274 920: {
275 slidesPerView: 3,
276 },
277 1024: {
278 slidesPerView: 3.4
279 },
280 1200: {
281 slidesPerView: 4,
282 }
283 }
284 });
285
286 });
287
288 }
289
290 }
291
292
293 // метод, делающий число удобночитаемым (добавляет пробел справа через каждые 3 цифры)
294 prettify(num) {
295 const withoutSpace = num.replace(/[^\d]/g, ''); //убирает все символы;
296 return withoutSpace.replace(/(?!^)(?=(?:\d{3})+(?:\.|$))/gm, ' '); //ставит пробелы;
297 }
298
299
300 // фильтры на главном экране
301 controlFilters() {
302
303 const heroFilters = document.querySelectorAll('.js_hero_filter');
304 const heroSearchBtns = document.querySelectorAll('.js_hero_search_btn');
305
306 if (heroFilters.length) {
307
308 heroFilters.forEach(filter => {
309
310 const heroFilterInput = filter.querySelector('.js_hero_filter_input');
311 const heroFilterCurrent = filter.querySelector('.js_hero_filter_current');
312 const heroFilterItems = filter.querySelectorAll('.hero-filter__item');
313 const heroFilterFields = filter.querySelectorAll('.js_hero_filter_field');
314 const heroFilterFrom = filter.querySelector('.js_hero_filter_from');
315 const heroFilterTo = filter.querySelector('.js_hero_filter_to');
316 const heroFilterReset = filter.querySelector('.js_hero_filter_reset');
317
318 heroFilterCurrent.addEventListener('click', () => {
319
320 if (filter.classList.contains('active')) {
321
322 filter.classList.remove('active');
323
324 heroSearchBtns.forEach(btn => {
325 btn.disabled = false;
326 });
327
328 } else {
329
330 heroFilters.forEach(filter => {
331 filter.classList.remove('active');
332 });
333
334 filter.classList.add('active');
335
336 heroSearchBtns.forEach(btn => {
337 btn.disabled = true;
338 });
339
340 }
341
342 });
343
344 if (heroFilterItems.length) {
345
346 heroFilterItems.forEach(item => {
347
348 item.addEventListener('click', () => {
349
350 heroFilterCurrent.textContent = item.textContent;
351 heroFilterInput.value = item.dataset.val;
352 filter.classList.remove('active');
353
354 heroSearchBtns.forEach(btn => {
355 btn.disabled = false;
356 });
357
358 });
359
360 });
361
362 }
363
364 if (heroFilterFields.length) {
365
366 const heroFilterMin = heroFilterFrom.dataset.min;
367 const heroFilterMax = heroFilterTo.dataset.max;
368
369 let heroFilterFromVal;
370 let heroFilterToVal;
371
372 heroFilterFields.forEach(field => {
373
374 field.addEventListener('input', () => {
375
376 field.value = this.prettify(field.value);
377
378 heroFilterReset.classList.remove('active');
379
380 heroFilterFields.forEach(field => {
381
382 if (field.value != "") {
383 heroFilterReset.classList.add('active');
384 }
385
386 });
387
388 });
389
390 });
391
392 heroFilterFrom.addEventListener('change', () => {
393
394 heroFilterFromVal = +heroFilterFrom.value.replace(/\s/g, '');
395 heroFilterToVal = +heroFilterTo.value.replace(/\s/g, '');
396
397 if (heroFilterToVal != '' && heroFilterFromVal > heroFilterToVal) {
398
399 heroFilterFrom.value = heroFilterTo.value;
400
401 } else if (heroFilterFromVal < +heroFilterMin) {
402
403 heroFilterFrom.value = this.prettify(heroFilterMin);
404
405 } else if (heroFilterFromVal > +heroFilterMax) {
406
407 heroFilterFrom.value = this.prettify(heroFilterMax);
408
409 }
410
411 });
412
413 heroFilterTo.addEventListener('change', () => {
414
415 heroFilterFromVal = +heroFilterFrom.value.replace(/\s/g, '');
416 heroFilterToVal = +heroFilterTo.value.replace(/\s/g, '');
417
418 if (heroFilterFromVal != '' && heroFilterToVal < heroFilterFromVal) {
419
420 heroFilterTo.value = heroFilterFrom.value;
421
422 } else if (heroFilterToVal < +heroFilterMin) {
423
424 heroFilterTo.value = this.prettify(heroFilterMax);
425
426 } else if (heroFilterToVal > +heroFilterMax) {
427
428 heroFilterTo.value = this.prettify(heroFilterMax);
429
430 }
431
432 });
433
434 heroFilterReset.addEventListener('click', () => {
435
436 heroFilterFields.forEach(field => {
437 field.value = '';
438 });
439
440 heroFilterReset.classList.remove('active');
441
442 });
443 }
444
445 });
446
447 document.addEventListener('click', (e) => {
448
449 if (!e.target.closest('.js_hero_filter_dropdown') && !e.target.closest('.js_hero_filter_current')) {
450
451 heroFilters.forEach(filter => {
452 filter.classList.remove('active');
453 });
454
455 heroSearchBtns.forEach(btn => {
456 btn.disabled = false;
457 });
458
459 }
460
461 });
462
463 }
464
465 }
466
467
468 // открытие/закрытие типовых поп-апов
469 controlPopups() {
470
471 const popupShowBtns = document.querySelectorAll('[data-btn]');
472 const popups = document.querySelectorAll('[data-popup]');
473
474 if (popupShowBtns.length) {
475
476 popupShowBtns.forEach(btn => {
477
478 btn.addEventListener('click', (e) => {
479
480 e.preventDefault();
481
482 popups.forEach(popup => {
483
484 popup.classList.remove('active'); // если какойто поп-ап открыт, то закрываем его;
485 this.unfixBodyPosition();
486
487 if (btn.dataset.btn == popup.dataset.popup) {
488 popup.classList.add('active');
489 this.fixBodyPosition();
490 }
491
492 });
493
494
495 });
496
497 });
498
499 popups.forEach(popup => {
500
501 const popupCloseBtns = popup.querySelectorAll('.js_popup_close');
502
503 popupCloseBtns.forEach(btn => {
504
505 btn.addEventListener('click', (e) => {
506 e.preventDefault();
507 popup.classList.remove('active');
508 this.unfixBodyPosition();
509 });
510
511 });
512
513 popup.addEventListener('click', (e) => {
514
515 if (e.target == popup) {
516
517 popup.classList.remove('active');
518 this.unfixBodyPosition();
519 }
520
521 });
522
523 });
524
525 }
526 }
527
528
529 // открытие/закрытие поп-апа 'обратный звонок'
530 controlContactUsPopup() {
531
532 const contactUsBtn = document.querySelector('.js_btn_contact_us');
533 const contactUsPopup = document.querySelector('.js_contact_us');
534
535 if (contactUsPopup) {
536
537 const contactUsPopupCloseBtns = contactUsPopup.querySelectorAll('.js_contact_us_close');
538
539 contactUsBtn.addEventListener('click', (e) => {
540
541 e.preventDefault();
542
543 if (contactUsPopup.classList.contains('active')) {
544 contactUsPopup.classList.remove('active');
545 } else {
546 contactUsPopup.classList.add('active');
547 }
548
549 });
550
551 contactUsPopupCloseBtns.forEach(btn => {
552 btn.addEventListener('click', () => {
553 contactUsPopup.classList.remove('active');
554 });
555 });
556
557
558 document.addEventListener('click', (e) => {
559
560 if (!e.target.closest('.js_contact_us') && !e.target.closest('.js_btn_contact_us')) {
561 contactUsPopup.classList.remove('active');
562 }
563
564 });
565
566 }
567
568 }
569
570
571 // валидатор форм
572 validateForm(input) {
573
574 // функция добавления ошибки
575 const createError = (text) => {
576
577 input.classList.add('error');
578 input.classList.remove('no-error');
579
580 if (input.closest('label').querySelector('span.error')) {
581 input.closest('label').querySelector('span.error').remove();
582 input.closest('label').insertAdjacentHTML('beforeend', `<span class="error">${text}</span>`);
583 } else {
584 input.closest('label').insertAdjacentHTML('beforeend', `<span class="error">${text}</span>`);
585 }
586
587 }
588
589 // функция удаления ошибки
590 const removeError = () => {
591
592 input.classList.remove('error');
593 input.classList.add('no-error');
594
595 if (input.closest('label').querySelector('span.error')) {
596 input.closest('label').querySelector('span.error').remove();
597 }
598
599 }
600
601 // проверяем на правильность заполнения поля 'Телефон'
602 if (input.classList.contains('js_input_phone') && input.value == "") {
603 createError('Заполните, пожалуйста, поле');
604 } else if (input.classList.contains('js_input_phone') && input.value.search(this.patternPhone) == 0) {
605 removeError();
606 } else if (input.classList.contains('js_input_phone')) {
607 createError('Укажите, пожалуйста, корректный телефон');
608 }
609
610 // проверяем правильность заполнения поля 'Электронная почта'
611 if (input.classList.contains('js_input_email') && input.value == "") {
612 createError('Заполните, пожалуйста, поле');
613 } else if (input.classList.contains('js_input_email') && input.value.search(this.patternEmail) == 0) {
614 removeError();
615 } else if (input.classList.contains('js_input_email')) {
616 createError('Укажите, пожалуйста, корректный e-mail');
617 }
618
619 }
620
621
622 // отправка форм
623 sendForm(formEl, success) {
624
625 const form = document.querySelector(formEl);
626
627 if (form) {
628
629 form.addEventListener('submit', async (e) => {
630
631 e.preventDefault();
632
633 const formInputs = form.querySelectorAll('input');
634 const formBtn = form.querySelector('.js_form_btn');
635
636 formInputs.forEach(input => { // перебираем все инпуты в форме;
637
638 this.validateForm(input);
639
640 input.addEventListener('input', () => {
641 this.validateForm(input);
642 });
643
644 });
645
646 if (!form.querySelector('.error')) { //проверяем, чтоб все инпуты прошли валидацию (чтоб не было в форме ни одного элемента с класссом error);
647
648 // сюда пишем команды, которые должны сработать после успешной валидации;
649
650 console.log('validate');
651 formBtn.classList.add('btn-animate');
652 formBtn.disabled = true;
653
654 const formData = new FormData(form);
655
656 console.log(...formData);
657
658 const response = await fetch(e.target.action, {
659 method: e.target.method,
660 body: formData
661 });
662
663 if (response.ok) {
664
665 setTimeout(() => { // имитация отправки, когда отправка будет настроена, нужно достать всё из setTimeout() и удалить его;
666
667 console.log('Отправлено');
668 formBtn.classList.remove('btn-animate');
669 formBtn.disabled = false;
670 if (document.querySelector('[data-popup="feedback"]')) {
671 document.querySelector('[data-popup="feedback"]').classList.remove('active');
672 }
673 if (document.querySelector('[data-popup="viewing"]')) {
674 document.querySelector('[data-popup="viewing"]').classList.remove('active');
675 }
676 document.querySelector(success).classList.add('active');
677 this.fixBodyPosition();
678 form.reset();
679
680 formInputs.forEach(input => {
681 input.classList.remove('no-error');
682 });
683
684 }, 2000)
685
686 } else {
687 formBtn.classList.remove('btn-animate');
688 formBtn.disabled = false;
689 alert('Ошибка');
690 }
691
692 } else {
693 console.log('no-validate');
694 form.querySelector('.error').focus(); //фокус к полю с ошибкой;
695 }
696
697 });
698
699 }
700
701 }
702
703 //отправка предложения по e-mail
704 sendOffer() {
705
706 const form = document.querySelector('.js_popup_sending_form');
707
708 if (form) {
709
710 form.addEventListener('submit', async (e) => {
711
712 e.preventDefault();
713
714 const formInputs = form.querySelectorAll('input');
715 const formBtn = form.querySelector('.js_form_btn');
716
717 formInputs.forEach(input => { // перебираем все инпуты в форме;
718
719 this.validateForm(input);
720
721 input.addEventListener('input', () => {
722 this.validateForm(input);
723 });
724
725 });
726
727 if (!form.querySelector('.error')) { //проверяем, чтоб все инпуты прошли валидацию (чтоб не было в форме ни одного элемента с класссом error);
728
729 // сюда пишем команды, которые должны сработать после успешной валидации;
730
731 console.log('validate');
732 formBtn.classList.add('btn-animate');
733 formBtn.disabled = true;
734
735 const formData = new FormData(form);
736
737 console.log(...formData);
738
739 const response = await fetch(e.target.action, {
740 method: e.target.method,
741 body: formData
742 });
743
744 if (response.ok) {
745
746 setTimeout(() => { // имитация отправки, когда отправка будет настроена, нужно достать всё из setTimeout() и удалить его;
747
748 console.log('Отправлено');
749 formBtn.classList.remove('btn-animate');
750 formBtn.disabled = false;
751 if (document.querySelector('[data-popup="sending"]')) {
752 document.querySelector('[data-popup="sending"]').classList.remove('active');
753 }
754 this.fixBodyPosition();
755 form.reset();
756
757 formInputs.forEach(input => {
758 input.classList.remove('no-error');
759 });
760
761 }, 2000)
762
763 } else {
764 formBtn.classList.remove('btn-animate');
765 formBtn.disabled = false;
766 alert('Ошибка');
767 }
768
769 } else {
770 console.log('no-validate');
771 form.querySelector('.error').focus(); //фокус к полю с ошибкой;
772 }
773
774 });
775
776 }
777
778 }
779
780
781 // карта на странице 'ЖК'
782 /* setComplexMap(id, coords, caption) {
783
784 if (document.querySelector('#' + id)) {
785
786 // Дождёмся загрузки API и готовности DOM.
787 ymaps.ready(init);
788
789 function init() {
790 const map = new ymaps.Map(id, {
791 // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования.
792 center: coords,
793 zoom: 16,
794 controls: []
795 });
796
797 // Создаём макет содержимого.
798 const MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
799 '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
800 );
801
802 // Создание макета содержимого хинта.
803 // Макет создается через фабрику макетов с помощью текстового шаблона.
804 const HintLayout = ymaps.templateLayoutFactory.createClass("<div class='my-hint'>" +
805 "{{ properties.object }}" + "</div>", {
806 // Определяем метод getShape, который
807 // будет возвращать размеры макета хинта.
808 // Это необходимо для того, чтобы хинт автоматически
809 // сдвигал позицию при выходе за пределы карты.
810 getShape: function () {
811 let el = this.getElement(),
812 result = null;
813 if (el) {
814 var firstChild = el.firstChild;
815 result = new ymaps.shape.Rectangle(
816 new ymaps.geometry.pixel.Rectangle([
817 [0, 0],
818 [firstChild.offsetWidth, firstChild.offsetHeight]
819 ])
820 );
821 }
822 return result;
823 }
824 }
825 );
826
827 // метка
828 const placemark = new ymaps.Placemark(coords, {
829 // hintContent: caption,
830 // balloonContent: caption,
831 iconContent: '1',
832 // address: caption,
833 object: caption
834 }, {
835 iconLayout: 'default#imageWithContent',
836 iconImageHref: 'images/mark-complex.svg',
837 iconImageSize: [52, 67],
838 iconImageOffset: [-26, -67],
839 iconContentOffset: [0, 17],
840 iconContentLayout: MyIconContentLayout,
841 hintLayout: HintLayout
842 });
843
844 map.geoObjects.add(placemark);
845
846 }
847
848 }
849
850 }
851 */
852
853 // фильтры и сортировка на странице 'каталог'
854 setCatalogSorts() {
855
856 const sortGroups = document.querySelectorAll('.js_sort_group');
857
858 if (sortGroups.length) {
859
860 sortGroups.forEach(group => {
861
862 const sortGroupInput = group.querySelector('.js_sort_group_input');
863 const sortGroupCurrent = group.querySelector('.js_sort_group_current');
864 const sortGroupList = group.querySelector('.js_sort_group_list');
865 const sortGroupItems = group.querySelectorAll('.js_sort_group_item');
866
867 const sendRequest = () => {
868
869 const spinner = document.querySelector('.spinner'); // спиннер;
870
871 spinner.classList.add('active');
872 document.body.classList.add('overlay');
873 /*this.fixBodyPosition();
874
875 fetch('test.json')
876 .then(response => response.json())
877 .then(data => {
878
879 console.log()
880
881 setTimeout(() => { //имитация ответа сервера
882
883 spinner.classList.remove('active');
884 document.body.classList.remove('overlay');
885 this.unfixBodyPosition();
886
887 }, 3000);
888
889 })
890 .catch(err => {
891 console.log(err);
892 });
893
894 */
895 spinner.classList.remove('active');
896 document.body.classList.remove('overlay');
897
898
899 };
900
901 sortGroupCurrent.addEventListener('click', () => {
902
903 if (group.classList.contains('active')) {
904
905 group.classList.remove('active');
906
907 } else {
908
909 sortGroups.forEach(group => {
910 group.classList.remove('active');
911 });
912
913 group.classList.add('active');
914
915 }
916
917 });
918
919 sortGroupItems.forEach(item => {
920
921 item.addEventListener('click', () => {
922
923 sortGroupItems.forEach(item => {
924 item.classList.remove('active');
925 });
926
927 item.classList.add('active');
928 sortGroupCurrent.textContent = item.textContent;
929 sortGroupInput.value = item.dataset.val;
930 group.classList.remove('active');
931
932 sendRequest();
933
934 });
935
936 });
937
938 });
939
940 document.addEventListener('click', (e) => {
941
942 if (!e.target.closest('.js_sort_group_list') && !e.target.closest('.js_sort_group_current')) {
943
944 sortGroups.forEach(group => {
945 group.classList.remove('active');
946 });
947
948 }
949
950 });
951
952 }
953
954 }
955
956
957 // слайдер на странице жк и на странице предложения
958 initIntroSlider() {
959
960 let swiper3 = new Swiper('.intro__swiper', {
961 navigation: {
962 nextEl: '.swiper-button-next',
963 prevEl: '.swiper-button-prev',
964 },
965 pagination: {
966 el: '.swiper-pagination',
967 clickable: true,
968 },
969 slidesPerView: 1.1,
970 spaceBetween: 20,
971 breakpoints: {
972 480: {
973 slidesPerView: 1.5,
974 },
975 640: {
976 slidesPerView: 1.75,
977 },
978 780: {
979 slidesPerView: 2.15,
980 },
981 1024: {
982 slidesPerView: 3.5,
983 },
984 1200: {
985 slidesPerView: 1,
986 }
987 }
988 });
989
990 }
991
992
993 // табы на странице предложения
994 setTabs(tabs, items) {
995
996 const offerSideTabs = document.querySelectorAll(tabs);
997 const offerSideItems = document.querySelectorAll(items);
998
999 if (offerSideTabs) {
1000
1001 offerSideTabs.forEach(tab => {
1002
1003 tab.addEventListener('click', () => {
1004
1005 offerSideTabs.forEach(tab => {
1006 tab.classList.remove('active');
1007 });
1008
1009 tab.classList.add('active');
1010
1011 offerSideItems.forEach(item => {
1012
1013 item.classList.remove('active', 'fade');
1014
1015 if (tab.dataset.tab == item.dataset.item) {
1016 item.classList.add('active', 'fade');
1017 }
1018
1019 });
1020
1021 });
1022
1023 });
1024
1025 }
1026
1027 }
1028
1029
1030 // логика открытия нужного таба при открытии поп-апа с планами объекат и этажа на странице предложения
1031 sontrolOfferSidePopup() {
1032
1033 const offerSideItems = document.querySelectorAll('.js_offer_side_item');
1034 const offerSidePopupTabs = document.querySelectorAll('.js_offer_side_popup_tab');
1035 const offerSidePopupItems = document.querySelectorAll('.js_offer_side_popup_item');
1036
1037 if (offerSideItems) {
1038
1039 offerSideItems.forEach(item => {
1040
1041 const offerSideItemBtn = item.querySelector('.js_offer_side_item_btn');
1042
1043 offerSideItemBtn.addEventListener('click', (e) => {
1044
1045 e.preventDefault();
1046
1047 offerSidePopupTabs.forEach(tab => {
1048
1049 tab.classList.remove('active');
1050
1051 if (item.dataset.item == tab.dataset.tab) {
1052 tab.classList.add('active');
1053 }
1054
1055 });
1056
1057 offerSidePopupItems.forEach(el => {
1058
1059 el.classList.remove('active', 'fade');
1060
1061 if (item.dataset.item == el.dataset.item) {
1062 el.classList.add('active', 'fade');
1063 }
1064
1065 });
1066
1067 });
1068
1069 });
1070
1071 }
1072
1073 }
1074
1075
1076 // галлерея
1077 setCustomGallery() {
1078
1079 let swiper4 = new Swiper(".img-viewer__thumbs-swiper", {
1080 slidesPerView: 3,
1081 spaceBetween: 8,
1082 // freeMode: true,
1083 observer: true,
1084 observeParents: true,
1085 observeSlideChildren: true,
1086 breakpoints: {
1087 640: {
1088 spaceBetween: 10,
1089 },
1090 },
1091 });
1092
1093 let swiper5 = new Swiper(".img-viewer__slider .swiper", {
1094 navigation: {
1095 nextEl: ".img-viewer__slider .swiper-button-next",
1096 prevEl: ".img-viewer__slider .swiper-button-prev",
1097 },
1098 slidesPerView: 1,
1099 spaceBetween: 20,
1100 thumbs: {
1101 swiper: swiper4
1102 },
1103 observer: true,
1104 observeParents: true,
1105 observeSlideChildren: true,
1106 });
1107
1108 if (document.querySelector('.js_intro_item_btn')) {
1109
1110 const imgViewer = document.querySelector('.js_img_viewer');
1111 const imgViewerCloses = imgViewer.querySelectorAll('.js_img_viewer_close');
1112 const imgViewerCaption = imgViewer.querySelector('.js_img_viewer_caption');
1113
1114 const imgViewerSliderSwiper = imgViewer.querySelector('.js_img_viewer_slider_swiper');
1115 const imgViewerSliderSwiperWrap = imgViewerSliderSwiper.querySelector('.js_img_viewer_slider_swiper .swiper-wrapper');
1116
1117 const imgViewerThumbsSwiper = imgViewer.querySelector('.js_img_viewer_thumbs_swiper');
1118 const imgViewerThumbsSwiperWrap = imgViewerThumbsSwiper.querySelector('.js_img_viewer_thumbs_swiper .swiper-wrapper');
1119
1120 const introItemBtns = document.querySelectorAll('.js_intro_item_btn');
1121
1122 introItemBtns.forEach((btn, i) => {
1123
1124 btn.addEventListener('click', (e) => {
1125
1126 e.preventDefault();
1127
1128 imgViewer.classList.add('active');
1129 this.fixBodyPosition();
1130
1131 imgViewerSliderSwiperWrap.innerHTML = '';
1132 imgViewerThumbsSwiperWrap.innerHTML = '';
1133 imgViewerCaption.textContent = '';
1134
1135
1136 introItemBtns.forEach(btn => {
1137
1138 imgViewerSliderSwiperWrap.insertAdjacentHTML('beforeend', `
1139 <div class="swiper-slide">
1140 <img src="${btn.getAttribute('href')}" alt="">
1141 </div>`
1142 );
1143
1144 imgViewerThumbsSwiperWrap.insertAdjacentHTML('beforeend', `
1145 <div class="swiper-slide">
1146 <img src="${btn.getAttribute('href')}" alt="">
1147 </div>`
1148 );
1149
1150 });
1151
1152 swiper4.update();
1153 swiper5.update();
1154 swiper5.slideTo(i);
1155 imgViewerCaption.textContent = btn.dataset.caption;
1156
1157 });
1158
1159 });
1160
1161 swiper5.on('slideChange', function () {
1162 imgViewerCaption.textContent = introItemBtns[swiper5.realIndex].dataset.caption;
1163 });
1164
1165 imgViewerCloses.forEach(close => {
1166
1167 close.addEventListener('click', () => {
1168
1169 imgViewer.classList.remove('active');
1170 this.unfixBodyPosition();
1171
1172 });
1173
1174 });
1175
1176 }
1177
1178 }
1179
1180
1181 // куки
1182 setCookies() {
1183
1184 const cookies = document.querySelector('.js_cookies');
1185 const cookiesBtn = document.querySelector('.js_cookies_confirm');
1186 const cookiesTrigger = document.querySelector('.js_btn_cookies');
1187
1188 if (cookiesTrigger) {
1189
1190 cookiesTrigger.addEventListener('click', () => {
1191 cookies.classList.add('active');
1192 });
1193
1194 };
1195
1196 if (cookies) {
1197
1198 cookiesBtn.addEventListener('click', () => {
1199 cookies.classList.remove('active');
1200 });
1201
1202 };
1203
1204 }
1205
1206
1207 // карта на странице карт;
1208 /*
1209 //setGeneralMap() {
1210
1211 if (document.querySelector('#general-map')) {
1212
1213 ymaps.ready(init); // Дождёмся загрузки API и готовности DOM;
1214
1215 function init() {
1216
1217 const myMap = new ymaps.Map('general-map', { // Создание экземпляра карты и его привязка к контейнеру с заданным id;
1218 center: [55.752933963675126, 37.52233749962665], // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования;
1219 zoom: 10,
1220 controls: [] // Скрываем элементы управления на карте;
1221 });
1222
1223 // Создаём макет содержимого.
1224 const MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
1225 '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
1226 );
1227
1228 let collection = new ymaps.GeoObjectCollection(null, { // Создаём коллекцию, в которую будемпомещать метки (что-то типа массива);
1229 // preset: 'islands#yellowIcon'
1230 });
1231
1232 let collectionCoords = [ // Создаём массив с координатами (координаты должны располагаться в том же порядке, что и адреса в списке на сайте);
1233 [55.867783219108354, 37.392867499999916],
1234 [55.728043075486504, 37.73937949999994],
1235 [55.72624100423305, 37.476078499999964],
1236 [55.80751105044832, 37.449622999999974],
1237 [55.601783098948836, 37.36700499999998],
1238 [55.86086502152225, 37.540348999999964],
1239 [55.784961528728715, 37.56188599999996],
1240 [55.63910010399773, 37.319407999999996],
1241 [55.55819256767507, 37.55711549999994],
1242 [55.79829252928473, 37.52063549999999],
1243 ];
1244
1245 for (let i = 0, l = collectionCoords.length; i < l; i++) { // C помощью цикла добавляем все метки в коллекцию;
1246 collection.add(new ymaps.Placemark(collectionCoords[i]));
1247 collection.get(i).properties.set('iconContent', `${i + 1}`); // Добавляем каждой метке порядковый номер, записываем его в свойство 'iconContent';
1248 }
1249
1250 myMap.geoObjects.add(collection); // Добавляем коллекцию с метками на карту;
1251
1252 collection.options.set('iconLayout', 'default#imageWithContent'); // Необходимо указать данный тип макета;
1253 collection.options.set('iconImageHref', 'images/mark-complex.svg'); // Своё изображение иконки метки;
1254 collection.options.set('iconImageSize', [52, 67]); // Размеры метки;
1255 collection.options.set('iconImageOffset', [-26, -67]); // Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки);
1256 collection.options.set('iconContentOffset', [0, 17]);
1257 collection.options.set('iconContentLayout', MyIconContentLayout); // Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки);
1258
1259 const pageMapBar = document.querySelector('.js_page_map_bar');
1260 const pageMapBarBtn = pageMapBar.querySelector('.js_page_map_bar_btn');
1261 const pageMapBarList = pageMapBar.querySelector('.js_page_map_bar_list');
1262 const pageMapBarCards = pageMapBar.querySelectorAll('.card-news');
1263
1264 const showCard = (i) => {
1265
1266 pageMapBarCards.forEach((card, k) => {
1267
1268 card.classList.remove('active');
1269
1270 if (i == k) {
1271 card.classList.add('active');
1272 }
1273
1274 });
1275
1276 };
1277
1278 const hidecard = () => {
1279
1280 pageMapBarCards.forEach(card => {
1281 card.classList.remove('active');
1282 });
1283
1284 }
1285
1286 let pageMapBarItems;
1287
1288 pageMapBarBtn.addEventListener('click', () => {
1289 pageMapBar.classList.toggle('active');
1290 });
1291
1292 pageMapBarList.addEventListener('click', (e) => {
1293
1294 if (e.target.closest('.page-map-bar__item')) {
1295
1296 pageMapBarItems = pageMapBarList.querySelectorAll('.page-map-bar__item');
1297
1298 pageMapBarItems.forEach((item, i) => {
1299
1300 if (e.target == item && e.target.classList.contains('active')) {
1301
1302 item.classList.remove('active');
1303
1304 hidecard();
1305
1306 } else if (e.target == item) {
1307
1308 pageMapBarItems.forEach(item => {
1309 item.classList.remove('active');
1310 });
1311
1312 item.classList.add('active');
1313
1314 let offsetCoords = collection.get(i).geometry.getCoordinates();
1315
1316 offsetCoords = [
1317 offsetCoords[0] - 0.0025,
1318 offsetCoords[1]
1319 ];
1320
1321 myMap.setZoom(16);
1322 // myMap.setCenter(collection.get(i).geometry.getCoordinates());
1323 myMap.setCenter(offsetCoords);
1324
1325 showCard(i);
1326
1327 }
1328
1329 });
1330 }
1331
1332 });
1333
1334 collection.events.add('click', function (e) {
1335
1336 for (let i = 0, l = collection.getLength(); i < l; i++) {
1337
1338 if (e.get('target') == collection.get(i)) {
1339
1340 pageMapBarItems = pageMapBarList.querySelectorAll('.page-map-bar__item');
1341
1342 pageMapBarItems.forEach((item) => {
1343 pageMapBar.classList.add('active');
1344 item.classList.remove('active');
1345 });
1346
1347 pageMapBarItems[i].classList.add('active');
1348
1349 showCard(i);
1350
1351 }
1352
1353 }
1354
1355 });
1356
1357 }
1358
1359 }
1360
1361 };*/
1362
1363
1364 // аккордеон в футере
1365 setFooterSpoilers() {
1366
1367 const items = document.querySelectorAll('.js_footer_col');
1368
1369 items.forEach(item => {
1370
1371 const itemTitle = item.querySelector('.js_footer_caption');
1372 const itemContent = item.querySelector('.js_footer_block');
1373
1374 const blockToggle = (block, duration) => {
1375
1376 if (window.getComputedStyle(block).display == "none" && !block.classList.contains('smooth')) {
1377
1378 block.style.display = "block";
1379
1380 const blockHeight = block.offsetHeight;
1381
1382 block.style.height = 0;
1383 block.style.overflow = "hidden";
1384 block.style.transition = `height ${duration}ms ease`;
1385 block.classList.add('smooth');
1386 block.offsetHeight;
1387 block.style.height = `${blockHeight}px`;
1388
1389 setTimeout(() => {
1390
1391 block.classList.remove('smooth');
1392 block.style.height = '';
1393 block.style.transition = '';
1394 block.style.overflow = '';
1395
1396 }, duration);
1397
1398 } else if (!block.classList.contains('smooth')) {
1399
1400 block.style.height = `${block.offsetHeight}px`;
1401 block.offsetHeight;
1402 block.style.height = 0;
1403 block.style.overflow = "hidden";
1404 block.style.transition = `height ${duration}ms ease`;
1405 block.classList.add('smooth');
1406
1407 setTimeout(() => {
1408
1409 block.classList.remove('smooth');
1410 block.style.display = "none";
1411 block.style.height = '';
1412 block.style.transition = '';
1413 block.style.overflow = '';
1414
1415 }, duration);
1416
1417 }
1418
1419 };
1420
1421 itemTitle.addEventListener('click', (e) => {
1422 itemTitle.classList.toggle('active');
1423 blockToggle(itemContent, 300);
1424 });
1425
1426 });
1427
1428 }
1429
1430
1431 // слайдер с партнёрами;
1432 initPartnerslSlider() {
1433
1434 const slider = document.querySelector('.partners__swiper');
1435
1436 if (slider) {
1437
1438 let swiper6;
1439
1440 const initSlider = () => {
1441
1442 swiper6 = new Swiper(slider, {
1443 // scrollbar: {
1444 // el: '.swiper-scrollbar',
1445 // draggable: true,
1446 // },
1447 slidesPerView: 0.275,
1448 loop: true,
1449 spaceBetween: 20,
1450 freeMode: true,
1451 allowTouchMove: true,
1452 breakpoints: {
1453 480: {
1454 slidesPerView: 0.4,
1455 },
1456 640: {
1457 slidesPerView: 0.65,
1458 },
1459 780: {
1460 slidesPerView: 0.65,
1461 },
1462 1024: {
1463 slidesPerView: 0.8,
1464 },
1465 1200: {
1466 slidesPerView: 1,
1467 loop: false,
1468 allowTouchMove: false,
1469 }
1470 }
1471 });
1472
1473 };
1474
1475 initSlider();
1476
1477 const updateSlider = () => {
1478 swiper6.destroy();
1479 initSlider();
1480 }
1481
1482 window.addEventListener('resize', () => {
1483
1484 if (window.innerWidth <= 1200 && slider.dataset.mobile == 'false') {
1485 slider.dataset.mobile = 'true';
1486 updateSlider();
1487 }
1488
1489 if (window.innerWidth > 1200 && slider.dataset.mobile == 'true') {
1490 slider.dataset.mobile = 'false';
1491 updateSlider();
1492 }
1493
1494 });
1495
1496 }
1497
1498 }
1499
1500 }
1501
1502
1503 document.addEventListener('DOMContentLoaded', () => {
1504
1505 const app = new App();
1506 app.init();
1507
1508 });
1509
public/js/main_new.js
1 // управляющий класс App с методом init(), в котором собраны все используемые методы с комментариями о том, что конкретно делает каждый метод File was deleted
2
3 class App {
4
5 constructor() {
6 this.patternPhone = /^(\+7|7|8)?[\s\-]?\(?[489][0-9]{2}\)?[\s\-]?[0-9]{3}[\s\-]?[0-9]{2}[\s\-]?[0-9]{2}$/; // рег. выражение для поля 'телефон';
7 this.patternEmail = /^[a-zA-Z0-9._%+-\.]+@[a-z0-9.-]+\.[a-z]{2,}$/i; // рег. выражение для поля 'электронная почта';
8 }
9
10 init() {
11
12 console.log('init');
13
14 this.stickyHeader(); // липкий хедер;
15 this.controlBurgerMenu(); // бургер-меню;
16 this.smoothScroll(); // плавный скролл к якорю (smooth scroll);
17 this.scrollUp(); // кнопка наверх;
18 this.addToFavorites(); // добавить в избранное (звёздочка);
19 this.initTypicalSlider(); // типовые слайдеры;
20 this.initPartnerslSlider(); // слайдер с партнёрами;
21 this.controlFilters(); // фильтры на главном экране;
22 this.controlPopups(); // открытие/закрытие поп-апов;
23 this.controlContactUsPopup(); // открытие/закрытие поп-апа 'обратный звонок';
24
25 this.sendForm('.js_popup_feedback_form', '[data-popup="success"]'); // отправка формы в поп-апе обратной связи;
26 this.sendForm('.js_popup_viewing_form', '[data-popup="success"]'); // отправка формы в поп-апе 'записаться на просмотр';
27 this.sendForm('.js_footer_feedback_form', '[data-popup="success"]'); // отправка формы в футере;
28 this.sendForm('.js_contacts_form', '.js_contacts_success'); // отправка формы на странице контакты;
29 this.sendForm('.js_popup_sending_form_', '[data-popup="success"]');
30 //this.sendOffer(); //отправка предложения по e-mail;
31
32 //this.setGeneralMap(); // карта на странице карт;
33 this.setComplexMap('complex-map', [55.726591050908745, 37.57244549999999], 'ЖК Садовые кварталы'); // карта на странице 'ЖК';
34 this.setComplexMap('offer-map', [55.70851106903402, 37.65864349999999], 'Аренда торгового помещения 321,6 м2'); // карта на странице 'Предложение';
35 this.setCatalogSorts(); // сортировка на странице 'каталог';
36 this.initIntroSlider(); // слайдер на странице жк и на странице предложения;
37 this.setTabs('.js_offer_side_tab', '.js_offer_side_item'); // табы с планами объекат и этажа на странице предложения;
38 this.setTabs('.js_offer_side_popup_tab', '.js_offer_side_popup_item'); // табы с планами объекат и этажа в поп-апе на странице предложения;
39 this.sontrolOfferSidePopup(); // логика открытия нужного таба при открытии поп-апа с планами объекат и этажа на странице предложения;
40 this.setCustomGallery(); // галлерея;
41 this.setCookies() // куки;
42 this.setFooterSpoilers() // аккордеон в футере;
43
44 }
45
46 // фиксация <body>
47 fixBodyPosition() {
48
49 setTimeout(function () {
50 // ставим необходимую задержку, чтобы не было «конфликта» в случае, если функция фиксации вызывается сразу после расфиксации (расфиксация отменяет действия расфиксации из-за одновременного действия)
51
52 if (!document.body.hasAttribute('data-body-scroll-fix')) {
53
54 // получаем позицию прокрутки
55 let scrollPosition = window.pageYOffset || document.documentElement.scrollTop;
56
57 // ставим нужные стили
58 document.body.setAttribute('data-body-scroll-fix', scrollPosition); // Cтавим атрибут со значением прокрутки
59 document.body.style.overflow = 'hidden';
60 document.body.style.position = 'fixed';
61 document.body.style.top = '-' + scrollPosition + 'px';
62 document.body.style.left = '0';
63 document.body.style.width = '100%';
64
65 if (window.innerWidth >= 1200) {
66 document.body.style.paddingRight = '8px';
67 }
68 }
69
70 }, 15); // можно задержку ещё меньше, но работает хорошо именно с этим значением на всех устройствах и браузерах
71
72 }
73
74
75 // расфиксация <body>
76 unfixBodyPosition() {
77
78 if (document.body.hasAttribute('data-body-scroll-fix')) {
79
80 // получаем позицию прокрутки из атрибута
81 let scrollPosition = document.body.getAttribute('data-body-scroll-fix');
82
83 // удаляем атрибут
84 document.body.removeAttribute('data-body-scroll-fix');
85
86 // удаляем ненужные стили
87 document.body.style.overflow = '';
88 document.body.style.position = '';
89 document.body.style.top = '';
90 document.body.style.left = '';
91 document.body.style.width = '';
92 document.body.style.paddingRight = '';
93
94 // прокручиваем страницу на полученное из атрибута значение
95 window.scroll(0, scrollPosition);
96
97 }
98
99 }
100
101
102 // бургер-меню
103 controlBurgerMenu() {
104
105 const headerBurger = document.querySelector('.js_header_burger');
106
107 if (headerBurger) {
108
109 const menu = document.querySelector('.js_menu');
110 const menuClose = menu.querySelector('.js_menu_close');
111
112 headerBurger.addEventListener('click', () => {
113 menu.classList.add('active');
114 this.fixBodyPosition();
115 });
116
117 menu.addEventListener('click', (e) => {
118
119 if (e.target == menu) {
120 menu.classList.remove('active');
121 this.unfixBodyPosition();
122 }
123
124 });
125
126 menuClose.addEventListener('click', () => {
127 menu.classList.remove('active');
128 this.unfixBodyPosition();
129 });
130
131 }
132
133 }
134
135
136 // липкий хедер
137 stickyHeader() {
138
139 const header = document.querySelector('.js_header');
140
141 if (header) {
142
143 window.addEventListener('scroll', () => {
144
145 if (window.scrollY > 200) {
146 header.classList.add('fixed');
147 } else {
148 header.classList.remove('fixed');
149 }
150
151 });
152
153 };
154
155 }
156
157
158 // плавный скролл к якорю (smooth scroll)
159 smoothScroll() {
160
161 const smoothLinks = document.querySelectorAll('.js_smooth_link');
162
163 if (smoothLinks.length) {
164
165 smoothLinks.forEach(link => {
166
167 link.addEventListener('click', function (e) {
168
169 e.preventDefault();
170
171 let href = this.getAttribute('href').substring(1);
172
173 const scrollTarget = document.getElementById(href);
174
175 // const topOffset = document.querySelector('.header').offsetHeight;
176 const topOffset = 0; // если не нужен отступ сверху
177 const elementPosition = scrollTarget.getBoundingClientRect().top;
178 const offsetPosition = elementPosition - topOffset;
179
180 window.scrollBy({
181 top: offsetPosition,
182 behavior: 'smooth'
183 });
184
185 });
186
187 });
188
189 }
190
191 }
192
193
194 // кнопка наверх
195 scrollUp() {
196
197 const toTopBtn = document.querySelector('.js_btn_up');
198
199 if (toTopBtn) {
200
201 toTopBtn.addEventListener('click', function () {
202
203 window.scrollTo({
204 top: 0,
205 behavior: 'smooth'
206 });
207
208 });
209
210 }
211
212 }
213
214
215 // добавить в избранное (звёздочка)
216 addToFavorites() {
217
218 const cardFavorites = document.querySelectorAll('.js_card_favorites');
219
220 if (cardFavorites.length) {
221
222 cardFavorites.forEach(item => {
223
224 item.addEventListener('click', (e) => {
225 e.preventDefault();
226 item.classList.toggle('active');
227 });
228
229 });
230
231 }
232
233 }
234
235
236 // типовые слайдеры
237 initTypicalSlider() {
238
239 const slidersWraps = document.querySelectorAll('.slider__wrap');
240
241 if (slidersWraps.length) {
242
243 slidersWraps.forEach(wrap => {
244
245 const slider = wrap.querySelector('.swiper');
246 const prev = wrap.querySelector('.swiper-button-prev');
247 const next = wrap.querySelector('.swiper-button-next');
248 const pagination = wrap.querySelector('.swiper-pagination');
249
250 let swiper1 = new Swiper(slider, {
251 navigation: {
252 nextEl: next,
253 prevEl: prev,
254 },
255 pagination: {
256 el: pagination,
257 clickable: true,
258 },
259 slidesPerView: 1,
260 spaceBetween: 20,
261 observer: true,
262 observeParents: true,
263 observeSlideChildren: true,
264 breakpoints: {
265 480: {
266 slidesPerView: 1.5,
267 },
268 640: {
269 slidesPerView: 2,
270 },
271 780: {
272 slidesPerView: 2.5,
273 },
274 920: {
275 slidesPerView: 3,
276 },
277 1024: {
278 slidesPerView: 3.4
279 },
280 1200: {
281 slidesPerView: 4,
282 }
283 }
284 });
285
286 });
287
288 }
289
290 }
291
292
293 // метод, делающий число удобночитаемым (добавляет пробел справа через каждые 3 цифры)
294 prettify(num) {
295 const withoutSpace = num.replace(/[^\d]/g, ''); //убирает все символы;
296 return withoutSpace.replace(/(?!^)(?=(?:\d{3})+(?:\.|$))/gm, ' '); //ставит пробелы;
297 }
298
299
300 // фильтры на главном экране
301 controlFilters() {
302
303 const heroFilters = document.querySelectorAll('.js_hero_filter');
304 const heroSearchBtns = document.querySelectorAll('.js_hero_search_btn');
305
306 if (heroFilters.length) {
307
308 heroFilters.forEach(filter => {
309
310 const heroFilterInput = filter.querySelector('.js_hero_filter_input');
311 const heroFilterCurrent = filter.querySelector('.js_hero_filter_current');
312 const heroFilterItems = filter.querySelectorAll('.hero-filter__item');
313 const heroFilterFields = filter.querySelectorAll('.js_hero_filter_field');
314 const heroFilterFrom = filter.querySelector('.js_hero_filter_from');
315 const heroFilterTo = filter.querySelector('.js_hero_filter_to');
316 const heroFilterReset = filter.querySelector('.js_hero_filter_reset');
317
318 heroFilterCurrent.addEventListener('click', () => {
319
320 if (filter.classList.contains('active')) {
321
322 filter.classList.remove('active');
323
324 heroSearchBtns.forEach(btn => {
325 btn.disabled = false;
326 });
327
328 } else {
329
330 heroFilters.forEach(filter => {
331 filter.classList.remove('active');
332 });
333
334 filter.classList.add('active');
335
336 heroSearchBtns.forEach(btn => {
337 btn.disabled = true;
338 });
339
340 }
341
342 });
343
344 if (heroFilterItems.length) {
345
346 heroFilterItems.forEach(item => {
347
348 item.addEventListener('click', () => {
349
350 heroFilterCurrent.textContent = item.textContent;
351 heroFilterInput.value = item.dataset.val;
352 filter.classList.remove('active');
353
354 heroSearchBtns.forEach(btn => {
355 btn.disabled = false;
356 });
357
358 });
359
360 });
361
362 }
363
364 if (heroFilterFields.length) {
365
366 const heroFilterMin = heroFilterFrom.dataset.min;
367 const heroFilterMax = heroFilterTo.dataset.max;
368
369 let heroFilterFromVal;
370 let heroFilterToVal;
371
372 heroFilterFields.forEach(field => {
373
374 field.addEventListener('input', () => {
375
376 field.value = this.prettify(field.value);
377
378 heroFilterReset.classList.remove('active');
379
380 heroFilterFields.forEach(field => {
381
382 if (field.value != "") {
383 heroFilterReset.classList.add('active');
384 }
385
386 });
387
388 });
389
390 });
391
392 heroFilterFrom.addEventListener('change', () => {
393
394 heroFilterFromVal = +heroFilterFrom.value.replace(/\s/g, '');
395 heroFilterToVal = +heroFilterTo.value.replace(/\s/g, '');
396
397 if (heroFilterToVal != '' && heroFilterFromVal > heroFilterToVal) {
398
399 heroFilterFrom.value = heroFilterTo.value;
400
401 } else if (heroFilterFromVal < +heroFilterMin) {
402
403 heroFilterFrom.value = this.prettify(heroFilterMin);
404
405 } else if (heroFilterFromVal > +heroFilterMax) {
406
407 heroFilterFrom.value = this.prettify(heroFilterMax);
408
409 }
410
411 });
412
413 heroFilterTo.addEventListener('change', () => {
414
415 heroFilterFromVal = +heroFilterFrom.value.replace(/\s/g, '');
416 heroFilterToVal = +heroFilterTo.value.replace(/\s/g, '');
417
418 if (heroFilterFromVal != '' && heroFilterToVal < heroFilterFromVal) {
419
420 heroFilterTo.value = heroFilterFrom.value;
421
422 } else if (heroFilterToVal < +heroFilterMin) {
423
424 heroFilterTo.value = this.prettify(heroFilterMax);
425
426 } else if (heroFilterToVal > +heroFilterMax) {
427
428 heroFilterTo.value = this.prettify(heroFilterMax);
429
430 }
431
432 });
433
434 heroFilterReset.addEventListener('click', () => {
435
436 heroFilterFields.forEach(field => {
437 field.value = '';
438 });
439
440 heroFilterReset.classList.remove('active');
441
442 });
443 }
444
445 });
446
447 document.addEventListener('click', (e) => {
448
449 if (!e.target.closest('.js_hero_filter_dropdown') && !e.target.closest('.js_hero_filter_current')) {
450
451 heroFilters.forEach(filter => {
452 filter.classList.remove('active');
453 });
454
455 heroSearchBtns.forEach(btn => {
456 btn.disabled = false;
457 });
458
459 }
460
461 });
462
463 }
464
465 }
466
467
468 // открытие/закрытие типовых поп-апов
469 controlPopups() {
470
471 const popupShowBtns = document.querySelectorAll('[data-btn]');
472 const popups = document.querySelectorAll('[data-popup]');
473
474 if (popupShowBtns.length) {
475
476 popupShowBtns.forEach(btn => {
477
478 btn.addEventListener('click', (e) => {
479
480 e.preventDefault();
481
482 popups.forEach(popup => {
483
484 popup.classList.remove('active'); // если какойто поп-ап открыт, то закрываем его;
485 this.unfixBodyPosition();
486
487 if (btn.dataset.btn == popup.dataset.popup) {
488 popup.classList.add('active');
489 this.fixBodyPosition();
490 }
491
492 });
493
494
495 });
496
497 });
498
499 popups.forEach(popup => {
500
501 const popupCloseBtns = popup.querySelectorAll('.js_popup_close');
502
503 popupCloseBtns.forEach(btn => {
504
505 btn.addEventListener('click', (e) => {
506 e.preventDefault();
507 popup.classList.remove('active');
508 this.unfixBodyPosition();
509 });
510
511 });
512
513 popup.addEventListener('click', (e) => {
514
515 if (e.target == popup) {
516
517 popup.classList.remove('active');
518 this.unfixBodyPosition();
519 }
520
521 });
522
523 });
524
525 }
526 }
527
528
529 // открытие/закрытие поп-апа 'обратный звонок'
530 controlContactUsPopup() {
531
532 const contactUsBtn = document.querySelector('.js_btn_contact_us');
533 const contactUsPopup = document.querySelector('.js_contact_us');
534
535 if (contactUsPopup) {
536
537 const contactUsPopupCloseBtns = contactUsPopup.querySelectorAll('.js_contact_us_close');
538
539 contactUsBtn.addEventListener('click', (e) => {
540
541 e.preventDefault();
542
543 if (contactUsPopup.classList.contains('active')) {
544 contactUsPopup.classList.remove('active');
545 } else {
546 contactUsPopup.classList.add('active');
547 }
548
549 });
550
551 contactUsPopupCloseBtns.forEach(btn => {
552 btn.addEventListener('click', () => {
553 contactUsPopup.classList.remove('active');
554 });
555 });
556
557
558 document.addEventListener('click', (e) => {
559
560 if (!e.target.closest('.js_contact_us') && !e.target.closest('.js_btn_contact_us')) {
561 contactUsPopup.classList.remove('active');
562 }
563
564 });
565
566 }
567
568 }
569
570
571 // валидатор форм
572 validateForm(input) {
573
574 // функция добавления ошибки
575 const createError = (text) => {
576
577 input.classList.add('error');
578 input.classList.remove('no-error');
579
580 if (input.closest('label').querySelector('span.error')) {
581 input.closest('label').querySelector('span.error').remove();
582 input.closest('label').insertAdjacentHTML('beforeend', `<span class="error">${text}</span>`);
583 } else {
584 input.closest('label').insertAdjacentHTML('beforeend', `<span class="error">${text}</span>`);
585 }
586
587 }
588
589 // функция удаления ошибки
590 const removeError = () => {
591
592 input.classList.remove('error');
593 input.classList.add('no-error');
594
595 if (input.closest('label').querySelector('span.error')) {
596 input.closest('label').querySelector('span.error').remove();
597 }
598
599 }
600
601 // проверяем на правильность заполнения поля 'Телефон'
602 if (input.classList.contains('js_input_phone') && input.value == "") {
603 createError('Заполните, пожалуйста, поле');
604 } else if (input.classList.contains('js_input_phone') && input.value.search(this.patternPhone) == 0) {
605 removeError();
606 } else if (input.classList.contains('js_input_phone')) {
607 createError('Укажите, пожалуйста, корректный телефон');
608 }
609
610 // проверяем правильность заполнения поля 'Электронная почта'
611 if (input.classList.contains('js_input_email') && input.value == "") {
612 createError('Заполните, пожалуйста, поле');
613 } else if (input.classList.contains('js_input_email') && input.value.search(this.patternEmail) == 0) {
614 removeError();
615 } else if (input.classList.contains('js_input_email')) {
616 createError('Укажите, пожалуйста, корректный e-mail');
617 }
618
619 }
620
621
622 // отправка форм
623 sendForm(formEl, success) {
624
625 const form = document.querySelector(formEl);
626
627 if (form) {
628
629 form.addEventListener('submit', async (e) => {
630
631 e.preventDefault();
632
633 const formInputs = form.querySelectorAll('input');
634 const formBtn = form.querySelector('.js_form_btn');
635
636 formInputs.forEach(input => { // перебираем все инпуты в форме;
637
638 this.validateForm(input);
639
640 input.addEventListener('input', () => {
641 this.validateForm(input);
642 });
643
644 });
645
646 if (!form.querySelector('.error')) { //проверяем, чтоб все инпуты прошли валидацию (чтоб не было в форме ни одного элемента с класссом error);
647
648 // сюда пишем команды, которые должны сработать после успешной валидации;
649
650 console.log('validate');
651 formBtn.classList.add('btn-animate');
652 formBtn.disabled = true;
653
654 const formData = new FormData(form);
655
656 console.log(...formData);
657
658 const response = await fetch(e.target.action, {
659 method: e.target.method,
660 body: formData
661 });
662
663 if (response.ok) {
664
665 setTimeout(() => { // имитация отправки, когда отправка будет настроена, нужно достать всё из setTimeout() и удалить его;
666
667 console.log('Отправлено');
668 formBtn.classList.remove('btn-animate');
669 formBtn.disabled = false;
670 if (document.querySelector('[data-popup="feedback"]')) {
671 document.querySelector('[data-popup="feedback"]').classList.remove('active');
672 }
673 if (document.querySelector('[data-popup="viewing"]')) {
674 document.querySelector('[data-popup="viewing"]').classList.remove('active');
675 }
676 document.querySelector(success).classList.add('active');
677 this.fixBodyPosition();
678 form.reset();
679
680 formInputs.forEach(input => {
681 input.classList.remove('no-error');
682 });
683
684 }, 2000)
685
686 } else {
687 formBtn.classList.remove('btn-animate');
688 formBtn.disabled = false;
689 alert('Ошибка');
690 }
691
692 } else {
693 console.log('no-validate');
694 form.querySelector('.error').focus(); //фокус к полю с ошибкой;
695 }
696
697 });
698
699 }
700
701 }
702
703 //отправка предложения по e-mail
704 sendOffer() {
705
706 const form = document.querySelector('.js_popup_sending_form');
707
708 if (form) {
709
710 form.addEventListener('submit', async (e) => {
711
712 e.preventDefault();
713
714 const formInputs = form.querySelectorAll('input');
715 const formBtn = form.querySelector('.js_form_btn');
716
717 formInputs.forEach(input => { // перебираем все инпуты в форме;
718
719 this.validateForm(input);
720
721 input.addEventListener('input', () => {
722 this.validateForm(input);
723 });
724
725 });
726
727 if (!form.querySelector('.error')) { //проверяем, чтоб все инпуты прошли валидацию (чтоб не было в форме ни одного элемента с класссом error);
728
729 // сюда пишем команды, которые должны сработать после успешной валидации;
730
731 console.log('validate');
732 formBtn.classList.add('btn-animate');
733 formBtn.disabled = true;
734
735 const formData = new FormData(form);
736
737 console.log(...formData);
738
739 const response = await fetch(e.target.action, {
740 method: e.target.method,
741 body: formData
742 });
743
744 if (response.ok) {
745
746 setTimeout(() => { // имитация отправки, когда отправка будет настроена, нужно достать всё из setTimeout() и удалить его;
747
748 console.log('Отправлено');
749 formBtn.classList.remove('btn-animate');
750 formBtn.disabled = false;
751 if (document.querySelector('[data-popup="sending"]')) {
752 document.querySelector('[data-popup="sending"]').classList.remove('active');
753 }
754 this.fixBodyPosition();
755 form.reset();
756
757 formInputs.forEach(input => {
758 input.classList.remove('no-error');
759 });
760
761 }, 2000)
762
763 } else {
764 formBtn.classList.remove('btn-animate');
765 formBtn.disabled = false;
766 alert('Ошибка');
767 }
768
769 } else {
770 console.log('no-validate');
771 form.querySelector('.error').focus(); //фокус к полю с ошибкой;
772 }
773
774 });
775
776 }
777
778 }
779
780
781 // карта на странице 'ЖК'
782 setComplexMap(id, coords, caption) {
783
784 if (document.querySelector('#' + id)) {
785
786 // Дождёмся загрузки API и готовности DOM.
787 ymaps.ready(init);
788
789 function init() {
790 const map = new ymaps.Map(id, {
791 // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования.
792 center: coords,
793 zoom: 16,
794 controls: []
795 });
796
797 // Создаём макет содержимого.
798 const MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
799 '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
800 );
801
802 // Создание макета содержимого хинта.
803 // Макет создается через фабрику макетов с помощью текстового шаблона.
804 const HintLayout = ymaps.templateLayoutFactory.createClass("<div class='my-hint'>" +
805 "{{ properties.object }}" + "</div>", {
806 // Определяем метод getShape, который
807 // будет возвращать размеры макета хинта.
808 // Это необходимо для того, чтобы хинт автоматически
809 // сдвигал позицию при выходе за пределы карты.
810 getShape: function () {
811 let el = this.getElement(),
812 result = null;
813 if (el) {
814 var firstChild = el.firstChild;
815 result = new ymaps.shape.Rectangle(
816 new ymaps.geometry.pixel.Rectangle([
817 [0, 0],
818 [firstChild.offsetWidth, firstChild.offsetHeight]
819 ])
820 );
821 }
822 return result;
823 }
824 }
825 );
826
827 // метка
828 const placemark = new ymaps.Placemark(coords, {
829 // hintContent: caption,
830 // balloonContent: caption,
831 iconContent: '1',
832 // address: caption,
833 object: caption
834 }, {
835 iconLayout: 'default#imageWithContent',
836 iconImageHref: 'images/mark-complex.svg',
837 iconImageSize: [52, 67],
838 iconImageOffset: [-26, -67],
839 iconContentOffset: [0, 17],
840 iconContentLayout: MyIconContentLayout,
841 hintLayout: HintLayout
842 });
843
844 map.geoObjects.add(placemark);
845
846 }
847
848 }
849
850 }
851
852
853 // фильтры и сортировка на странице 'каталог'
854 setCatalogSorts() {
855
856 const sortGroups = document.querySelectorAll('.js_sort_group');
857
858 if (sortGroups.length) {
859
860 sortGroups.forEach(group => {
861
862 const sortGroupInput = group.querySelector('.js_sort_group_input');
863 const sortGroupCurrent = group.querySelector('.js_sort_group_current');
864 const sortGroupList = group.querySelector('.js_sort_group_list');
865 const sortGroupItems = group.querySelectorAll('.js_sort_group_item');
866
867 const sendRequest = () => {
868
869 const spinner = document.querySelector('.spinner'); // спиннер;
870
871 spinner.classList.add('active');
872 document.body.classList.add('overlay');
873 /*this.fixBodyPosition();
874
875 fetch('test.json')
876 .then(response => response.json())
877 .then(data => {
878
879 console.log()
880
881 setTimeout(() => { //имитация ответа сервера
882
883 spinner.classList.remove('active');
884 document.body.classList.remove('overlay');
885 this.unfixBodyPosition();
886
887 }, 3000);
888
889 })
890 .catch(err => {
891 console.log(err);
892 });
893
894 */
895 spinner.classList.remove('active');
896 document.body.classList.remove('overlay');
897
898
899 };
900
901 sortGroupCurrent.addEventListener('click', () => {
902
903 if (group.classList.contains('active')) {
904
905 group.classList.remove('active');
906
907 } else {
908
909 sortGroups.forEach(group => {
910 group.classList.remove('active');
911 });
912
913 group.classList.add('active');
914
915 }
916
917 });
918
919 sortGroupItems.forEach(item => {
920
921 item.addEventListener('click', () => {
922
923 sortGroupItems.forEach(item => {
924 item.classList.remove('active');
925 });
926
927 item.classList.add('active');
928 sortGroupCurrent.textContent = item.textContent;
929 sortGroupInput.value = item.dataset.val;
930 group.classList.remove('active');
931
932 sendRequest();
933
934 });
935
936 });
937
938 });
939
940 document.addEventListener('click', (e) => {
941
942 if (!e.target.closest('.js_sort_group_list') && !e.target.closest('.js_sort_group_current')) {
943
944 sortGroups.forEach(group => {
945 group.classList.remove('active');
946 });
947
948 }
949
950 });
951
952 }
953
954 }
955
956
957 // слайдер на странице жк и на странице предложения
958 initIntroSlider() {
959
960 let swiper3 = new Swiper('.intro__swiper', {
961 navigation: {
962 nextEl: '.swiper-button-next',
963 prevEl: '.swiper-button-prev',
964 },
965 pagination: {
966 el: '.swiper-pagination',
967 clickable: true,
968 },
969 slidesPerView: 1.1,
970 spaceBetween: 20,
971 breakpoints: {
972 480: {
973 slidesPerView: 1.5,
974 },
975 640: {
976 slidesPerView: 1.75,
977 },
978 780: {
979 slidesPerView: 2.15,
980 },
981 1024: {
982 slidesPerView: 3.5,
983 },
984 1200: {
985 slidesPerView: 1,
986 }
987 }
988 });
989
990 }
991
992
993 // табы на странице предложения
994 setTabs(tabs, items) {
995
996 const offerSideTabs = document.querySelectorAll(tabs);
997 const offerSideItems = document.querySelectorAll(items);
998
999 if (offerSideTabs) {
1000
1001 offerSideTabs.forEach(tab => {
1002
1003 tab.addEventListener('click', () => {
1004
1005 offerSideTabs.forEach(tab => {
1006 tab.classList.remove('active');
1007 });
1008
1009 tab.classList.add('active');
1010
1011 offerSideItems.forEach(item => {
1012
1013 item.classList.remove('active', 'fade');
1014
1015 if (tab.dataset.tab == item.dataset.item) {
1016 item.classList.add('active', 'fade');
1017 }
1018
1019 });
1020
1021 });
1022
1023 });
1024
1025 }
1026
1027 }
1028
1029
1030 // логика открытия нужного таба при открытии поп-апа с планами объекат и этажа на странице предложения
1031 sontrolOfferSidePopup() {
1032
1033 const offerSideItems = document.querySelectorAll('.js_offer_side_item');
1034 const offerSidePopupTabs = document.querySelectorAll('.js_offer_side_popup_tab');
1035 const offerSidePopupItems = document.querySelectorAll('.js_offer_side_popup_item');
1036
1037 if (offerSideItems) {
1038
1039 offerSideItems.forEach(item => {
1040
1041 const offerSideItemBtn = item.querySelector('.js_offer_side_item_btn');
1042
1043 offerSideItemBtn.addEventListener('click', (e) => {
1044
1045 e.preventDefault();
1046
1047 offerSidePopupTabs.forEach(tab => {
1048
1049 tab.classList.remove('active');
1050
1051 if (item.dataset.item == tab.dataset.tab) {
1052 tab.classList.add('active');
1053 }
1054
1055 });
1056
1057 offerSidePopupItems.forEach(el => {
1058
1059 el.classList.remove('active', 'fade');
1060
1061 if (item.dataset.item == el.dataset.item) {
1062 el.classList.add('active', 'fade');
1063 }
1064
1065 });
1066
1067 });
1068
1069 });
1070
1071 }
1072
1073 }
1074
1075
1076 // галлерея
1077 setCustomGallery() {
1078
1079 let swiper4 = new Swiper(".img-viewer__thumbs-swiper", {
1080 slidesPerView: 3,
1081 spaceBetween: 8,
1082 // freeMode: true,
1083 observer: true,
1084 observeParents: true,
1085 observeSlideChildren: true,
1086 breakpoints: {
1087 640: {
1088 spaceBetween: 10,
1089 },
1090 },
1091 });
1092
1093 let swiper5 = new Swiper(".img-viewer__slider .swiper", {
1094 navigation: {
1095 nextEl: ".img-viewer__slider .swiper-button-next",
1096 prevEl: ".img-viewer__slider .swiper-button-prev",
1097 },
1098 slidesPerView: 1,
1099 spaceBetween: 20,
1100 thumbs: {
1101 swiper: swiper4
1102 },
1103 observer: true,
1104 observeParents: true,
1105 observeSlideChildren: true,
1106 });
1107
1108 if (document.querySelector('.js_intro_item_btn')) {
1109
1110 const imgViewer = document.querySelector('.js_img_viewer');
1111 const imgViewerCloses = imgViewer.querySelectorAll('.js_img_viewer_close');
1112 const imgViewerCaption = imgViewer.querySelector('.js_img_viewer_caption');
1113
1114 const imgViewerSliderSwiper = imgViewer.querySelector('.js_img_viewer_slider_swiper');
1115 const imgViewerSliderSwiperWrap = imgViewerSliderSwiper.querySelector('.js_img_viewer_slider_swiper .swiper-wrapper');
1116
1117 const imgViewerThumbsSwiper = imgViewer.querySelector('.js_img_viewer_thumbs_swiper');
1118 const imgViewerThumbsSwiperWrap = imgViewerThumbsSwiper.querySelector('.js_img_viewer_thumbs_swiper .swiper-wrapper');
1119
1120 const introItemBtns = document.querySelectorAll('.js_intro_item_btn');
1121
1122 introItemBtns.forEach((btn, i) => {
1123
1124 btn.addEventListener('click', (e) => {
1125
1126 e.preventDefault();
1127
1128 imgViewer.classList.add('active');
1129 this.fixBodyPosition();
1130
1131 imgViewerSliderSwiperWrap.innerHTML = '';
1132 imgViewerThumbsSwiperWrap.innerHTML = '';
1133 imgViewerCaption.textContent = '';
1134
1135
1136 introItemBtns.forEach(btn => {
1137
1138 imgViewerSliderSwiperWrap.insertAdjacentHTML('beforeend', `
1139 <div class="swiper-slide">
1140 <img src="${btn.getAttribute('href')}" alt="">
1141 </div>`
1142 );
1143
1144 imgViewerThumbsSwiperWrap.insertAdjacentHTML('beforeend', `
1145 <div class="swiper-slide">
1146 <img src="${btn.getAttribute('href')}" alt="">
1147 </div>`
1148 );
1149
1150 });
1151
1152 swiper4.update();
1153 swiper5.update();
1154 swiper5.slideTo(i);
1155 imgViewerCaption.textContent = btn.dataset.caption;
1156
1157 });
1158
1159 });
1160
1161 swiper5.on('slideChange', function () {
1162 imgViewerCaption.textContent = introItemBtns[swiper5.realIndex].dataset.caption;
1163 });
1164
1165 imgViewerCloses.forEach(close => {
1166
1167 close.addEventListener('click', () => {
1168
1169 imgViewer.classList.remove('active');
1170 this.unfixBodyPosition();
1171
1172 });
1173
1174 });
1175
1176 }
1177
1178 }
1179
1180
1181 // куки
1182 setCookies() {
1183
1184 const cookies = document.querySelector('.js_cookies');
1185 const cookiesBtn = document.querySelector('.js_cookies_confirm');
1186 const cookiesTrigger = document.querySelector('.js_btn_cookies');
1187
1188 if (cookiesTrigger) {
1189
1190 cookiesTrigger.addEventListener('click', () => {
1191 cookies.classList.add('active');
1192 });
1193
1194 };
1195
1196 if (cookies) {
1197
1198 cookiesBtn.addEventListener('click', () => {
1199 cookies.classList.remove('active');
1200 });
1201
1202 };
1203
1204 }
1205
1206
1207 // карта на странице карт;
1208 /*
1209 //setGeneralMap() {
1210
1211 if (document.querySelector('#general-map')) {
1212
1213 ymaps.ready(init); // Дождёмся загрузки API и готовности DOM;
1214
1215 function init() {
1216
1217 const myMap = new ymaps.Map('general-map', { // Создание экземпляра карты и его привязка к контейнеру с заданным id;
1218 center: [55.752933963675126, 37.52233749962665], // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования;
1219 zoom: 10,
1220 controls: [] // Скрываем элементы управления на карте;
1221 });
1222
1223 // Создаём макет содержимого.
1224 const MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
1225 '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
1226 );
1227
1228 let collection = new ymaps.GeoObjectCollection(null, { // Создаём коллекцию, в которую будемпомещать метки (что-то типа массива);
1229 // preset: 'islands#yellowIcon'
1230 });
1231
1232 let collectionCoords = [ // Создаём массив с координатами (координаты должны располагаться в том же порядке, что и адреса в списке на сайте);
1233 [55.867783219108354, 37.392867499999916],
1234 [55.728043075486504, 37.73937949999994],
1235 [55.72624100423305, 37.476078499999964],
1236 [55.80751105044832, 37.449622999999974],
1237 [55.601783098948836, 37.36700499999998],
1238 [55.86086502152225, 37.540348999999964],
1239 [55.784961528728715, 37.56188599999996],
1240 [55.63910010399773, 37.319407999999996],
1241 [55.55819256767507, 37.55711549999994],
1242 [55.79829252928473, 37.52063549999999],
1243 ];
1244
1245 for (let i = 0, l = collectionCoords.length; i < l; i++) { // C помощью цикла добавляем все метки в коллекцию;
1246 collection.add(new ymaps.Placemark(collectionCoords[i]));
1247 collection.get(i).properties.set('iconContent', `${i + 1}`); // Добавляем каждой метке порядковый номер, записываем его в свойство 'iconContent';
1248 }
1249
1250 myMap.geoObjects.add(collection); // Добавляем коллекцию с метками на карту;
1251
1252 collection.options.set('iconLayout', 'default#imageWithContent'); // Необходимо указать данный тип макета;
1253 collection.options.set('iconImageHref', 'images/mark-complex.svg'); // Своё изображение иконки метки;
1254 collection.options.set('iconImageSize', [52, 67]); // Размеры метки;
1255 collection.options.set('iconImageOffset', [-26, -67]); // Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки);
1256 collection.options.set('iconContentOffset', [0, 17]);
1257 collection.options.set('iconContentLayout', MyIconContentLayout); // Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки);
1258
1259 const pageMapBar = document.querySelector('.js_page_map_bar');
1260 const pageMapBarBtn = pageMapBar.querySelector('.js_page_map_bar_btn');
1261 const pageMapBarList = pageMapBar.querySelector('.js_page_map_bar_list');
1262 const pageMapBarCards = pageMapBar.querySelectorAll('.card-news');
1263
1264 const showCard = (i) => {
1265
1266 pageMapBarCards.forEach((card, k) => {
1267
1268 card.classList.remove('active');
1269
1270 if (i == k) {
1271 card.classList.add('active');
1272 }
1273
1274 });
1275
1276 };
1277
1278 const hidecard = () => {
1279
1280 pageMapBarCards.forEach(card => {
1281 card.classList.remove('active');
1282 });
1283
1284 }
1285
1286 let pageMapBarItems;
1287
1288 pageMapBarBtn.addEventListener('click', () => {
1289 pageMapBar.classList.toggle('active');
1290 });
1291
1292 pageMapBarList.addEventListener('click', (e) => {
1293
1294 if (e.target.closest('.page-map-bar__item')) {
1295
1296 pageMapBarItems = pageMapBarList.querySelectorAll('.page-map-bar__item');
1297
1298 pageMapBarItems.forEach((item, i) => {
1299
1300 if (e.target == item && e.target.classList.contains('active')) {
1301
1302 item.classList.remove('active');
1303
1304 hidecard();
1305
1306 } else if (e.target == item) {
1307
1308 pageMapBarItems.forEach(item => {
1309 item.classList.remove('active');
1310 });
1311
1312 item.classList.add('active');
1313
1314 let offsetCoords = collection.get(i).geometry.getCoordinates();
1315
1316 offsetCoords = [
1317 offsetCoords[0] - 0.0025,
1318 offsetCoords[1]
1319 ];
1320
1321 myMap.setZoom(16);
1322 // myMap.setCenter(collection.get(i).geometry.getCoordinates());
1323 myMap.setCenter(offsetCoords);
1324
1325 showCard(i);
1326
1327 }
1328
1329 });
1330 }
1331
1332 });
1333
1334 collection.events.add('click', function (e) {
1335
1336 for (let i = 0, l = collection.getLength(); i < l; i++) {
1337
1338 if (e.get('target') == collection.get(i)) {
1339
1340 pageMapBarItems = pageMapBarList.querySelectorAll('.page-map-bar__item');
1341
1342 pageMapBarItems.forEach((item) => {
1343 pageMapBar.classList.add('active');
1344 item.classList.remove('active');
1345 });
1346
1347 pageMapBarItems[i].classList.add('active');
1348
1349 showCard(i);
1350
1351 }
1352
1353 }
1354
1355 });
1356
1357 }
1358
1359 }
1360
1361 };*/
1362
1363
1364 // аккордеон в футере
1365 setFooterSpoilers() {
1366
1367 const items = document.querySelectorAll('.js_footer_col');
1368
1369 items.forEach(item => {
1370
1371 const itemTitle = item.querySelector('.js_footer_caption');
1372 const itemContent = item.querySelector('.js_footer_block');
1373
1374 const blockToggle = (block, duration) => {
1375
1376 if (window.getComputedStyle(block).display == "none" && !block.classList.contains('smooth')) {
1377
1378 block.style.display = "block";
1379
1380 const blockHeight = block.offsetHeight;
1381
1382 block.style.height = 0;
1383 block.style.overflow = "hidden";
1384 block.style.transition = `height ${duration}ms ease`;
1385 block.classList.add('smooth');
1386 block.offsetHeight;
1387 block.style.height = `${blockHeight}px`;
1388
1389 setTimeout(() => {
1390
1391 block.classList.remove('smooth');
1392 block.style.height = '';
1393 block.style.transition = '';
1394 block.style.overflow = '';
1395
1396 }, duration);
1397
1398 } else if (!block.classList.contains('smooth')) {
1399
1400 block.style.height = `${block.offsetHeight}px`;
1401 block.offsetHeight;
1402 block.style.height = 0;
1403 block.style.overflow = "hidden";
1404 block.style.transition = `height ${duration}ms ease`;
1405 block.classList.add('smooth');
1406
1407 setTimeout(() => {
1408
1409 block.classList.remove('smooth');
1410 block.style.display = "none";
1411 block.style.height = '';
1412 block.style.transition = '';
1413 block.style.overflow = '';
1414
1415 }, duration);
1416
1417 }
1418
1419 };
1420
1421 itemTitle.addEventListener('click', (e) => {
1422 itemTitle.classList.toggle('active');
1423 blockToggle(itemContent, 300);
1424 });
1425
1426 });
1427
1428 }
1429
1430
1431 // слайдер с партнёрами;
1432 initPartnerslSlider() {
1433
1434 const slider = document.querySelector('.partners__swiper');
1435
1436 if (slider) {
1437
1438 let swiper6;
1439
1440 const initSlider = () => {
1441
1442 swiper6 = new Swiper(slider, {
1443 // scrollbar: {
1444 // el: '.swiper-scrollbar',
1445 // draggable: true,
1446 // },
1447 slidesPerView: 0.275,
1448 loop: true,
1449 spaceBetween: 20,
1450 freeMode: true,
1451 allowTouchMove: true,
1452 breakpoints: {
1453 480: {
1454 slidesPerView: 0.4,
1455 },
1456 640: {
1457 slidesPerView: 0.65,
1458 },
1459 780: {
1460 slidesPerView: 0.65,
1461 },
1462 1024: {
1463 slidesPerView: 0.8,
1464 },
1465 1200: {
1466 slidesPerView: 1,
1467 loop: false,
1468 allowTouchMove: false,
1469 }
1470 }
1471 });
1472
1473 };
1474
1475 initSlider();
1476
1477 const updateSlider = () => {
1478 swiper6.destroy();
1479 initSlider();
1480 }
1481
1482 window.addEventListener('resize', () => {
1483
1484 if (window.innerWidth <= 1200 && slider.dataset.mobile == 'false') {
1485 slider.dataset.mobile = 'true';
1486 updateSlider();
1487 }
1488
1489 if (window.innerWidth > 1200 && slider.dataset.mobile == 'true') {
1490 slider.dataset.mobile = 'false';
1491 updateSlider();
1492 }
1493
1494 });
1495
1496 }
1497
1498 }
1499
1500 }
1501
1502
1503 document.addEventListener('DOMContentLoaded', () => {
1504
1505 const app = new App();
1506 app.init();
1507
1508 });
1509 1 // управляющий класс App с методом init(), в котором собраны все используемые методы с комментариями о том, что конкретно делает каждый метод
public/pug/templates/scripts.pug
1 //- ПОДКЛЮЧЕНИЕ СКРИПТОВ 1 //- ПОДКЛЮЧЕНИЕ СКРИПТОВ
2 2
3 script(src="https://api-maps.yandex.ru/2.1/?lang=ru_RU") 3 script(src="https://api-maps.yandex.ru/2.1/?lang=ru_RU")
4 script(src="js/swiper-bundle.min.js") 4 script(src="js/swiper-bundle.min.js")
5 script(src="js/main_new.js") 5 script(src="js/main_main.js")
6 6
resources/views/complex.blade.php
1 @extends('layout.site', ['title' => $area->name_area]) 1 @extends('layout.site', ['title' => $area->name_area])
2 2
3 @section('custom_js') 3 @section('custom_js')
4 @include('js.maps_js')
4 <script> 5 <script>
5 $(document).on('click', '.js_sort_group_item', function() { 6 $(document).on('click', '.js_sort_group_item', function() {
6 var val = $(this).data('val'); 7 var val = $(this).data('val');
7 var sort_price_val = ''; 8 var sort_price_val = '';
8 var sort_area_val = ''; 9 var sort_area_val = '';
9 var sort_new_val = ''; 10 var sort_new_val = '';
10 11
11 $('.sort-price').each(function() { 12 $('.sort-price').each(function() {
12 var this_ = $(this); 13 var this_ = $(this);
13 var v = $(this).data('val'); 14 var v = $(this).data('val');
14 if (this_.hasClass('active')) 15 if (this_.hasClass('active'))
15 sort_price_val = v; 16 sort_price_val = v;
16 }); 17 });
17 18
18 $('.sort-new').each(function() { 19 $('.sort-new').each(function() {
19 var v = $(this).data('val'); 20 var v = $(this).data('val');
20 var this_ = $(this); 21 var this_ = $(this);
21 if (this_.hasClass('active')) 22 if (this_.hasClass('active'))
22 sort_new_val = v; 23 sort_new_val = v;
23 }); 24 });
24 25
25 $('.sort-area').each(function() { 26 $('.sort-area').each(function() {
26 var v = $(this).data('val'); 27 var v = $(this).data('val');
27 var this_ = $(this); 28 var this_ = $(this);
28 if (this_.hasClass('active')) 29 if (this_.hasClass('active'))
29 sort_area_val = v; 30 sort_area_val = v;
30 31
31 }); 32 });
32 33
33 console.log('-------------------'); 34 console.log('-------------------');
34 $.ajax({ 35 $.ajax({
35 type: "GET", 36 type: "GET",
36 url: "{{ route('complex', ['area' => $area->id]) }}", 37 url: "{{ route('complex', ['area' => $area->id]) }}",
37 data: "view=arenda&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"", 38 data: "view=arenda&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"",
38 success: function(data) { 39 success: function(data) {
39 console.log('Успешно обновлены данные АРЕНДА таблиц '+data); 40 console.log('Успешно обновлены данные АРЕНДА таблиц '+data);
40 $('#arenda_block').html(data); 41 $('#arenda_block').html(data);
41 }, 42 },
42 headers: { 43 headers: {
43 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 44 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
44 }, 45 },
45 error: function(data) { 46 error: function(data) {
46 console.log('Error: '+ data); 47 console.log('Error: '+ data);
47 } 48 }
48 }); 49 });
49 50
50 $.ajax({ 51 $.ajax({
51 type: "GET", 52 type: "GET",
52 url: "{{ route('complex', ['area' => $area->id]) }}", 53 url: "{{ route('complex', ['area' => $area->id]) }}",
53 data: "view=prodaja&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"", 54 data: "view=prodaja&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"",
54 success: function(data) { 55 success: function(data) {
55 console.log('Успешно обновлены данные ПРОДАЖА таблиц '+data); 56 console.log('Успешно обновлены данные ПРОДАЖА таблиц '+data);
56 $('#prodaja_block').html(data); 57 $('#prodaja_block').html(data);
57 }, 58 },
58 headers: { 59 headers: {
59 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 60 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
60 }, 61 },
61 error: function(data) { 62 error: function(data) {
62 console.log('Error: '+ data); 63 console.log('Error: '+ data);
63 } 64 }
64 }); 65 });
65 66
66 $.ajax({ 67 $.ajax({
67 type: "GET", 68 type: "GET",
68 url: "{{ route('complex', ['area' => $area->id]) }}", 69 url: "{{ route('complex', ['area' => $area->id]) }}",
69 data: "view=bissnes&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"", 70 data: "view=bissnes&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"",
70 success: function(data) { 71 success: function(data) {
71 console.log('Успешно обновлены данные БИЗНЕС таблиц '+data); 72 console.log('Успешно обновлены данные БИЗНЕС таблиц '+data);
72 $('#bissnes_block').html(data); 73 $('#bissnes_block').html(data);
73 }, 74 },
74 headers: { 75 headers: {
75 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 76 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
76 }, 77 },
77 error: function(data) { 78 error: function(data) {
78 console.log('Error: '+ data); 79 console.log('Error: '+ data);
79 } 80 }
80 }); 81 });
81 82
82 $.ajax({ 83 $.ajax({
83 type: "GET", 84 type: "GET",
84 url: "{{ route('complex', ['area' => $area->id]) }}", 85 url: "{{ route('complex', ['area' => $area->id]) }}",
85 data: "view=arendovannie&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"", 86 data: "view=arendovannie&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"",
86 success: function(data) { 87 success: function(data) {
87 console.log('Успешно обновлены данные таблиц '+data); 88 console.log('Успешно обновлены данные таблиц '+data);
88 $('#arendovannie_block').html(data); 89 $('#arendovannie_block').html(data);
89 //.append(data); 90 //.append(data);
90 }, 91 },
91 headers: { 92 headers: {
92 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 93 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
93 }, 94 },
94 error: function(data) { 95 error: function(data) {
95 console.log('Error: '+ data); 96 console.log('Error: '+ data);
96 } 97 }
97 }); 98 });
98 99
99 } 100 }
100 ); 101 );
102
103 setComplexMap('complex-map', [{{ $area->coord_x }}, {{ $area->coord_y }}], "{{ $area->name_area }}");
101 </script> 104 </script>
102 @endsection 105 @endsection
103 106
104 @section('content') 107 @section('content')
105 <section class="intro" style="background-image:url({{ asset('images/intro-bg-1.jpg') }})"> 108 <section class="intro" style="background-image:url({{ asset('images/intro-bg-1.jpg') }})">
106 <div class="container"> 109 <div class="container">
107 <div class="intro__wrap"> 110 <div class="intro__wrap">
108 <div class="breadcrumbs"> 111 <div class="breadcrumbs">
109 <ul class="breadcrumbs__list"> 112 <ul class="breadcrumbs__list">
110 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> 113 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li>
111 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('catalog') }}">Каталог</a></li> 114 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('catalog') }}">Каталог</a></li>
112 <li class="breadcrumbs__item"><span class="breadcrumbs__link">{{$area->name_area }}</span></li> 115 <li class="breadcrumbs__item"><span class="breadcrumbs__link">{{$area->name_area }}</span></li>
113 </ul> 116 </ul>
114 </div> 117 </div>
115 <div class="intro__inner"> 118 <div class="intro__inner">
116 <div class="intro__cnt"> 119 <div class="intro__cnt">
117 <h1 class="intro__title title-main">{{ $area->name_area }}</h1> 120 <h1 class="intro__title title-main">{{ $area->name_area }}</h1>
118 <p class="intro__descr">{{ $area->description }}</p> 121 <p class="intro__descr">{{ $area->description }}</p>
119 </div> 122 </div>
120 <div class="intro__swiper swiper"> 123 <div class="intro__swiper swiper">
121 <div class="swiper-wrapper"> 124 <div class="swiper-wrapper">
122 <? if (!empty($area->foto_main)) {?> 125 <? if (!empty($area->foto_main)) {?>
123 <div class="swiper-slide"> 126 <div class="swiper-slide">
124 <div class="intro-item"> 127 <div class="intro-item">
125 <div class="intro-item__img"><img src="{{ asset(Storage::url($area->foto_main)) }}" alt=""></div> 128 <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 }}"> 129 <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"> 130 <svg width="16" height="16">
128 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> 131 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use>
129 </svg></a> 132 </svg></a>
130 </div> 133 </div>
131 </div> 134 </div>
132 <? } ?> 135 <? } ?>
133 <? $i = 1 ?> 136 <? $i = 1 ?>
134 @if ($area->fotos->count()) 137 @if ($area->fotos->count())
135 @foreach($area->fotos as $img) 138 @foreach($area->fotos as $img)
136 <div class="swiper-slide"> 139 <div class="swiper-slide">
137 <div class="intro-item"> 140 <div class="intro-item">
138 <div class="intro-item__img"><img src="{{ asset(Storage::url($img->foto)) }}" alt=""></div> 141 <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 }}"> 142 <a class="intro-item__btn js_intro_item_btn" href="{{ asset(Storage::url($img->foto)) }}" data-caption="Фото {{ $i }}">
140 <svg width="16" height="16"> 143 <svg width="16" height="16">
141 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> 144 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use>
142 </svg></a> 145 </svg></a>
143 </div> 146 </div>
144 </div> 147 </div>
145 <? $i++?> 148 <? $i++?>
146 @endforeach 149 @endforeach
147 @endif 150 @endif
148 <!--<div class="swiper-slide"> 151 <!--<div class="swiper-slide">
149 <div class="intro-item"> 152 <div class="intro-item">
150 <div class="intro-item__img"><img src="images/about-bg.jpg" alt=""></div><a class="intro-item__btn js_intro_item_btn" href="images/about-bg.jpg" data-caption="Фото 2"> 153 <div class="intro-item__img"><img src="images/about-bg.jpg" alt=""></div><a class="intro-item__btn js_intro_item_btn" href="images/about-bg.jpg" data-caption="Фото 2">
151 <svg width="16" height="16"> 154 <svg width="16" height="16">
152 <use xlink:href="images/sprite.svg#intro-item-btn"></use> 155 <use xlink:href="images/sprite.svg#intro-item-btn"></use>
153 </svg></a> 156 </svg></a>
154 </div> 157 </div>
155 </div> 158 </div>
156 <div class="swiper-slide"> 159 <div class="swiper-slide">
157 <div class="intro-item"> 160 <div class="intro-item">
158 <div class="intro-item__img"><img src="images/catalog-bg.jpg" alt=""></div><a class="intro-item__btn js_intro_item_btn" href="images/catalog-bg.jpg" data-caption="Фото 3"> 161 <div class="intro-item__img"><img src="images/catalog-bg.jpg" alt=""></div><a class="intro-item__btn js_intro_item_btn" href="images/catalog-bg.jpg" data-caption="Фото 3">
159 <svg width="16" height="16"> 162 <svg width="16" height="16">
160 <use xlink:href="images/sprite.svg#intro-item-btn"></use> 163 <use xlink:href="images/sprite.svg#intro-item-btn"></use>
161 </svg></a> 164 </svg></a>
162 </div> 165 </div>
163 </div> 166 </div>
164 <div class="swiper-slide"> 167 <div class="swiper-slide">
165 <div class="intro-item"> 168 <div class="intro-item">
166 <div class="intro-item__img"><img src="images/intro-bg-2.jpg" alt=""></div><a class="intro-item__btn js_intro_item_btn" href="images/intro-bg-2.jpg" data-caption="Фото 4"> 169 <div class="intro-item__img"><img src="images/intro-bg-2.jpg" alt=""></div><a class="intro-item__btn js_intro_item_btn" href="images/intro-bg-2.jpg" data-caption="Фото 4">
167 <svg width="16" height="16"> 170 <svg width="16" height="16">
168 <use xlink:href="images/sprite.svg#intro-item-btn"></use> 171 <use xlink:href="images/sprite.svg#intro-item-btn"></use>
169 </svg></a> 172 </svg></a>
170 </div> 173 </div>
171 </div> 174 </div>
172 <div class="swiper-slide"> 175 <div class="swiper-slide">
173 <div class="intro-item"> 176 <div class="intro-item">
174 <div class="intro-item__img"><img src="images/news-one-bg.jpg" alt=""></div><a class="intro-item__btn js_intro_item_btn" href="images/news-one-bg.jpg" data-caption="Фото 5"> 177 <div class="intro-item__img"><img src="images/news-one-bg.jpg" alt=""></div><a class="intro-item__btn js_intro_item_btn" href="images/news-one-bg.jpg" data-caption="Фото 5">
175 <svg width="16" height="16"> 178 <svg width="16" height="16">
176 <use xlink:href="images/sprite.svg#intro-item-btn"></use> 179 <use xlink:href="images/sprite.svg#intro-item-btn"></use>
177 </svg></a> 180 </svg></a>
178 </div> 181 </div>
179 </div>--> 182 </div>-->
180 </div> 183 </div>
181 <div class="swiper-pagination"></div> 184 <div class="swiper-pagination"></div>
182 <div class="swiper-button-prev"> 185 <div class="swiper-button-prev">
183 <svg width="10" height="17"> 186 <svg width="10" height="17">
184 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 187 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
185 </svg> 188 </svg>
186 </div> 189 </div>
187 <div class="swiper-button-next"> 190 <div class="swiper-button-next">
188 <svg width="10" height="17"> 191 <svg width="10" height="17">
189 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 192 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
190 </svg> 193 </svg>
191 </div> 194 </div>
192 </div> 195 </div>
193 </div> 196 </div>
194 </div> 197 </div>
195 </div> 198 </div>
196 </section> 199 </section>
197 <!-- СТРАНИЦА ЖК--> 200 <!-- СТРАНИЦА ЖК-->
198 <section class="complex"> 201 <section class="complex">
199 <div class="container"> 202 <div class="container">
200 <div class="complex__top top-catalog"> 203 <div class="complex__top top-catalog">
201 <div class="top-catalog__inner"> 204 <div class="top-catalog__inner">
202 <h2 class="top-catalog__title title">{{ $area->name_area }}</h2> 205 <h2 class="top-catalog__title title">{{ $area->name_area }}</h2>
203 <div class="top-catalog__result">Найдено объектов по Вашему запросу: <span><?=$house_arenda->count()+$house_prodaja->count()+$house_bissnes->count()+$house_arendovannie->count(); ?></span></div> 206 <div class="top-catalog__result">Найдено объектов по Вашему запросу: <span><?=$house_arenda->count()+$house_prodaja->count()+$house_bissnes->count()+$house_arendovannie->count(); ?></span></div>
204 </div> 207 </div>
205 <form class="top-catalog__sorts"> 208 <form class="top-catalog__sorts">
206 <div class="top-catalog__sort-group sort-group js_sort_group"> 209 <div class="top-catalog__sort-group sort-group js_sort_group">
207 <input class="js_sort_group_input" type="hidden"> 210 <input class="js_sort_group_input" type="hidden">
208 <div class="sort-group__current js_sort_group_current">Сначала дешевле</div> 211 <div class="sort-group__current js_sort_group_current">Сначала дешевле</div>
209 <ul class="sort-group__list js_sort_group_list"> 212 <ul class="sort-group__list js_sort_group_list">
210 <li class="sort-price sort-group__item js_sort_group_item active" data-val="1">Сначала дешевле</li> 213 <li class="sort-price sort-group__item js_sort_group_item active" data-val="1">Сначала дешевле</li>
211 <li class="sort-price sort-group__item js_sort_group_item" data-val="2">Сначала дороже</li> 214 <li class="sort-price sort-group__item js_sort_group_item" data-val="2">Сначала дороже</li>
212 </ul> 215 </ul>
213 </div> 216 </div>
214 <div class="top-catalog__sort-group sort-group js_sort_group"> 217 <div class="top-catalog__sort-group sort-group js_sort_group">
215 <input class="js_sort_group_input" type="hidden"> 218 <input class="js_sort_group_input" type="hidden">
216 <div class="sort-group__current js_sort_group_current">Сначала новые</div> 219 <div class="sort-group__current js_sort_group_current">Сначала новые</div>
217 <ul class="sort-group__list js_sort_group_list"> 220 <ul class="sort-group__list js_sort_group_list">
218 <li class="sort-new sort-group__item js_sort_group_item active" data-val="1">Сначала новые</li> 221 <li class="sort-new sort-group__item js_sort_group_item active" data-val="1">Сначала новые</li>
219 <li class="sort-new sort-group__item js_sort_group_item" data-val="2">Сначала старые</li> 222 <li class="sort-new sort-group__item js_sort_group_item" data-val="2">Сначала старые</li>
220 </ul> 223 </ul>
221 </div> 224 </div>
222 <div class="top-catalog__sort-group sort-group sort-group--wide js_sort_group"> 225 <div class="top-catalog__sort-group sort-group sort-group--wide js_sort_group">
223 <input class="js_sort_group_input" type="hidden"> 226 <input class="js_sort_group_input" type="hidden">
224 <div class="sort-group__current js_sort_group_current">Сначала с большей площадью</div> 227 <div class="sort-group__current js_sort_group_current">Сначала с большей площадью</div>
225 <ul class="sort-group__list js_sort_group_list"> 228 <ul class="sort-group__list js_sort_group_list">
226 <li class="sort-area sort-group__item js_sort_group_item active" data-val="1">Сначала с большей площадью</li> 229 <li class="sort-area sort-group__item js_sort_group_item active" data-val="1">Сначала с большей площадью</li>
227 <li class="sort-area sort-group__item js_sort_group_item" data-val="2">Сначала с меньшей площадью</li> 230 <li class="sort-area sort-group__item js_sort_group_item" data-val="2">Сначала с меньшей площадью</li>
228 </ul> 231 </ul>
229 </div> 232 </div>
230 </form> 233 </form>
231 </div> 234 </div>
232 </div> 235 </div>
233 <div class="complex__sliders"> 236 <div class="complex__sliders">
234 <section class="slider"> 237 <section class="slider">
235 <div class="container"> 238 <div class="container">
236 <div class="slider__wrap"> 239 <div class="slider__wrap">
237 <div class="slider__top"> 240 <div class="slider__top">
238 <h2 class="slider__title title">Аренда торговых помещений</h2><a class="slider__more" href="#">Показать все объекты</a> 241 <h2 class="slider__title title">Аренда торговых помещений</h2><a class="slider__more" href="#">Показать все объекты</a>
239 <div class="slider__control"> 242 <div class="slider__control">
240 <div class="swiper-button-prev"> 243 <div class="swiper-button-prev">
241 <svg width="10" height="17"> 244 <svg width="10" height="17">
242 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 245 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
243 </svg> 246 </svg>
244 </div> 247 </div>
245 <div class="swiper-button-next"> 248 <div class="swiper-button-next">
246 <svg width="10" height="17"> 249 <svg width="10" height="17">
247 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 250 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
248 </svg> 251 </svg>
249 </div> 252 </div>
250 </div> 253 </div>
251 </div> 254 </div>
252 <div class="slider__swiper swiper"> 255 <div class="slider__swiper swiper">
253 <div class="swiper-wrapper" id="arenda_block"> 256 <div class="swiper-wrapper" id="arenda_block">
254 @if ($house_arenda->count()) 257 @if ($house_arenda->count())
255 @foreach ($house_arenda as $house1) 258 @foreach ($house_arenda as $house1)
256 @include('catalogs.elemhouse', ['house' => $house1]) 259 @include('catalogs.elemhouse', ['house' => $house1])
257 @endforeach 260 @endforeach
258 @else 261 @else
259 <h3>Здесь пока что нет предложений</h3> 262 <h3>Здесь пока что нет предложений</h3>
260 @endif 263 @endif
261 <!--<div class="swiper-slide"> 264 <!--<div class="swiper-slide">
262 <div class="card"> 265 <div class="card">
263 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 266 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
264 <h3 class="card__title">Салон красоты</h3> 267 <h3 class="card__title">Салон красоты</h3>
265 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 268 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
266 <svg width="18" height="18"> 269 <svg width="18" height="18">
267 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 270 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
268 </svg> 271 </svg>
269 <svg width="18" height="18"> 272 <svg width="18" height="18">
270 <use xlink:href="images/sprite.svg#card-favorites"></use> 273 <use xlink:href="images/sprite.svg#card-favorites"></use>
271 </svg></span><a class="card__label card__label-messenger" href="#"> 274 </svg></span><a class="card__label card__label-messenger" href="#">
272 <svg width="25" height="25"> 275 <svg width="25" height="25">
273 <use xlink:href="images/sprite.svg#card-messenger"></use> 276 <use xlink:href="images/sprite.svg#card-messenger"></use>
274 </svg></a></div> 277 </svg></a></div>
275 </div> 278 </div>
276 <div class="card__cnt"> 279 <div class="card__cnt">
277 <div class="card__info"> 280 <div class="card__info">
278 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 281 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
279 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 282 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
280 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 283 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
281 <div class="card__line">Площадь: <b>556 м2</b></div> 284 <div class="card__line">Площадь: <b>556 м2</b></div>
282 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 285 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
283 </div> 286 </div>
284 <div class="card__price"><span>1 000 000 ₽</span> 287 <div class="card__price"><span>1 000 000 ₽</span>
285 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 288 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
286 </div> 289 </div>
287 </div> 290 </div>
288 </div> 291 </div>
289 <div class="swiper-slide"> 292 <div class="swiper-slide">
290 <div class="card"> 293 <div class="card">
291 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 294 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
292 <h3 class="card__title">Барбер-шоп</h3> 295 <h3 class="card__title">Барбер-шоп</h3>
293 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 296 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
294 <svg width="18" height="18"> 297 <svg width="18" height="18">
295 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 298 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
296 </svg> 299 </svg>
297 <svg width="18" height="18"> 300 <svg width="18" height="18">
298 <use xlink:href="images/sprite.svg#card-favorites"></use> 301 <use xlink:href="images/sprite.svg#card-favorites"></use>
299 </svg></span><a class="card__label card__label-messenger" href="#"> 302 </svg></span><a class="card__label card__label-messenger" href="#">
300 <svg width="25" height="25"> 303 <svg width="25" height="25">
301 <use xlink:href="images/sprite.svg#card-messenger"></use> 304 <use xlink:href="images/sprite.svg#card-messenger"></use>
302 </svg></a></div> 305 </svg></a></div>
303 </div> 306 </div>
304 <div class="card__cnt"> 307 <div class="card__cnt">
305 <div class="card__info"> 308 <div class="card__info">
306 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 309 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
307 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 310 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
308 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 311 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
309 <div class="card__line">Площадь: <b>6 556 м2</b></div> 312 <div class="card__line">Площадь: <b>6 556 м2</b></div>
310 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 313 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
311 </div> 314 </div>
312 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 315 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
313 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 316 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
314 </div> 317 </div>
315 </div> 318 </div>
316 </div> 319 </div>
317 <div class="swiper-slide"> 320 <div class="swiper-slide">
318 <div class="card"> 321 <div class="card">
319 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 322 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
320 <h3 class="card__title">Аптека</h3> 323 <h3 class="card__title">Аптека</h3>
321 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 324 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
322 <svg width="18" height="18"> 325 <svg width="18" height="18">
323 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 326 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
324 </svg> 327 </svg>
325 <svg width="18" height="18"> 328 <svg width="18" height="18">
326 <use xlink:href="images/sprite.svg#card-favorites"></use> 329 <use xlink:href="images/sprite.svg#card-favorites"></use>
327 </svg></span><a class="card__label card__label-messenger" href="#"> 330 </svg></span><a class="card__label card__label-messenger" href="#">
328 <svg width="25" height="25"> 331 <svg width="25" height="25">
329 <use xlink:href="images/sprite.svg#card-messenger"></use> 332 <use xlink:href="images/sprite.svg#card-messenger"></use>
330 </svg></a></div> 333 </svg></a></div>
331 </div> 334 </div>
332 <div class="card__cnt"> 335 <div class="card__cnt">
333 <div class="card__info"> 336 <div class="card__info">
334 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 337 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
335 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 338 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
336 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 339 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
337 <div class="card__line">Площадь: <b>8 626 м2</b></div> 340 <div class="card__line">Площадь: <b>8 626 м2</b></div>
338 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 341 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
339 </div> 342 </div>
340 <div class="card__price"><span>5 280 000 ₽</span> 343 <div class="card__price"><span>5 280 000 ₽</span>
341 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 344 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
342 </div> 345 </div>
343 </div> 346 </div>
344 </div> 347 </div>
345 <div class="swiper-slide"> 348 <div class="swiper-slide">
346 <div class="card"> 349 <div class="card">
347 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 350 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
348 <h3 class="card__title">Витрина</h3> 351 <h3 class="card__title">Витрина</h3>
349 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 352 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
350 <svg width="18" height="18"> 353 <svg width="18" height="18">
351 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 354 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
352 </svg> 355 </svg>
353 <svg width="18" height="18"> 356 <svg width="18" height="18">
354 <use xlink:href="images/sprite.svg#card-favorites"></use> 357 <use xlink:href="images/sprite.svg#card-favorites"></use>
355 </svg></span><a class="card__label card__label-messenger" href="#"> 358 </svg></span><a class="card__label card__label-messenger" href="#">
356 <svg width="25" height="25"> 359 <svg width="25" height="25">
357 <use xlink:href="images/sprite.svg#card-messenger"></use> 360 <use xlink:href="images/sprite.svg#card-messenger"></use>
358 </svg></a></div> 361 </svg></a></div>
359 </div> 362 </div>
360 <div class="card__cnt"> 363 <div class="card__cnt">
361 <div class="card__info"> 364 <div class="card__info">
362 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 365 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
363 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 366 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
364 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 367 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
365 <div class="card__line">Площадь: <b>6 856 м2</b></div> 368 <div class="card__line">Площадь: <b>6 856 м2</b></div>
366 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 369 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
367 </div> 370 </div>
368 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 371 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
369 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 372 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
370 </div> 373 </div>
371 </div> 374 </div>
372 </div> 375 </div>
373 <div class="swiper-slide"> 376 <div class="swiper-slide">
374 <div class="card"> 377 <div class="card">
375 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 378 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
376 <h3 class="card__title">Салон красоты</h3> 379 <h3 class="card__title">Салон красоты</h3>
377 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 380 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
378 <svg width="18" height="18"> 381 <svg width="18" height="18">
379 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 382 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
380 </svg> 383 </svg>
381 <svg width="18" height="18"> 384 <svg width="18" height="18">
382 <use xlink:href="images/sprite.svg#card-favorites"></use> 385 <use xlink:href="images/sprite.svg#card-favorites"></use>
383 </svg></span><a class="card__label card__label-messenger" href="#"> 386 </svg></span><a class="card__label card__label-messenger" href="#">
384 <svg width="25" height="25"> 387 <svg width="25" height="25">
385 <use xlink:href="images/sprite.svg#card-messenger"></use> 388 <use xlink:href="images/sprite.svg#card-messenger"></use>
386 </svg></a></div> 389 </svg></a></div>
387 </div> 390 </div>
388 <div class="card__cnt"> 391 <div class="card__cnt">
389 <div class="card__info"> 392 <div class="card__info">
390 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 393 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
391 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 394 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
392 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 395 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
393 <div class="card__line">Площадь: <b>556 м2</b></div> 396 <div class="card__line">Площадь: <b>556 м2</b></div>
394 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 397 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
395 </div> 398 </div>
396 <div class="card__price"><span>1 000 000 ₽</span> 399 <div class="card__price"><span>1 000 000 ₽</span>
397 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 400 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
398 </div> 401 </div>
399 </div> 402 </div>
400 </div> 403 </div>
401 <div class="swiper-slide"> 404 <div class="swiper-slide">
402 <div class="card"> 405 <div class="card">
403 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 406 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
404 <h3 class="card__title">Барбер-шоп</h3> 407 <h3 class="card__title">Барбер-шоп</h3>
405 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 408 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
406 <svg width="18" height="18"> 409 <svg width="18" height="18">
407 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 410 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
408 </svg> 411 </svg>
409 <svg width="18" height="18"> 412 <svg width="18" height="18">
410 <use xlink:href="images/sprite.svg#card-favorites"></use> 413 <use xlink:href="images/sprite.svg#card-favorites"></use>
411 </svg></span><a class="card__label card__label-messenger" href="#"> 414 </svg></span><a class="card__label card__label-messenger" href="#">
412 <svg width="25" height="25"> 415 <svg width="25" height="25">
413 <use xlink:href="images/sprite.svg#card-messenger"></use> 416 <use xlink:href="images/sprite.svg#card-messenger"></use>
414 </svg></a></div> 417 </svg></a></div>
415 </div> 418 </div>
416 <div class="card__cnt"> 419 <div class="card__cnt">
417 <div class="card__info"> 420 <div class="card__info">
418 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 421 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
419 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 422 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
420 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 423 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
421 <div class="card__line">Площадь: <b>6 556 м2</b></div> 424 <div class="card__line">Площадь: <b>6 556 м2</b></div>
422 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 425 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
423 </div> 426 </div>
424 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 427 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
425 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 428 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
426 </div> 429 </div>
427 </div> 430 </div>
428 </div> 431 </div>
429 <div class="swiper-slide"> 432 <div class="swiper-slide">
430 <div class="card"> 433 <div class="card">
431 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 434 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
432 <h3 class="card__title">Аптека</h3> 435 <h3 class="card__title">Аптека</h3>
433 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 436 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
434 <svg width="18" height="18"> 437 <svg width="18" height="18">
435 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 438 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
436 </svg> 439 </svg>
437 <svg width="18" height="18"> 440 <svg width="18" height="18">
438 <use xlink:href="images/sprite.svg#card-favorites"></use> 441 <use xlink:href="images/sprite.svg#card-favorites"></use>
439 </svg></span><a class="card__label card__label-messenger" href="#"> 442 </svg></span><a class="card__label card__label-messenger" href="#">
440 <svg width="25" height="25"> 443 <svg width="25" height="25">
441 <use xlink:href="images/sprite.svg#card-messenger"></use> 444 <use xlink:href="images/sprite.svg#card-messenger"></use>
442 </svg></a></div> 445 </svg></a></div>
443 </div> 446 </div>
444 <div class="card__cnt"> 447 <div class="card__cnt">
445 <div class="card__info"> 448 <div class="card__info">
446 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 449 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
447 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 450 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
448 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 451 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
449 <div class="card__line">Площадь: <b>8 626 м2</b></div> 452 <div class="card__line">Площадь: <b>8 626 м2</b></div>
450 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 453 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
451 </div> 454 </div>
452 <div class="card__price"><span>5 280 000 ₽</span> 455 <div class="card__price"><span>5 280 000 ₽</span>
453 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 456 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
454 </div> 457 </div>
455 </div> 458 </div>
456 </div> 459 </div>
457 <div class="swiper-slide"> 460 <div class="swiper-slide">
458 <div class="card"> 461 <div class="card">
459 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 462 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
460 <h3 class="card__title">Витрина</h3> 463 <h3 class="card__title">Витрина</h3>
461 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 464 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
462 <svg width="18" height="18"> 465 <svg width="18" height="18">
463 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 466 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
464 </svg> 467 </svg>
465 <svg width="18" height="18"> 468 <svg width="18" height="18">
466 <use xlink:href="images/sprite.svg#card-favorites"></use> 469 <use xlink:href="images/sprite.svg#card-favorites"></use>
467 </svg></span><a class="card__label card__label-messenger" href="#"> 470 </svg></span><a class="card__label card__label-messenger" href="#">
468 <svg width="25" height="25"> 471 <svg width="25" height="25">
469 <use xlink:href="images/sprite.svg#card-messenger"></use> 472 <use xlink:href="images/sprite.svg#card-messenger"></use>
470 </svg></a></div> 473 </svg></a></div>
471 </div> 474 </div>
472 <div class="card__cnt"> 475 <div class="card__cnt">
473 <div class="card__info"> 476 <div class="card__info">
474 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 477 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
475 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 478 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
476 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 479 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
477 <div class="card__line">Площадь: <b>6 856 м2</b></div> 480 <div class="card__line">Площадь: <b>6 856 м2</b></div>
478 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 481 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
479 </div> 482 </div>
480 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 483 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
481 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 484 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
482 </div> 485 </div>
483 </div> 486 </div>
484 </div>--> 487 </div>-->
485 </div> 488 </div>
486 </div> 489 </div>
487 <div class="swiper-pagination"></div> 490 <div class="swiper-pagination"></div>
488 </div> 491 </div>
489 </div> 492 </div>
490 </section> 493 </section>
491 <section class="slider"> 494 <section class="slider">
492 <div class="container"> 495 <div class="container">
493 <div class="slider__wrap"> 496 <div class="slider__wrap">
494 <div class="slider__top"> 497 <div class="slider__top">
495 <h2 class="slider__title title">Продажа торговых помещений</h2><a class="slider__more" href="#">Показать все объекты</a> 498 <h2 class="slider__title title">Продажа торговых помещений</h2><a class="slider__more" href="#">Показать все объекты</a>
496 <div class="slider__control"> 499 <div class="slider__control">
497 <div class="swiper-button-prev"> 500 <div class="swiper-button-prev">
498 <svg width="10" height="17"> 501 <svg width="10" height="17">
499 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 502 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
500 </svg> 503 </svg>
501 </div> 504 </div>
502 <div class="swiper-button-next"> 505 <div class="swiper-button-next">
503 <svg width="10" height="17"> 506 <svg width="10" height="17">
504 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 507 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
505 </svg> 508 </svg>
506 </div> 509 </div>
507 </div> 510 </div>
508 </div> 511 </div>
509 <div class="slider__swiper swiper"> 512 <div class="slider__swiper swiper">
510 <div class="swiper-wrapper" id="prodaja_block"> 513 <div class="swiper-wrapper" id="prodaja_block">
511 @if ($house_prodaja->count()) 514 @if ($house_prodaja->count())
512 @foreach ($house_prodaja as $house2) 515 @foreach ($house_prodaja as $house2)
513 @include('catalogs.elemhouse', ['house' => $house2]) 516 @include('catalogs.elemhouse', ['house' => $house2])
514 @endforeach 517 @endforeach
515 @else 518 @else
516 <h3>Здесь пока что нет предложений</h3> 519 <h3>Здесь пока что нет предложений</h3>
517 @endif 520 @endif
518 521
519 522
520 <!--<div class="swiper-slide"> 523 <!--<div class="swiper-slide">
521 <div class="card"> 524 <div class="card">
522 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 525 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
523 <h3 class="card__title">Салон красоты</h3> 526 <h3 class="card__title">Салон красоты</h3>
524 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 527 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
525 <svg width="18" height="18"> 528 <svg width="18" height="18">
526 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 529 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
527 </svg> 530 </svg>
528 <svg width="18" height="18"> 531 <svg width="18" height="18">
529 <use xlink:href="images/sprite.svg#card-favorites"></use> 532 <use xlink:href="images/sprite.svg#card-favorites"></use>
530 </svg></span><a class="card__label card__label-messenger" href="#"> 533 </svg></span><a class="card__label card__label-messenger" href="#">
531 <svg width="25" height="25"> 534 <svg width="25" height="25">
532 <use xlink:href="images/sprite.svg#card-messenger"></use> 535 <use xlink:href="images/sprite.svg#card-messenger"></use>
533 </svg></a></div> 536 </svg></a></div>
534 </div> 537 </div>
535 <div class="card__cnt"> 538 <div class="card__cnt">
536 <div class="card__info"> 539 <div class="card__info">
537 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 540 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
538 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 541 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
539 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 542 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
540 <div class="card__line">Площадь: <b>556 м2</b></div> 543 <div class="card__line">Площадь: <b>556 м2</b></div>
541 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 544 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
542 </div> 545 </div>
543 <div class="card__price"><span>1 000 000 ₽</span> 546 <div class="card__price"><span>1 000 000 ₽</span>
544 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 547 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
545 </div> 548 </div>
546 </div> 549 </div>
547 </div> 550 </div>
548 <div class="swiper-slide"> 551 <div class="swiper-slide">
549 <div class="card"> 552 <div class="card">
550 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 553 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
551 <h3 class="card__title">Барбер-шоп</h3> 554 <h3 class="card__title">Барбер-шоп</h3>
552 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 555 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
553 <svg width="18" height="18"> 556 <svg width="18" height="18">
554 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 557 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
555 </svg> 558 </svg>
556 <svg width="18" height="18"> 559 <svg width="18" height="18">
557 <use xlink:href="images/sprite.svg#card-favorites"></use> 560 <use xlink:href="images/sprite.svg#card-favorites"></use>
558 </svg></span><a class="card__label card__label-messenger" href="#"> 561 </svg></span><a class="card__label card__label-messenger" href="#">
559 <svg width="25" height="25"> 562 <svg width="25" height="25">
560 <use xlink:href="images/sprite.svg#card-messenger"></use> 563 <use xlink:href="images/sprite.svg#card-messenger"></use>
561 </svg></a></div> 564 </svg></a></div>
562 </div> 565 </div>
563 <div class="card__cnt"> 566 <div class="card__cnt">
564 <div class="card__info"> 567 <div class="card__info">
565 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 568 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
566 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 569 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
567 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 570 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
568 <div class="card__line">Площадь: <b>6 556 м2</b></div> 571 <div class="card__line">Площадь: <b>6 556 м2</b></div>
569 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 572 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
570 </div> 573 </div>
571 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 574 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
572 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 575 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
573 </div> 576 </div>
574 </div> 577 </div>
575 </div> 578 </div>
576 <div class="swiper-slide"> 579 <div class="swiper-slide">
577 <div class="card"> 580 <div class="card">
578 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 581 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
579 <h3 class="card__title">Аптека</h3> 582 <h3 class="card__title">Аптека</h3>
580 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 583 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
581 <svg width="18" height="18"> 584 <svg width="18" height="18">
582 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 585 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
583 </svg> 586 </svg>
584 <svg width="18" height="18"> 587 <svg width="18" height="18">
585 <use xlink:href="images/sprite.svg#card-favorites"></use> 588 <use xlink:href="images/sprite.svg#card-favorites"></use>
586 </svg></span><a class="card__label card__label-messenger" href="#"> 589 </svg></span><a class="card__label card__label-messenger" href="#">
587 <svg width="25" height="25"> 590 <svg width="25" height="25">
588 <use xlink:href="images/sprite.svg#card-messenger"></use> 591 <use xlink:href="images/sprite.svg#card-messenger"></use>
589 </svg></a></div> 592 </svg></a></div>
590 </div> 593 </div>
591 <div class="card__cnt"> 594 <div class="card__cnt">
592 <div class="card__info"> 595 <div class="card__info">
593 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 596 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
594 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 597 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
595 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 598 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
596 <div class="card__line">Площадь: <b>8 626 м2</b></div> 599 <div class="card__line">Площадь: <b>8 626 м2</b></div>
597 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 600 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
598 </div> 601 </div>
599 <div class="card__price"><span>5 280 000 ₽</span> 602 <div class="card__price"><span>5 280 000 ₽</span>
600 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 603 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
601 </div> 604 </div>
602 </div> 605 </div>
603 </div> 606 </div>
604 <div class="swiper-slide"> 607 <div class="swiper-slide">
605 <div class="card"> 608 <div class="card">
606 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 609 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
607 <h3 class="card__title">Витрина</h3> 610 <h3 class="card__title">Витрина</h3>
608 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 611 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
609 <svg width="18" height="18"> 612 <svg width="18" height="18">
610 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 613 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
611 </svg> 614 </svg>
612 <svg width="18" height="18"> 615 <svg width="18" height="18">
613 <use xlink:href="images/sprite.svg#card-favorites"></use> 616 <use xlink:href="images/sprite.svg#card-favorites"></use>
614 </svg></span><a class="card__label card__label-messenger" href="#"> 617 </svg></span><a class="card__label card__label-messenger" href="#">
615 <svg width="25" height="25"> 618 <svg width="25" height="25">
616 <use xlink:href="images/sprite.svg#card-messenger"></use> 619 <use xlink:href="images/sprite.svg#card-messenger"></use>
617 </svg></a></div> 620 </svg></a></div>
618 </div> 621 </div>
619 <div class="card__cnt"> 622 <div class="card__cnt">
620 <div class="card__info"> 623 <div class="card__info">
621 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 624 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
622 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 625 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
623 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 626 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
624 <div class="card__line">Площадь: <b>6 856 м2</b></div> 627 <div class="card__line">Площадь: <b>6 856 м2</b></div>
625 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 628 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
626 </div> 629 </div>
627 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 630 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
628 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 631 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
629 </div> 632 </div>
630 </div> 633 </div>
631 </div> 634 </div>
632 <div class="swiper-slide"> 635 <div class="swiper-slide">
633 <div class="card"> 636 <div class="card">
634 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 637 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
635 <h3 class="card__title">Салон красоты</h3> 638 <h3 class="card__title">Салон красоты</h3>
636 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 639 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
637 <svg width="18" height="18"> 640 <svg width="18" height="18">
638 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 641 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
639 </svg> 642 </svg>
640 <svg width="18" height="18"> 643 <svg width="18" height="18">
641 <use xlink:href="images/sprite.svg#card-favorites"></use> 644 <use xlink:href="images/sprite.svg#card-favorites"></use>
642 </svg></span><a class="card__label card__label-messenger" href="#"> 645 </svg></span><a class="card__label card__label-messenger" href="#">
643 <svg width="25" height="25"> 646 <svg width="25" height="25">
644 <use xlink:href="images/sprite.svg#card-messenger"></use> 647 <use xlink:href="images/sprite.svg#card-messenger"></use>
645 </svg></a></div> 648 </svg></a></div>
646 </div> 649 </div>
647 <div class="card__cnt"> 650 <div class="card__cnt">
648 <div class="card__info"> 651 <div class="card__info">
649 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 652 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
650 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 653 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
651 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 654 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
652 <div class="card__line">Площадь: <b>556 м2</b></div> 655 <div class="card__line">Площадь: <b>556 м2</b></div>
653 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 656 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
654 </div> 657 </div>
655 <div class="card__price"><span>1 000 000 ₽</span> 658 <div class="card__price"><span>1 000 000 ₽</span>
656 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 659 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
657 </div> 660 </div>
658 </div> 661 </div>
659 </div> 662 </div>
660 <div class="swiper-slide"> 663 <div class="swiper-slide">
661 <div class="card"> 664 <div class="card">
662 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 665 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
663 <h3 class="card__title">Барбер-шоп</h3> 666 <h3 class="card__title">Барбер-шоп</h3>
664 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 667 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
665 <svg width="18" height="18"> 668 <svg width="18" height="18">
666 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 669 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
667 </svg> 670 </svg>
668 <svg width="18" height="18"> 671 <svg width="18" height="18">
669 <use xlink:href="images/sprite.svg#card-favorites"></use> 672 <use xlink:href="images/sprite.svg#card-favorites"></use>
670 </svg></span><a class="card__label card__label-messenger" href="#"> 673 </svg></span><a class="card__label card__label-messenger" href="#">
671 <svg width="25" height="25"> 674 <svg width="25" height="25">
672 <use xlink:href="images/sprite.svg#card-messenger"></use> 675 <use xlink:href="images/sprite.svg#card-messenger"></use>
673 </svg></a></div> 676 </svg></a></div>
674 </div> 677 </div>
675 <div class="card__cnt"> 678 <div class="card__cnt">
676 <div class="card__info"> 679 <div class="card__info">
677 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 680 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
678 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 681 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
679 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 682 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
680 <div class="card__line">Площадь: <b>6 556 м2</b></div> 683 <div class="card__line">Площадь: <b>6 556 м2</b></div>
681 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 684 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
682 </div> 685 </div>
683 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 686 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
684 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 687 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
685 </div> 688 </div>
686 </div> 689 </div>
687 </div> 690 </div>
688 <div class="swiper-slide"> 691 <div class="swiper-slide">
689 <div class="card"> 692 <div class="card">
690 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 693 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
691 <h3 class="card__title">Аптека</h3> 694 <h3 class="card__title">Аптека</h3>
692 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 695 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
693 <svg width="18" height="18"> 696 <svg width="18" height="18">
694 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 697 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
695 </svg> 698 </svg>
696 <svg width="18" height="18"> 699 <svg width="18" height="18">
697 <use xlink:href="images/sprite.svg#card-favorites"></use> 700 <use xlink:href="images/sprite.svg#card-favorites"></use>
698 </svg></span><a class="card__label card__label-messenger" href="#"> 701 </svg></span><a class="card__label card__label-messenger" href="#">
699 <svg width="25" height="25"> 702 <svg width="25" height="25">
700 <use xlink:href="images/sprite.svg#card-messenger"></use> 703 <use xlink:href="images/sprite.svg#card-messenger"></use>
701 </svg></a></div> 704 </svg></a></div>
702 </div> 705 </div>
703 <div class="card__cnt"> 706 <div class="card__cnt">
704 <div class="card__info"> 707 <div class="card__info">
705 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 708 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
706 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 709 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
707 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 710 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
708 <div class="card__line">Площадь: <b>8 626 м2</b></div> 711 <div class="card__line">Площадь: <b>8 626 м2</b></div>
709 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 712 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
710 </div> 713 </div>
711 <div class="card__price"><span>5 280 000 ₽</span> 714 <div class="card__price"><span>5 280 000 ₽</span>
712 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 715 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
713 </div> 716 </div>
714 </div> 717 </div>
715 </div> 718 </div>
716 <div class="swiper-slide"> 719 <div class="swiper-slide">
717 <div class="card"> 720 <div class="card">
718 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 721 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
719 <h3 class="card__title">Витрина</h3> 722 <h3 class="card__title">Витрина</h3>
720 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 723 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
721 <svg width="18" height="18"> 724 <svg width="18" height="18">
722 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 725 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
723 </svg> 726 </svg>
724 <svg width="18" height="18"> 727 <svg width="18" height="18">
725 <use xlink:href="images/sprite.svg#card-favorites"></use> 728 <use xlink:href="images/sprite.svg#card-favorites"></use>
726 </svg></span><a class="card__label card__label-messenger" href="#"> 729 </svg></span><a class="card__label card__label-messenger" href="#">
727 <svg width="25" height="25"> 730 <svg width="25" height="25">
728 <use xlink:href="images/sprite.svg#card-messenger"></use> 731 <use xlink:href="images/sprite.svg#card-messenger"></use>
729 </svg></a></div> 732 </svg></a></div>
730 </div> 733 </div>
731 <div class="card__cnt"> 734 <div class="card__cnt">
732 <div class="card__info"> 735 <div class="card__info">
733 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 736 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
734 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 737 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
735 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 738 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
736 <div class="card__line">Площадь: <b>6 856 м2</b></div> 739 <div class="card__line">Площадь: <b>6 856 м2</b></div>
737 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 740 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
738 </div> 741 </div>
739 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 742 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
740 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 743 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
741 </div> 744 </div>
742 </div> 745 </div>
743 </div>--> 746 </div>-->
744 </div> 747 </div>
745 </div> 748 </div>
746 <div class="swiper-pagination"></div> 749 <div class="swiper-pagination"></div>
747 </div> 750 </div>
748 </div> 751 </div>
749 </section> 752 </section>
750 <section class="slider"> 753 <section class="slider">
751 <div class="container"> 754 <div class="container">
752 <div class="slider__wrap"> 755 <div class="slider__wrap">
753 <div class="slider__top"> 756 <div class="slider__top">
754 <h2 class="slider__title title">Арендный бизнес</h2><a class="slider__more" href="#">Показать все объекты</a> 757 <h2 class="slider__title title">Арендный бизнес</h2><a class="slider__more" href="#">Показать все объекты</a>
755 <div class="slider__control"> 758 <div class="slider__control">
756 <div class="swiper-button-prev"> 759 <div class="swiper-button-prev">
757 <svg width="10" height="17"> 760 <svg width="10" height="17">
758 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 761 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
759 </svg> 762 </svg>
760 </div> 763 </div>
761 <div class="swiper-button-next"> 764 <div class="swiper-button-next">
762 <svg width="10" height="17"> 765 <svg width="10" height="17">
763 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 766 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
764 </svg> 767 </svg>
765 </div> 768 </div>
766 </div> 769 </div>
767 </div> 770 </div>
768 <div class="slider__swiper swiper"> 771 <div class="slider__swiper swiper">
769 <div class="swiper-wrapper" id="bissnes_block"> 772 <div class="swiper-wrapper" id="bissnes_block">
770 @if ($house_bissnes->count()) 773 @if ($house_bissnes->count())
771 @foreach ($house_bissnes as $house3) 774 @foreach ($house_bissnes as $house3)
772 @include('catalogs.elemhouse', ['house' => $house3]) 775 @include('catalogs.elemhouse', ['house' => $house3])
773 @endforeach 776 @endforeach
774 @else 777 @else
775 <h3>Здесь пока что нет предложений</h3> 778 <h3>Здесь пока что нет предложений</h3>
776 @endif 779 @endif
777 <!--<div class="swiper-slide"> 780 <!--<div class="swiper-slide">
778 <div class="card"> 781 <div class="card">
779 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 782 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
780 <h3 class="card__title">Салон красоты</h3> 783 <h3 class="card__title">Салон красоты</h3>
781 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 784 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
782 <svg width="18" height="18"> 785 <svg width="18" height="18">
783 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 786 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
784 </svg> 787 </svg>
785 <svg width="18" height="18"> 788 <svg width="18" height="18">
786 <use xlink:href="images/sprite.svg#card-favorites"></use> 789 <use xlink:href="images/sprite.svg#card-favorites"></use>
787 </svg></span><a class="card__label card__label-messenger" href="#"> 790 </svg></span><a class="card__label card__label-messenger" href="#">
788 <svg width="25" height="25"> 791 <svg width="25" height="25">
789 <use xlink:href="images/sprite.svg#card-messenger"></use> 792 <use xlink:href="images/sprite.svg#card-messenger"></use>
790 </svg></a></div> 793 </svg></a></div>
791 </div> 794 </div>
792 <div class="card__cnt"> 795 <div class="card__cnt">
793 <div class="card__info"> 796 <div class="card__info">
794 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 797 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
795 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 798 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
796 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 799 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
797 <div class="card__line">Площадь: <b>556 м2</b></div> 800 <div class="card__line">Площадь: <b>556 м2</b></div>
798 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 801 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
799 </div> 802 </div>
800 <div class="card__price"><span>1 000 000 ₽</span> 803 <div class="card__price"><span>1 000 000 ₽</span>
801 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 804 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
802 </div> 805 </div>
803 </div> 806 </div>
804 </div> 807 </div>
805 <div class="swiper-slide"> 808 <div class="swiper-slide">
806 <div class="card"> 809 <div class="card">
807 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 810 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
808 <h3 class="card__title">Барбер-шоп</h3> 811 <h3 class="card__title">Барбер-шоп</h3>
809 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 812 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
810 <svg width="18" height="18"> 813 <svg width="18" height="18">
811 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 814 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
812 </svg> 815 </svg>
813 <svg width="18" height="18"> 816 <svg width="18" height="18">
814 <use xlink:href="images/sprite.svg#card-favorites"></use> 817 <use xlink:href="images/sprite.svg#card-favorites"></use>
815 </svg></span><a class="card__label card__label-messenger" href="#"> 818 </svg></span><a class="card__label card__label-messenger" href="#">
816 <svg width="25" height="25"> 819 <svg width="25" height="25">
817 <use xlink:href="images/sprite.svg#card-messenger"></use> 820 <use xlink:href="images/sprite.svg#card-messenger"></use>
818 </svg></a></div> 821 </svg></a></div>
819 </div> 822 </div>
820 <div class="card__cnt"> 823 <div class="card__cnt">
821 <div class="card__info"> 824 <div class="card__info">
822 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 825 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
823 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 826 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
824 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 827 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
825 <div class="card__line">Площадь: <b>6 556 м2</b></div> 828 <div class="card__line">Площадь: <b>6 556 м2</b></div>
826 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 829 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
827 </div> 830 </div>
828 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 831 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
829 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 832 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
830 </div> 833 </div>
831 </div> 834 </div>
832 </div> 835 </div>
833 <div class="swiper-slide"> 836 <div class="swiper-slide">
834 <div class="card"> 837 <div class="card">
835 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 838 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
836 <h3 class="card__title">Аптека</h3> 839 <h3 class="card__title">Аптека</h3>
837 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 840 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
838 <svg width="18" height="18"> 841 <svg width="18" height="18">
839 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 842 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
840 </svg> 843 </svg>
841 <svg width="18" height="18"> 844 <svg width="18" height="18">
842 <use xlink:href="images/sprite.svg#card-favorites"></use> 845 <use xlink:href="images/sprite.svg#card-favorites"></use>
843 </svg></span><a class="card__label card__label-messenger" href="#"> 846 </svg></span><a class="card__label card__label-messenger" href="#">
844 <svg width="25" height="25"> 847 <svg width="25" height="25">
845 <use xlink:href="images/sprite.svg#card-messenger"></use> 848 <use xlink:href="images/sprite.svg#card-messenger"></use>
846 </svg></a></div> 849 </svg></a></div>
847 </div> 850 </div>
848 <div class="card__cnt"> 851 <div class="card__cnt">
849 <div class="card__info"> 852 <div class="card__info">
850 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 853 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
851 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 854 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
852 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 855 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
853 <div class="card__line">Площадь: <b>8 626 м2</b></div> 856 <div class="card__line">Площадь: <b>8 626 м2</b></div>
854 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 857 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
855 </div> 858 </div>
856 <div class="card__price"><span>5 280 000 ₽</span> 859 <div class="card__price"><span>5 280 000 ₽</span>
857 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 860 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
858 </div> 861 </div>
859 </div> 862 </div>
860 </div> 863 </div>
861 <div class="swiper-slide"> 864 <div class="swiper-slide">
862 <div class="card"> 865 <div class="card">
863 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 866 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
864 <h3 class="card__title">Витрина</h3> 867 <h3 class="card__title">Витрина</h3>
865 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 868 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
866 <svg width="18" height="18"> 869 <svg width="18" height="18">
867 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 870 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
868 </svg> 871 </svg>
869 <svg width="18" height="18"> 872 <svg width="18" height="18">
870 <use xlink:href="images/sprite.svg#card-favorites"></use> 873 <use xlink:href="images/sprite.svg#card-favorites"></use>
871 </svg></span><a class="card__label card__label-messenger" href="#"> 874 </svg></span><a class="card__label card__label-messenger" href="#">
872 <svg width="25" height="25"> 875 <svg width="25" height="25">
873 <use xlink:href="images/sprite.svg#card-messenger"></use> 876 <use xlink:href="images/sprite.svg#card-messenger"></use>
874 </svg></a></div> 877 </svg></a></div>
875 </div> 878 </div>
876 <div class="card__cnt"> 879 <div class="card__cnt">
877 <div class="card__info"> 880 <div class="card__info">
878 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 881 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
879 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 882 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
880 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 883 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
881 <div class="card__line">Площадь: <b>6 856 м2</b></div> 884 <div class="card__line">Площадь: <b>6 856 м2</b></div>
882 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 885 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
883 </div> 886 </div>
884 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 887 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
885 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 888 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
886 </div> 889 </div>
887 </div> 890 </div>
888 </div> 891 </div>
889 <div class="swiper-slide"> 892 <div class="swiper-slide">
890 <div class="card"> 893 <div class="card">
891 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 894 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
892 <h3 class="card__title">Салон красоты</h3> 895 <h3 class="card__title">Салон красоты</h3>
893 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 896 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
894 <svg width="18" height="18"> 897 <svg width="18" height="18">
895 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 898 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
896 </svg> 899 </svg>
897 <svg width="18" height="18"> 900 <svg width="18" height="18">
898 <use xlink:href="images/sprite.svg#card-favorites"></use> 901 <use xlink:href="images/sprite.svg#card-favorites"></use>
899 </svg></span><a class="card__label card__label-messenger" href="#"> 902 </svg></span><a class="card__label card__label-messenger" href="#">
900 <svg width="25" height="25"> 903 <svg width="25" height="25">
901 <use xlink:href="images/sprite.svg#card-messenger"></use> 904 <use xlink:href="images/sprite.svg#card-messenger"></use>
902 </svg></a></div> 905 </svg></a></div>
903 </div> 906 </div>
904 <div class="card__cnt"> 907 <div class="card__cnt">
905 <div class="card__info"> 908 <div class="card__info">
906 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 909 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
907 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 910 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
908 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 911 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
909 <div class="card__line">Площадь: <b>556 м2</b></div> 912 <div class="card__line">Площадь: <b>556 м2</b></div>
910 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 913 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
911 </div> 914 </div>
912 <div class="card__price"><span>1 000 000 ₽</span> 915 <div class="card__price"><span>1 000 000 ₽</span>
913 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 916 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
914 </div> 917 </div>
915 </div> 918 </div>
916 </div> 919 </div>
917 <div class="swiper-slide"> 920 <div class="swiper-slide">
918 <div class="card"> 921 <div class="card">
919 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 922 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
920 <h3 class="card__title">Барбер-шоп</h3> 923 <h3 class="card__title">Барбер-шоп</h3>
921 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 924 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
922 <svg width="18" height="18"> 925 <svg width="18" height="18">
923 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 926 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
924 </svg> 927 </svg>
925 <svg width="18" height="18"> 928 <svg width="18" height="18">
926 <use xlink:href="images/sprite.svg#card-favorites"></use> 929 <use xlink:href="images/sprite.svg#card-favorites"></use>
927 </svg></span><a class="card__label card__label-messenger" href="#"> 930 </svg></span><a class="card__label card__label-messenger" href="#">
928 <svg width="25" height="25"> 931 <svg width="25" height="25">
929 <use xlink:href="images/sprite.svg#card-messenger"></use> 932 <use xlink:href="images/sprite.svg#card-messenger"></use>
930 </svg></a></div> 933 </svg></a></div>
931 </div> 934 </div>
932 <div class="card__cnt"> 935 <div class="card__cnt">
933 <div class="card__info"> 936 <div class="card__info">
934 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 937 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
935 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 938 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
936 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 939 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
937 <div class="card__line">Площадь: <b>6 556 м2</b></div> 940 <div class="card__line">Площадь: <b>6 556 м2</b></div>
938 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 941 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
939 </div> 942 </div>
940 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 943 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
941 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 944 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
942 </div> 945 </div>
943 </div> 946 </div>
944 </div> 947 </div>
945 <div class="swiper-slide"> 948 <div class="swiper-slide">
946 <div class="card"> 949 <div class="card">
947 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 950 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
948 <h3 class="card__title">Аптека</h3> 951 <h3 class="card__title">Аптека</h3>
949 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 952 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
950 <svg width="18" height="18"> 953 <svg width="18" height="18">
951 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 954 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
952 </svg> 955 </svg>
953 <svg width="18" height="18"> 956 <svg width="18" height="18">
954 <use xlink:href="images/sprite.svg#card-favorites"></use> 957 <use xlink:href="images/sprite.svg#card-favorites"></use>
955 </svg></span><a class="card__label card__label-messenger" href="#"> 958 </svg></span><a class="card__label card__label-messenger" href="#">
956 <svg width="25" height="25"> 959 <svg width="25" height="25">
957 <use xlink:href="images/sprite.svg#card-messenger"></use> 960 <use xlink:href="images/sprite.svg#card-messenger"></use>
958 </svg></a></div> 961 </svg></a></div>
959 </div> 962 </div>
960 <div class="card__cnt"> 963 <div class="card__cnt">
961 <div class="card__info"> 964 <div class="card__info">
962 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 965 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
963 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 966 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
964 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 967 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
965 <div class="card__line">Площадь: <b>8 626 м2</b></div> 968 <div class="card__line">Площадь: <b>8 626 м2</b></div>
966 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 969 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
967 </div> 970 </div>
968 <div class="card__price"><span>5 280 000 ₽</span> 971 <div class="card__price"><span>5 280 000 ₽</span>
969 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 972 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
970 </div> 973 </div>
971 </div> 974 </div>
972 </div> 975 </div>
973 <div class="swiper-slide"> 976 <div class="swiper-slide">
974 <div class="card"> 977 <div class="card">
975 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 978 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
976 <h3 class="card__title">Витрина</h3> 979 <h3 class="card__title">Витрина</h3>
977 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 980 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
978 <svg width="18" height="18"> 981 <svg width="18" height="18">
979 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 982 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
980 </svg> 983 </svg>
981 <svg width="18" height="18"> 984 <svg width="18" height="18">
982 <use xlink:href="images/sprite.svg#card-favorites"></use> 985 <use xlink:href="images/sprite.svg#card-favorites"></use>
983 </svg></span><a class="card__label card__label-messenger" href="#"> 986 </svg></span><a class="card__label card__label-messenger" href="#">
984 <svg width="25" height="25"> 987 <svg width="25" height="25">
985 <use xlink:href="images/sprite.svg#card-messenger"></use> 988 <use xlink:href="images/sprite.svg#card-messenger"></use>
986 </svg></a></div> 989 </svg></a></div>
987 </div> 990 </div>
988 <div class="card__cnt"> 991 <div class="card__cnt">
989 <div class="card__info"> 992 <div class="card__info">
990 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 993 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
991 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 994 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
992 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 995 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
993 <div class="card__line">Площадь: <b>6 856 м2</b></div> 996 <div class="card__line">Площадь: <b>6 856 м2</b></div>
994 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 997 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
995 </div> 998 </div>
996 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 999 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
997 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 1000 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
998 </div> 1001 </div>
999 </div> 1002 </div>
1000 </div>--> 1003 </div>-->
1001 </div> 1004 </div>
1002 </div> 1005 </div>
1003 <div class="swiper-pagination"></div> 1006 <div class="swiper-pagination"></div>
1004 </div> 1007 </div>
1005 </div> 1008 </div>
1006 </section> 1009 </section>
1007 <section class="slider"> 1010 <section class="slider">
1008 <div class="container"> 1011 <div class="container">
1009 <div class="slider__wrap"> 1012 <div class="slider__wrap">
1010 <div class="slider__top"> 1013 <div class="slider__top">
1011 <h2 class="slider__title title">Арендованные</h2><a class="slider__more" href="#">Показать все объекты</a> 1014 <h2 class="slider__title title">Арендованные</h2><a class="slider__more" href="#">Показать все объекты</a>
1012 <div class="slider__control"> 1015 <div class="slider__control">
1013 <div class="swiper-button-prev"> 1016 <div class="swiper-button-prev">
1014 <svg width="10" height="17"> 1017 <svg width="10" height="17">
1015 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 1018 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
1016 </svg> 1019 </svg>
1017 </div> 1020 </div>
1018 <div class="swiper-button-next"> 1021 <div class="swiper-button-next">
1019 <svg width="10" height="17"> 1022 <svg width="10" height="17">
1020 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 1023 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
1021 </svg> 1024 </svg>
1022 </div> 1025 </div>
1023 </div> 1026 </div>
1024 </div> 1027 </div>
1025 <div class="slider__swiper swiper"> 1028 <div class="slider__swiper swiper">
1026 <div class="swiper-wrapper" id="arendovannie_block"> 1029 <div class="swiper-wrapper" id="arendovannie_block">
1027 @if ($house_arendovannie->count()) 1030 @if ($house_arendovannie->count())
1028 @foreach ($house_arendovannie as $house1) 1031 @foreach ($house_arendovannie as $house1)
1029 @include('catalogs.elemhouse', ['house' => $house1]) 1032 @include('catalogs.elemhouse', ['house' => $house1])
1030 @endforeach 1033 @endforeach
1031 @else 1034 @else
1032 <h3>Здесь пока что нет предложений</h3> 1035 <h3>Здесь пока что нет предложений</h3>
1033 @endif 1036 @endif
1034 <!--<div class="swiper-slide"> 1037 <!--<div class="swiper-slide">
1035 <div class="card"> 1038 <div class="card">
1036 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 1039 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
1037 <h3 class="card__title">Салон красоты</h3> 1040 <h3 class="card__title">Салон красоты</h3>
1038 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 1041 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
1039 <svg width="18" height="18"> 1042 <svg width="18" height="18">
1040 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 1043 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
1041 </svg> 1044 </svg>
1042 <svg width="18" height="18"> 1045 <svg width="18" height="18">
1043 <use xlink:href="images/sprite.svg#card-favorites"></use> 1046 <use xlink:href="images/sprite.svg#card-favorites"></use>
1044 </svg></span><a class="card__label card__label-messenger" href="#"> 1047 </svg></span><a class="card__label card__label-messenger" href="#">
1045 <svg width="25" height="25"> 1048 <svg width="25" height="25">
1046 <use xlink:href="images/sprite.svg#card-messenger"></use> 1049 <use xlink:href="images/sprite.svg#card-messenger"></use>
1047 </svg></a></div> 1050 </svg></a></div>
1048 </div> 1051 </div>
1049 <div class="card__cnt"> 1052 <div class="card__cnt">
1050 <div class="card__info"> 1053 <div class="card__info">
1051 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 1054 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
1052 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 1055 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
1053 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 1056 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
1054 <div class="card__line">Площадь: <b>556 м2</b></div> 1057 <div class="card__line">Площадь: <b>556 м2</b></div>
1055 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 1058 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
1056 </div> 1059 </div>
1057 <div class="card__price"><span>1 000 000 ₽</span> 1060 <div class="card__price"><span>1 000 000 ₽</span>
1058 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 1061 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
1059 </div> 1062 </div>
1060 </div> 1063 </div>
1061 </div> 1064 </div>
1062 <div class="swiper-slide"> 1065 <div class="swiper-slide">
1063 <div class="card"> 1066 <div class="card">
1064 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 1067 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
1065 <h3 class="card__title">Барбер-шоп</h3> 1068 <h3 class="card__title">Барбер-шоп</h3>
1066 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 1069 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
1067 <svg width="18" height="18"> 1070 <svg width="18" height="18">
1068 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 1071 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
1069 </svg> 1072 </svg>
1070 <svg width="18" height="18"> 1073 <svg width="18" height="18">
1071 <use xlink:href="images/sprite.svg#card-favorites"></use> 1074 <use xlink:href="images/sprite.svg#card-favorites"></use>
1072 </svg></span><a class="card__label card__label-messenger" href="#"> 1075 </svg></span><a class="card__label card__label-messenger" href="#">
1073 <svg width="25" height="25"> 1076 <svg width="25" height="25">
1074 <use xlink:href="images/sprite.svg#card-messenger"></use> 1077 <use xlink:href="images/sprite.svg#card-messenger"></use>
1075 </svg></a></div> 1078 </svg></a></div>
1076 </div> 1079 </div>
1077 <div class="card__cnt"> 1080 <div class="card__cnt">
1078 <div class="card__info"> 1081 <div class="card__info">
1079 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 1082 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
1080 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 1083 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
1081 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 1084 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
1082 <div class="card__line">Площадь: <b>6 556 м2</b></div> 1085 <div class="card__line">Площадь: <b>6 556 м2</b></div>
1083 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 1086 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
1084 </div> 1087 </div>
1085 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 1088 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
1086 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 1089 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
1087 </div> 1090 </div>
1088 </div> 1091 </div>
1089 </div> 1092 </div>
1090 <div class="swiper-slide"> 1093 <div class="swiper-slide">
1091 <div class="card"> 1094 <div class="card">
1092 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 1095 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
1093 <h3 class="card__title">Аптека</h3> 1096 <h3 class="card__title">Аптека</h3>
1094 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 1097 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
1095 <svg width="18" height="18"> 1098 <svg width="18" height="18">
1096 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 1099 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
1097 </svg> 1100 </svg>
1098 <svg width="18" height="18"> 1101 <svg width="18" height="18">
1099 <use xlink:href="images/sprite.svg#card-favorites"></use> 1102 <use xlink:href="images/sprite.svg#card-favorites"></use>
1100 </svg></span><a class="card__label card__label-messenger" href="#"> 1103 </svg></span><a class="card__label card__label-messenger" href="#">
1101 <svg width="25" height="25"> 1104 <svg width="25" height="25">
1102 <use xlink:href="images/sprite.svg#card-messenger"></use> 1105 <use xlink:href="images/sprite.svg#card-messenger"></use>
1103 </svg></a></div> 1106 </svg></a></div>
1104 </div> 1107 </div>
1105 <div class="card__cnt"> 1108 <div class="card__cnt">
1106 <div class="card__info"> 1109 <div class="card__info">
1107 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 1110 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
1108 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 1111 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
1109 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 1112 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
1110 <div class="card__line">Площадь: <b>8 626 м2</b></div> 1113 <div class="card__line">Площадь: <b>8 626 м2</b></div>
1111 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 1114 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
1112 </div> 1115 </div>
1113 <div class="card__price"><span>5 280 000 ₽</span> 1116 <div class="card__price"><span>5 280 000 ₽</span>
1114 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 1117 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
1115 </div> 1118 </div>
1116 </div> 1119 </div>
1117 </div> 1120 </div>
1118 <div class="swiper-slide"> 1121 <div class="swiper-slide">
1119 <div class="card"> 1122 <div class="card">
1120 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 1123 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
1121 <h3 class="card__title">Витрина</h3> 1124 <h3 class="card__title">Витрина</h3>
1122 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 1125 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
1123 <svg width="18" height="18"> 1126 <svg width="18" height="18">
1124 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 1127 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
1125 </svg> 1128 </svg>
1126 <svg width="18" height="18"> 1129 <svg width="18" height="18">
1127 <use xlink:href="images/sprite.svg#card-favorites"></use> 1130 <use xlink:href="images/sprite.svg#card-favorites"></use>
1128 </svg></span><a class="card__label card__label-messenger" href="#"> 1131 </svg></span><a class="card__label card__label-messenger" href="#">
1129 <svg width="25" height="25"> 1132 <svg width="25" height="25">
1130 <use xlink:href="images/sprite.svg#card-messenger"></use> 1133 <use xlink:href="images/sprite.svg#card-messenger"></use>
1131 </svg></a></div> 1134 </svg></a></div>
1132 </div> 1135 </div>
1133 <div class="card__cnt"> 1136 <div class="card__cnt">
1134 <div class="card__info"> 1137 <div class="card__info">
1135 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 1138 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
1136 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 1139 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
1137 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 1140 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
1138 <div class="card__line">Площадь: <b>6 856 м2</b></div> 1141 <div class="card__line">Площадь: <b>6 856 м2</b></div>
1139 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 1142 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
1140 </div> 1143 </div>
1141 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 1144 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
1142 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 1145 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
1143 </div> 1146 </div>
1144 </div> 1147 </div>
1145 </div> 1148 </div>
1146 <div class="swiper-slide"> 1149 <div class="swiper-slide">
1147 <div class="card"> 1150 <div class="card">
1148 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 1151 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
1149 <h3 class="card__title">Салон красоты</h3> 1152 <h3 class="card__title">Салон красоты</h3>
1150 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 1153 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
1151 <svg width="18" height="18"> 1154 <svg width="18" height="18">
1152 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 1155 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
1153 </svg> 1156 </svg>
1154 <svg width="18" height="18"> 1157 <svg width="18" height="18">
1155 <use xlink:href="images/sprite.svg#card-favorites"></use> 1158 <use xlink:href="images/sprite.svg#card-favorites"></use>
1156 </svg></span><a class="card__label card__label-messenger" href="#"> 1159 </svg></span><a class="card__label card__label-messenger" href="#">
1157 <svg width="25" height="25"> 1160 <svg width="25" height="25">
1158 <use xlink:href="images/sprite.svg#card-messenger"></use> 1161 <use xlink:href="images/sprite.svg#card-messenger"></use>
1159 </svg></a></div> 1162 </svg></a></div>
1160 </div> 1163 </div>
1161 <div class="card__cnt"> 1164 <div class="card__cnt">
1162 <div class="card__info"> 1165 <div class="card__info">
1163 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 1166 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
1164 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 1167 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
1165 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 1168 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
1166 <div class="card__line">Площадь: <b>556 м2</b></div> 1169 <div class="card__line">Площадь: <b>556 м2</b></div>
1167 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 1170 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
1168 </div> 1171 </div>
1169 <div class="card__price"><span>1 000 000 ₽</span> 1172 <div class="card__price"><span>1 000 000 ₽</span>
1170 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 1173 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
1171 </div> 1174 </div>
1172 </div> 1175 </div>
1173 </div> 1176 </div>
1174 <div class="swiper-slide"> 1177 <div class="swiper-slide">
1175 <div class="card"> 1178 <div class="card">
1176 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 1179 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
1177 <h3 class="card__title">Барбер-шоп</h3> 1180 <h3 class="card__title">Барбер-шоп</h3>
1178 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 1181 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
1179 <svg width="18" height="18"> 1182 <svg width="18" height="18">
1180 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 1183 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
1181 </svg> 1184 </svg>
1182 <svg width="18" height="18"> 1185 <svg width="18" height="18">
1183 <use xlink:href="images/sprite.svg#card-favorites"></use> 1186 <use xlink:href="images/sprite.svg#card-favorites"></use>
1184 </svg></span><a class="card__label card__label-messenger" href="#"> 1187 </svg></span><a class="card__label card__label-messenger" href="#">
1185 <svg width="25" height="25"> 1188 <svg width="25" height="25">
1186 <use xlink:href="images/sprite.svg#card-messenger"></use> 1189 <use xlink:href="images/sprite.svg#card-messenger"></use>
1187 </svg></a></div> 1190 </svg></a></div>
1188 </div> 1191 </div>
1189 <div class="card__cnt"> 1192 <div class="card__cnt">
1190 <div class="card__info"> 1193 <div class="card__info">
1191 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 1194 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
1192 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 1195 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
1193 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 1196 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
1194 <div class="card__line">Площадь: <b>6 556 м2</b></div> 1197 <div class="card__line">Площадь: <b>6 556 м2</b></div>
1195 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 1198 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
1196 </div> 1199 </div>
1197 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 1200 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
1198 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 1201 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
1199 </div> 1202 </div>
1200 </div> 1203 </div>
1201 </div> 1204 </div>
1202 <div class="swiper-slide"> 1205 <div class="swiper-slide">
1203 <div class="card"> 1206 <div class="card">
1204 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 1207 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
1205 <h3 class="card__title">Аптека</h3> 1208 <h3 class="card__title">Аптека</h3>
1206 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 1209 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
1207 <svg width="18" height="18"> 1210 <svg width="18" height="18">
1208 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 1211 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
1209 </svg> 1212 </svg>
1210 <svg width="18" height="18"> 1213 <svg width="18" height="18">
1211 <use xlink:href="images/sprite.svg#card-favorites"></use> 1214 <use xlink:href="images/sprite.svg#card-favorites"></use>
1212 </svg></span><a class="card__label card__label-messenger" href="#"> 1215 </svg></span><a class="card__label card__label-messenger" href="#">
1213 <svg width="25" height="25"> 1216 <svg width="25" height="25">
1214 <use xlink:href="images/sprite.svg#card-messenger"></use> 1217 <use xlink:href="images/sprite.svg#card-messenger"></use>
1215 </svg></a></div> 1218 </svg></a></div>
1216 </div> 1219 </div>
1217 <div class="card__cnt"> 1220 <div class="card__cnt">
1218 <div class="card__info"> 1221 <div class="card__info">
1219 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 1222 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
1220 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 1223 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
1221 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 1224 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
1222 <div class="card__line">Площадь: <b>8 626 м2</b></div> 1225 <div class="card__line">Площадь: <b>8 626 м2</b></div>
1223 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 1226 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
1224 </div> 1227 </div>
1225 <div class="card__price"><span>5 280 000 ₽</span> 1228 <div class="card__price"><span>5 280 000 ₽</span>
1226 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 1229 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
1227 </div> 1230 </div>
1228 </div> 1231 </div>
1229 </div> 1232 </div>
1230 <div class="swiper-slide"> 1233 <div class="swiper-slide">
1231 <div class="card"> 1234 <div class="card">
1232 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 1235 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
1233 <h3 class="card__title">Витрина</h3> 1236 <h3 class="card__title">Витрина</h3>
1234 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 1237 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
1235 <svg width="18" height="18"> 1238 <svg width="18" height="18">
1236 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 1239 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
1237 </svg> 1240 </svg>
1238 <svg width="18" height="18"> 1241 <svg width="18" height="18">
1239 <use xlink:href="images/sprite.svg#card-favorites"></use> 1242 <use xlink:href="images/sprite.svg#card-favorites"></use>
1240 </svg></span><a class="card__label card__label-messenger" href="#"> 1243 </svg></span><a class="card__label card__label-messenger" href="#">
1241 <svg width="25" height="25"> 1244 <svg width="25" height="25">
1242 <use xlink:href="images/sprite.svg#card-messenger"></use> 1245 <use xlink:href="images/sprite.svg#card-messenger"></use>
1243 </svg></a></div> 1246 </svg></a></div>
1244 </div> 1247 </div>
1245 <div class="card__cnt"> 1248 <div class="card__cnt">
1246 <div class="card__info"> 1249 <div class="card__info">
1247 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 1250 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
1248 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 1251 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
1249 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 1252 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
1250 <div class="card__line">Площадь: <b>6 856 м2</b></div> 1253 <div class="card__line">Площадь: <b>6 856 м2</b></div>
1251 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 1254 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
1252 </div> 1255 </div>
1253 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 1256 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
1254 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 1257 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
1255 </div> 1258 </div>
1256 </div> 1259 </div>
1257 </div>--> 1260 </div>-->
1258 </div> 1261 </div>
1259 </div> 1262 </div>
1260 <div class="swiper-pagination"></div> 1263 <div class="swiper-pagination"></div>
1261 </div> 1264 </div>
1262 </div> 1265 </div>
1263 </section> 1266 </section>
1264 </div> 1267 </div>
1265 <div class="complex__map map" id="complex-map"></div> 1268 <div class="complex__map map" id="complex-map"></div>
1266 </section> 1269 </section>
1267 @endsection 1270 @endsection
1268 1271
1269 @section('form_feedback') 1272 @section('form_feedback')
1270 <!-- Форма обратной связи --> 1273 <!-- Форма обратной связи -->
1271 @include('form.form_feedback') 1274 @include('form.form_feedback')
1272 @endsection 1275 @endsection
1273 1276
1274 1277
resources/views/house/post.blade.php
1 @extends('layout.site', ['title' => 'Избранное RentTorg']) 1 @extends('layout.site', ['title' => $house->title])
2
3 @section('custom_js')
4 @include('js.maps_js')
5 <script>
6 setComplexMap('offer-map', [{{ $house->coord_x }}, {{ $house->coord_y }}], "{{ $house->title}}");
7 </script>
8 @endsection
2 9
3 @section('content') 10 @section('content')
4 <section class="intro" style="background-image:url({{ asset('images/intro-bg-2.jpg') }}"> 11 <section class="intro" style="background-image:url({{ asset('images/intro-bg-2.jpg') }}">
5 <div class="container"> 12 <div class="container">
6 <div class="intro__wrap"> 13 <div class="intro__wrap">
7 <div class="breadcrumbs"> 14 <div class="breadcrumbs">
8 <ul class="breadcrumbs__list"> 15 <ul class="breadcrumbs__list">
9 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> 16 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li>
10 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('catalog') }}">Каталог</a></li> 17 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('catalog') }}">Каталог</a></li>
11 <!--<li class="breadcrumbs__item"><a class="breadcrumbs__link" href="#">Каталок недвижимости</a></li>--> 18 <!--<li class="breadcrumbs__item"><a class="breadcrumbs__link" href="#">Каталок недвижимости</a></li>-->
12 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('complex', ['area' => $house->areas->id]) }}">{{ $house->areas->name_area }}</a></li> 19 <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('complex', ['area' => $house->areas->id]) }}">{{ $house->areas->name_area }}</a></li>
13 <li class="breadcrumbs__item"><span class="breadcrumbs__link">{{ $house->title }}</span></li> 20 <li class="breadcrumbs__item"><span class="breadcrumbs__link">{{ $house->title }}</span></li>
14 </ul> 21 </ul>
15 </div> 22 </div>
16 <div class="intro__inner"> 23 <div class="intro__inner">
17 <div class="intro__cnt"> 24 <div class="intro__cnt">
18 <h1 class="intro__title title-main">{{ $house->title }}</h1><a class="intro__link-complex" href="{{ route('complex', ['area' => $house->areas->id]) }}">Перейти на страницу: <span>{{ $house->areas->name_area }}</span></a> 25 <h1 class="intro__title title-main">{{ $house->title }}</h1><a class="intro__link-complex" href="{{ route('complex', ['area' => $house->areas->id]) }}">Перейти на страницу: <span>{{ $house->areas->name_area }}</span></a>
19 <div class="intro__row"> 26 <div class="intro__row">
20 <div class="intro__col"> 27 <div class="intro__col">
21 <ul class="intro__list"> 28 <ul class="intro__list">
22 <li class="intro__item" style="color:{{ $house->color_metro }};"><span>{{ $house->metro }}</span></li> 29 <li class="intro__item" style="color:{{ $house->color_metro }};"><span>{{ $house->metro }}</span></li>
23 <li class="intro__item"><span>{{ $house->description_metro }}</span></li> 30 <li class="intro__item"><span>{{ $house->description_metro }}</span></li>
24 <li class="intro__item"><span>{{ $house->okrug }}</span></li> 31 <li class="intro__item"><span>{{ $house->okrug }}</span></li>
25 </ul><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a> 32 </ul><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a>
26 </div> 33 </div>
27 <div class="intro__col"> 34 <div class="intro__col">
28 <div class="intro__group"><span>Адрес</span><span>{{ $house->address }}</span></div> 35 <div class="intro__group"><span>Адрес</span><span>{{ $house->address }}</span></div>
29 <div class="intro__group"><span>Артикул помещения</span><span>{{ $house->articul_area }}</span></div><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a> 36 <div class="intro__group"><span>Артикул помещения</span><span>{{ $house->articul_area }}</span></div><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a>
30 </div> 37 </div>
31 </div> 38 </div>
32 <div class="intro__bottom"> 39 <div class="intro__bottom">
33 <div class="intro__views">16 человек интересовались этим объектом за последние 24&nbsp;ч</div> 40 <div class="intro__views">{{ $count_user->count() }} человек(а) интересовались этим объектом за последние 24&nbsp;ч</div>
34 <a class="intro__link-phone btn btn--main" href="tel:+70001234567"><span>Позвонить 41 <a class="intro__link-phone btn btn--main" href="tel:+70001234567"><span>Позвонить
35 <svg width="22" height="22"> 42 <svg width="22" height="22">
36 <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> 43 <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use>
37 </svg></span></a> 44 </svg></span></a>
38 </div> 45 </div>
39 </div> 46 </div>
40 <div class="intro__swiper swiper"> 47 <div class="intro__swiper swiper">
41 <div class="swiper-wrapper"> 48 <div class="swiper-wrapper">
42 <?if (!empty($house->foto_main)) {?> 49 <?if (!empty($house->foto_main)) {?>
43 <div class="swiper-slide"> 50 <div class="swiper-slide">
44 <div class="intro-item"> 51 <div class="intro-item">
45 <div class="intro-item__img"><img src="{{ asset(Storage::url($house->foto_main)) }}" alt=""></div> 52 <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 }}"> 53 <a class="intro-item__btn js_intro_item_btn" href="{{asset(Storage::url($house->foto_main))}}" data-caption="{{ $house->title }}">
47 <svg width="16" height="16"> 54 <svg width="16" height="16">
48 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> 55 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use>
49 </svg></a> 56 </svg></a>
50 </div> 57 </div>
51 </div> 58 </div>
52 <?}?> 59 <?}?>
53 @foreach($house->fotohouse as $foto) 60 @foreach($house->fotohouse as $foto)
54 <div class="swiper-slide"> 61 <div class="swiper-slide">
55 <div class="intro-item"> 62 <div class="intro-item">
56 <div class="intro-item__img"><img src="{{ asset(Storage::url($foto->foto)) }}" alt=""></div> 63 <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 }}"> 64 <a class="intro-item__btn js_intro_item_btn" href="{{ asset(Storage::url($foto->foto)) }}" data-caption="Фото {{ $foto->id }}">
58 <svg width="16" height="16"> 65 <svg width="16" height="16">
59 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> 66 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use>
60 </svg></a> 67 </svg></a>
61 </div> 68 </div>
62 </div> 69 </div>
63 @endforeach 70 @endforeach
64 71
65 </div> 72 </div>
66 <div class="swiper-pagination"></div> 73 <div class="swiper-pagination"></div>
67 <div class="swiper-button-prev"> 74 <div class="swiper-button-prev">
68 <svg width="10" height="17"> 75 <svg width="10" height="17">
69 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 76 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
70 </svg> 77 </svg>
71 </div> 78 </div>
72 <div class="swiper-button-next"> 79 <div class="swiper-button-next">
73 <svg width="10" height="17"> 80 <svg width="10" height="17">
74 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> 81 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
75 </svg> 82 </svg>
76 </div> 83 </div>
77 </div> 84 </div>
78 </div> 85 </div>
79 </div> 86 </div>
80 </div> 87 </div>
81 </section> 88 </section>
82 <section class="offer"> 89 <section class="offer">
83 <div class="offer__wrap"> 90 <div class="offer__wrap">
84 <div class="container"> 91 <div class="container">
85 <div class="offer__inner"> 92 <div class="offer__inner">
86 <div class="offer-side"> 93 <div class="offer-side">
87 <div class="offer-side__tabs"> 94 <div class="offer-side__tabs">
88 <button class="offer-side__tab js_offer_side_tab active" type="button" data-tab="1">План объекта</button> 95 <button class="offer-side__tab js_offer_side_tab active" type="button" data-tab="1">План объекта</button>
89 <button class="offer-side__tab js_offer_side_tab" type="button" data-tab="2">План этажа</button> 96 <button class="offer-side__tab js_offer_side_tab" type="button" data-tab="2">План этажа</button>
90 </div> 97 </div>
91 <div class="offer-side__cnt"> 98 <div class="offer-side__cnt">
92 <div class="offer-side-item js_offer_side_item active" data-item="1"> 99 <div class="offer-side-item js_offer_side_item active" data-item="1">
93 <div class="offer-side-item__img"> 100 <div class="offer-side-item__img">
94 <? if (!empty($house->object_plan)) {?> 101 <? if (!empty($house->object_plan)) {?>
95 <img src="{{ asset(Storage::url($house->object_plan)) }}" alt="План объекта"> 102 <img src="{{ asset(Storage::url($house->object_plan)) }}" alt="План объекта">
96 <? } ?> 103 <? } ?>
97 </div> 104 </div>
98 <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> 105 <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup">
99 <svg width="16" height="16"> 106 <svg width="16" height="16">
100 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> 107 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use>
101 </svg></a> 108 </svg></a>
102 </div> 109 </div>
103 <div class="offer-side-item js_offer_side_item" data-item="2"> 110 <div class="offer-side-item js_offer_side_item" data-item="2">
104 <div class="offer-side-item__img"> 111 <div class="offer-side-item__img">
105 <? if (!empty($house->floor_plan)) { ?> 112 <? if (!empty($house->floor_plan)) { ?>
106 <img src="{{ asset(Storage::url($house->floor_plan)) }}" alt="План этажа"> 113 <img src="{{ asset(Storage::url($house->floor_plan)) }}" alt="План этажа">
107 <? }?> 114 <? }?>
108 </div> 115 </div>
109 <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> 116 <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup">
110 <svg width="16" height="16"> 117 <svg width="16" height="16">
111 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> 118 <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use>
112 </svg></a> 119 </svg></a>
113 </div> 120 </div>
114 </div> 121 </div>
115 122
116 <!---------------------------> 123 <!--------------------------->
117 <div class="offer-side-popup" data-popup="offer-side-popup"> 124 <div class="offer-side-popup" data-popup="offer-side-popup">
118 <div class="offer-side-popup__wrap"> 125 <div class="offer-side-popup__wrap">
119 <button class="offer-side-popup__close js_popup_close" type="button"> 126 <button class="offer-side-popup__close js_popup_close" type="button">
120 <svg width="20" height="20"> 127 <svg width="20" height="20">
121 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 128 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
122 </svg> 129 </svg>
123 </button> 130 </button>
124 <div class="offer-side-popup__cnt"> 131 <div class="offer-side-popup__cnt">
125 <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"> 132 <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1">
126 <? if (!empty($house->object_plan)) {?> 133 <? if (!empty($house->object_plan)) {?>
127 <img src="{{ asset(Storage::url($house->object_plan)) }}" alt="План объекта"> 134 <img src="{{ asset(Storage::url($house->object_plan)) }}" alt="План объекта">
128 <? } ?> 135 <? } ?>
129 </div> 136 </div>
130 <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"> 137 <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2">
131 <? if (!empty($house->floor_plan)) { ?> 138 <? if (!empty($house->floor_plan)) { ?>
132 <img src="{{ asset(Storage::url($house->floor_plan)) }}" alt="План этажа"> 139 <img src="{{ asset(Storage::url($house->floor_plan)) }}" alt="План этажа">
133 <? }?> 140 <? }?>
134 </div> 141 </div>
135 </div> 142 </div>
136 <div class="offer-side-popup__tabs"> 143 <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> 144 <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> 145 <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button>
139 </div> 146 </div>
140 <button class="offer-side-popup__sizeoff js_popup_close" type="button"> 147 <button class="offer-side-popup__sizeoff js_popup_close" type="button">
141 <svg width="18" height="18"> 148 <svg width="18" height="18">
142 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> 149 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use>
143 </svg> 150 </svg>
144 </button> 151 </button>
145 </div> 152 </div>
146 </div> 153 </div>
147 <!---------------------------> 154 <!--------------------------->
148 <div class="offer__lines"> 155 <div class="offer__lines">
149 <div class="offer__line"><span>Аренда в год за м2</span><span>{{ $house->rent_in_year }} ₽</span></div> 156 <div class="offer__line"><span>Аренда в год за м2</span><span>{{ $house->rent_in_year }} ₽</span></div>
150 <div class="offer__line"><span>Аренда в месяц</span><span>{{ $house->rent_in_month }} ₽</span></div> 157 <div class="offer__line"><span>Аренда в месяц</span><span>{{ $house->rent_in_month }} ₽</span></div>
151 <div class="offer__line"><span>Схема сделки</span><span>{{ $house->scheme_deal }}</span></div> 158 <div class="offer__line"><span>Схема сделки</span><span>{{ $house->scheme_deal }}</span></div>
152 </div> 159 </div>
153 <div class="offer-side__buttons"><a class="offer-side__btn btn btn--main" href="#" data-btn="viewing"><span>Записаться на просмотр 160 <div class="offer-side__buttons"><a class="offer-side__btn btn btn--main" href="#" data-btn="viewing"><span>Записаться на просмотр
154 <svg width="20" height="20"> 161 <svg width="20" height="20">
155 <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-viewing') }}"></use> 162 <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-viewing') }}"></use>
156 </svg></span></a><a class="offer-side__btn btn btn--main" href="#" data-btn="sending"><span>Отправить по Email 163 </svg></span></a><a class="offer-side__btn btn btn--main" href="#" data-btn="sending"><span>Отправить по Email
157 <svg width="22" height="22"> 164 <svg width="22" height="22">
158 <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-email') }}"></use> 165 <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-email') }}"></use>
159 </svg></span></a><a class="offer-side__btn btn btn--main" href="tel:+70001234567"><span>Позвонить 166 </svg></span></a><a class="offer-side__btn btn btn--main" href="tel:+70001234567"><span>Позвонить
160 <svg width="22" height="22"> 167 <svg width="22" height="22">
161 <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> 168 <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use>
162 </svg></span></a></div><a class="offer-side__download" href="#" download><span>Скачать презентацию 169 </svg></span></a></div><a class="offer-side__download" href="#" download><span>Скачать презентацию
163 <svg width="60" height="60"> 170 <svg width="60" height="60">
164 <use xlink:href="{{ asset('images/sprite.svg#offer-side-download') }}"></use> 171 <use xlink:href="{{ asset('images/sprite.svg#offer-side-download') }}"></use>
165 </svg></span></a> 172 </svg></span></a>
166 </div> 173 </div>
167 <div class="offer__cnt"> 174 <div class="offer__cnt">
168 <h2 class="offer__title">{{ $house->title }} {{ $house->address }}</h2> 175 <h2 class="offer__title">{{ $house->title }} {{ $house->address }}</h2>
169 <div class="offer__lines"> 176 <div class="offer__lines">
170 <div class="offer__line"><span>Площадь, м2</span><span>{{ $house->area }}</span></div> 177 <div class="offer__line"><span>Площадь, м2</span><span>{{ $house->area }}</span></div>
171 <div class="offer__line"><span>Адрес</span><span>{{ $house->address }}</span></div> 178 <div class="offer__line"><span>Адрес</span><span>{{ $house->address }}</span></div>
172 <div class="offer__line"><span>Тип объекта</span><span>{{ $house->typearea->name_type }}</span></div> 179 <div class="offer__line"><span>Тип объекта</span><span>{{ $house->typearea->name_type }}</span></div>
173 <div class="offer__line"><span>Формат</span><span>{{ $house->format_house }}</span></div> 180 <div class="offer__line"><span>Формат</span><span>{{ $house->format_house }}</span></div>
174 <div class="offer__line"><span>Этаж</span><span>{{ $house->floor }} эт.</span></div> 181 <div class="offer__line"><span>Этаж</span><span>{{ $house->floor }} эт.</span></div>
175 <div class="offer__line"><span>Этажность здания</span><span>{{ $house->floor_bild }} эт.</span></div> 182 <div class="offer__line"><span>Этажность здания</span><span>{{ $house->floor_bild }} эт.</span></div>
176 <div class="offer__line"><span>Арендаторы</span><span>{{ $house->renter }}</span></div> 183 <div class="offer__line"><span>Арендаторы</span><span>{{ $house->renter }}</span></div>
177 <div class="offer__line"><span>Состояние объекта</span><span>{{ $house->sos_obj }}</span></div> 184 <div class="offer__line"><span>Состояние объекта</span><span>{{ $house->sos_obj }}</span></div>
178 <div class="offer__line"><span>Тип планировки</span><span>{{ $house->type_plan }}</span></div> 185 <div class="offer__line"><span>Тип планировки</span><span>{{ $house->type_plan }}</span></div>
179 <div class="offer__line"><span>Наличие зоны разгрузки</span><span><? if($house->uploading_area == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 186 <div class="offer__line"><span>Наличие зоны разгрузки</span><span><? if($house->uploading_area == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
180 <div class="offer__line"><span>Электрическая мощность</span><span>{{ $house->electric_power }} кВт</span></div> 187 <div class="offer__line"><span>Электрическая мощность</span><span>{{ $house->electric_power }} кВт</span></div>
181 <div class="offer__line"><span>Проездное</span><span><? if($house->travel_card == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 188 <div class="offer__line"><span>Проездное</span><span><? if($house->travel_card == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
182 <div class="offer__line"><span>Проходное место</span><span><? if($house->passing_place == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 189 <div class="offer__line"><span>Проходное место</span><span><? if($house->passing_place == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
183 <div class="offer__line"><span>Отдельный вход</span><span><? if($house->separate_input == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 190 <div class="offer__line"><span>Отдельный вход</span><span><? if($house->separate_input == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
184 <div class="offer__line"><span>Витрины</span><span><? if($house->shop_windows == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 191 <div class="offer__line"><span>Витрины</span><span><? if($house->shop_windows == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
185 <div class="offer__line"><span>Место для рекламы</span><span><? if($house->place_advertising == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 192 <div class="offer__line"><span>Место для рекламы</span><span><? if($house->place_advertising == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
186 <div class="offer__line"><span>Окна</span><span>{{ $house->windows }}</span></div> 193 <div class="offer__line"><span>Окна</span><span>{{ $house->windows }}</span></div>
187 <div class="offer__line"><span>Вытяжка</span><span><? if($house->hood == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 194 <div class="offer__line"><span>Вытяжка</span><span><? if($house->hood == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
188 <div class="offer__line"><span>Центральное отопление</span><span><? if($house->central_hearing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 195 <div class="offer__line"><span>Центральное отопление</span><span><? if($house->central_hearing == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
189 <div class="offer__line"><span>Возможные часы работы</span><span>{{ $house->opening_hours }}</span></div> 196 <div class="offer__line"><span>Возможные часы работы</span><span>{{ $house->opening_hours }}</span></div>
190 <div class="offer__line"><span>Отделка</span><span><? if($house->finishing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> 197 <div class="offer__line"><span>Отделка</span><span><? if($house->finishing == 1) {?>Есть<?} else {?>Нет<?}?></span></div>
191 <div class="offer__line"><span>Парковка</span><span>{{ $house->parking }} мест</span></div> 198 <div class="offer__line"><span>Парковка</span><span>{{ $house->parking }} мест</span></div>
192 </div> 199 </div>
193 <p class="offer__additional">{{ $house->description_2 }}</p> 200 <p class="offer__additional">{{ $house->description_2 }}</p>
194 </div> 201 </div>
195 </div> 202 </div>
196 <div class="offer-descr"> 203 <div class="offer-descr">
197 <h3 class="offer-descr__caption">Описание объекта</h3> 204 <h3 class="offer-descr__caption">Описание объекта</h3>
198 <p class="offer-descr__text">{{ $house->description_house }}</p> 205 <p class="offer-descr__text">{{ $house->description_house }}</p>
199 </div> 206 </div>
200 </div> 207 </div>
201 </div> 208 </div>
202 <div class="offer__map map" id="offer-map"></div> 209 <div class="offer__map map" id="offer-map"></div>
203 </section> 210 </section>
204 <section class="slider"> 211 <section class="slider">
205 <div class="container"> 212 <div class="container">
206 <div class="slider__wrap"> 213 <div class="slider__wrap">
207 <div class="slider__top"> 214 <div class="slider__top">
208 <h2 class="slider__title title">Похожие помещения</h2> 215 <h2 class="slider__title title">Похожие помещения</h2>
209 <div class="slider__control"> 216 <div class="slider__control">
210 <div class="swiper-button-prev"> 217 <div class="swiper-button-prev">
211 <svg width="10" height="17"> 218 <svg width="10" height="17">
212 <use xlink:href="images/sprite.svg#slider-arrow"></use> 219 <use xlink:href="images/sprite.svg#slider-arrow"></use>
213 </svg> 220 </svg>
214 </div> 221 </div>
215 <div class="swiper-button-next"> 222 <div class="swiper-button-next">
216 <svg width="10" height="17"> 223 <svg width="10" height="17">
217 <use xlink:href="images/sprite.svg#slider-arrow"></use> 224 <use xlink:href="images/sprite.svg#slider-arrow"></use>
218 </svg> 225 </svg>
219 </div> 226 </div>
220 </div> 227 </div>
221 </div> 228 </div>
222 <div class="slider__swiper swiper"> 229 <div class="slider__swiper swiper">
223 <div class="swiper-wrapper"> 230 <div class="swiper-wrapper">
224 @if ($houses->count()) 231 @if ($houses->count())
225 @foreach ($houses as $house) 232 @foreach ($houses as $house)
226 @include('catalogs.elemhouse', ['house' => $house]) 233 @include('catalogs.elemhouse', ['house' => $house])
227 @endforeach 234 @endforeach
228 @endif 235 @endif
229 236
230 <!--<div class="swiper-slide"> 237 <!--<div class="swiper-slide">
231 <div class="card"> 238 <div class="card">
232 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 239 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
233 <h3 class="card__title">Салон красоты</h3> 240 <h3 class="card__title">Салон красоты</h3>
234 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 241 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
235 <svg width="18" height="18"> 242 <svg width="18" height="18">
236 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 243 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
237 </svg> 244 </svg>
238 <svg width="18" height="18"> 245 <svg width="18" height="18">
239 <use xlink:href="images/sprite.svg#card-favorites"></use> 246 <use xlink:href="images/sprite.svg#card-favorites"></use>
240 </svg></span><a class="card__label card__label-messenger" href="#"> 247 </svg></span><a class="card__label card__label-messenger" href="#">
241 <svg width="25" height="25"> 248 <svg width="25" height="25">
242 <use xlink:href="images/sprite.svg#card-messenger"></use> 249 <use xlink:href="images/sprite.svg#card-messenger"></use>
243 </svg></a></div> 250 </svg></a></div>
244 </div> 251 </div>
245 <div class="card__cnt"> 252 <div class="card__cnt">
246 <div class="card__info"> 253 <div class="card__info">
247 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 254 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
248 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 255 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
249 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 256 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
250 <div class="card__line">Площадь: <b>556 м2</b></div> 257 <div class="card__line">Площадь: <b>556 м2</b></div>
251 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 258 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
252 </div> 259 </div>
253 <div class="card__price"><span>1 000 000 ₽</span> 260 <div class="card__price"><span>1 000 000 ₽</span>
254 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 261 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
255 </div> 262 </div>
256 </div> 263 </div>
257 </div> 264 </div>
258 <div class="swiper-slide"> 265 <div class="swiper-slide">
259 <div class="card"> 266 <div class="card">
260 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 267 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
261 <h3 class="card__title">Барбер-шоп</h3> 268 <h3 class="card__title">Барбер-шоп</h3>
262 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 269 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
263 <svg width="18" height="18"> 270 <svg width="18" height="18">
264 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 271 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
265 </svg> 272 </svg>
266 <svg width="18" height="18"> 273 <svg width="18" height="18">
267 <use xlink:href="images/sprite.svg#card-favorites"></use> 274 <use xlink:href="images/sprite.svg#card-favorites"></use>
268 </svg></span><a class="card__label card__label-messenger" href="#"> 275 </svg></span><a class="card__label card__label-messenger" href="#">
269 <svg width="25" height="25"> 276 <svg width="25" height="25">
270 <use xlink:href="images/sprite.svg#card-messenger"></use> 277 <use xlink:href="images/sprite.svg#card-messenger"></use>
271 </svg></a></div> 278 </svg></a></div>
272 </div> 279 </div>
273 <div class="card__cnt"> 280 <div class="card__cnt">
274 <div class="card__info"> 281 <div class="card__info">
275 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 282 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
276 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 283 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
277 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 284 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
278 <div class="card__line">Площадь: <b>6 556 м2</b></div> 285 <div class="card__line">Площадь: <b>6 556 м2</b></div>
279 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 286 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
280 </div> 287 </div>
281 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 288 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
282 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 289 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
283 </div> 290 </div>
284 </div> 291 </div>
285 </div> 292 </div>
286 <div class="swiper-slide"> 293 <div class="swiper-slide">
287 <div class="card"> 294 <div class="card">
288 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 295 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
289 <h3 class="card__title">Аптека</h3> 296 <h3 class="card__title">Аптека</h3>
290 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 297 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
291 <svg width="18" height="18"> 298 <svg width="18" height="18">
292 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 299 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
293 </svg> 300 </svg>
294 <svg width="18" height="18"> 301 <svg width="18" height="18">
295 <use xlink:href="images/sprite.svg#card-favorites"></use> 302 <use xlink:href="images/sprite.svg#card-favorites"></use>
296 </svg></span><a class="card__label card__label-messenger" href="#"> 303 </svg></span><a class="card__label card__label-messenger" href="#">
297 <svg width="25" height="25"> 304 <svg width="25" height="25">
298 <use xlink:href="images/sprite.svg#card-messenger"></use> 305 <use xlink:href="images/sprite.svg#card-messenger"></use>
299 </svg></a></div> 306 </svg></a></div>
300 </div> 307 </div>
301 <div class="card__cnt"> 308 <div class="card__cnt">
302 <div class="card__info"> 309 <div class="card__info">
303 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 310 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
304 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 311 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
305 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 312 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
306 <div class="card__line">Площадь: <b>8 626 м2</b></div> 313 <div class="card__line">Площадь: <b>8 626 м2</b></div>
307 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 314 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
308 </div> 315 </div>
309 <div class="card__price"><span>5 280 000 ₽</span> 316 <div class="card__price"><span>5 280 000 ₽</span>
310 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 317 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
311 </div> 318 </div>
312 </div> 319 </div>
313 </div> 320 </div>
314 <div class="swiper-slide"> 321 <div class="swiper-slide">
315 <div class="card"> 322 <div class="card">
316 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 323 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
317 <h3 class="card__title">Витрина</h3> 324 <h3 class="card__title">Витрина</h3>
318 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 325 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
319 <svg width="18" height="18"> 326 <svg width="18" height="18">
320 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 327 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
321 </svg> 328 </svg>
322 <svg width="18" height="18"> 329 <svg width="18" height="18">
323 <use xlink:href="images/sprite.svg#card-favorites"></use> 330 <use xlink:href="images/sprite.svg#card-favorites"></use>
324 </svg></span><a class="card__label card__label-messenger" href="#"> 331 </svg></span><a class="card__label card__label-messenger" href="#">
325 <svg width="25" height="25"> 332 <svg width="25" height="25">
326 <use xlink:href="images/sprite.svg#card-messenger"></use> 333 <use xlink:href="images/sprite.svg#card-messenger"></use>
327 </svg></a></div> 334 </svg></a></div>
328 </div> 335 </div>
329 <div class="card__cnt"> 336 <div class="card__cnt">
330 <div class="card__info"> 337 <div class="card__info">
331 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 338 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
332 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 339 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
333 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 340 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
334 <div class="card__line">Площадь: <b>6 856 м2</b></div> 341 <div class="card__line">Площадь: <b>6 856 м2</b></div>
335 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 342 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
336 </div> 343 </div>
337 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 344 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
338 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 345 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
339 </div> 346 </div>
340 </div> 347 </div>
341 </div> 348 </div>
342 <div class="swiper-slide"> 349 <div class="swiper-slide">
343 <div class="card"> 350 <div class="card">
344 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> 351 <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy">
345 <h3 class="card__title">Салон красоты</h3> 352 <h3 class="card__title">Салон красоты</h3>
346 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 353 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
347 <svg width="18" height="18"> 354 <svg width="18" height="18">
348 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 355 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
349 </svg> 356 </svg>
350 <svg width="18" height="18"> 357 <svg width="18" height="18">
351 <use xlink:href="images/sprite.svg#card-favorites"></use> 358 <use xlink:href="images/sprite.svg#card-favorites"></use>
352 </svg></span><a class="card__label card__label-messenger" href="#"> 359 </svg></span><a class="card__label card__label-messenger" href="#">
353 <svg width="25" height="25"> 360 <svg width="25" height="25">
354 <use xlink:href="images/sprite.svg#card-messenger"></use> 361 <use xlink:href="images/sprite.svg#card-messenger"></use>
355 </svg></a></div> 362 </svg></a></div>
356 </div> 363 </div>
357 <div class="card__cnt"> 364 <div class="card__cnt">
358 <div class="card__info"> 365 <div class="card__info">
359 <address class="card__line card__line-complex">ЖК “Новинки 1”</address> 366 <address class="card__line card__line-complex">ЖК “Новинки 1”</address>
360 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> 367 <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address>
361 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 368 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
362 <div class="card__line">Площадь: <b>556 м2</b></div> 369 <div class="card__line">Площадь: <b>556 м2</b></div>
363 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 370 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
364 </div> 371 </div>
365 <div class="card__price"><span>1 000 000 ₽</span> 372 <div class="card__price"><span>1 000 000 ₽</span>
366 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> 373 </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a>
367 </div> 374 </div>
368 </div> 375 </div>
369 </div> 376 </div>
370 <div class="swiper-slide"> 377 <div class="swiper-slide">
371 <div class="card"> 378 <div class="card">
372 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> 379 <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy">
373 <h3 class="card__title">Барбер-шоп</h3> 380 <h3 class="card__title">Барбер-шоп</h3>
374 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 381 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
375 <svg width="18" height="18"> 382 <svg width="18" height="18">
376 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 383 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
377 </svg> 384 </svg>
378 <svg width="18" height="18"> 385 <svg width="18" height="18">
379 <use xlink:href="images/sprite.svg#card-favorites"></use> 386 <use xlink:href="images/sprite.svg#card-favorites"></use>
380 </svg></span><a class="card__label card__label-messenger" href="#"> 387 </svg></span><a class="card__label card__label-messenger" href="#">
381 <svg width="25" height="25"> 388 <svg width="25" height="25">
382 <use xlink:href="images/sprite.svg#card-messenger"></use> 389 <use xlink:href="images/sprite.svg#card-messenger"></use>
383 </svg></a></div> 390 </svg></a></div>
384 </div> 391 </div>
385 <div class="card__cnt"> 392 <div class="card__cnt">
386 <div class="card__info"> 393 <div class="card__info">
387 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> 394 <address class="card__line card__line-complex">ЖК “Новоарбатский”</address>
388 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> 395 <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address>
389 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 396 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
390 <div class="card__line">Площадь: <b>6 556 м2</b></div> 397 <div class="card__line">Площадь: <b>6 556 м2</b></div>
391 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> 398 <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div>
392 </div> 399 </div>
393 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> 400 <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span>
394 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 401 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
395 </div> 402 </div>
396 </div> 403 </div>
397 </div> 404 </div>
398 <div class="swiper-slide"> 405 <div class="swiper-slide">
399 <div class="card"> 406 <div class="card">
400 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> 407 <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy">
401 <h3 class="card__title">Аптека</h3> 408 <h3 class="card__title">Аптека</h3>
402 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 409 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
403 <svg width="18" height="18"> 410 <svg width="18" height="18">
404 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 411 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
405 </svg> 412 </svg>
406 <svg width="18" height="18"> 413 <svg width="18" height="18">
407 <use xlink:href="images/sprite.svg#card-favorites"></use> 414 <use xlink:href="images/sprite.svg#card-favorites"></use>
408 </svg></span><a class="card__label card__label-messenger" href="#"> 415 </svg></span><a class="card__label card__label-messenger" href="#">
409 <svg width="25" height="25"> 416 <svg width="25" height="25">
410 <use xlink:href="images/sprite.svg#card-messenger"></use> 417 <use xlink:href="images/sprite.svg#card-messenger"></use>
411 </svg></a></div> 418 </svg></a></div>
412 </div> 419 </div>
413 <div class="card__cnt"> 420 <div class="card__cnt">
414 <div class="card__info"> 421 <div class="card__info">
415 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> 422 <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address>
416 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> 423 <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address>
417 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> 424 <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address>
418 <div class="card__line">Площадь: <b>8 626 м2</b></div> 425 <div class="card__line">Площадь: <b>8 626 м2</b></div>
419 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> 426 <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div>
420 </div> 427 </div>
421 <div class="card__price"><span>5 280 000 ₽</span> 428 <div class="card__price"><span>5 280 000 ₽</span>
422 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> 429 </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a>
423 </div> 430 </div>
424 </div> 431 </div>
425 </div> 432 </div>
426 <div class="swiper-slide"> 433 <div class="swiper-slide">
427 <div class="card"> 434 <div class="card">
428 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> 435 <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy">
429 <h3 class="card__title">Витрина</h3> 436 <h3 class="card__title">Витрина</h3>
430 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> 437 <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
431 <svg width="18" height="18"> 438 <svg width="18" height="18">
432 <use xlink:href="images/sprite.svg#card-favorites-empty"></use> 439 <use xlink:href="images/sprite.svg#card-favorites-empty"></use>
433 </svg> 440 </svg>
434 <svg width="18" height="18"> 441 <svg width="18" height="18">
435 <use xlink:href="images/sprite.svg#card-favorites"></use> 442 <use xlink:href="images/sprite.svg#card-favorites"></use>
436 </svg></span><a class="card__label card__label-messenger" href="#"> 443 </svg></span><a class="card__label card__label-messenger" href="#">
437 <svg width="25" height="25"> 444 <svg width="25" height="25">
438 <use xlink:href="images/sprite.svg#card-messenger"></use> 445 <use xlink:href="images/sprite.svg#card-messenger"></use>
439 </svg></a></div> 446 </svg></a></div>
440 </div> 447 </div>
441 <div class="card__cnt"> 448 <div class="card__cnt">
442 <div class="card__info"> 449 <div class="card__info">
443 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> 450 <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address>
444 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> 451 <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address>
445 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> 452 <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address>
446 <div class="card__line">Площадь: <b>6 856 м2</b></div> 453 <div class="card__line">Площадь: <b>6 856 м2</b></div>
447 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> 454 <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div>
448 </div> 455 </div>
449 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> 456 <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span>
450 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> 457 </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a>
451 </div> 458 </div>
452 </div> 459 </div>
453 </div>--> 460 </div>-->
454 </div> 461 </div>
455 </div> 462 </div>
456 <div class="swiper-pagination"></div> 463 <div class="swiper-pagination"></div>
457 </div> 464 </div>
458 </div> 465 </div>
459 </section> 466 </section>
460 @endsection 467 @endsection
461 468
462 @section('form_feedback') 469 @section('form_feedback')
463 <!-- Форма обратной связи --> 470 <!-- Форма обратной связи -->
464 @include('form.form_feedback') 471 @include('form.form_feedback')
465 @endsection 472 @endsection
466 473
467 474
resources/views/js/maps_js.blade.php
File was created 1 <script>
2 function setComplexMap(id, coords, caption) {
3
4 if (document.querySelector('#' + id)) {
5
6 // Дождёмся загрузки API и готовности DOM.
7 ymaps.ready(init);
8
9 function init() {
10 const map = new ymaps.Map(id, {
11 // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования.
12 center: coords,
13 zoom: 16,
14 controls: []
15 });
16
17 // Создаём макет содержимого.
18 const MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
19 '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
20 );
21
22 // Создание макета содержимого хинта.
23 // Макет создается через фабрику макетов с помощью текстового шаблона.
24 const HintLayout = ymaps.templateLayoutFactory.createClass("<div class='my-hint'>" +
25 caption + "</div>", {
26 // Определяем метод getShape, который
27 // будет возвращать размеры макета хинта.
28 // Это необходимо для того, чтобы хинт автоматически
29 // сдвигал позицию при выходе за пределы карты.
30 getShape: function () {
31 let el = this.getElement(),
32 result = null;
33 if (el) {
34 var firstChild = el.firstChild;
35 result = new ymaps.shape.Rectangle(
36 new ymaps.geometry.pixel.Rectangle([
37 [0, 0],
38 [firstChild.offsetWidth, firstChild.offsetHeight]
39 ])
40 );
41 }
42 return result;
43 }
44 }
45 );
46
47 // метка
48 const placemark = new ymaps.Placemark(coords, {
49 // hintContent: caption,
50 // balloonContent: caption,
51 iconContent: '1',
52 // address: caption,
53 object: caption
54 }, {
55 iconLayout: 'default#imageWithContent',
56 iconImageHref: "{{ asset('images/mark-complex.svg') }}",
57 iconImageSize: [52, 67],
58 iconImageOffset: [-26, -67],
59 iconContentOffset: [0, 17],
60 iconContentLayout: MyIconContentLayout,
61 hintLayout: HintLayout
62 });
63
64 map.geoObjects.add(placemark);
65
66 }
67
68 }
69
70 }
71 </script>
72
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> 18 <style>
19 /* form styles */ 19 /* form styles */
20 form .row { 20 form .row {
21 display: block; 21 display: block;
22 padding: 7px 8px; 22 padding: 7px 8px;
23 margin-bottom: 7px; 23 margin-bottom: 7px;
24 } 24 }
25 form .row:hover { 25 form .row:hover {
26 background: #f1f7fa; 26 background: #f1f7fa;
27 } 27 }
28 28
29 form label { 29 form label {
30 display: inline-block; 30 display: inline-block;
31 font-size: 1.2em; 31 font-size: 1.2em;
32 font-weight: bold; 32 font-weight: bold;
33 width: 120px; 33 width: 120px;
34 padding: 6px 0; 34 padding: 6px 0;
35 color: #464646; 35 color: #464646;
36 vertical-align: top; 36 vertical-align: top;
37 } 37 }
38 form .req { color: #ca5354; } 38 form .req { color: #ca5354; }
39 39
40 form .note { 40 form .note {
41 font-size: 1.2em; 41 font-size: 1.2em;
42 line-height: 1.33em; 42 line-height: 1.33em;
43 font-weight: normal; 43 font-weight: normal;
44 padding: 2px 7px; 44 padding: 2px 7px;
45 margin-bottom: 10px; 45 margin-bottom: 10px;
46 } 46 }
47 47
48 form input:focus, form textarea:focus { outline: none; } 48 form input:focus, form textarea:focus { outline: none; }
49 49
50 /* placeholder styles: http://stackoverflow.com/a/2610741/477958 */ 50 /* placeholder styles: http://stackoverflow.com/a/2610741/477958 */
51 ::-webkit-input-placeholder { color: #aaafbd; font-style: italic; } /* WebKit */ 51 ::-webkit-input-placeholder { color: #aaafbd; font-style: italic; } /* WebKit */
52 :-moz-placeholder { color: #aaafbd; font-style: italic; } /* Mozilla Firefox 4 to 18 */ 52 :-moz-placeholder { color: #aaafbd; font-style: italic; } /* Mozilla Firefox 4 to 18 */
53 ::-moz-placeholder { color: #aaafbd; font-style: italic; } /* Mozilla Firefox 19+ */ 53 ::-moz-placeholder { color: #aaafbd; font-style: italic; } /* Mozilla Firefox 19+ */
54 :-ms-input-placeholder { color: #aaafbd; font-style: italic; } /* Internet Explorer 10+ */ 54 :-ms-input-placeholder { color: #aaafbd; font-style: italic; } /* Internet Explorer 10+ */
55 55
56 form .txt { 56 form .txt {
57 display: inline-block; 57 display: inline-block;
58 padding: 8px 9px; 58 padding: 8px 9px;
59 padding-right: 30px; 59 padding-right: 30px;
60 width: 240px; 60 width: 240px;
61 font-family: 'Oxygen', sans-serif; 61 font-family: 'Oxygen', sans-serif;
62 font-size: 1.35em; 62 font-size: 1.35em;
63 font-weight: normal; 63 font-weight: normal;
64 color: #898989; 64 color: #898989;
65 } 65 }
66 66
67 form .txtarea { 67 form .txtarea {
68 display: inline-block; 68 display: inline-block;
69 padding: 8px 9px; 69 padding: 8px 9px;
70 padding-right: 30px; 70 padding-right: 30px;
71 font-family: 'Oxygen', sans-serif; 71 font-family: 'Oxygen', sans-serif;
72 font-size: 1.35em; 72 font-size: 1.35em;
73 font-weight: normal; 73 font-weight: normal;
74 color: #898989; 74 color: #898989;
75 } 75 }
76 </style> 76 </style>
77 </head> 77 </head>
78 <body> 78 <body>
79 <div class="spinner"></div> 79 <div class="spinner"></div>
80 <div class="wrapper"> 80 <div class="wrapper">
81 <header class="header js_header"> 81 <header class="header js_header">
82 <div class="container"> 82 <div class="container">
83 <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>
84 <nav class="header__nav nav"> 84 <nav class="header__nav nav">
85 <ul class="nav__list"> 85 <ul class="nav__list">
86 <li class="nav__item"><a class="nav__link" href="{{ route('admin.area.index') }}">Объекты</a></li> 86 <li class="nav__item"><a class="nav__link" href="{{ route('admin.area.index') }}">Объекты</a></li>
87 <li class="nav__item"><a class="nav__link" href="{{ route('admin.news.index') }}">Новости</a></li> 87 <li class="nav__item"><a class="nav__link" href="{{ route('admin.news.index') }}">Новости</a></li>
88 <li class="nav__item"><a class="nav__link" href="{{ route('admin.company.show', ['company' => 1]) }}">Компания</a></li> 88 <li class="nav__item"><a class="nav__link" href="{{ route('admin.company.show', ['company' => 1]) }}">Компания</a></li>
89 <li class="nav__item"><a class="nav__link" href="{{ route('admin.typearea.index') }}">Типы</a></li> 89 <li class="nav__item"><a class="nav__link" href="{{ route('admin.typearea.index') }}">Типы</a></li>
90 <li class="nav__item"><a class="nav__link" href="{{ route('admin.formatarea.index') }}">Форматы</a></li> 90 <li class="nav__item"><a class="nav__link" href="{{ route('admin.formatarea.index') }}">Форматы</a></li>
91 <li class="nav__item"><a class="nav__link" href="{{ route('admin.message.index') }}">Сообщения</a></li> 91 <li class="nav__item"><a class="nav__link" href="{{ route('admin.message.index') }}">Сообщения</a></li>
92 <li class="nav__item"><a class="nav__link" href="{{ route('admin.houses.index') }}">Офисы</a></li> 92 <li class="nav__item"><a class="nav__link" href="{{ route('admin.houses.index') }}">Офисы</a></li>
93 93
94 </ul> 94 </ul>
95 </nav> 95 </nav>
96 <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback"> 96 <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback">
97 <svg width="22" height="22"> 97 <svg width="22" height="22">
98 <use xlink:href="{{ asset('images/sprite.svg#header-btn-phone') }}"></use> 98 <use xlink:href="{{ asset('images/sprite.svg#header-btn-phone') }}"></use>
99 </svg></a> 99 </svg></a>
100 <button class="header__burger js_header_burger" type="button">Меню 100 <button class="header__burger js_header_burger" type="button">Меню
101 <svg width="28" height="18"> 101 <svg width="28" height="18">
102 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use> 102 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use>
103 </svg> 103 </svg>
104 </button> 104 </button>
105 </div> 105 </div>
106 <div class="menu js_menu"> 106 <div class="menu js_menu">
107 <div class="menu__wrap"> 107 <div class="menu__wrap">
108 <button class="menu__close js_menu_close" type="button">Меню 108 <button class="menu__close js_menu_close" type="button">Меню
109 <svg width="20" height="20"> 109 <svg width="20" height="20">
110 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> 110 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use>
111 </svg> 111 </svg>
112 </button> 112 </button>
113 <div class="menu__inner"> 113 <div class="menu__inner">
114 <nav class="menu__nav"> 114 <nav class="menu__nav">
115 <ul class="menu__list"> 115 <ul class="menu__list">
116 <li class="menu__item"><a class="menu__link" href="{{ route('admin.area.index') }}">Объекты</a></li> 116 <li class="menu__item"><a class="menu__link" href="{{ route('admin.area.index') }}">Объекты</a></li>
117 <li class="menu__item"><a class="menu__link" href="{{ route('admin.news.index') }}">Новости</a></li> 117 <li class="menu__item"><a class="menu__link" href="{{ route('admin.news.index') }}">Новости</a></li>
118 <li class="menu__item"><a class="menu__link" href="{{ route('admin.company.show', ['company' => 1]) }}">Компания</a></li> 118 <li class="menu__item"><a class="menu__link" href="{{ route('admin.company.show', ['company' => 1]) }}">Компания</a></li>
119 <li class="menu__item"><a class="menu__link" href="{{ route('admin.typearea.index') }}">Типы недвижимости</a></li> 119 <li class="menu__item"><a class="menu__link" href="{{ route('admin.typearea.index') }}">Типы недвижимости</a></li>
120 <li class="menu__item"><a class="menu__link" href="{{ route('admin.formatarea.index') }}">Форматы недвижимости</a></li> 120 <li class="menu__item"><a class="menu__link" href="{{ route('admin.formatarea.index') }}">Форматы недвижимости</a></li>
121 <li class="menu__item"><a class="menu__link" href="{{ route('admin.message.index') }}">Сообщения</a></li> 121 <li class="menu__item"><a class="menu__link" href="{{ route('admin.message.index') }}">Сообщения</a></li>
122 <li class="menu__item"><a class="menu__link" href="{{ route('admin.houses.index') }}">Офисы</a></li> 122 <li class="menu__item"><a class="menu__link" href="{{ route('admin.houses.index') }}">Офисы</a></li>
123 </ul> 123 </ul>
124 </nav> 124 </nav>
125 <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> 125 <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>
126 <div class="menu__social social"> 126 <div class="menu__social social">
127 <ul class="social__list"> 127 <ul class="social__list">
128 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li> 128 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li>
129 <li class="social__item"><a class="social__link" href="#" target="_blank"> 129 <li class="social__item"><a class="social__link" href="#" target="_blank">
130 <svg width="40" height="40"> 130 <svg width="40" height="40">
131 <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use> 131 <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use>
132 </svg></a></li> 132 </svg></a></li>
133 </ul> 133 </ul>
134 </div> 134 </div>
135 </div> 135 </div>
136 </div> 136 </div>
137 </div> 137 </div>
138 </div> 138 </div>
139 </div> 139 </div>
140 </header> 140 </header>
141 <main> 141 <main>
142 @if ($message = Session::get('success')) 142 @if ($message = Session::get('success'))
143 <section> 143 <section>
144 <div class="alert alert-success alert-dismissible mt-0" role="alert"> 144 <div class="alert alert-success alert-dismissible mt-0" role="alert">
145 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 145 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
146 <span aria-hidden="true">&times;</span> 146 <span aria-hidden="true">&times;</span>
147 </button> 147 </button>
148 {{ $message }} 148 {{ $message }}
149 </div> 149 </div>
150 </section> 150 </section>
151 @endif 151 @endif
152 152
153 @if ($errors->any()) 153 @if ($errors->any())
154 <section> 154 <section>
155 <div class="alert alert-danger alert-dismissible mt-4" role="alert"> 155 <div class="alert alert-danger alert-dismissible mt-4" role="alert">
156 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 156 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
157 <span aria-hidden="true">&times;</span> 157 <span aria-hidden="true">&times;</span>
158 </button> 158 </button>
159 <ul class="mb-0"> 159 <ul class="mb-0">
160 @foreach ($errors->all() as $error) 160 @foreach ($errors->all() as $error)
161 <li>{{ $error }}</li> 161 <li>{{ $error }}</li>
162 @endforeach 162 @endforeach
163 </ul> 163 </ul>
164 </div> 164 </div>
165 </section> 165 </section>
166 @endif 166 @endif
167 <!-- Основной контент --> 167 <!-- Основной контент -->
168 @yield('content') 168 @yield('content')
169 169
170 </main> 170 </main>
171 171
172 <footer class="footer" style="background-image:url({{ asset('images/footer-bg.jpg')}})"> 172 <footer class="footer" style="background-image:url({{ asset('images/footer-bg.jpg')}})">
173 <div class="footer__buttons"> 173 <div class="footer__buttons">
174 <button class="footer__btn footer__btn-phone js_btn_contact_us" type="button"> 174 <button class="footer__btn footer__btn-phone js_btn_contact_us" type="button">
175 <svg width="30" height="32"> 175 <svg width="30" height="32">
176 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-phone')}}"></use> 176 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-phone')}}"></use>
177 </svg> 177 </svg>
178 </button> 178 </button>
179 <button class="footer__btn footer__btn-up js_btn_up" type="button"> 179 <button class="footer__btn footer__btn-up js_btn_up" type="button">
180 <svg width="19" height="11"> 180 <svg width="19" height="11">
181 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-up')}}"></use> 181 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-up')}}"></use>
182 </svg> 182 </svg>
183 </button> 183 </button>
184 </div> 184 </div>
185 185
186 <!-- Сам футер мееню --> 186 <!-- Сам футер мееню -->
187 <div class="footer-middle"> 187 <div class="footer-middle">
188 <div class="container"> 188 <div class="container">
189 <div class="footer-middle__wrap"> 189 <div class="footer-middle__wrap">
190 <div class="footer__col footer__col-intro"><a class="footer__logo" href="index.html"><img src="{{ asset('images/logo-footer.svg')}}" alt="Лого"></a> 190 <div class="footer__col footer__col-intro"><a class="footer__logo" href="index.html"><img src="{{ asset('images/logo-footer.svg')}}" alt="Лого"></a>
191 <p class="footer__descr">В группу “Renttorg” входит ряд ведущих российских девелоперских компаний полного цикла, реализующих масштабные объекты недвижимости.</p> 191 <p class="footer__descr">В группу “Renttorg” входит ряд ведущих российских девелоперских компаний полного цикла, реализующих масштабные объекты недвижимости.</p>
192 <div class="footer-questions"> 192 <div class="footer-questions">
193 <h3 class="footer-questions__title">Есть вопросы или предложения?</h3><a class="footer-questions__btn btn btn--main" href="#" data-btn="feedback">Напишите нам</a> 193 <h3 class="footer-questions__title">Есть вопросы или предложения?</h3><a class="footer-questions__btn btn btn--main" href="#" data-btn="feedback">Напишите нам</a>
194 </div> 194 </div>
195 </div> 195 </div>
196 <div class="footer__col footer__col-menu js_footer_col"> 196 <div class="footer__col footer__col-menu js_footer_col">
197 <h3 class="footer__caption js_footer_caption">Меню</h3> 197 <h3 class="footer__caption js_footer_caption">Меню</h3>
198 <div class="footer__block js_footer_block"> 198 <div class="footer__block js_footer_block">
199 <ul class="footer__list"> 199 <ul class="footer__list">
200 <li class="footer__item"><a class="footer__link" href="{{ route('index') }}">Главная</a></li> 200 <li class="footer__item"><a class="footer__link" href="{{ route('index') }}">Главная</a></li>
201 <li class="footer__item"><a class="footer__link" href="{{ route('catalog') }}">Каталог</a></li> 201 <li class="footer__item"><a class="footer__link" href="{{ route('catalog') }}">Каталог</a></li>
202 <li class="footer__item"><a class="footer__link" href="{{ route('about') }}">О компании</a></li> 202 <li class="footer__item"><a class="footer__link" href="{{ route('about') }}">О компании</a></li>
203 <li class="footer__item"><a class="footer__link" href="{{ route('contact') }}">Контакты</a></li> 203 <li class="footer__item"><a class="footer__link" href="{{ route('contact') }}">Контакты</a></li>
204 <li class="footer__item"><a class="footer__link" href="{{ route('favorite') }}">Избранное</a></li> 204 <li class="footer__item"><a class="footer__link" href="{{ route('favorite') }}">Избранное</a></li>
205 <li class="footer__item"><a class="footer__link" href="{{ route('news') }}">Новости</a></li> 205 <li class="footer__item"><a class="footer__link" href="{{ route('news') }}">Новости</a></li>
206 </ul> 206 </ul>
207 207
208 </div><a class="footer__author" href="#" target="_blank"><img src="{{ asset('images/author.png')}}" alt="Лого разработчика"></a> 208 </div><a class="footer__author" href="#" target="_blank"><img src="{{ asset('images/author.png')}}" alt="Лого разработчика"></a>
209 </div> 209 </div>
210 <div class="footer__col js_footer_col"> 210 <div class="footer__col js_footer_col">
211 <h3 class="footer__caption js_footer_caption">Админка</h3> 211 <h3 class="footer__caption js_footer_caption">Админка</h3>
212 <div class="footer__block js_footer_block"> 212 <div class="footer__block js_footer_block">
213 <ul class="footer__list"> 213 <ul class="footer__list">
214 <li class="footer__item"><a class="footer__link" href="{{ route('user.index') }}">Главная</a></li> 214 <li class="footer__item"><a class="footer__link" href="{{ route('user.index') }}">Главная</a></li>
215 215
216 </ul> 216 </ul>
217 </div> 217 </div>
218 </div> 218 </div>
219 <div class="footer__col js_footer_col"> 219 <div class="footer__col js_footer_col">
220 <h3 class="footer__caption js_footer_caption">Система</h3> 220 <h3 class="footer__caption js_footer_caption">Система</h3>
221 <div class="footer__block js_footer_block"> 221 <div class="footer__block js_footer_block">
222 <ul class="footer__list"> 222 <ul class="footer__list">
223 <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Авторизация</a></li> 223 <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Авторизация</a></li>
224 <li class="footer__item"><a class="footer__link" href="{{ route('auth.register') }}">Регистрация</a></li> 224 <li class="footer__item"><a class="footer__link" href="{{ route('auth.register') }}">Регистрация</a></li>
225 </ul> 225 </ul>
226 </div> 226 </div>
227 </div> 227 </div>
228 <div class="footer__col footer__col-contacts"> 228 <div class="footer__col footer__col-contacts">
229 <h3 class="footer__caption js_footer_caption">Контакты</h3> 229 <h3 class="footer__caption js_footer_caption">Контакты</h3>
230 <ul class="footer__list"> 230 <ul class="footer__list">
231 <li class="footer__item"><a class="footer__link" href="">EmailAdmin</a></li> 231 <li class="footer__item"><a class="footer__link" href="">EmailAdmin</a></li>
232 <li class="footer__item"><a class="footer__link" href="">ТелефонАдмин</a></li> 232 <li class="footer__item"><a class="footer__link" href="">ТелефонАдмин</a></li>
233 </ul> 233 </ul>
234 <div class="footer__social social"> 234 <div class="footer__social social">
235 <ul class="social__list"> 235 <ul class="social__list">
236 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg')}}" alt=""></a></li> 236 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg')}}" alt=""></a></li>
237 <li class="social__item"><a class="social__link" href="#" target="_blank"> 237 <li class="social__item"><a class="social__link" href="#" target="_blank">
238 <svg width="40" height="40"> 238 <svg width="40" height="40">
239 <use xlink:href="{{ asset('images/sprite.svg#wa') }}"></use> 239 <use xlink:href="{{ asset('images/sprite.svg#wa') }}"></use>
240 </svg></a></li> 240 </svg></a></li>
241 </ul> 241 </ul>
242 </div> 242 </div>
243 </div> 243 </div>
244 </div> 244 </div>
245 </div> 245 </div>
246 </div> 246 </div>
247 247
248 <div class="footer-bottom"> 248 <div class="footer-bottom">
249 <div class="container"> 249 <div class="container">
250 <div class="footer-bottom__wrap"> 250 <div class="footer-bottom__wrap">
251 <div class="footer__copy">© 2023 RentTorg</div><a class="footer__plicy" href="{{ route('conf') }}">Политика конфиденциальности</a> 251 <div class="footer__copy">© 2023 RentTorg</div><a class="footer__plicy" href="{{ route('conf') }}">Политика конфиденциальности</a>
252 </div> 252 </div>
253 </div> 253 </div>
254 </div> 254 </div>
255 </footer> 255 </footer>
256 </div> 256 </div>
257 257
258 <!-- Вплывающие окна --> 258 <!-- Вплывающие окна -->
259 <div class="popup popup-feedback" data-popup="feedback"> 259 <div class="popup popup-feedback" data-popup="feedback">
260 <div class="popup__wrap"> 260 <div class="popup__wrap">
261 <button class="popup__close js_popup_close" type="button"> 261 <button class="popup__close js_popup_close" type="button">
262 <svg width="20" height="20"> 262 <svg width="20" height="20">
263 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 263 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
264 </svg> 264 </svg>
265 </button> 265 </button>
266 <form class="popup-feedback__form js_popup_feedback_form" action="{{ route('header_form') }}" method="POST"> 266 <form class="popup-feedback__form js_popup_feedback_form" action="{{ route('header_form') }}" method="POST">
267 @csrf 267 @csrf
268 <div class="popup-feedback__title">Как с вами связаться</div> 268 <div class="popup-feedback__title">Как с вами связаться</div>
269 <div class="popup-feedback__fields"> 269 <div class="popup-feedback__fields">
270 <label class="popup-feedback__field field"> 270 <label class="popup-feedback__field field">
271 <input type="text" placeholder="Имя" name="NameUser"> 271 <input type="text" placeholder="Имя" name="NameUser">
272 </label> 272 </label>
273 <label class="popup-feedback__field field"> 273 <label class="popup-feedback__field field">
274 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> 274 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser">
275 </label> 275 </label>
276 </div> 276 </div>
277 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 277 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
278 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> 278 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p>
279 </form> 279 </form>
280 </div> 280 </div>
281 </div> 281 </div>
282 <div class="popup popup-feedback" data-popup="viewing"> 282 <div class="popup popup-feedback" data-popup="viewing">
283 <div class="popup__wrap"> 283 <div class="popup__wrap">
284 <button class="popup__close js_popup_close" type="button"> 284 <button class="popup__close js_popup_close" type="button">
285 <svg width="20" height="20"> 285 <svg width="20" height="20">
286 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 286 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
287 </svg> 287 </svg>
288 </button> 288 </button>
289 <form class="popup-feedback__form js_popup_viewing_form" action="{{ route('rec_view_form') }}" method="POST"> 289 <form class="popup-feedback__form js_popup_viewing_form" action="{{ route('rec_view_form') }}" method="POST">
290 @csrf 290 @csrf
291 <div class="popup-feedback__title">Записаться на просмотр</div> 291 <div class="popup-feedback__title">Записаться на просмотр</div>
292 <div class="popup-feedback__fields"> 292 <div class="popup-feedback__fields">
293 <label class="popup-feedback__field field"> 293 <label class="popup-feedback__field field">
294 <input type="text" placeholder="Имя" name="NameUser"> 294 <input type="text" placeholder="Имя" name="NameUser">
295 </label> 295 </label>
296 <label class="popup-feedback__field field"> 296 <label class="popup-feedback__field field">
297 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> 297 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser">
298 </label> 298 </label>
299 </div> 299 </div>
300 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 300 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
301 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="#">Политикой конфиденциальности</a>.</p> 301 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="#">Политикой конфиденциальности</a>.</p>
302 </form> 302 </form>
303 </div> 303 </div>
304 </div> 304 </div>
305 <div class="popup popup-success" data-popup="success"> 305 <div class="popup popup-success" data-popup="success">
306 <div class="popup__wrap"> 306 <div class="popup__wrap">
307 <button class="popup__close js_popup_close" type="button"> 307 <button class="popup__close js_popup_close" type="button">
308 <svg width="20" height="20"> 308 <svg width="20" height="20">
309 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> 309 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use>
310 </svg> 310 </svg>
311 </button> 311 </button>
312 <div class="popup-success__inner"> 312 <div class="popup-success__inner">
313 <div class="popup-success__logo"> 313 <div class="popup-success__logo">
314 <svg width="48" height="39"> 314 <svg width="48" height="39">
315 <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use> 315 <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use>
316 </svg> 316 </svg>
317 </div> 317 </div>
318 <div class="popup-success__title">Спасибо за заявку</div> 318 <div class="popup-success__title">Спасибо за заявку</div>
319 <p class="popup-success__descr">В ближайшее время с вами свяжется наш специалист для уточнения деталей вашей задачи.</p> 319 <p class="popup-success__descr">В ближайшее время с вами свяжется наш специалист для уточнения деталей вашей задачи.</p>
320 </div> 320 </div>
321 </div> 321 </div>
322 </div> 322 </div>
323 <div class="popup popup-feedback" data-popup="sending"> 323 <div class="popup popup-feedback" data-popup="sending">
324 <div class="popup__wrap"> 324 <div class="popup__wrap">
325 <button class="popup__close js_popup_close" type="button"> 325 <button class="popup__close js_popup_close" type="button">
326 <svg width="20" height="20"> 326 <svg width="20" height="20">
327 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 327 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
328 </svg> 328 </svg>
329 </button> 329 </button>
330 <form class="popup-feedback__form js_popup_sending_form" action="{{ route('email_form') }}" method="POST"> 330 <form class="popup-feedback__form js_popup_sending_form" action="{{ route('email_form') }}" method="POST">
331 @csrf 331 @csrf
332 <div class="popup-feedback__title">Отправить на почту</div> 332 <div class="popup-feedback__title">Отправить на почту</div>
333 <div class="popup-feedback__fields"> 333 <div class="popup-feedback__fields">
334 <label class="popup-feedback__field field"> 334 <label class="popup-feedback__field field">
335 <input class="js_input_email" type="text" placeholder="Электронная почта" name="EmailUser"> 335 <input class="js_input_email" type="text" placeholder="Электронная почта" name="EmailUser">
336 </label> 336 </label>
337 </div> 337 </div>
338 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 338 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
339 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> 339 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p>
340 </form> 340 </form>
341 </div> 341 </div>
342 </div> 342 </div>
343 <div class="contact-us js_contact_us"> 343 <div class="contact-us js_contact_us">
344 <div class="contact-us__top"> 344 <div class="contact-us__top">
345 <button class="contact-us__close js_contact_us_close" type="button"> 345 <button class="contact-us__close js_contact_us_close" type="button">
346 <svg width="20" height="20"> 346 <svg width="20" height="20">
347 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 347 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
348 </svg> 348 </svg>
349 </button> 349 </button>
350 <div class="contact-us__title">Свяжитесь с нами</div> 350 <div class="contact-us__title">Свяжитесь с нами</div>
351 </div> 351 </div>
352 <div class="contact-us__body"> 352 <div class="contact-us__body">
353 <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" data-btn="feedback"> 353 <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" data-btn="feedback">
354 <div class="contact-us-item__icon"> 354 <div class="contact-us-item__icon">
355 <svg width="34" height="34"> 355 <svg width="34" height="34">
356 <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use> 356 <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use>
357 </svg> 357 </svg>
358 </div> 358 </div>
359 <div class="contact-us-item__name">Позвонить</div></a> 359 <div class="contact-us-item__name">Позвонить</div></a>
360 360
361 <a class="contact-us-item js_contact_us_close" data-btn="sending"> 361 <a class="contact-us-item js_contact_us_close" data-btn="sending">
362 <div class="contact-us-item__icon"> 362 <div class="contact-us-item__icon">
363 <svg width="44" height="44"> 363 <svg width="44" height="44">
364 <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use> 364 <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use>
365 </svg> 365 </svg>
366 </div> 366 </div>
367 <div class="contact-us-item__name">Написать</div></a> 367 <div class="contact-us-item__name">Написать</div></a>
368 368
369 <a class="contact-us-item js_contact_us_close" > 369 <a class="contact-us-item js_contact_us_close" >
370 <div class="contact-us-item__icon"> 370 <div class="contact-us-item__icon">
371 <svg width="34" height="34"> 371 <svg width="34" height="34">
372 <use xlink:href="{{ asset('images/sprite.svg#contact-us-chat')}}"></use> 372 <use xlink:href="{{ asset('images/sprite.svg#contact-us-chat')}}"></use>
373 </svg> 373 </svg>
374 </div> 374 </div>
375 <div class="contact-us-item__name">Онлайн-чат</div></a></div> 375 <div class="contact-us-item__name">Онлайн-чат</div></a></div>
376 <div class="contact-us__socials"><a class="contact-us-social js_contact_us_close" href="#" target="_blank"> 376 <div class="contact-us__socials"><a class="contact-us-social js_contact_us_close" href="#" target="_blank">
377 <div class="contact-us-social__icon contact-us-social__icon-tg"><img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div> 377 <div class="contact-us-social__icon contact-us-social__icon-tg"><img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div>
378 <div class="contact-us-social__name">Telegram</div></a><a class="contact-us-social js_contact_us_close" href="#" target="_blank"> 378 <div class="contact-us-social__name">Telegram</div></a><a class="contact-us-social js_contact_us_close" href="#" target="_blank">
379 <div class="contact-us-social__icon contact-us-social__icon-wa"> 379 <div class="contact-us-social__icon contact-us-social__icon-wa">
380 <svg width="31" height="31"> 380 <svg width="31" height="31">
381 <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use> 381 <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use>
382 </svg> 382 </svg>
383 </div> 383 </div>
384 <div class="contact-us-social__name">WhatsApp</div></a></div> 384 <div class="contact-us-social__name">WhatsApp</div></a></div>
385 </div> 385 </div>
386 </div> 386 </div>
387 <div class="offer-side-popup" data-popup="offer-side-popup"> 387 <div class="offer-side-popup" data-popup="offer-side-popup">
388 <div class="offer-side-popup__wrap"> 388 <div class="offer-side-popup__wrap">
389 <button class="offer-side-popup__close js_popup_close" type="button"> 389 <button class="offer-side-popup__close js_popup_close" type="button">
390 <svg width="20" height="20"> 390 <svg width="20" height="20">
391 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 391 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
392 </svg> 392 </svg>
393 </button> 393 </button>
394 <div class="offer-side-popup__cnt"> 394 <div class="offer-side-popup__cnt">
395 <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> 395 <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>
396 <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> 396 <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>
397 </div> 397 </div>
398 <div class="offer-side-popup__tabs"> 398 <div class="offer-side-popup__tabs">
399 <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> 399 <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button>
400 <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> 400 <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button>
401 </div> 401 </div>
402 <button class="offer-side-popup__sizeoff js_popup_close" type="button"> 402 <button class="offer-side-popup__sizeoff js_popup_close" type="button">
403 <svg width="18" height="18"> 403 <svg width="18" height="18">
404 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> 404 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use>
405 </svg> 405 </svg>
406 </button> 406 </button>
407 </div> 407 </div>
408 </div> 408 </div>
409 <div class="img-viewer js_img_viewer"> 409 <div class="img-viewer js_img_viewer">
410 <div class="img-viewer__wrap"> 410 <div class="img-viewer__wrap">
411 <button class="img-viewer__close js_img_viewer_close" type="button"> 411 <button class="img-viewer__close js_img_viewer_close" type="button">
412 <svg width="20" height="20"> 412 <svg width="20" height="20">
413 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 413 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
414 </svg> 414 </svg>
415 </button> 415 </button>
416 <div class="img-viewer__thumbs js_img_viewer_thumbs"> 416 <div class="img-viewer__thumbs js_img_viewer_thumbs">
417 <div class="img-viewer__thumbs-swiper js_img_viewer_thumbs_swiper swiper"> 417 <div class="img-viewer__thumbs-swiper js_img_viewer_thumbs_swiper swiper">
418 <div class="swiper-wrapper"></div> 418 <div class="swiper-wrapper"></div>
419 </div> 419 </div>
420 </div> 420 </div>
421 <div class="img-viewer__slider"> 421 <div class="img-viewer__slider">
422 <div class="img-viewer__slider-swiper js_img_viewer_slider_swiper swiper"> 422 <div class="img-viewer__slider-swiper js_img_viewer_slider_swiper swiper">
423 <div class="swiper-wrapper"></div> 423 <div class="swiper-wrapper"></div>
424 </div> 424 </div>
425 <div class="swiper-button-prev"> 425 <div class="swiper-button-prev">
426 <svg width="10" height="17"> 426 <svg width="10" height="17">
427 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> 427 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use>
428 </svg> 428 </svg>
429 </div> 429 </div>
430 <div class="swiper-button-next"> 430 <div class="swiper-button-next">
431 <svg width="10" height="17"> 431 <svg width="10" height="17">
432 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> 432 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use>
433 </svg> 433 </svg>
434 </div> 434 </div>
435 </div> 435 </div>
436 <div class="img-viewer__caption js_img_viewer_caption"></div> 436 <div class="img-viewer__caption js_img_viewer_caption"></div>
437 <button class="img-viewer__sizeoff js_img_viewer_close" type="button"> 437 <button class="img-viewer__sizeoff js_img_viewer_close" type="button">
438 <svg width="18" height="18"> 438 <svg width="18" height="18">
439 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use> 439 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use>
440 </svg> 440 </svg>
441 </button> 441 </button>
442 </div> 442 </div>
443 </div> 443 </div>
444 <div class="cookies js_cookies"> 444 <div class="cookies js_cookies">
445 <div class="container"> 445 <div class="container">
446 <div class="cookies__wrap"> 446 <div class="cookies__wrap">
447 <div class="cookies__top"> 447 <div class="cookies__top">
448 <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div> 448 <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div>
449 <div class="cookies__title">Cookies</div> 449 <div class="cookies__title">Cookies</div>
450 </div> 450 </div>
451 <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p> 451 <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p>
452 <div class="cookies__buttons"> 452 <div class="cookies__buttons">
453 <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a> 453 <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a>
454 </div> 454 </div>
455 </div> 455 </div>
456 </div> 456 </div>
457 </div> 457 </div>
458 <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script> 458 <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
459 <script src="{{ asset('js/swiper-bundle.min.js') }}"></script> 459 <script src="{{ asset('js/swiper-bundle.min.js') }}"></script>
460 <script src="{{ asset('js/main_new.js') }}"></script> 460 <script src="{{ asset('js/main_main.js') }}"></script>
461 <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script> 461 <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script>
462 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script> 462 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script>
463 @yield('custom_js') 463 @yield('custom_js')
464 @include('js.cookies_favorite') 464 @include('js.cookies_favorite')
465 </body> 465 </body>
466 </html> 466 </html>
467 467
resources/views/layout/site.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 </head> 17 </head>
18 <body> 18 <body>
19 <div class="spinner"></div> 19 <div class="spinner"></div>
20 <div class="wrapper"> 20 <div class="wrapper">
21 <header class="header js_header"> 21 <header class="header js_header">
22 <div class="container"> 22 <div class="container">
23 <div class="header__wrap"><a class="header__logo" href="{{ route('index') }}"><img src="{{ asset('images/logo.svg') }}" alt="Лого"></a> 23 <div class="header__wrap"><a class="header__logo" href="{{ route('index') }}"><img src="{{ asset('images/logo.svg') }}" alt="Лого"></a>
24 <nav class="header__nav nav"> 24 <nav class="header__nav nav">
25 <ul class="nav__list"> 25 <ul class="nav__list">
26 <li class="nav__item"><a class="nav__link" href="{{ route('catalog') }}">Каталог</a></li> 26 <li class="nav__item"><a class="nav__link" href="{{ route('catalog') }}">Каталог</a></li>
27 <li class="nav__item"><a class="nav__link" href="{{ route('about') }}">О компании</a></li> 27 <li class="nav__item"><a class="nav__link" href="{{ route('about') }}">О компании</a></li>
28 <li class="nav__item"><a class="nav__link" href="{{ route('contact') }}">Контакты</a></li> 28 <li class="nav__item"><a class="nav__link" href="{{ route('contact') }}">Контакты</a></li>
29 <li class="nav__item"><a class="nav__link nav__link-favorites" href="{{ route('favorite') }}">Избранное<span><?=\App\Classes\RusDate::count_item_fav();?></span></a></li> 29 <li class="nav__item"><a class="nav__link nav__link-favorites" href="{{ route('favorite') }}">Избранное<span><?=\App\Classes\RusDate::count_item_fav();?></span></a></li>
30 </ul> 30 </ul>
31 </nav> 31 </nav>
32 <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback"> 32 <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback">
33 <svg width="22" height="22"> 33 <svg width="22" height="22">
34 <use xlink:href="{{ asset('images/sprite.svg#header-btn-phone') }}"></use> 34 <use xlink:href="{{ asset('images/sprite.svg#header-btn-phone') }}"></use>
35 </svg></a> 35 </svg></a>
36 <div class="header__contacts"> 36 <div class="header__contacts">
37 <div class="header__col"><a class="header__contact" href="mailto:{{ $items_contact[0]->email }}">{{ $items_contact[0]->email }}</a></div> 37 <div class="header__col"><a class="header__contact" href="mailto:{{ $items_contact[0]->email }}">{{ $items_contact[0]->email }}</a></div>
38 <div class="header__col"><a class="header__contact" href="tel:{{ $items_contact[0]->email }}">{{ $items_contact[0]->telephone }}</a> 38 <div class="header__col"><a class="header__contact" href="tel:{{ $items_contact[0]->email }}">{{ $items_contact[0]->telephone }}</a>
39 <button class="header__btn-callback" type="button" data-btn="feedback">Обратный звонок</button> 39 <button class="header__btn-callback" type="button" data-btn="feedback">Обратный звонок</button>
40 </div> 40 </div>
41 </div> 41 </div>
42 <button class="header__burger js_header_burger" type="button">Меню 42 <button class="header__burger js_header_burger" type="button">Меню
43 <svg width="28" height="18"> 43 <svg width="28" height="18">
44 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use> 44 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use>
45 </svg> 45 </svg>
46 </button> 46 </button>
47 </div> 47 </div>
48 <div class="menu js_menu"> 48 <div class="menu js_menu">
49 <div class="menu__wrap"> 49 <div class="menu__wrap">
50 <button class="menu__close js_menu_close" type="button">Меню 50 <button class="menu__close js_menu_close" type="button">Меню
51 <svg width="20" height="20"> 51 <svg width="20" height="20">
52 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> 52 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use>
53 </svg> 53 </svg>
54 </button> 54 </button>
55 <div class="menu__inner"> 55 <div class="menu__inner">
56 <nav class="menu__nav"> 56 <nav class="menu__nav">
57 <ul class="menu__list"> 57 <ul class="menu__list">
58 <li class="menu__item"><a class="menu__link" href="{{ route('about') }}">О компании</a></li> 58 <li class="menu__item"><a class="menu__link" href="{{ route('about') }}">О компании</a></li>
59 <li class="menu__item"><a class="menu__link menu__link-favorites" href="{{ route('favorite') }}">Избранное<span>5</span></a></li> 59 <li class="menu__item"><a class="menu__link menu__link-favorites" href="{{ route('favorite') }}">Избранное<span>5</span></a></li>
60 <li class="menu__item"><a class="menu__link" href="{{ route('catalog') }}">Каталог</a></li> 60 <li class="menu__item"><a class="menu__link" href="{{ route('catalog') }}">Каталог</a></li>
61 <li class="menu__item"><a class="menu__link" href="{{ route('news') }}">Новости</a></li> 61 <li class="menu__item"><a class="menu__link" href="{{ route('news') }}">Новости</a></li>
62 <li class="menu__item"><a class="menu__link" href="{{ route('contact') }}">Контакты</a></li> 62 <li class="menu__item"><a class="menu__link" href="{{ route('contact') }}">Контакты</a></li>
63 </ul> 63 </ul>
64 </nav> 64 </nav>
65 <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> 65 <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>
66 <div class="menu__social social"> 66 <div class="menu__social social">
67 <ul class="social__list"> 67 <ul class="social__list">
68 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li> 68 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li>
69 <li class="social__item"><a class="social__link" href="#" target="_blank"> 69 <li class="social__item"><a class="social__link" href="#" target="_blank">
70 <svg width="40" height="40"> 70 <svg width="40" height="40">
71 <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use> 71 <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use>
72 </svg></a></li> 72 </svg></a></li>
73 </ul> 73 </ul>
74 </div> 74 </div>
75 </div> 75 </div>
76 </div> 76 </div>
77 </div> 77 </div>
78 </div> 78 </div>
79 </div> 79 </div>
80 </header> 80 </header>
81 <main> 81 <main>
82 82
83 83
84 <!-- Фильтр --> 84 <!-- Фильтр -->
85 @yield('filter') 85 @yield('filter')
86 86
87 @if ($message = Session::get('success')) 87 @if ($message = Session::get('success'))
88 <section> 88 <section>
89 <div class="alert alert-success alert-dismissible mt-0" role="alert"> 89 <div class="alert alert-success alert-dismissible mt-0" role="alert">
90 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 90 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
91 <span aria-hidden="true">&times;</span> 91 <span aria-hidden="true">&times;</span>
92 </button> 92 </button>
93 {{ $message }} 93 {{ $message }}
94 </div> 94 </div>
95 </section> 95 </section>
96 @endif 96 @endif
97 97
98 @if ($errors->any()) 98 @if ($errors->any())
99 <section> 99 <section>
100 <div class="alert alert-danger alert-dismissible mt-4" role="alert"> 100 <div class="alert alert-danger alert-dismissible mt-4" role="alert">
101 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 101 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
102 <span aria-hidden="true">&times;</span> 102 <span aria-hidden="true">&times;</span>
103 </button> 103 </button>
104 <ul class="mb-0"> 104 <ul class="mb-0">
105 @foreach ($errors->all() as $error) 105 @foreach ($errors->all() as $error)
106 <li>{{ $error }}</li> 106 <li>{{ $error }}</li>
107 @endforeach 107 @endforeach
108 </ul> 108 </ul>
109 </div> 109 </div>
110 </section> 110 </section>
111 @endif 111 @endif
112 <!-- Основной контент --> 112 <!-- Основной контент -->
113 @yield('content') 113 @yield('content')
114 114
115 </main> 115 </main>
116 116
117 <footer class="footer" style="background-image:url({{ asset('images/footer-bg.jpg')}})"> 117 <footer class="footer" style="background-image:url({{ asset('images/footer-bg.jpg')}})">
118 <div class="footer__buttons"> 118 <div class="footer__buttons">
119 <button class="footer__btn footer__btn-phone js_btn_contact_us" type="button"> 119 <button class="footer__btn footer__btn-phone js_btn_contact_us" type="button">
120 <svg width="30" height="32"> 120 <svg width="30" height="32">
121 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-phone')}}"></use> 121 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-phone')}}"></use>
122 </svg> 122 </svg>
123 </button> 123 </button>
124 <button class="footer__btn footer__btn-up js_btn_up" type="button"> 124 <button class="footer__btn footer__btn-up js_btn_up" type="button">
125 <svg width="19" height="11"> 125 <svg width="19" height="11">
126 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-up')}}"></use> 126 <use xlink:href="{{ asset('images/sprite.svg#footer-btn-up')}}"></use>
127 </svg> 127 </svg>
128 </button> 128 </button>
129 </div> 129 </div>
130 <!-- Форма обратной связи --> 130 <!-- Форма обратной связи -->
131 @yield('form_feedback') 131 @yield('form_feedback')
132 132
133 <!-- Сам футер мееню --> 133 <!-- Сам футер мееню -->
134 <div class="footer-middle"> 134 <div class="footer-middle">
135 <div class="container"> 135 <div class="container">
136 <div class="footer-middle__wrap"> 136 <div class="footer-middle__wrap">
137 <div class="footer__col footer__col-intro"><a class="footer__logo" href="index.html"><img src="{{ asset('images/logo-footer.svg')}}" alt="Лого"></a> 137 <div class="footer__col footer__col-intro"><a class="footer__logo" href="index.html"><img src="{{ asset('images/logo-footer.svg')}}" alt="Лого"></a>
138 <p class="footer__descr">В группу “Renttorg” входит ряд ведущих российских девелоперских компаний полного цикла, реализующих масштабные объекты недвижимости.</p> 138 <p class="footer__descr">В группу “Renttorg” входит ряд ведущих российских девелоперских компаний полного цикла, реализующих масштабные объекты недвижимости.</p>
139 <div class="footer-questions"> 139 <div class="footer-questions">
140 <h3 class="footer-questions__title">Есть вопросы или предложения?</h3><a class="footer-questions__btn btn btn--main" href="#" data-btn="feedback">Напишите нам</a> 140 <h3 class="footer-questions__title">Есть вопросы или предложения?</h3><a class="footer-questions__btn btn btn--main" href="#" data-btn="feedback">Напишите нам</a>
141 </div> 141 </div>
142 </div> 142 </div>
143 <div class="footer__col footer__col-menu js_footer_col"> 143 <div class="footer__col footer__col-menu js_footer_col">
144 <h3 class="footer__caption js_footer_caption">Меню</h3> 144 <h3 class="footer__caption js_footer_caption">Меню</h3>
145 <div class="footer__block js_footer_block"> 145 <div class="footer__block js_footer_block">
146 <ul class="footer__list"> 146 <ul class="footer__list">
147 <li class="footer__item"><a class="footer__link" href="{{ route('catalog') }}">Каталог</a></li> 147 <li class="footer__item"><a class="footer__link" href="{{ route('catalog') }}">Каталог</a></li>
148 <li class="footer__item"><a class="footer__link" href="{{ route('about') }}">О компании</a></li> 148 <li class="footer__item"><a class="footer__link" href="{{ route('about') }}">О компании</a></li>
149 <li class="footer__item"><a class="footer__link" href="{{ route('contact') }}">Контакты</a></li> 149 <li class="footer__item"><a class="footer__link" href="{{ route('contact') }}">Контакты</a></li>
150 <li class="footer__item"><a class="footer__link" href="{{ route('favorite') }}">Избранное</a></li> 150 <li class="footer__item"><a class="footer__link" href="{{ route('favorite') }}">Избранное</a></li>
151 <li class="footer__item"><a class="footer__link" href="{{ route('news') }}">Новости</a></li> 151 <li class="footer__item"><a class="footer__link" href="{{ route('news') }}">Новости</a></li>
152 </ul> 152 </ul>
153 153
154 </div><a class="footer__author" href="#" target="_blank"><img src="{{ asset('images/author.png')}}" alt="Лого разработчика"></a> 154 </div><a class="footer__author" href="#" target="_blank"><img src="{{ asset('images/author.png')}}" alt="Лого разработчика"></a>
155 </div> 155 </div>
156 <div class="footer__col js_footer_col"> 156 <div class="footer__col js_footer_col">
157 <h3 class="footer__caption js_footer_caption">Услуги</h3> 157 <h3 class="footer__caption js_footer_caption">Услуги</h3>
158 <div class="footer__block js_footer_block"> 158 <div class="footer__block js_footer_block">
159 <ul class="footer__list"> 159 <ul class="footer__list">
160 <li class="footer__item"><a class="footer__link" href="#">Продажа арендного бизнеса</a></li> 160 <li class="footer__item"><a class="footer__link" href="#">Продажа арендного бизнеса</a></li>
161 <li class="footer__item"><a class="footer__link" href="#">Арендованные помещения</a></li> 161 <li class="footer__item"><a class="footer__link" href="#">Арендованные помещения</a></li>
162 <li class="footer__item"><a class="footer__link" href="#">Свободные для аренды</a></li> 162 <li class="footer__item"><a class="footer__link" href="#">Свободные для аренды</a></li>
163 </ul> 163 </ul>
164 </div> 164 </div>
165 </div> 165 </div>
166 <div class="footer__col js_footer_col"> 166 <div class="footer__col js_footer_col">
167 <h3 class="footer__caption js_footer_caption">Страницы</h3> 167 <h3 class="footer__caption js_footer_caption">Страницы</h3>
168 <div class="footer__block js_footer_block"> 168 <div class="footer__block js_footer_block">
169 <ul class="footer__list"> 169 <ul class="footer__list">
170 <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Админка</a></li> 170 <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Админка</a></li>
171 <li class="footer__item"><a class="footer__link" href="{{ route('cookies') }}">Cookies</a></li> 171 <li class="footer__item"><a class="footer__link" href="{{ route('cookies') }}">Cookies</a></li>
172 172
173 <!--<li class="footer__item"><a class="footer__link" href="#">Новая Москва</a></li> 173 <!--<li class="footer__item"><a class="footer__link" href="#">Новая Москва</a></li>
174 <li class="footer__item"><a class="footer__link" href="#">Подмосковье</a></li> 174 <li class="footer__item"><a class="footer__link" href="#">Подмосковье</a></li>
175 <li class="footer__item"><a class="footer__link" href="#">Москва</a></li> 175 <li class="footer__item"><a class="footer__link" href="#">Москва</a></li>
176 <li class="footer__item"><a class="footer__link" href="#">Тип недвижимости</a></li>--> 176 <li class="footer__item"><a class="footer__link" href="#">Тип недвижимости</a></li>-->
177 </ul> 177 </ul>
178 </div> 178 </div>
179 </div> 179 </div>
180 <div class="footer__col footer__col-contacts"> 180 <div class="footer__col footer__col-contacts">
181 <h3 class="footer__caption js_footer_caption">Контакты</h3> 181 <h3 class="footer__caption js_footer_caption">Контакты</h3>
182 <ul class="footer__list"> 182 <ul class="footer__list">
183 <li class="footer__item"><a class="footer__link" href="#mailto:{{ $items_contact[0]->email }}">{{ $items_contact[0]->email }}</a></li> 183 <li class="footer__item"><a class="footer__link" href="#mailto:{{ $items_contact[0]->email }}">{{ $items_contact[0]->email }}</a></li>
184 <li class="footer__item"><a class="footer__link" href="tel:{{ $items_contact[0]->telephone }}">{{ $items_contact[0]->telephone }}</a></li> 184 <li class="footer__item"><a class="footer__link" href="tel:{{ $items_contact[0]->telephone }}">{{ $items_contact[0]->telephone }}</a></li>
185 </ul> 185 </ul>
186 <div class="footer__social social"> 186 <div class="footer__social social">
187 <ul class="social__list"> 187 <ul class="social__list">
188 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg')}}" alt=""></a></li> 188 <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg')}}" alt=""></a></li>
189 <li class="social__item"><a class="social__link" href="#" target="_blank"> 189 <li class="social__item"><a class="social__link" href="#" target="_blank">
190 <svg width="40" height="40"> 190 <svg width="40" height="40">
191 <use xlink:href="{{ asset('images/sprite.svg#wa') }}"></use> 191 <use xlink:href="{{ asset('images/sprite.svg#wa') }}"></use>
192 </svg></a></li> 192 </svg></a></li>
193 </ul> 193 </ul>
194 </div> 194 </div>
195 </div> 195 </div>
196 </div> 196 </div>
197 </div> 197 </div>
198 </div> 198 </div>
199 199
200 <div class="footer-bottom"> 200 <div class="footer-bottom">
201 <div class="container"> 201 <div class="container">
202 <div class="footer-bottom__wrap"> 202 <div class="footer-bottom__wrap">
203 <div class="footer__copy">© 2023 RentTorg</div><a class="footer__plicy" href="{{ route('conf') }}">Политика конфиденциальности</a> 203 <div class="footer__copy">© 2023 RentTorg</div><a class="footer__plicy" href="{{ route('conf') }}">Политика конфиденциальности</a>
204 </div> 204 </div>
205 </div> 205 </div>
206 </div> 206 </div>
207 </footer> 207 </footer>
208 </div> 208 </div>
209 209
210 <!-- Вплывающие окна --> 210 <!-- Вплывающие окна -->
211 <div class="popup popup-feedback" data-popup="feedback"> 211 <div class="popup popup-feedback" data-popup="feedback">
212 <div class="popup__wrap"> 212 <div class="popup__wrap">
213 <button class="popup__close js_popup_close" type="button"> 213 <button class="popup__close js_popup_close" type="button">
214 <svg width="20" height="20"> 214 <svg width="20" height="20">
215 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 215 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
216 </svg> 216 </svg>
217 </button> 217 </button>
218 <form class="popup-feedback__form js_popup_feedback_form" action="{{ route('header_form') }}" method="POST"> 218 <form class="popup-feedback__form js_popup_feedback_form" action="{{ route('header_form') }}" method="POST">
219 @csrf 219 @csrf
220 <div class="popup-feedback__title">Как с вами связаться</div> 220 <div class="popup-feedback__title">Как с вами связаться</div>
221 <div class="popup-feedback__fields"> 221 <div class="popup-feedback__fields">
222 <label class="popup-feedback__field field"> 222 <label class="popup-feedback__field field">
223 <input type="text" placeholder="Имя" name="NameUser"> 223 <input type="text" placeholder="Имя" name="NameUser">
224 </label> 224 </label>
225 <label class="popup-feedback__field field"> 225 <label class="popup-feedback__field field">
226 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> 226 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser">
227 </label> 227 </label>
228 </div> 228 </div>
229 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 229 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
230 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> 230 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p>
231 </form> 231 </form>
232 </div> 232 </div>
233 </div> 233 </div>
234 <div class="popup popup-feedback" data-popup="viewing"> 234 <div class="popup popup-feedback" data-popup="viewing">
235 <div class="popup__wrap"> 235 <div class="popup__wrap">
236 <button class="popup__close js_popup_close" type="button"> 236 <button class="popup__close js_popup_close" type="button">
237 <svg width="20" height="20"> 237 <svg width="20" height="20">
238 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 238 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
239 </svg> 239 </svg>
240 </button> 240 </button>
241 <form class="popup-feedback__form js_popup_viewing_form" action="{{ route('rec_view_form') }}" method="POST"> 241 <form class="popup-feedback__form js_popup_viewing_form" action="{{ route('rec_view_form') }}" method="POST">
242 @csrf 242 @csrf
243 <div class="popup-feedback__title">Записаться на просмотр</div> 243 <div class="popup-feedback__title">Записаться на просмотр</div>
244 <div class="popup-feedback__fields"> 244 <div class="popup-feedback__fields">
245 <label class="popup-feedback__field field"> 245 <label class="popup-feedback__field field">
246 <input type="text" placeholder="Имя" name="NameUser"> 246 <input type="text" placeholder="Имя" name="NameUser">
247 </label> 247 </label>
248 <label class="popup-feedback__field field"> 248 <label class="popup-feedback__field field">
249 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> 249 <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser">
250 </label> 250 </label>
251 </div> 251 </div>
252 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 252 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
253 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="#">Политикой конфиденциальности</a>.</p> 253 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="#">Политикой конфиденциальности</a>.</p>
254 </form> 254 </form>
255 </div> 255 </div>
256 </div> 256 </div>
257 <div class="popup popup-success" data-popup="success"> 257 <div class="popup popup-success" data-popup="success">
258 <div class="popup__wrap"> 258 <div class="popup__wrap">
259 <button class="popup__close js_popup_close" type="button"> 259 <button class="popup__close js_popup_close" type="button">
260 <svg width="20" height="20"> 260 <svg width="20" height="20">
261 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> 261 <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use>
262 </svg> 262 </svg>
263 </button> 263 </button>
264 <div class="popup-success__inner"> 264 <div class="popup-success__inner">
265 <div class="popup-success__logo"> 265 <div class="popup-success__logo">
266 <svg width="48" height="39"> 266 <svg width="48" height="39">
267 <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use> 267 <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use>
268 </svg> 268 </svg>
269 </div> 269 </div>
270 <div class="popup-success__title">Спасибо за заявку</div> 270 <div class="popup-success__title">Спасибо за заявку</div>
271 <p class="popup-success__descr">В ближайшее время с вами свяжется наш специалист для уточнения деталей вашей задачи.</p> 271 <p class="popup-success__descr">В ближайшее время с вами свяжется наш специалист для уточнения деталей вашей задачи.</p>
272 </div> 272 </div>
273 </div> 273 </div>
274 </div> 274 </div>
275 <div class="popup popup-feedback" data-popup="sending"> 275 <div class="popup popup-feedback" data-popup="sending">
276 <div class="popup__wrap"> 276 <div class="popup__wrap">
277 <button class="popup__close js_popup_close" type="button"> 277 <button class="popup__close js_popup_close" type="button">
278 <svg width="20" height="20"> 278 <svg width="20" height="20">
279 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 279 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
280 </svg> 280 </svg>
281 </button> 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 @csrf 283 @csrf
284 <div class="popup-feedback__title">Отправить на почту</div> 284 <div class="popup-feedback__title">Отправить на почту</div>
285 <div class="popup-feedback__fields"> 285 <div class="popup-feedback__fields">
286 <label class="popup-feedback__field field"> 286 <label class="popup-feedback__field field">
287 <input class="js_input_email" type="text" placeholder="Электронная почта" name="EmailUser"> 287 <input class="js_input_email" type="text" placeholder="Электронная почта" name="EmailUser">
288 </label> 288 </label>
289 </div> 289 </div>
290 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> 290 <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button>
291 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> 291 <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p>
292 </form> 292 </form>
293 </div> 293 </div>
294 </div> 294 </div>
295 <div class="contact-us js_contact_us"> 295 <div class="contact-us js_contact_us">
296 <div class="contact-us__top"> 296 <div class="contact-us__top">
297 <button class="contact-us__close js_contact_us_close" type="button"> 297 <button class="contact-us__close js_contact_us_close" type="button">
298 <svg width="20" height="20"> 298 <svg width="20" height="20">
299 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 299 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
300 </svg> 300 </svg>
301 </button> 301 </button>
302 <div class="contact-us__title">Свяжитесь с нами</div> 302 <div class="contact-us__title">Свяжитесь с нами</div>
303 </div> 303 </div>
304 <div class="contact-us__body"> 304 <div class="contact-us__body">
305 <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" data-btn="feedback"> 305 <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" data-btn="feedback">
306 <div class="contact-us-item__icon"> 306 <div class="contact-us-item__icon">
307 <svg width="34" height="34"> 307 <svg width="34" height="34">
308 <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use> 308 <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use>
309 </svg> 309 </svg>
310 </div> 310 </div>
311 <div class="contact-us-item__name">Позвонить</div></a> 311 <div class="contact-us-item__name">Позвонить</div></a>
312 312
313 <a class="contact-us-item js_contact_us_close" data-btn="sending"> 313 <a class="contact-us-item js_contact_us_close" data-btn="sending">
314 <div class="contact-us-item__icon"> 314 <div class="contact-us-item__icon">
315 <svg width="44" height="44"> 315 <svg width="44" height="44">
316 <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use> 316 <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use>
317 </svg> 317 </svg>
318 </div> 318 </div>
319 <div class="contact-us-item__name">Написать</div></a> 319 <div class="contact-us-item__name">Написать</div></a>
320 320
321 <a class="contact-us-item js_contact_us_close" > 321 <a class="contact-us-item js_contact_us_close" >
322 <div class="contact-us-item__icon"> 322 <div class="contact-us-item__icon">
323 <svg width="34" height="34"> 323 <svg width="34" height="34">
324 <use xlink:href="{{ asset('images/sprite.svg#contact-us-chat')}}"></use> 324 <use xlink:href="{{ asset('images/sprite.svg#contact-us-chat')}}"></use>
325 </svg> 325 </svg>
326 </div> 326 </div>
327 <div class="contact-us-item__name">Онлайн-чат</div></a></div> 327 <div class="contact-us-item__name">Онлайн-чат</div></a></div>
328 <div class="contact-us__socials"><a class="contact-us-social js_contact_us_close" href="#" target="_blank"> 328 <div class="contact-us__socials"><a class="contact-us-social js_contact_us_close" href="#" target="_blank">
329 <div class="contact-us-social__icon contact-us-social__icon-tg"><img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div> 329 <div class="contact-us-social__icon contact-us-social__icon-tg"><img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div>
330 <div class="contact-us-social__name">Telegram</div></a><a class="contact-us-social js_contact_us_close" href="#" target="_blank"> 330 <div class="contact-us-social__name">Telegram</div></a><a class="contact-us-social js_contact_us_close" href="#" target="_blank">
331 <div class="contact-us-social__icon contact-us-social__icon-wa"> 331 <div class="contact-us-social__icon contact-us-social__icon-wa">
332 <svg width="31" height="31"> 332 <svg width="31" height="31">
333 <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use> 333 <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use>
334 </svg> 334 </svg>
335 </div> 335 </div>
336 <div class="contact-us-social__name">WhatsApp</div></a></div> 336 <div class="contact-us-social__name">WhatsApp</div></a></div>
337 </div> 337 </div>
338 </div> 338 </div>
339 339
340 <!-- Всплывашка этажа и объекта 340 <!-- Всплывашка этажа и объекта
341 <div class="offer-side-popup" data-popup="offer-side-popup"> 341 <div class="offer-side-popup" data-popup="offer-side-popup">
342 <div class="offer-side-popup__wrap"> 342 <div class="offer-side-popup__wrap">
343 <button class="offer-side-popup__close js_popup_close" type="button"> 343 <button class="offer-side-popup__close js_popup_close" type="button">
344 <svg width="20" height="20"> 344 <svg width="20" height="20">
345 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 345 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
346 </svg> 346 </svg>
347 </button> 347 </button>
348 <div class="offer-side-popup__cnt"> 348 <div class="offer-side-popup__cnt">
349 <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> 349 <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>
350 <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> 350 <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>
351 </div> 351 </div>
352 <div class="offer-side-popup__tabs"> 352 <div class="offer-side-popup__tabs">
353 <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> 353 <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button>
354 <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> 354 <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button>
355 </div> 355 </div>
356 <button class="offer-side-popup__sizeoff js_popup_close" type="button"> 356 <button class="offer-side-popup__sizeoff js_popup_close" type="button">
357 <svg width="18" height="18"> 357 <svg width="18" height="18">
358 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> 358 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use>
359 </svg> 359 </svg>
360 </button> 360 </button>
361 </div> 361 </div>
362 </div> 362 </div>
363 --> 363 -->
364 364
365 <div class="img-viewer js_img_viewer"> 365 <div class="img-viewer js_img_viewer">
366 <div class="img-viewer__wrap"> 366 <div class="img-viewer__wrap">
367 <button class="img-viewer__close js_img_viewer_close" type="button"> 367 <button class="img-viewer__close js_img_viewer_close" type="button">
368 <svg width="20" height="20"> 368 <svg width="20" height="20">
369 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> 369 <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
370 </svg> 370 </svg>
371 </button> 371 </button>
372 <div class="img-viewer__thumbs js_img_viewer_thumbs"> 372 <div class="img-viewer__thumbs js_img_viewer_thumbs">
373 <div class="img-viewer__thumbs-swiper js_img_viewer_thumbs_swiper swiper"> 373 <div class="img-viewer__thumbs-swiper js_img_viewer_thumbs_swiper swiper">
374 <div class="swiper-wrapper"></div> 374 <div class="swiper-wrapper"></div>
375 </div> 375 </div>
376 </div> 376 </div>
377 <div class="img-viewer__slider"> 377 <div class="img-viewer__slider">
378 <div class="img-viewer__slider-swiper js_img_viewer_slider_swiper swiper"> 378 <div class="img-viewer__slider-swiper js_img_viewer_slider_swiper swiper">
379 <div class="swiper-wrapper"></div> 379 <div class="swiper-wrapper"></div>
380 </div> 380 </div>
381 <div class="swiper-button-prev"> 381 <div class="swiper-button-prev">
382 <svg width="10" height="17"> 382 <svg width="10" height="17">
383 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> 383 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use>
384 </svg> 384 </svg>
385 </div> 385 </div>
386 <div class="swiper-button-next"> 386 <div class="swiper-button-next">
387 <svg width="10" height="17"> 387 <svg width="10" height="17">
388 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> 388 <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use>
389 </svg> 389 </svg>
390 </div> 390 </div>
391 </div> 391 </div>
392 <div class="img-viewer__caption js_img_viewer_caption"></div> 392 <div class="img-viewer__caption js_img_viewer_caption"></div>
393 <button class="img-viewer__sizeoff js_img_viewer_close" type="button"> 393 <button class="img-viewer__sizeoff js_img_viewer_close" type="button">
394 <svg width="18" height="18"> 394 <svg width="18" height="18">
395 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use> 395 <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use>
396 </svg> 396 </svg>
397 </button> 397 </button>
398 </div> 398 </div>
399 </div> 399 </div>
400 <div class="cookies js_cookies"> 400 <div class="cookies js_cookies">
401 <div class="container"> 401 <div class="container">
402 <div class="cookies__wrap"> 402 <div class="cookies__wrap">
403 <div class="cookies__top"> 403 <div class="cookies__top">
404 <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div> 404 <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div>
405 <div class="cookies__title">Cookies</div> 405 <div class="cookies__title">Cookies</div>
406 </div> 406 </div>
407 <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p> 407 <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p>
408 <div class="cookies__buttons"> 408 <div class="cookies__buttons">
409 <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a> 409 <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a>
410 </div> 410 </div>
411 </div> 411 </div>
412 </div> 412 </div>
413 </div> 413 </div>
414 <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script> 414 <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
415 <script src="{{ asset('js/swiper-bundle.min.js') }}"></script> 415 <script src="{{ asset('js/swiper-bundle.min.js') }}"></script>
416 <script src="{{ asset('js/main_new.js') }}"></script> 416 <script src="{{ asset('js/main_main.js') }}"></script>
417 <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script> 417 <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script>
418 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script> 418 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script>
419 @yield('custom_js') 419 @yield('custom_js')
420 @include('js.cookies_favorite') 420 @include('js.cookies_favorite')
421 </body> 421 </body>
422 </html> 422 </html>
423 423