Commit 8634eac35b3751b39845609b81978ab03ab0dcd1
1 parent
f399180fcf
Exists in
master
Картинки обновленные для сайта и страница карты
Showing 17 changed files with 226 additions and 143 deletions Inline Diff
- app/Http/Controllers/MainController.php
- app/Http/Requests/EmailRequest.php
- app/Providers/ComposerServiceProvider.php
- database/migrations/2023_03_01_072712_create_areas_table.php
- database/seeders/AreasTableSeeder.php
- public/js/main.js
- resources/views/admin/index.blade.php
- resources/views/catalogs/elemhouse.blade.php
- resources/views/catalogs/house_mini.blade.php
- resources/views/catalogs/new.blade.php
- resources/views/complex.blade.php
- resources/views/cookies.blade.php
- resources/views/house/post.blade.php
- resources/views/index.blade.php
- resources/views/layout/site.blade.php
- resources/views/mapsobj.blade.php
- resources/views/part/filter/mapsobj.blade.php
app/Http/Controllers/MainController.php
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\Partners; | 13 | use App\Models\Partners; |
14 | use App\Models\type_area; | 14 | use App\Models\type_area; |
15 | use Illuminate\Database\Eloquent\Model; | 15 | use Illuminate\Database\Eloquent\Model; |
16 | use Illuminate\Http\Request; | 16 | use Illuminate\Http\Request; |
17 | use App\Classes\RusDate; | 17 | use App\Classes\RusDate; |
18 | use Illuminate\Support\Facades\Mail; | 18 | use Illuminate\Support\Facades\Mail; |
19 | use PhpParser\Node\Stmt\Switch_; | 19 | use PhpParser\Node\Stmt\Switch_; |
20 | use Illuminate\Support\Facades\Response; | 20 | use Illuminate\Support\Facades\Response; |
21 | 21 | ||
22 | class MainController extends Controller | 22 | class MainController extends Controller |
23 | { | 23 | { |
24 | /* | 24 | /* |
25 | * Главная страница проекта | 25 | * Главная страница проекта |
26 | */ | 26 | */ |
27 | public function index() { | 27 | public function index() { |
28 | $houses = House::with('areas')->orderByDesc('created_at')->limit(8)->get(); | 28 | $houses = House::with('areas')->orderByDesc('created_at')->limit(8)->get(); |
29 | $news = News::query()->orderByDesc('created_at')->limit(8)->get(); | 29 | $news = News::query()->orderByDesc('created_at')->limit(8)->get(); |
30 | $partners = Partners::query()->limit(18)->get(); | 30 | $partners = Partners::query()->limit(18)->get(); |
31 | return view('index', compact('houses', 'news', 'partners')); | 31 | return view('index', compact('houses', 'news', 'partners')); |
32 | } | 32 | } |
33 | 33 | ||
34 | /* | 34 | /* |
35 | * Фильтр ajax в каталоге | 35 | * Фильтр ajax в каталоге |
36 | */ | 36 | */ |
37 | public function catalog_ajax_filter(Request $request) { | 37 | public function catalog_ajax_filter(Request $request) { |
38 | $Res = Array(); | 38 | $Res = Array(); |
39 | if (!empty($request->area)) { | 39 | if (!empty($request->area)) { |
40 | $area_table = Area::where('id', '=', $request->area)->get(); | 40 | $area_table = Area::where('id', '=', $request->area)->get(); |
41 | $Res[] = $area_table[0]->name_area; | 41 | $Res[] = $area_table[0]->name_area; |
42 | } else { | 42 | } else { |
43 | $Res[] = "Все объекты"; | 43 | $Res[] = "Все объекты"; |
44 | } | 44 | } |
45 | 45 | ||
46 | if (!empty($request->type_area)) { | 46 | if (!empty($request->type_area)) { |
47 | $type_area_table = type_area::where('id', '=', $request->type_area)->get(); | 47 | $type_area_table = type_area::where('id', '=', $request->type_area)->get(); |
48 | $Res[] = $type_area_table[0]->name_type; | 48 | $Res[] = $type_area_table[0]->name_type; |
49 | } else { | 49 | } else { |
50 | $Res[] = "Тип недвижимости"; | 50 | $Res[] = "Тип недвижимости"; |
51 | } | 51 | } |
52 | 52 | ||
53 | if (!empty($request->format_area)) { | 53 | if (!empty($request->format_area)) { |
54 | $format_area_table = format_area::where('id', '=', $request->format_area)->get(); | 54 | $format_area_table = format_area::where('id', '=', $request->format_area)->get(); |
55 | $Res[] = $format_area_table[0]->name_format; | 55 | $Res[] = $format_area_table[0]->name_format; |
56 | } else { | 56 | } else { |
57 | $Res[] = "Формат недвижимости"; | 57 | $Res[] = "Формат недвижимости"; |
58 | } | 58 | } |
59 | 59 | ||
60 | return json_encode($Res); | 60 | return json_encode($Res); |
61 | } | 61 | } |
62 | 62 | ||
63 | /* | 63 | /* |
64 | * Страница ЖК | 64 | * Страница ЖК |
65 | */ | 65 | */ |
66 | public function Complex(Area $area, Request $request) { | 66 | public function Complex(Area $area, Request $request) { |
67 | //////////раздел аренда | 67 | //////////раздел аренда |
68 | $house_arenda = House::with('areas')-> | 68 | $house_arenda = House::with('areas')-> |
69 | where('area_id', '=', $area->id)-> | 69 | where('area_id', '=', $area->id)-> |
70 | where('format_house', '=', 'Аренда'); | 70 | where('format_house', '=', 'Аренда'); |
71 | 71 | ||
72 | if ($request->view == 'arenda') { | 72 | if ($request->view == 'arenda') { |
73 | switch ($request->sort_price) { | 73 | switch ($request->sort_price) { |
74 | case 1: $house_arenda = $house_arenda->orderBy('price');break; | 74 | case 1: $house_arenda = $house_arenda->orderBy('price');break; |
75 | case 2: $house_arenda = $house_arenda->orderByDesc('price');break; | 75 | case 2: $house_arenda = $house_arenda->orderByDesc('price');break; |
76 | } | 76 | } |
77 | switch ($request->sort_new) { | 77 | switch ($request->sort_new) { |
78 | case 1: $house_arenda = $house_arenda->orderByDesc('created_at');break; | 78 | case 1: $house_arenda = $house_arenda->orderByDesc('created_at');break; |
79 | case 2: $house_arenda = $house_arenda->orderBy('created_at');break; | 79 | case 2: $house_arenda = $house_arenda->orderBy('created_at');break; |
80 | } | 80 | } |
81 | switch ($request->sort_area) { | 81 | switch ($request->sort_area) { |
82 | case 1: $house_arenda = $house_arenda->orderByDesc('area')->get();break; | 82 | case 1: $house_arenda = $house_arenda->orderByDesc('area')->get();break; |
83 | case 2: $house_arenda = $house_arenda->orderBy('area')->get();break; | 83 | case 2: $house_arenda = $house_arenda->orderBy('area')->get();break; |
84 | } | 84 | } |
85 | } else { | 85 | } else { |
86 | $house_arenda = $house_arenda->orderBy('price')-> | 86 | $house_arenda = $house_arenda->orderBy('price')-> |
87 | orderByDesc('created_at')-> | 87 | orderByDesc('created_at')-> |
88 | orderByDesc('area')->get(); | 88 | orderByDesc('area')->get(); |
89 | } | 89 | } |
90 | 90 | ||
91 | ////////раздел продажа | 91 | ////////раздел продажа |
92 | $house_prodaja = House::with('areas')-> | 92 | $house_prodaja = House::with('areas')-> |
93 | where('area_id', '=', $area->id)-> | 93 | where('area_id', '=', $area->id)-> |
94 | where('format_house', '=', 'Продажа'); | 94 | where('format_house', '=', 'Продажа'); |
95 | 95 | ||
96 | if ($request->view == 'prodaja') { | 96 | if ($request->view == 'prodaja') { |
97 | switch ($request->sort_price) { | 97 | switch ($request->sort_price) { |
98 | case 1: $house_prodaja = $house_prodaja->orderBy('price');break; | 98 | case 1: $house_prodaja = $house_prodaja->orderBy('price');break; |
99 | case 2: $house_prodaja = $house_prodaja->orderByDesc('price');break; | 99 | case 2: $house_prodaja = $house_prodaja->orderByDesc('price');break; |
100 | } | 100 | } |
101 | switch ($request->sort_new) { | 101 | switch ($request->sort_new) { |
102 | case 1: $house_prodaja = $house_prodaja->orderByDesc('created_at');break; | 102 | case 1: $house_prodaja = $house_prodaja->orderByDesc('created_at');break; |
103 | case 2: $house_prodaja = $house_prodaja->orderBy('created_at');break; | 103 | case 2: $house_prodaja = $house_prodaja->orderBy('created_at');break; |
104 | } | 104 | } |
105 | switch ($request->sort_area) { | 105 | switch ($request->sort_area) { |
106 | case 1: $house_prodaja = $house_prodaja->orderByDesc('area')->get();break; | 106 | case 1: $house_prodaja = $house_prodaja->orderByDesc('area')->get();break; |
107 | case 2: $house_prodaja = $house_prodaja->orderBy('area')->get();break; | 107 | case 2: $house_prodaja = $house_prodaja->orderBy('area')->get();break; |
108 | } | 108 | } |
109 | } else { | 109 | } else { |
110 | $house_prodaja = $house_prodaja->orderBy('price')-> | 110 | $house_prodaja = $house_prodaja->orderBy('price')-> |
111 | orderByDesc('created_at')-> | 111 | orderByDesc('created_at')-> |
112 | orderByDesc('area')->get(); | 112 | orderByDesc('area')->get(); |
113 | } | 113 | } |
114 | 114 | ||
115 | //////////////// Раздел бизнеса | 115 | //////////////// Раздел бизнеса |
116 | $house_bissnes = House::with('areas')-> | 116 | $house_bissnes = House::with('areas')-> |
117 | where('area_id', '=', $area->id)-> | 117 | where('area_id', '=', $area->id)-> |
118 | where('format_house', '=', 'Бизнес'); | 118 | where('format_house', '=', 'Бизнес'); |
119 | //orderByDesc('created_at')->get(); | 119 | //orderByDesc('created_at')->get(); |
120 | 120 | ||
121 | if ($request->view == 'bissnes') { | 121 | if ($request->view == 'bissnes') { |
122 | switch ($request->sort_price) { | 122 | switch ($request->sort_price) { |
123 | case 1: $house_bissnes = $house_bissnes->orderBy('price');break; | 123 | case 1: $house_bissnes = $house_bissnes->orderBy('price');break; |
124 | case 2: $house_bissnes = $house_bissnes->orderByDesc('price');break; | 124 | case 2: $house_bissnes = $house_bissnes->orderByDesc('price');break; |
125 | } | 125 | } |
126 | switch ($request->sort_new) { | 126 | switch ($request->sort_new) { |
127 | case 1: $house_bissnes = $house_bissnes->orderByDesc('created_at');break; | 127 | case 1: $house_bissnes = $house_bissnes->orderByDesc('created_at');break; |
128 | case 2: $house_bissnes = $house_bissnes->orderBy('created_at');break; | 128 | case 2: $house_bissnes = $house_bissnes->orderBy('created_at');break; |
129 | } | 129 | } |
130 | switch ($request->sort_area) { | 130 | switch ($request->sort_area) { |
131 | case 1: $house_bissnes = $house_bissnes->orderByDesc('area')->get();break; | 131 | case 1: $house_bissnes = $house_bissnes->orderByDesc('area')->get();break; |
132 | case 2: $house_bissnes = $house_bissnes->orderBy('area')->get();break; | 132 | case 2: $house_bissnes = $house_bissnes->orderBy('area')->get();break; |
133 | } | 133 | } |
134 | } else { | 134 | } else { |
135 | $house_bissnes = $house_bissnes->orderBy('price')-> | 135 | $house_bissnes = $house_bissnes->orderBy('price')-> |
136 | orderByDesc('created_at')-> | 136 | orderByDesc('created_at')-> |
137 | orderByDesc('area')->get(); | 137 | orderByDesc('area')->get(); |
138 | } | 138 | } |
139 | 139 | ||
140 | //////////раздел арендованные | 140 | //////////раздел арендованные |
141 | $house_arendovannie = House::with('areas')-> | 141 | $house_arendovannie = House::with('areas')-> |
142 | where('area_id', '=', $area->id)-> | 142 | where('area_id', '=', $area->id)-> |
143 | where('format_house', '=', 'Арендованные'); | 143 | where('format_house', '=', 'Арендованные'); |
144 | //orderByDesc('created_at')->get(); | 144 | //orderByDesc('created_at')->get(); |
145 | 145 | ||
146 | if ($request->view == 'arendovannie') { | 146 | if ($request->view == 'arendovannie') { |
147 | switch ($request->sort_price) { | 147 | switch ($request->sort_price) { |
148 | case 1: $house_arendovannie = $house_arendovannie->orderBy('price');break; | 148 | case 1: $house_arendovannie = $house_arendovannie->orderBy('price');break; |
149 | case 2: $house_arendovannie = $house_arendovannie->orderByDesc('price');break; | 149 | case 2: $house_arendovannie = $house_arendovannie->orderByDesc('price');break; |
150 | } | 150 | } |
151 | switch ($request->sort_new) { | 151 | switch ($request->sort_new) { |
152 | case 1: $house_arendovannie = $house_arendovannie->orderByDesc('created_at');break; | 152 | case 1: $house_arendovannie = $house_arendovannie->orderByDesc('created_at');break; |
153 | case 2: $house_arendovannie = $house_arendovannie->orderBy('created_at');break; | 153 | case 2: $house_arendovannie = $house_arendovannie->orderBy('created_at');break; |
154 | } | 154 | } |
155 | switch ($request->sort_area) { | 155 | switch ($request->sort_area) { |
156 | case 1: $house_arendovannie = $house_arendovannie->orderByDesc('area')->get();break; | 156 | case 1: $house_arendovannie = $house_arendovannie->orderByDesc('area')->get();break; |
157 | case 2: $house_arendovannie = $house_arendovannie->orderBy('area')->get();break; | 157 | case 2: $house_arendovannie = $house_arendovannie->orderBy('area')->get();break; |
158 | } | 158 | } |
159 | } else { | 159 | } else { |
160 | $house_arendovannie = $house_arendovannie->orderBy('price')-> | 160 | $house_arendovannie = $house_arendovannie->orderBy('price')-> |
161 | orderByDesc('created_at')-> | 161 | orderByDesc('created_at')-> |
162 | orderByDesc('area')->get(); | 162 | orderByDesc('area')->get(); |
163 | } | 163 | } |
164 | 164 | ||
165 | if ($request->ajax()) { | 165 | if ($request->ajax()) { |
166 | switch($request->view) { | 166 | switch($request->view) { |
167 | case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; | 167 | case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; |
168 | case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; | 168 | case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; |
169 | case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; | 169 | case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; |
170 | case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; | 170 | case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; |
171 | } | 171 | } |
172 | } | 172 | } |
173 | 173 | ||
174 | return view('complex', compact('area', | 174 | return view('complex', compact('area', |
175 | 'house_arenda', | 175 | 'house_arenda', |
176 | 'house_prodaja', | 176 | 'house_prodaja', |
177 | 'house_bissnes', | 177 | 'house_bissnes', |
178 | 'house_arendovannie')); | 178 | 'house_arendovannie')); |
179 | 179 | ||
180 | } | 180 | } |
181 | 181 | ||
182 | /* | 182 | /* |
183 | * О компании | 183 | * О компании |
184 | */ | 184 | */ |
185 | public function About(): \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Contracts\Foundation\Application | 185 | public function About(): \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Contracts\Foundation\Application |
186 | { | 186 | { |
187 | $news = News::query()->orderByDesc('created_at')->limit(8)->get(); | 187 | $news = News::query()->orderByDesc('created_at')->limit(8)->get(); |
188 | $partners = Partners::query()->limit(18)->get(); | 188 | $partners = Partners::query()->limit(18)->get(); |
189 | return view('about', compact('news', 'partners')); | 189 | return view('about', compact('news', 'partners')); |
190 | } | 190 | } |
191 | 191 | ||
192 | /* | 192 | /* |
193 | * Форма обратной связи внизу сайта | 193 | * Форма обратной связи внизу сайта |
194 | */ | 194 | */ |
195 | public function main_form(FooterFeedbackRequest $request) { | 195 | public function main_form(FooterFeedbackRequest $request) { |
196 | $RentTorg = Contact::query()->limit(1)->get(); | 196 | $RentTorg = Contact::query()->limit(1)->get(); |
197 | $MailBD = new ModelMailFeedback(); | 197 | $MailBD = new ModelMailFeedback(); |
198 | $MailBD->to = 'Администрации сайта'; | 198 | $MailBD->to = 'Администрации сайта'; |
199 | $MailBD->from = $request->TelephoneUser; | 199 | $MailBD->from = $request->TelephoneUser; |
200 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; | 200 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; |
201 | $MailBD->form = 'Форма в футере'; | 201 | $MailBD->form = 'Форма в футере'; |
202 | $MailBD->text = "От пользователя: ".$request->NameUser.". Заявка на лучшие предложения. Сообщение: ".$request->TextUser; | 202 | $MailBD->text = "От пользователя: ".$request->NameUser.". Заявка на лучшие предложения. Сообщение: ".$request->TextUser; |
203 | $MailBD->save(); | 203 | $MailBD->save(); |
204 | 204 | ||
205 | //return true; | 205 | //return true; |
206 | /* | 206 | /* |
207 | Mail::send('emails.feedback', ['user' => $user], | 207 | Mail::send('emails.feedback', ['user' => $user], |
208 | function ($message) use ($user) { | 208 | function ($message) use ($user) { |
209 | $message->from('sender@gmail.com', 'Sender'); | 209 | $message->from('sender@gmail.com', 'Sender'); |
210 | $message->to($user->email, $user->name)->subject('Test message'); | 210 | $message->to($user->email, $user->name)->subject('Test message'); |
211 | }); | 211 | }); |
212 | */ | 212 | */ |
213 | } | 213 | } |
214 | 214 | ||
215 | /* | 215 | /* |
216 | * Форма обратной связе в хедере | 216 | * Форма обратной связе в хедере |
217 | */ | 217 | */ |
218 | public function header_form(FooterFeedbackRequest $request) { | 218 | public function header_form(FooterFeedbackRequest $request) { |
219 | $RentTorg = Contact::query()->limit(1)->get(); | 219 | $RentTorg = Contact::query()->limit(1)->get(); |
220 | $MailBD = new ModelMailFeedback(); | 220 | $MailBD = new ModelMailFeedback(); |
221 | $MailBD->to = 'Администрации сайта'; | 221 | $MailBD->to = 'Администрации сайта'; |
222 | $MailBD->from = $request->TelephoneUser; | 222 | $MailBD->from = $request->TelephoneUser; |
223 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; | 223 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; |
224 | $MailBD->form = 'Форма в заголовке сайта'; | 224 | $MailBD->form = 'Форма в заголовке сайта'; |
225 | $MailBD->text = "От пользователя: ".$request->NameUser." Сообщение: Заказываю обратный звонок"; | 225 | $MailBD->text = "От пользователя: ".$request->NameUser." Сообщение: Заказываю обратный звонок"; |
226 | $MailBD->save(); | 226 | $MailBD->save(); |
227 | } | 227 | } |
228 | 228 | ||
229 | public function rec_view_form(FooterFeedbackRequest $request) { | 229 | public function rec_view_form(FooterFeedbackRequest $request) { |
230 | $RentTorg = Contact::query()->limit(1)->get(); | 230 | $RentTorg = Contact::query()->limit(1)->get(); |
231 | $MailBD = new ModelMailFeedback(); | 231 | $MailBD = new ModelMailFeedback(); |
232 | $MailBD->to = 'Администрации сайта'; | 232 | $MailBD->to = 'Администрации сайта'; |
233 | $MailBD->from = $request->TelephoneUser; | 233 | $MailBD->from = $request->TelephoneUser; |
234 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; | 234 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; |
235 | $MailBD->form = 'Форма записи на просмотр'; | 235 | $MailBD->form = 'Форма записи на просмотр'; |
236 | $MailBD->text = "От пользователя: ".$request->NameUser." Сообщение: Заказываю просмотр офиса"; | 236 | $MailBD->text = "От пользователя: ".$request->NameUser." Сообщение: Заказываю просмотр офиса"; |
237 | $MailBD->save(); | 237 | $MailBD->save(); |
238 | } | 238 | } |
239 | 239 | ||
240 | /* | 240 | /* |
241 | * Форма обратной связи на странице "Контакты" | 241 | * Форма обратной связи на странице "Контакты" |
242 | */ | 242 | */ |
243 | public function page_contact_form(FooterFeedbackRequest $request) { | 243 | public function page_contact_form(FooterFeedbackRequest $request) { |
244 | $RentTorg = Contact::query()->limit(1)->get(); | 244 | $RentTorg = Contact::query()->limit(1)->get(); |
245 | $MailBD = new ModelMailFeedback(); | 245 | $MailBD = new ModelMailFeedback(); |
246 | $MailBD->to = 'Администрации сайта'; | 246 | $MailBD->to = 'Администрации сайта'; |
247 | $MailBD->from = $request->TelephoneUser; | 247 | $MailBD->from = $request->TelephoneUser; |
248 | $MailBD->subject = "Пользователь <".$request->NameUser."> Компания <".$request->NameCompany.">"; | 248 | $MailBD->subject = "Пользователь <".$request->NameUser."> Компания <".$request->NameCompany.">"; |
249 | $MailBD->form = 'Форма на странице "Контакты"'; | 249 | $MailBD->form = 'Форма на странице "Контакты"'; |
250 | $MailBD->text = "От пользователя: ".$request->NameUser."Телефон: ".$request->TelephoneUser." Почта: <".$request->EmailUser."> Сообщение:".$request->TextUser; | 250 | $MailBD->text = "От пользователя: ".$request->NameUser."Телефон: ".$request->TelephoneUser." Почта: <".$request->EmailUser."> Сообщение:".$request->TextUser; |
251 | $MailBD->save(); | 251 | $MailBD->save(); |
252 | } | 252 | } |
253 | /* | 253 | /* |
254 | * Форма обратной связи по емайлу | 254 | * Форма обратной связи по емайлу |
255 | */ | 255 | */ |
256 | public function email_form(EmailRequest $request) { | 256 | public function email_form(EmailRequest $request) { |
257 | $RentTorg = Contact::query()->limit(1)->get(); | 257 | $RentTorg = Contact::query()->limit(1)->get(); |
258 | $MailBD = new ModelMailFeedback(); | 258 | $MailBD = new ModelMailFeedback(); |
259 | $MailBD->to = 'Администрации сайта'; | 259 | $MailBD->to = 'Администрации сайта'; |
260 | $MailBD->from = $request->EmailUser; | 260 | $MailBD->from = $request->EmailUser; |
261 | $MailBD->subject = "Пользователь <".$request->EmailUser.">"; | 261 | $MailBD->subject = "Пользователь <".$request->EmailUser.">"; |
262 | $MailBD->form = 'Форма обратной связи по Email'; | 262 | $MailBD->form = 'Форма обратной связи по Email'; |
263 | $MailBD->text = "От почты: ".$request->EmailUser." Сообщение: Отправить на данную почту предложения RentTorg"; | 263 | $MailBD->text = "От почты: ".$request->EmailUser." Сообщение: Отправить на данную почту предложения RentTorg"; |
264 | $MailBD->save(); | 264 | $MailBD->save(); |
265 | //dd('Email form'); | ||
266 | return redirect()->route('index'); | ||
265 | } | 267 | } |
266 | 268 | ||
267 | /* | 269 | /* |
268 | * Избранное | 270 | * Избранное |
269 | */ | 271 | */ |
270 | public function Favorite(Request $request) { | 272 | public function Favorite(Request $request) { |
271 | $Arr = json_decode($_COOKIE['favorite_house'], true); | 273 | $Arr = json_decode($_COOKIE['favorite_house'], true); |
272 | if (!empty($Arr) && is_array($Arr)) { | 274 | if (!empty($Arr) && is_array($Arr)) { |
273 | $houses = House::with('areas')->whereIn('id', $Arr); | 275 | $houses = House::with('areas')->whereIn('id', $Arr); |
274 | 276 | ||
275 | if (isset($request->sort_price)) { | 277 | if (isset($request->sort_price)) { |
276 | switch ($request->sort_price) { | 278 | switch ($request->sort_price) { |
277 | case 1: $houses = $houses->orderBy('price');break; | 279 | case 1: $houses = $houses->orderBy('price');break; |
278 | case 2: $houses = $houses->orderByDesc('price');break; | 280 | case 2: $houses = $houses->orderByDesc('price');break; |
279 | } | 281 | } |
280 | switch ($request->sort_new) { | 282 | switch ($request->sort_new) { |
281 | case 1: $houses = $houses->orderByDesc('created_at');break; | 283 | case 1: $houses = $houses->orderByDesc('created_at');break; |
282 | case 2: $houses = $houses->orderBy('created_at');break; | 284 | case 2: $houses = $houses->orderBy('created_at');break; |
283 | } | 285 | } |
284 | switch ($request->sort_area) { | 286 | switch ($request->sort_area) { |
285 | case 1: $houses = $houses->orderByDesc('area');break; | 287 | case 1: $houses = $houses->orderByDesc('area');break; |
286 | case 2: $houses = $houses->orderBy('area');break; | 288 | case 2: $houses = $houses->orderBy('area');break; |
287 | } | 289 | } |
288 | 290 | ||
289 | } else { | 291 | } else { |
290 | $houses = $houses->orderBy('price')-> | 292 | $houses = $houses->orderBy('price')-> |
291 | orderByDesc('created_at')-> | 293 | orderByDesc('created_at')-> |
292 | orderByDesc('area'); | 294 | orderByDesc('area'); |
293 | } | 295 | } |
294 | 296 | ||
295 | $houses = $houses->paginate(4); | 297 | $houses = $houses->paginate(4); |
296 | 298 | ||
297 | if ($request->ajax()) { | 299 | if ($request->ajax()) { |
298 | return view('ajax.complex.favorite', compact('houses')); | 300 | return view('ajax.complex.favorite', compact('houses')); |
299 | } | 301 | } |
300 | 302 | ||
301 | return view('favorite_data', compact('houses')); | 303 | return view('favorite_data', compact('houses')); |
302 | } else { | 304 | } else { |
303 | return view('favorite', compact('Arr')); | 305 | return view('favorite', compact('Arr')); |
304 | } | 306 | } |
305 | 307 | ||
306 | 308 | ||
307 | } | 309 | } |
308 | 310 | ||
309 | /* | 311 | /* |
310 | * Категории каталога Аренда/Продажа/Бизнес | 312 | * Категории каталога Аренда/Продажа/Бизнес |
311 | */ | 313 | */ |
312 | public function Category($cat, Request $request) { | 314 | public function Category($cat, Request $request) { |
313 | switch ($cat) { | 315 | switch ($cat) { |
314 | case 'arenda': | 316 | case 'arenda': |
315 | $title = "Аренда торговых помещениий"; | 317 | $title = "Аренда торговых помещениий"; |
316 | $format_house = 'Аренда'; | 318 | $format_house = 'Аренда'; |
317 | break; | 319 | break; |
318 | case 'sale': | 320 | case 'sale': |
319 | $title = "Продажа торговых помещений"; | 321 | $title = "Продажа торговых помещений"; |
320 | $format_house = 'Продажа'; | 322 | $format_house = 'Продажа'; |
321 | break; | 323 | break; |
322 | case 'bussiness': | 324 | case 'bussiness': |
323 | $title = "Арендый бизнес"; | 325 | $title = "Арендый бизнес"; |
324 | $format_house = 'Бизнес'; | 326 | $format_house = 'Бизнес'; |
325 | break; | 327 | break; |
326 | default: | 328 | default: |
327 | $title = "Аренда торговых помещениий"; | 329 | $title = "Аренда торговых помещениий"; |
328 | $format_house = 'Аренда'; | 330 | $format_house = 'Аренда'; |
329 | break; | 331 | break; |
330 | } | 332 | } |
331 | 333 | ||
332 | $houses = House::with('areas')-> | 334 | $houses = House::with('areas')-> |
333 | where('format_house', '=', $format_house); | 335 | where('format_house', '=', $format_house); |
334 | //->appends(request()->query()); | 336 | //->appends(request()->query()); |
335 | 337 | ||
336 | if (!empty($request->area)) { | 338 | if (!empty($request->area)) { |
337 | $houses = $houses->where('area_id', '=', $request->area); | 339 | $houses = $houses->where('area_id', '=', $request->area); |
338 | } | 340 | } |
339 | // условия поиска по типу недвижимости | 341 | // условия поиска по типу недвижимости |
340 | if (!empty($request->type_area)) { | 342 | if (!empty($request->type_area)) { |
341 | $houses = $houses->where('type_area_id', '=', $request->type_area); | 343 | $houses = $houses->where('type_area_id', '=', $request->type_area); |
342 | } | 344 | } |
343 | // условия поиска по формату недвижимости | 345 | // условия поиска по формату недвижимости |
344 | if (!empty($request->format_area)) { | 346 | if (!empty($request->format_area)) { |
345 | $houses = $houses->where('format_area_id', '=', $request->format_area); | 347 | $houses = $houses->where('format_area_id', '=', $request->format_area); |
346 | } | 348 | } |
347 | // условия поиска по площади - минимальная площадь | 349 | // условия поиска по площади - минимальная площадь |
348 | if (!empty($request->area_m2_min)) { | 350 | if (!empty($request->area_m2_min)) { |
349 | $houses = $houses->where('area', '>', $request->area_m2_min); | 351 | $houses = $houses->where('area', '>', $request->area_m2_min); |
350 | } | 352 | } |
351 | // условия поиска по площади - максимальная площадь | 353 | // условия поиска по площади - максимальная площадь |
352 | if (!empty($request->area_m2_max)) { | 354 | if (!empty($request->area_m2_max)) { |
353 | $houses = $houses->where('area', '<', $request->area_m2_max); | 355 | $houses = $houses->where('area', '<', $request->area_m2_max); |
354 | } | 356 | } |
355 | // условия поиска по цене - минимальная цена | 357 | // условия поиска по цене - минимальная цена |
356 | if (!empty($request->price_min)) { | 358 | if (!empty($request->price_min)) { |
357 | $houses = $houses->where('price', '>', $request->price_min); | 359 | $houses = $houses->where('price', '>', $request->price_min); |
358 | } | 360 | } |
359 | // условия поиска по цене - максимальная цена | 361 | // условия поиска по цене - максимальная цена |
360 | if (!empty($request->price_max)) { | 362 | if (!empty($request->price_max)) { |
361 | $houses = $houses->where('price', '<', $request->price_max); | 363 | $houses = $houses->where('price', '<', $request->price_max); |
362 | } | 364 | } |
363 | // условия поиска по адресу | 365 | // условия поиска по адресу |
364 | if (!empty($request->address)) { | 366 | if (!empty($request->address)) { |
365 | $houses = $houses->where('address', 'LIKE', "%".$request->address."%"); | 367 | $houses = $houses->where('address', 'LIKE', "%".$request->address."%"); |
366 | } | 368 | } |
367 | 369 | ||
368 | if (isset($request->sort_price)) { | 370 | if (isset($request->sort_price)) { |
369 | switch ($request->sort_price) { | 371 | switch ($request->sort_price) { |
370 | case 1: $houses = $houses->orderBy('price');break; | 372 | case 1: $houses = $houses->orderBy('price');break; |
371 | case 2: $houses = $houses->orderByDesc('price');break; | 373 | case 2: $houses = $houses->orderByDesc('price');break; |
372 | } | 374 | } |
373 | switch ($request->sort_new) { | 375 | switch ($request->sort_new) { |
374 | case 1: $houses = $houses->orderByDesc('created_at');break; | 376 | case 1: $houses = $houses->orderByDesc('created_at');break; |
375 | case 2: $houses = $houses->orderBy('created_at');break; | 377 | case 2: $houses = $houses->orderBy('created_at');break; |
376 | } | 378 | } |
377 | switch ($request->sort_area) { | 379 | switch ($request->sort_area) { |
378 | case 1: $houses = $houses->orderByDesc('area');break; | 380 | case 1: $houses = $houses->orderByDesc('area');break; |
379 | case 2: $houses = $houses->orderBy('area');break; | 381 | case 2: $houses = $houses->orderBy('area');break; |
380 | } | 382 | } |
381 | 383 | ||
382 | } else { | 384 | } else { |
383 | $houses = $houses->orderBy('price')-> | 385 | $houses = $houses->orderBy('price')-> |
384 | orderByDesc('created_at')-> | 386 | orderByDesc('created_at')-> |
385 | orderByDesc('area'); | 387 | orderByDesc('area'); |
386 | } | 388 | } |
387 | 389 | ||
388 | $houses = $houses->paginate(4); | 390 | $houses = $houses->paginate(4); |
389 | 391 | ||
390 | if ($request->ajax()) { | 392 | if ($request->ajax()) { |
391 | return view('ajax.complex.category', compact('houses')); | 393 | return view('ajax.complex.category', compact('houses')); |
392 | } | 394 | } |
393 | 395 | ||
394 | return view('category_catalog', compact('title', 'cat', 'houses')); | 396 | return view('category_catalog', compact('title', 'cat', 'houses')); |
395 | } | 397 | } |
396 | 398 | ||
397 | 399 | ||
398 | /* | 400 | /* |
399 | * Каталог | 401 | * Каталог |
400 | */ | 402 | */ |
401 | public function Catalog(Request $request) { | 403 | public function Catalog(Request $request) { |
402 | 404 | ||
403 | //////////раздел аренда///////////////////////////////////////////////////////////////// | 405 | //////////раздел аренда///////////////////////////////////////////////////////////////// |
404 | $house_arenda = House::with('areas')-> | 406 | $house_arenda = House::with('areas')-> |
405 | where('format_house', '=', 'Аренда'); | 407 | where('format_house', '=', 'Аренда'); |
406 | // условия поиска по объектам комплексов | 408 | // условия поиска по объектам комплексов |
407 | if (!empty($request->area)) { | 409 | if (!empty($request->area)) { |
408 | $house_arenda = $house_arenda->where('area_id', '=', $request->area); | 410 | $house_arenda = $house_arenda->where('area_id', '=', $request->area); |
409 | } | 411 | } |
410 | // условия поиска по типу недвижимости | 412 | // условия поиска по типу недвижимости |
411 | if (!empty($request->type_area)) { | 413 | if (!empty($request->type_area)) { |
412 | $house_arenda = $house_arenda->where('type_area_id', '=', $request->type_area); | 414 | $house_arenda = $house_arenda->where('type_area_id', '=', $request->type_area); |
413 | } | 415 | } |
414 | // условия поиска по формату недвижимости | 416 | // условия поиска по формату недвижимости |
415 | if (!empty($request->format_area)) { | 417 | if (!empty($request->format_area)) { |
416 | $house_arenda = $house_arenda->where('format_area_id', '=', $request->format_area); | 418 | $house_arenda = $house_arenda->where('format_area_id', '=', $request->format_area); |
417 | } | 419 | } |
418 | // условия поиска по площади - минимальная площадь | 420 | // условия поиска по площади - минимальная площадь |
419 | if (!empty($request->area_m2_min)) { | 421 | if (!empty($request->area_m2_min)) { |
420 | $house_arenda = $house_arenda->where('area', '>', $request->area_m2_min); | 422 | $house_arenda = $house_arenda->where('area', '>', $request->area_m2_min); |
421 | } | 423 | } |
422 | // условия поиска по площади - максимальная площадь | 424 | // условия поиска по площади - максимальная площадь |
423 | if (!empty($request->area_m2_max)) { | 425 | if (!empty($request->area_m2_max)) { |
424 | $house_arenda = $house_arenda->where('area', '<', $request->area_m2_max); | 426 | $house_arenda = $house_arenda->where('area', '<', $request->area_m2_max); |
425 | } | 427 | } |
426 | // условия поиска по цене - минимальная цена | 428 | // условия поиска по цене - минимальная цена |
427 | if (!empty($request->price_min)) { | 429 | if (!empty($request->price_min)) { |
428 | $house_arenda = $house_arenda->where('price', '>', $request->price_min); | 430 | $house_arenda = $house_arenda->where('price', '>', $request->price_min); |
429 | } | 431 | } |
430 | // условия поиска по цене - максимальная цена | 432 | // условия поиска по цене - максимальная цена |
431 | if (!empty($request->price_max)) { | 433 | if (!empty($request->price_max)) { |
432 | $house_arenda = $house_arenda->where('price', '<', $request->price_max); | 434 | $house_arenda = $house_arenda->where('price', '<', $request->price_max); |
433 | } | 435 | } |
434 | // условия поиска по адресу | 436 | // условия поиска по адресу |
435 | if (!empty($request->address)) { | 437 | if (!empty($request->address)) { |
436 | $house_arenda = $house_arenda->where('address', 'LIKE', "%".$request->address."%"); | 438 | $house_arenda = $house_arenda->where('address', 'LIKE', "%".$request->address."%"); |
437 | } | 439 | } |
438 | 440 | ||
439 | if ($request->view == 'arenda') { | 441 | if ($request->view == 'arenda') { |
440 | switch ($request->sort_price) { | 442 | switch ($request->sort_price) { |
441 | case 1: $house_arenda = $house_arenda->orderBy('price');break; | 443 | case 1: $house_arenda = $house_arenda->orderBy('price');break; |
442 | case 2: $house_arenda = $house_arenda->orderByDesc('price');break; | 444 | case 2: $house_arenda = $house_arenda->orderByDesc('price');break; |
443 | } | 445 | } |
444 | switch ($request->sort_new) { | 446 | switch ($request->sort_new) { |
445 | case 1: $house_arenda = $house_arenda->orderByDesc('created_at');break; | 447 | case 1: $house_arenda = $house_arenda->orderByDesc('created_at');break; |
446 | case 2: $house_arenda = $house_arenda->orderBy('created_at');break; | 448 | case 2: $house_arenda = $house_arenda->orderBy('created_at');break; |
447 | } | 449 | } |
448 | switch ($request->sort_area) { | 450 | switch ($request->sort_area) { |
449 | case 1: $house_arenda = $house_arenda->orderByDesc('area')->get();break; | 451 | case 1: $house_arenda = $house_arenda->orderByDesc('area')->get();break; |
450 | case 2: $house_arenda = $house_arenda->orderBy('area')->get();break; | 452 | case 2: $house_arenda = $house_arenda->orderBy('area')->get();break; |
451 | } | 453 | } |
452 | } else { | 454 | } else { |
453 | $house_arenda = $house_arenda->orderBy('price')-> | 455 | $house_arenda = $house_arenda->orderBy('price')-> |
454 | orderByDesc('created_at')-> | 456 | orderByDesc('created_at')-> |
455 | orderByDesc('area')->get(); | 457 | orderByDesc('area')->get(); |
456 | } | 458 | } |
457 | 459 | ||
458 | ////////раздел продажа////////////////////////////////////////////////////////////////// | 460 | ////////раздел продажа////////////////////////////////////////////////////////////////// |
459 | $house_prodaja = House::with('areas')-> | 461 | $house_prodaja = House::with('areas')-> |
460 | where('format_house', '=', 'Продажа'); | 462 | where('format_house', '=', 'Продажа'); |
461 | 463 | ||
462 | // условия поиска по объектам комплексов | 464 | // условия поиска по объектам комплексов |
463 | if (!empty($request->area)) { | 465 | if (!empty($request->area)) { |
464 | $house_prodaja = $house_prodaja->where('area_id', '=', $request->area); | 466 | $house_prodaja = $house_prodaja->where('area_id', '=', $request->area); |
465 | } | 467 | } |
466 | // условия поиска по типу недвижимости | 468 | // условия поиска по типу недвижимости |
467 | if (!empty($request->type_area)) { | 469 | if (!empty($request->type_area)) { |
468 | $house_prodaja = $house_prodaja->where('type_area_id', '=', $request->type_area); | 470 | $house_prodaja = $house_prodaja->where('type_area_id', '=', $request->type_area); |
469 | } | 471 | } |
470 | // условия поиска по формату недвижимости | 472 | // условия поиска по формату недвижимости |
471 | if (!empty($request->format_area)) { | 473 | if (!empty($request->format_area)) { |
472 | $house_prodaja = $house_prodaja->where('format_area_id', '=', $request->format_area); | 474 | $house_prodaja = $house_prodaja->where('format_area_id', '=', $request->format_area); |
473 | } | 475 | } |
474 | // условия поиска по площади - минимальная площадь | 476 | // условия поиска по площади - минимальная площадь |
475 | if (!empty($request->area_m2_min)) { | 477 | if (!empty($request->area_m2_min)) { |
476 | $house_prodaja = $house_prodaja->where('area', '>', $request->area_m2_min); | 478 | $house_prodaja = $house_prodaja->where('area', '>', $request->area_m2_min); |
477 | } | 479 | } |
478 | // условия поиска по площади - максимальная площадь | 480 | // условия поиска по площади - максимальная площадь |
479 | if (!empty($request->area_m2_max)) { | 481 | if (!empty($request->area_m2_max)) { |
480 | $house_prodaja = $house_prodaja->where('area', '<', $request->area_m2_max); | 482 | $house_prodaja = $house_prodaja->where('area', '<', $request->area_m2_max); |
481 | } | 483 | } |
482 | // условия поиска по цене - минимальная цена | 484 | // условия поиска по цене - минимальная цена |
483 | if (!empty($request->price_min)) { | 485 | if (!empty($request->price_min)) { |
484 | $house_prodaja = $house_prodaja->where('price', '>', $request->price_min); | 486 | $house_prodaja = $house_prodaja->where('price', '>', $request->price_min); |
485 | } | 487 | } |
486 | // условия поиска по цене - максимальная цена | 488 | // условия поиска по цене - максимальная цена |
487 | if (!empty($request->price_max)) { | 489 | if (!empty($request->price_max)) { |
488 | $house_prodaja = $house_prodaja->where('price', '<', $request->price_max); | 490 | $house_prodaja = $house_prodaja->where('price', '<', $request->price_max); |
489 | } | 491 | } |
490 | // условия поиска по адресу | 492 | // условия поиска по адресу |
491 | if (!empty($request->address)) { | 493 | if (!empty($request->address)) { |
492 | $house_prodaja = $house_prodaja->where('address', 'LIKE', "%".$request->address."%"); | 494 | $house_prodaja = $house_prodaja->where('address', 'LIKE', "%".$request->address."%"); |
493 | } | 495 | } |
494 | 496 | ||
495 | if ($request->view == 'prodaja') { | 497 | if ($request->view == 'prodaja') { |
496 | switch ($request->sort_price) { | 498 | switch ($request->sort_price) { |
497 | case 1: $house_prodaja = $house_prodaja->orderBy('price');break; | 499 | case 1: $house_prodaja = $house_prodaja->orderBy('price');break; |
498 | case 2: $house_prodaja = $house_prodaja->orderByDesc('price');break; | 500 | case 2: $house_prodaja = $house_prodaja->orderByDesc('price');break; |
499 | } | 501 | } |
500 | switch ($request->sort_new) { | 502 | switch ($request->sort_new) { |
501 | case 1: $house_prodaja = $house_prodaja->orderByDesc('created_at');break; | 503 | case 1: $house_prodaja = $house_prodaja->orderByDesc('created_at');break; |
502 | case 2: $house_prodaja = $house_prodaja->orderBy('created_at');break; | 504 | case 2: $house_prodaja = $house_prodaja->orderBy('created_at');break; |
503 | } | 505 | } |
504 | switch ($request->sort_area) { | 506 | switch ($request->sort_area) { |
505 | case 1: $house_prodaja = $house_prodaja->orderByDesc('area')->get();break; | 507 | case 1: $house_prodaja = $house_prodaja->orderByDesc('area')->get();break; |
506 | case 2: $house_prodaja = $house_prodaja->orderBy('area')->get();break; | 508 | case 2: $house_prodaja = $house_prodaja->orderBy('area')->get();break; |
507 | } | 509 | } |
508 | } else { | 510 | } else { |
509 | $house_prodaja = $house_prodaja->orderBy('price')-> | 511 | $house_prodaja = $house_prodaja->orderBy('price')-> |
510 | orderByDesc('created_at')-> | 512 | orderByDesc('created_at')-> |
511 | orderByDesc('area')->get(); | 513 | orderByDesc('area')->get(); |
512 | } | 514 | } |
513 | 515 | ||
514 | //////////////// Раздел бизнеса///////////////////////////////////////////////////////// | 516 | //////////////// Раздел бизнеса///////////////////////////////////////////////////////// |
515 | $house_bissnes = House::with('areas')-> | 517 | $house_bissnes = House::with('areas')-> |
516 | where('format_house', '=', 'Бизнес'); | 518 | where('format_house', '=', 'Бизнес'); |
517 | //orderByDesc('created_at')->get(); | 519 | //orderByDesc('created_at')->get(); |
518 | 520 | ||
519 | // условия поиска по объектам комплексов | 521 | // условия поиска по объектам комплексов |
520 | if (!empty($request->area)) { | 522 | if (!empty($request->area)) { |
521 | $house_bissnes = $house_bissnes->where('area_id', '=', $request->area); | 523 | $house_bissnes = $house_bissnes->where('area_id', '=', $request->area); |
522 | } | 524 | } |
523 | // условия поиска по типу недвижимости | 525 | // условия поиска по типу недвижимости |
524 | if (!empty($request->type_area)) { | 526 | if (!empty($request->type_area)) { |
525 | $house_bissnes = $house_bissnes->where('type_area_id', '=', $request->type_area); | 527 | $house_bissnes = $house_bissnes->where('type_area_id', '=', $request->type_area); |
526 | } | 528 | } |
527 | // условия поиска по формату недвижимости | 529 | // условия поиска по формату недвижимости |
528 | if (!empty($request->format_area)) { | 530 | if (!empty($request->format_area)) { |
529 | $house_bissnes = $house_bissnes->where('format_area_id', '=', $request->format_area); | 531 | $house_bissnes = $house_bissnes->where('format_area_id', '=', $request->format_area); |
530 | } | 532 | } |
531 | // условия поиска по площади - минимальная площадь | 533 | // условия поиска по площади - минимальная площадь |
532 | if (!empty($request->area_m2_min)) { | 534 | if (!empty($request->area_m2_min)) { |
533 | $house_bissnes = $house_bissnes->where('area', '>', $request->area_m2_min); | 535 | $house_bissnes = $house_bissnes->where('area', '>', $request->area_m2_min); |
534 | } | 536 | } |
535 | // условия поиска по площади - максимальная площадь | 537 | // условия поиска по площади - максимальная площадь |
536 | if (!empty($request->area_m2_max)) { | 538 | if (!empty($request->area_m2_max)) { |
537 | $house_bissnes = $house_bissnes->where('area', '<', $request->area_m2_max); | 539 | $house_bissnes = $house_bissnes->where('area', '<', $request->area_m2_max); |
538 | } | 540 | } |
539 | // условия поиска по цене - минимальная цена | 541 | // условия поиска по цене - минимальная цена |
540 | if (!empty($request->price_min)) { | 542 | if (!empty($request->price_min)) { |
541 | $house_bissnes = $house_bissnes->where('price', '>', $request->price_min); | 543 | $house_bissnes = $house_bissnes->where('price', '>', $request->price_min); |
542 | } | 544 | } |
543 | // условия поиска по цене - максимальная цена | 545 | // условия поиска по цене - максимальная цена |
544 | if (!empty($request->price_max)) { | 546 | if (!empty($request->price_max)) { |
545 | $house_bissnes = $house_bissnes->where('price', '<', $request->price_max); | 547 | $house_bissnes = $house_bissnes->where('price', '<', $request->price_max); |
546 | } | 548 | } |
547 | // условия поиска по адресу | 549 | // условия поиска по адресу |
548 | if (!empty($request->address)) { | 550 | if (!empty($request->address)) { |
549 | $house_bissnes = $house_bissnes->where('address', 'LIKE', "%".$request->address."%"); | 551 | $house_bissnes = $house_bissnes->where('address', 'LIKE', "%".$request->address."%"); |
550 | } | 552 | } |
551 | 553 | ||
552 | if ($request->view == 'bissnes') { | 554 | if ($request->view == 'bissnes') { |
553 | switch ($request->sort_price) { | 555 | switch ($request->sort_price) { |
554 | case 1: $house_bissnes = $house_bissnes->orderBy('price');break; | 556 | case 1: $house_bissnes = $house_bissnes->orderBy('price');break; |
555 | case 2: $house_bissnes = $house_bissnes->orderByDesc('price');break; | 557 | case 2: $house_bissnes = $house_bissnes->orderByDesc('price');break; |
556 | } | 558 | } |
557 | switch ($request->sort_new) { | 559 | switch ($request->sort_new) { |
558 | case 1: $house_bissnes = $house_bissnes->orderByDesc('created_at');break; | 560 | case 1: $house_bissnes = $house_bissnes->orderByDesc('created_at');break; |
559 | case 2: $house_bissnes = $house_bissnes->orderBy('created_at');break; | 561 | case 2: $house_bissnes = $house_bissnes->orderBy('created_at');break; |
560 | } | 562 | } |
561 | switch ($request->sort_area) { | 563 | switch ($request->sort_area) { |
562 | case 1: $house_bissnes = $house_bissnes->orderByDesc('area')->get();break; | 564 | case 1: $house_bissnes = $house_bissnes->orderByDesc('area')->get();break; |
563 | case 2: $house_bissnes = $house_bissnes->orderBy('area')->get();break; | 565 | case 2: $house_bissnes = $house_bissnes->orderBy('area')->get();break; |
564 | } | 566 | } |
565 | } else { | 567 | } else { |
566 | $house_bissnes = $house_bissnes->orderBy('price')-> | 568 | $house_bissnes = $house_bissnes->orderBy('price')-> |
567 | orderByDesc('created_at')-> | 569 | orderByDesc('created_at')-> |
568 | orderByDesc('area')->get(); | 570 | orderByDesc('area')->get(); |
569 | } | 571 | } |
570 | 572 | ||
571 | //////////раздел арендованные////////////////////////////////////////////////////////// | 573 | //////////раздел арендованные////////////////////////////////////////////////////////// |
572 | $house_arendovannie = House::with('areas')-> | 574 | $house_arendovannie = House::with('areas')-> |
573 | where('format_house', '=', 'Арендованные'); | 575 | where('format_house', '=', 'Арендованные'); |
574 | //orderByDesc('created_at')->get(); | 576 | //orderByDesc('created_at')->get(); |
575 | 577 | ||
576 | // условия поиска по объектам комплексов | 578 | // условия поиска по объектам комплексов |
577 | if (!empty($request->area)) { | 579 | if (!empty($request->area)) { |
578 | $house_arendovannie = $house_arendovannie->where('area_id', '=', $request->area); | 580 | $house_arendovannie = $house_arendovannie->where('area_id', '=', $request->area); |
579 | } | 581 | } |
580 | // условия поиска по типу недвижимости | 582 | // условия поиска по типу недвижимости |
581 | if (!empty($request->type_area)) { | 583 | if (!empty($request->type_area)) { |
582 | $house_arendovannie = $house_arendovannie->where('type_area_id', '=', $request->type_area); | 584 | $house_arendovannie = $house_arendovannie->where('type_area_id', '=', $request->type_area); |
583 | } | 585 | } |
584 | // условия поиска по формату недвижимости | 586 | // условия поиска по формату недвижимости |
585 | if (!empty($request->format_area)) { | 587 | if (!empty($request->format_area)) { |
586 | $house_arendovannie = $house_arendovannie->where('format_area_id', '=', $request->format_area); | 588 | $house_arendovannie = $house_arendovannie->where('format_area_id', '=', $request->format_area); |
587 | } | 589 | } |
588 | // условия поиска по площади - минимальная площадь | 590 | // условия поиска по площади - минимальная площадь |
589 | if (!empty($request->area_m2_min)) { | 591 | if (!empty($request->area_m2_min)) { |
590 | $house_arendovannie = $house_arendovannie->where('area', '>', $request->area_m2_min); | 592 | $house_arendovannie = $house_arendovannie->where('area', '>', $request->area_m2_min); |
591 | } | 593 | } |
592 | // условия поиска по площади - максимальная площадь | 594 | // условия поиска по площади - максимальная площадь |
593 | if (!empty($request->area_m2_max)) { | 595 | if (!empty($request->area_m2_max)) { |
594 | $house_arendovannie = $house_arendovannie->where('area', '<', $request->area_m2_max); | 596 | $house_arendovannie = $house_arendovannie->where('area', '<', $request->area_m2_max); |
595 | } | 597 | } |
596 | // условия поиска по цене - минимальная цена | 598 | // условия поиска по цене - минимальная цена |
597 | if (!empty($request->price_min)) { | 599 | if (!empty($request->price_min)) { |
598 | $house_arendovannie = $house_arendovannie->where('price', '>', $request->price_min); | 600 | $house_arendovannie = $house_arendovannie->where('price', '>', $request->price_min); |
599 | } | 601 | } |
600 | // условия поиска по цене - максимальная цена | 602 | // условия поиска по цене - максимальная цена |
601 | if (!empty($request->price_max)) { | 603 | if (!empty($request->price_max)) { |
602 | $house_arendovannie = $house_arendovannie->where('price', '<', $request->price_max); | 604 | $house_arendovannie = $house_arendovannie->where('price', '<', $request->price_max); |
603 | } | 605 | } |
604 | // условия поиска по адресу | 606 | // условия поиска по адресу |
605 | if (!empty($request->address)) { | 607 | if (!empty($request->address)) { |
606 | $house_arendovannie = $house_arendovannie->where('address', 'LIKE', "%".$request->address."%"); | 608 | $house_arendovannie = $house_arendovannie->where('address', 'LIKE', "%".$request->address."%"); |
607 | } | 609 | } |
608 | 610 | ||
609 | if ($request->view == 'arendovannie') { | 611 | if ($request->view == 'arendovannie') { |
610 | switch ($request->sort_price) { | 612 | switch ($request->sort_price) { |
611 | case 1: $house_arendovannie = $house_arendovannie->orderBy('price');break; | 613 | case 1: $house_arendovannie = $house_arendovannie->orderBy('price');break; |
612 | case 2: $house_arendovannie = $house_arendovannie->orderByDesc('price');break; | 614 | case 2: $house_arendovannie = $house_arendovannie->orderByDesc('price');break; |
613 | } | 615 | } |
614 | switch ($request->sort_new) { | 616 | switch ($request->sort_new) { |
615 | case 1: $house_arendovannie = $house_arendovannie->orderByDesc('created_at');break; | 617 | case 1: $house_arendovannie = $house_arendovannie->orderByDesc('created_at');break; |
616 | case 2: $house_arendovannie = $house_arendovannie->orderBy('created_at');break; | 618 | case 2: $house_arendovannie = $house_arendovannie->orderBy('created_at');break; |
617 | } | 619 | } |
618 | switch ($request->sort_area) { | 620 | switch ($request->sort_area) { |
619 | case 1: $house_arendovannie = $house_arendovannie->orderByDesc('area')->get();break; | 621 | case 1: $house_arendovannie = $house_arendovannie->orderByDesc('area')->get();break; |
620 | case 2: $house_arendovannie = $house_arendovannie->orderBy('area')->get();break; | 622 | case 2: $house_arendovannie = $house_arendovannie->orderBy('area')->get();break; |
621 | } | 623 | } |
622 | } else { | 624 | } else { |
623 | $house_arendovannie = $house_arendovannie->orderBy('price')-> | 625 | $house_arendovannie = $house_arendovannie->orderBy('price')-> |
624 | orderByDesc('created_at')-> | 626 | orderByDesc('created_at')-> |
625 | orderByDesc('area')->get(); | 627 | orderByDesc('area')->get(); |
626 | } | 628 | } |
627 | 629 | ||
628 | if ($request->ajax()) { | 630 | if ($request->ajax()) { |
629 | switch($request->view) { | 631 | switch($request->view) { |
630 | case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; | 632 | case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; |
631 | case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; | 633 | case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; |
632 | case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; | 634 | case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; |
633 | case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; | 635 | case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; |
634 | } | 636 | } |
635 | } | 637 | } |
636 | if (session('message') == 'Искать') { | 638 | if (session('message') == 'Искать') { |
637 | session()->flash('message', 'Сброс'); | 639 | session()->flash('message', 'Сброс'); |
638 | } else { | 640 | } else { |
639 | session()->flash('message', 'Искать'); | 641 | session()->flash('message', 'Искать'); |
640 | } | 642 | } |
641 | 643 | ||
642 | if (empty($request)) { | 644 | if (empty($request)) { |
643 | session()->flash('message', 'Искать'); | 645 | session()->flash('message', 'Искать'); |
644 | } | 646 | } |
645 | 647 | ||
646 | return view('catalog', compact( | 648 | return view('catalog', compact( |
647 | 'house_arenda', | 649 | 'house_arenda', |
648 | 'house_prodaja', | 650 | 'house_prodaja', |
649 | 'house_bissnes', | 651 | 'house_bissnes', |
650 | 'house_arendovannie' | 652 | 'house_arendovannie' |
651 | )); | 653 | )); |
652 | 654 | ||
653 | 655 | ||
654 | } | 656 | } |
655 | 657 | ||
656 | /* | 658 | /* |
657 | * Новости | 659 | * Новости |
658 | */ | 660 | */ |
659 | public function News() { | 661 | public function News() { |
660 | //$news = News::orderByDesc('created_at')->limit(1)->paginate(); | 662 | //$news = News::orderByDesc('created_at')->limit(1)->paginate(); |
661 | $news_ = News::query()->orderByDesc('created_at')->paginate(4); | 663 | $news_ = News::query()->orderByDesc('created_at')->paginate(4); |
662 | return view('news', compact('news_')); | 664 | return view('news', compact('news_')); |
663 | } | 665 | } |
664 | 666 | ||
665 | /* | 667 | /* |
666 | * Контакты | 668 | * Контакты |
667 | */ | 669 | */ |
668 | public function Contact() { | 670 | public function Contact() { |
669 | return view('contact'); | 671 | return view('contact'); |
670 | } | 672 | } |
671 | 673 | ||
672 | /* | 674 | /* |
673 | * Карта объектов | 675 | * Карта объектов |
674 | */ | 676 | */ |
675 | public function MapsObj() { | 677 | public function MapsObj(Request $request) { |
678 | |||
676 | return view('mapsobj'); | 679 | return view('mapsobj'); |
677 | } | 680 | } |
678 | 681 | ||
679 | /* | 682 | /* |
680 | * Посмотр конктретного предложение офиса | 683 | * Посмотр конктретного предложение офиса |
681 | */ | 684 | */ |
682 | public function Offer(House $house) { | 685 | public function Offer(House $house) { |
683 | $houses = House::with('areas'); | 686 | $houses = House::with('areas'); |
684 | $houses = $houses->where('type_area_id', '=', $house->typearea->id); | 687 | $houses = $houses->where('type_area_id', '=', $house->typearea->id); |
685 | $houses = $houses->where('format_house', '=', $house->format_house); | 688 | $houses = $houses->where('format_house', '=', $house->format_house); |
686 | $houses = $houses->orderByDesc('created_at')->limit(8)->get(); | 689 | $houses = $houses->orderByDesc('created_at')->limit(8)->get(); |
687 | 690 | ||
688 | return view('house.post', compact('house', 'houses')); | 691 | return view('house.post', compact('house', 'houses')); |
689 | } | 692 | } |
690 | 693 | ||
691 | /* | 694 | /* |
692 | * Просмотр детально конкретной новости | 695 | * Просмотр детально конкретной новости |
693 | */ | 696 | */ |
694 | public function DetailNew(News $news) { | 697 | public function DetailNew(News $news) { |
695 | $news_list = News::query()->orderByDesc('created_at')->limit(8)->get(); | 698 | $news_list = News::query()->orderByDesc('created_at')->limit(8)->get(); |
696 | return view('new.post', compact('news', 'news_list')); | 699 | return view('new.post', compact('news', 'news_list')); |
697 | } | 700 | } |
698 | } | 701 | } |
699 | 702 |
app/Http/Requests/EmailRequest.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Http\Requests; | 3 | namespace App\Http\Requests; |
4 | 4 | ||
5 | use Illuminate\Foundation\Http\FormRequest; | 5 | use Illuminate\Foundation\Http\FormRequest; |
6 | 6 | ||
7 | class EmailRequest extends FormRequest | 7 | class EmailRequest extends FormRequest |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * Determine if the user is authorized to make this request. | 10 | * Determine if the user is authorized to make this request. |
11 | * | 11 | * |
12 | * @return bool | 12 | * @return bool |
13 | */ | 13 | */ |
14 | public function authorize() | 14 | public function authorize() |
15 | { | 15 | { |
16 | return false; | 16 | return true; |
17 | } | 17 | } |
18 | 18 | ||
19 | /** | 19 | /** |
20 | * Get the validation rules that apply to the request. | 20 | * Get the validation rules that apply to the request. |
21 | * | 21 | * |
22 | * @return array<string, mixed> | 22 | * @return array<string, mixed> |
23 | */ | 23 | */ |
24 | public function rules() | 24 | public function rules() |
25 | { | 25 | { |
26 | return [ | 26 | return [ |
27 | 'EmailUser' => 'required|min:3|max:255|email', | 27 | 'EmailUser' => 'required|min:3|max:255|email', |
28 | ]; | 28 | ]; |
29 | } | 29 | } |
30 | 30 | ||
31 | public function messages() { | 31 | public function messages() { |
32 | return [ | 32 | return [ |
33 | 'required' => 'Поле «:attribute» обязательно для заполнения', | 33 | 'required' => 'Поле «:attribute» обязательно для заполнения', |
34 | 'max' => 'Поле «:attribute» должно быть не больше :max символов', | 34 | 'max' => 'Поле «:attribute» должно быть не больше :max символов', |
35 | 'min' => 'Идентификатор публикации должен быть :min или больше', | 35 | 'min' => 'Идентификатор публикации должен быть :min или больше', |
36 | 'email' => 'Поле должно соответствовать формату Email', | 36 | 'email' => 'Поле должно соответствовать формату Email', |
37 | ]; | 37 | ]; |
38 | } | 38 | } |
39 | 39 | ||
40 | 40 | ||
41 | } | 41 | } |
42 | 42 |
app/Providers/ComposerServiceProvider.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Providers; | 3 | namespace App\Providers; |
4 | 4 | ||
5 | use App\Models\Area; | 5 | use App\Models\Area; |
6 | use App\Models\Contact; | 6 | use App\Models\Contact; |
7 | use App\Models\format_area; | 7 | use App\Models\format_area; |
8 | use App\Models\Tag; | 8 | use App\Models\Tag; |
9 | use App\Models\type_area; | 9 | use App\Models\type_area; |
10 | use Illuminate\Support\ServiceProvider; | 10 | use Illuminate\Support\ServiceProvider; |
11 | use Illuminate\Support\Facades\View; | 11 | use Illuminate\Support\Facades\View; |
12 | 12 | ||
13 | class ComposerServiceProvider extends ServiceProvider | 13 | class ComposerServiceProvider extends ServiceProvider |
14 | { | 14 | { |
15 | /** | 15 | /** |
16 | * Register services. | 16 | * Register services. |
17 | * | 17 | * |
18 | * @return void | 18 | * @return void |
19 | */ | 19 | */ |
20 | public function register() | 20 | public function register() |
21 | { | 21 | { |
22 | $views = ['part.filter.main','part.filter.catalog', 'part.filter.category']; | 22 | $views = ['part.filter.main','part.filter.catalog', 'part.filter.category', 'part.filter.mapsobj']; |
23 | 23 | ||
24 | View::composer($views, | 24 | View::composer($views, |
25 | function($view) { | 25 | function($view) { |
26 | $items_type_area = type_area::all(); | 26 | $items_type_area = type_area::all(); |
27 | $items_format_area = format_area::all(); | 27 | $items_format_area = format_area::all(); |
28 | $items_area = Area::all(); | 28 | $items_area = Area::all(); |
29 | $view->with([ | 29 | $view->with([ |
30 | 'items_area' => $items_area, | 30 | 'items_area' => $items_area, |
31 | 'items_type_area' => $items_type_area, | 31 | 'items_type_area' => $items_type_area, |
32 | 'items_format_area' => $items_format_area, | 32 | 'items_format_area' => $items_format_area, |
33 | ]); | 33 | ]); |
34 | } | 34 | } |
35 | ); | 35 | ); |
36 | 36 | ||
37 | $views = ['layout.site', 'index', 'about']; | 37 | $views = ['layout.site', 'index', 'about']; |
38 | View::composer($views, function($view) { | 38 | View::composer($views, function($view) { |
39 | $view->with(['items_contact' => Contact::limit(1)->get()]); | 39 | $view->with(['items_contact' => Contact::limit(1)->get()]); |
40 | }); | 40 | }); |
41 | 41 | ||
42 | 42 | ||
43 | } | 43 | } |
44 | 44 | ||
45 | /** | 45 | /** |
46 | * Bootstrap services. | 46 | * Bootstrap services. |
47 | * | 47 | * |
48 | * @return void | 48 | * @return void |
49 | */ | 49 | */ |
50 | public function boot() | 50 | public function boot() |
51 | { | 51 | { |
52 | // | 52 | // |
53 | } | 53 | } |
54 | } | 54 | } |
55 | 55 |
database/migrations/2023_03_01_072712_create_areas_table.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use Illuminate\Database\Migrations\Migration; | 3 | use Illuminate\Database\Migrations\Migration; |
4 | use Illuminate\Database\Schema\Blueprint; | 4 | use Illuminate\Database\Schema\Blueprint; |
5 | use Illuminate\Support\Facades\Schema; | 5 | use Illuminate\Support\Facades\Schema; |
6 | 6 | ||
7 | return new class extends Migration | 7 | return new class extends Migration |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * Run the migrations. | 10 | * Run the migrations. |
11 | * | 11 | * |
12 | * @return void | 12 | * @return void |
13 | */ | 13 | */ |
14 | public function up() | 14 | public function up() |
15 | { | 15 | { |
16 | Schema::create('areas', function (Blueprint $table) { | 16 | Schema::create('areas', function (Blueprint $table) { |
17 | $table->id(); | 17 | $table->id(); |
18 | $table->string('name_area', 255)->nullable(); | 18 | $table->string('name_area', 255)->nullable(); |
19 | $table->string('slug', 255)->unique()->nullable(); | 19 | //$table->string('slug', 255)->unique()->nullable(); |
20 | $table->text('description')->nullable(); | 20 | $table->text('description')->nullable(); |
21 | $table->string('map_coord')->default(''); | 21 | $table->string('map_coord')->default(''); |
22 | $table->integer('coord_x')->default(0); | 22 | $table->integer('coord_x')->default(0); |
23 | $table->integer('coord_y')->default(0); | 23 | $table->integer('coord_y')->default(0); |
24 | $table->string('foto_main', 255)->nullable(); | 24 | $table->string('foto_main', 255)->nullable(); |
25 | $table->timestamps(); | 25 | $table->timestamps(); |
26 | }); | 26 | }); |
27 | } | 27 | } |
28 | 28 | ||
29 | /** | 29 | /** |
30 | * Reverse the migrations. | 30 | * Reverse the migrations. |
31 | * | 31 | * |
32 | * @return void | 32 | * @return void |
33 | */ | 33 | */ |
34 | public function down() | 34 | public function down() |
35 | { | 35 | { |
36 | Schema::dropIfExists('areas'); | 36 | Schema::dropIfExists('areas'); |
37 | } | 37 | } |
38 | }; | 38 | }; |
39 | 39 |
database/seeders/AreasTableSeeder.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Database\Seeders; | 3 | namespace Database\Seeders; |
4 | 4 | ||
5 | use App\Models\Area; | 5 | use App\Models\Area; |
6 | use Illuminate\Database\Console\Seeds\WithoutModelEvents; | 6 | use Illuminate\Database\Console\Seeds\WithoutModelEvents; |
7 | use Illuminate\Database\Eloquent\Model; | 7 | use Illuminate\Database\Eloquent\Model; |
8 | use Illuminate\Database\Seeder; | 8 | use Illuminate\Database\Seeder; |
9 | 9 | ||
10 | class AreasTableSeeder extends Seeder | 10 | class AreasTableSeeder extends Seeder |
11 | { | 11 | { |
12 | /** | 12 | /** |
13 | * Run the database seeds. | 13 | * Run the database seeds. |
14 | * | 14 | * |
15 | * @return void | 15 | * @return void |
16 | */ | 16 | */ |
17 | public function run() | 17 | public function run() |
18 | { | 18 | { |
19 | $data = [ | 19 | $data = [ |
20 | /*1 */[ | 20 | /*1 */[ |
21 | 'name_area' => 'ЖК Большое Путилково', | 21 | 'name_area' => 'ЖК Большое Путилково', |
22 | 'slug' => 'JK_big_putilkovo', | 22 | //'slug' => 'JK_big_putilkovo', |
23 | 'description' => 'ЖК Большое Путилково. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', | 23 | 'description' => 'ЖК Большое Путилково. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
24 | 'foto_main' => 'images/intro-item-img-1.jpg', | 24 | 'foto_main' => 'images/intro-item-img-1.jpg', |
25 | 25 | ||
26 | ], | 26 | ], |
27 | /*2*/[ | 27 | /*2*/[ |
28 | 'name_area' => 'ЖК Среда', | 28 | 'name_area' => 'ЖК Среда', |
29 | 'slug' => 'JK_sreda', | 29 | //'slug' => 'JK_sreda', |
30 | 'description' => 'ЖК Среда. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', | 30 | 'description' => 'ЖК Среда. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
31 | 'foto_main' => 'images/intro-item-img-1.jpg', | 31 | 'foto_main' => 'images/intro-item-img-1.jpg', |
32 | 32 | ||
33 | ], | 33 | ], |
34 | /*3*/[ | 34 | /*3*/[ |
35 | 'name_area' => 'ЖК Квартал Триумфальный', | 35 | 'name_area' => 'ЖК Квартал Триумфальный', |
36 | 'slug' => 'JK_kvartal_triumfalniy', | 36 | //'slug' => 'JK_kvartal_triumfalniy', |
37 | 'description' => "ЖК Квартал Триумфальный. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.", | 37 | 'description' => "ЖК Квартал Триумфальный. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.", |
38 | 'foto_main' => 'images/intro-item-img-1.jpg', | 38 | 'foto_main' => 'images/intro-item-img-1.jpg', |
39 | 39 | ||
40 | ], | 40 | ], |
41 | /*4*/[ | 41 | /*4*/[ |
42 | 'name_area' => 'ЖК Алые Паруса', | 42 | 'name_area' => 'ЖК Алые Паруса', |
43 | 'slug' => 'JK_alie_parusa', | 43 | //'slug' => 'JK_alie_parusa', |
44 | 'description' => 'ЖК Алые Паруса. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', | 44 | 'description' => 'ЖК Алые Паруса. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
45 | 'foto_main' => 'images/intro-item-img-1.jpg', | 45 | 'foto_main' => 'images/intro-item-img-1.jpg', |
46 | 46 | ||
47 | ], | 47 | ], |
48 | /*5*/[ | 48 | /*5*/[ |
49 | 'name_area' => 'ЖК Первый Московский', | 49 | 'name_area' => 'ЖК Первый Московский', |
50 | 'slug' => 'JK_Perviy_Moskovskie', | 50 | //'slug' => 'JK_Perviy_Moskovskie', |
51 | 'description' => 'ЖК Первый Московский. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', | 51 | 'description' => 'ЖК Первый Московский. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
52 | 'foto_main' => 'images/intro-item-img-1.jpg', | 52 | 'foto_main' => 'images/intro-item-img-1.jpg', |
53 | 53 | ||
54 | ], | 54 | ], |
55 | /*6*/[ | 55 | /*6*/[ |
56 | 'name_area' => 'ЖК Ильменский 17', | 56 | 'name_area' => 'ЖК Ильменский 17', |
57 | 'slug' => 'JK_ilmenskiy_17', | 57 | //'slug' => 'JK_ilmenskiy_17', |
58 | 'description' => 'ЖК Ильменский 17. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', | 58 | 'description' => 'ЖК Ильменский 17. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
59 | 'foto_main' => 'images/intro-item-img-1.jpg', | 59 | 'foto_main' => 'images/intro-item-img-1.jpg', |
60 | 60 | ||
61 | ], | 61 | ], |
62 | /*7*/[ | 62 | /*7*/[ |
63 | 'name_area' => 'ЖК Царская Площадь', | 63 | 'name_area' => 'ЖК Царская Площадь', |
64 | 'slug' => 'JK_carskai_ploshad', | 64 | //'slug' => 'JK_carskai_ploshad', |
65 | 'description' => 'ЖК Царская Площадь. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', | 65 | 'description' => 'ЖК Царская Площадь. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
66 | 'foto_main' => 'images/intro-item-img-1.jpg', | 66 | 'foto_main' => 'images/intro-item-img-1.jpg', |
67 | 67 | ||
68 | ], | 68 | ], |
69 | /*8*/[ | 69 | /*8*/[ |
70 | 'name_area' => 'ЖК Переделкино Ближнее', | 70 | 'name_area' => 'ЖК Переделкино Ближнее', |
71 | 'slug' => 'JK_peredelkino_bliznee', | 71 | //'slug' => 'JK_peredelkino_bliznee', |
72 | 'description' => 'ЖК Переделкино Ближнее. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', | 72 | 'description' => 'ЖК Переделкино Ближнее. Аренда торгового помещения на первой линии Краснопрудной улицы! Интенсивный пешеходный и автомобильный трафик! Шаговая доступность от метро Красносельская (2 минуты). Густонаселенный жилой массив, насыщенное деловое окружение.', |
73 | 'foto_main' => 'images/intro-item-img-1.jpg', | 73 | 'foto_main' => 'images/intro-item-img-1.jpg', |
74 | 74 | ||
75 | ], | 75 | ], |
76 | ]; | 76 | ]; |
77 | 77 | ||
78 | foreach ($data as $item) { | 78 | foreach ($data as $item) { |
79 | $albom = new Area(); | 79 | $albom = new Area(); |
80 | $albom->name_area = $item['name_area']; | 80 | $albom->name_area = $item['name_area']; |
81 | $albom->slug = $item['slug']; | 81 | //$albom->slug = $item['slug']; |
82 | $albom->description = $item['description']; | 82 | $albom->description = $item['description']; |
83 | $albom->foto_main = $item['foto_main']; | 83 | $albom->foto_main = $item['foto_main']; |
84 | $albom->save(); | 84 | $albom->save(); |
85 | } | 85 | } |
86 | } | 86 | } |
87 | } | 87 | } |
88 | 88 |
public/js/main.js
1 | // управляющий класс App с методом init(), в котором собраны все используемые методы с комментариями о том, что конкретно делает каждый метод | 1 | // управляющий класс App с методом init(), в котором собраны все используемые методы с комментариями о том, что конкретно делает каждый метод |
2 | 2 | ||
3 | class App { | 3 | class App { |
4 | 4 | ||
5 | constructor() { | 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}$/; // рег. выражение для поля 'телефон'; | 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; // рег. выражение для поля 'электронная почта'; | 7 | this.patternEmail = /^[a-zA-Z0-9._%+-\.]+@[a-z0-9.-]+\.[a-z]{2,}$/i; // рег. выражение для поля 'электронная почта'; |
8 | } | 8 | } |
9 | 9 | ||
10 | init() { | 10 | init() { |
11 | 11 | ||
12 | console.log('init'); | 12 | console.log('init'); |
13 | 13 | ||
14 | this.stickyHeader(); // липкий хедер; | 14 | this.stickyHeader(); // липкий хедер; |
15 | this.controlBurgerMenu(); // бургер-меню; | 15 | this.controlBurgerMenu(); // бургер-меню; |
16 | this.smoothScroll(); // плавный скролл к якорю (smooth scroll); | 16 | this.smoothScroll(); // плавный скролл к якорю (smooth scroll); |
17 | this.scrollUp(); // кнопка наверх; | 17 | this.scrollUp(); // кнопка наверх; |
18 | this.addToFavorites(); // добавить в избранное (звёздочка); | 18 | this.addToFavorites(); // добавить в избранное (звёздочка); |
19 | this.initTypicalSlider(); // типовые слайдеры; | 19 | this.initTypicalSlider(); // типовые слайдеры; |
20 | this.initPartnerslSlider(); // слайдер с партнёрами; | 20 | this.initPartnerslSlider(); // слайдер с партнёрами; |
21 | this.controlFilters(); // фильтры на главном экране; | 21 | this.controlFilters(); // фильтры на главном экране; |
22 | this.controlPopups(); // открытие/закрытие поп-апов; | 22 | this.controlPopups(); // открытие/закрытие поп-апов; |
23 | this.controlContactUsPopup(); // открытие/закрытие поп-апа 'обратный звонок'; | 23 | this.controlContactUsPopup(); // открытие/закрытие поп-апа 'обратный звонок'; |
24 | 24 | ||
25 | this.sendForm('.js_popup_feedback_form', '[data-popup="success"]'); // отправка формы в поп-апе обратной связи; | 25 | this.sendForm('.js_popup_feedback_form', '[data-popup="success"]'); // отправка формы в поп-апе обратной связи; |
26 | this.sendForm('.js_popup_viewing_form', '[data-popup="success"]'); // отправка формы в поп-апе 'записаться на просмотр'; | 26 | this.sendForm('.js_popup_viewing_form', '[data-popup="success"]'); // отправка формы в поп-апе 'записаться на просмотр'; |
27 | this.sendForm('.js_footer_feedback_form', '[data-popup="success"]'); // отправка формы в футере; | 27 | this.sendForm('.js_footer_feedback_form', '[data-popup="success"]'); // отправка формы в футере; |
28 | this.sendForm('.js_contacts_form', '.js_contacts_success'); // отправка формы на странице контакты; | 28 | this.sendForm('.js_contacts_form', '.js_contacts_success'); // отправка формы на странице контакты; |
29 | this.sendOffer(); //отправка предложения по e-mail; | 29 | this.sendForm('.js_popup_sending_form_', '[data-popup="success"]'); |
30 | //this.sendOffer(); //отправка предложения по e-mail; | ||
30 | 31 | ||
31 | this.setGeneralMap(); // карта на странице карт; | 32 | this.setGeneralMap(); // карта на странице карт; |
32 | this.setComplexMap('complex-map', [55.726591050908745, 37.57244549999999], 'ЖК Садовые кварталы'); // карта на странице 'ЖК'; | 33 | this.setComplexMap('complex-map', [55.726591050908745, 37.57244549999999], 'ЖК Садовые кварталы'); // карта на странице 'ЖК'; |
33 | this.setComplexMap('offer-map', [55.70851106903402, 37.65864349999999], 'Аренда торгового помещения 321,6 м2'); // карта на странице 'Предложение'; | 34 | this.setComplexMap('offer-map', [55.70851106903402, 37.65864349999999], 'Аренда торгового помещения 321,6 м2'); // карта на странице 'Предложение'; |
34 | this.setCatalogSorts(); // сортировка на странице 'каталог'; | 35 | this.setCatalogSorts(); // сортировка на странице 'каталог'; |
35 | this.initIntroSlider(); // слайдер на странице жк и на странице предложения; | 36 | this.initIntroSlider(); // слайдер на странице жк и на странице предложения; |
36 | this.setTabs('.js_offer_side_tab', '.js_offer_side_item'); // табы с планами объекат и этажа на странице предложения; | 37 | this.setTabs('.js_offer_side_tab', '.js_offer_side_item'); // табы с планами объекат и этажа на странице предложения; |
37 | this.setTabs('.js_offer_side_popup_tab', '.js_offer_side_popup_item'); // табы с планами объекат и этажа в поп-апе на странице предложения; | 38 | this.setTabs('.js_offer_side_popup_tab', '.js_offer_side_popup_item'); // табы с планами объекат и этажа в поп-апе на странице предложения; |
38 | this.sontrolOfferSidePopup(); // логика открытия нужного таба при открытии поп-апа с планами объекат и этажа на странице предложения; | 39 | this.sontrolOfferSidePopup(); // логика открытия нужного таба при открытии поп-апа с планами объекат и этажа на странице предложения; |
39 | this.setCustomGallery(); // галлерея; | 40 | this.setCustomGallery(); // галлерея; |
40 | this.setCookies() // куки; | 41 | this.setCookies() // куки; |
41 | this.setFooterSpoilers() // аккордеон в футере; | 42 | this.setFooterSpoilers() // аккордеон в футере; |
42 | 43 | ||
43 | } | 44 | } |
44 | 45 | ||
45 | // фиксация <body> | 46 | // фиксация <body> |
46 | fixBodyPosition() { | 47 | fixBodyPosition() { |
47 | 48 | ||
48 | setTimeout(function () { | 49 | setTimeout(function () { |
49 | // ставим необходимую задержку, чтобы не было «конфликта» в случае, если функция фиксации вызывается сразу после расфиксации (расфиксация отменяет действия расфиксации из-за одновременного действия) | 50 | // ставим необходимую задержку, чтобы не было «конфликта» в случае, если функция фиксации вызывается сразу после расфиксации (расфиксация отменяет действия расфиксации из-за одновременного действия) |
50 | 51 | ||
51 | if (!document.body.hasAttribute('data-body-scroll-fix')) { | 52 | if (!document.body.hasAttribute('data-body-scroll-fix')) { |
52 | 53 | ||
53 | // получаем позицию прокрутки | 54 | // получаем позицию прокрутки |
54 | let scrollPosition = window.pageYOffset || document.documentElement.scrollTop; | 55 | let scrollPosition = window.pageYOffset || document.documentElement.scrollTop; |
55 | 56 | ||
56 | // ставим нужные стили | 57 | // ставим нужные стили |
57 | document.body.setAttribute('data-body-scroll-fix', scrollPosition); // Cтавим атрибут со значением прокрутки | 58 | document.body.setAttribute('data-body-scroll-fix', scrollPosition); // Cтавим атрибут со значением прокрутки |
58 | document.body.style.overflow = 'hidden'; | 59 | document.body.style.overflow = 'hidden'; |
59 | document.body.style.position = 'fixed'; | 60 | document.body.style.position = 'fixed'; |
60 | document.body.style.top = '-' + scrollPosition + 'px'; | 61 | document.body.style.top = '-' + scrollPosition + 'px'; |
61 | document.body.style.left = '0'; | 62 | document.body.style.left = '0'; |
62 | document.body.style.width = '100%'; | 63 | document.body.style.width = '100%'; |
63 | 64 | ||
64 | if (window.innerWidth >= 1200) { | 65 | if (window.innerWidth >= 1200) { |
65 | document.body.style.paddingRight = '8px'; | 66 | document.body.style.paddingRight = '8px'; |
66 | } | 67 | } |
67 | } | 68 | } |
68 | 69 | ||
69 | }, 15); // можно задержку ещё меньше, но работает хорошо именно с этим значением на всех устройствах и браузерах | 70 | }, 15); // можно задержку ещё меньше, но работает хорошо именно с этим значением на всех устройствах и браузерах |
70 | 71 | ||
71 | } | 72 | } |
72 | 73 | ||
73 | 74 | ||
74 | // расфиксация <body> | 75 | // расфиксация <body> |
75 | unfixBodyPosition() { | 76 | unfixBodyPosition() { |
76 | 77 | ||
77 | if (document.body.hasAttribute('data-body-scroll-fix')) { | 78 | if (document.body.hasAttribute('data-body-scroll-fix')) { |
78 | 79 | ||
79 | // получаем позицию прокрутки из атрибута | 80 | // получаем позицию прокрутки из атрибута |
80 | let scrollPosition = document.body.getAttribute('data-body-scroll-fix'); | 81 | let scrollPosition = document.body.getAttribute('data-body-scroll-fix'); |
81 | 82 | ||
82 | // удаляем атрибут | 83 | // удаляем атрибут |
83 | document.body.removeAttribute('data-body-scroll-fix'); | 84 | document.body.removeAttribute('data-body-scroll-fix'); |
84 | 85 | ||
85 | // удаляем ненужные стили | 86 | // удаляем ненужные стили |
86 | document.body.style.overflow = ''; | 87 | document.body.style.overflow = ''; |
87 | document.body.style.position = ''; | 88 | document.body.style.position = ''; |
88 | document.body.style.top = ''; | 89 | document.body.style.top = ''; |
89 | document.body.style.left = ''; | 90 | document.body.style.left = ''; |
90 | document.body.style.width = ''; | 91 | document.body.style.width = ''; |
91 | document.body.style.paddingRight = ''; | 92 | document.body.style.paddingRight = ''; |
92 | 93 | ||
93 | // прокручиваем страницу на полученное из атрибута значение | 94 | // прокручиваем страницу на полученное из атрибута значение |
94 | window.scroll(0, scrollPosition); | 95 | window.scroll(0, scrollPosition); |
95 | 96 | ||
96 | } | 97 | } |
97 | 98 | ||
98 | } | 99 | } |
99 | 100 | ||
100 | 101 | ||
101 | // бургер-меню | 102 | // бургер-меню |
102 | controlBurgerMenu() { | 103 | controlBurgerMenu() { |
103 | 104 | ||
104 | const headerBurger = document.querySelector('.js_header_burger'); | 105 | const headerBurger = document.querySelector('.js_header_burger'); |
105 | 106 | ||
106 | if (headerBurger) { | 107 | if (headerBurger) { |
107 | 108 | ||
108 | const menu = document.querySelector('.js_menu'); | 109 | const menu = document.querySelector('.js_menu'); |
109 | const menuClose = menu.querySelector('.js_menu_close'); | 110 | const menuClose = menu.querySelector('.js_menu_close'); |
110 | 111 | ||
111 | headerBurger.addEventListener('click', () => { | 112 | headerBurger.addEventListener('click', () => { |
112 | menu.classList.add('active'); | 113 | menu.classList.add('active'); |
113 | this.fixBodyPosition(); | 114 | this.fixBodyPosition(); |
114 | }); | 115 | }); |
115 | 116 | ||
116 | menu.addEventListener('click', (e) => { | 117 | menu.addEventListener('click', (e) => { |
117 | 118 | ||
118 | if (e.target == menu) { | 119 | if (e.target == menu) { |
119 | menu.classList.remove('active'); | 120 | menu.classList.remove('active'); |
120 | this.unfixBodyPosition(); | 121 | this.unfixBodyPosition(); |
121 | } | 122 | } |
122 | 123 | ||
123 | }); | 124 | }); |
124 | 125 | ||
125 | menuClose.addEventListener('click', () => { | 126 | menuClose.addEventListener('click', () => { |
126 | menu.classList.remove('active'); | 127 | menu.classList.remove('active'); |
127 | this.unfixBodyPosition(); | 128 | this.unfixBodyPosition(); |
128 | }); | 129 | }); |
129 | 130 | ||
130 | } | 131 | } |
131 | 132 | ||
132 | } | 133 | } |
133 | 134 | ||
134 | 135 | ||
135 | // липкий хедер | 136 | // липкий хедер |
136 | stickyHeader() { | 137 | stickyHeader() { |
137 | 138 | ||
138 | const header = document.querySelector('.js_header'); | 139 | const header = document.querySelector('.js_header'); |
139 | 140 | ||
140 | if (header) { | 141 | if (header) { |
141 | 142 | ||
142 | window.addEventListener('scroll', () => { | 143 | window.addEventListener('scroll', () => { |
143 | 144 | ||
144 | if (window.scrollY > 200) { | 145 | if (window.scrollY > 200) { |
145 | header.classList.add('fixed'); | 146 | header.classList.add('fixed'); |
146 | } else { | 147 | } else { |
147 | header.classList.remove('fixed'); | 148 | header.classList.remove('fixed'); |
148 | } | 149 | } |
149 | 150 | ||
150 | }); | 151 | }); |
151 | 152 | ||
152 | }; | 153 | }; |
153 | 154 | ||
154 | } | 155 | } |
155 | 156 | ||
156 | 157 | ||
157 | // плавный скролл к якорю (smooth scroll) | 158 | // плавный скролл к якорю (smooth scroll) |
158 | smoothScroll() { | 159 | smoothScroll() { |
159 | 160 | ||
160 | const smoothLinks = document.querySelectorAll('.js_smooth_link'); | 161 | const smoothLinks = document.querySelectorAll('.js_smooth_link'); |
161 | 162 | ||
162 | if (smoothLinks.length) { | 163 | if (smoothLinks.length) { |
163 | 164 | ||
164 | smoothLinks.forEach(link => { | 165 | smoothLinks.forEach(link => { |
165 | 166 | ||
166 | link.addEventListener('click', function (e) { | 167 | link.addEventListener('click', function (e) { |
167 | 168 | ||
168 | e.preventDefault(); | 169 | e.preventDefault(); |
169 | 170 | ||
170 | let href = this.getAttribute('href').substring(1); | 171 | let href = this.getAttribute('href').substring(1); |
171 | 172 | ||
172 | const scrollTarget = document.getElementById(href); | 173 | const scrollTarget = document.getElementById(href); |
173 | 174 | ||
174 | // const topOffset = document.querySelector('.header').offsetHeight; | 175 | // const topOffset = document.querySelector('.header').offsetHeight; |
175 | const topOffset = 0; // если не нужен отступ сверху | 176 | const topOffset = 0; // если не нужен отступ сверху |
176 | const elementPosition = scrollTarget.getBoundingClientRect().top; | 177 | const elementPosition = scrollTarget.getBoundingClientRect().top; |
177 | const offsetPosition = elementPosition - topOffset; | 178 | const offsetPosition = elementPosition - topOffset; |
178 | 179 | ||
179 | window.scrollBy({ | 180 | window.scrollBy({ |
180 | top: offsetPosition, | 181 | top: offsetPosition, |
181 | behavior: 'smooth' | 182 | behavior: 'smooth' |
182 | }); | 183 | }); |
183 | 184 | ||
184 | }); | 185 | }); |
185 | 186 | ||
186 | }); | 187 | }); |
187 | 188 | ||
188 | } | 189 | } |
189 | 190 | ||
190 | } | 191 | } |
191 | 192 | ||
192 | 193 | ||
193 | // кнопка наверх | 194 | // кнопка наверх |
194 | scrollUp() { | 195 | scrollUp() { |
195 | 196 | ||
196 | const toTopBtn = document.querySelector('.js_btn_up'); | 197 | const toTopBtn = document.querySelector('.js_btn_up'); |
197 | 198 | ||
198 | if (toTopBtn) { | 199 | if (toTopBtn) { |
199 | 200 | ||
200 | toTopBtn.addEventListener('click', function () { | 201 | toTopBtn.addEventListener('click', function () { |
201 | 202 | ||
202 | window.scrollTo({ | 203 | window.scrollTo({ |
203 | top: 0, | 204 | top: 0, |
204 | behavior: 'smooth' | 205 | behavior: 'smooth' |
205 | }); | 206 | }); |
206 | 207 | ||
207 | }); | 208 | }); |
208 | 209 | ||
209 | } | 210 | } |
210 | 211 | ||
211 | } | 212 | } |
212 | 213 | ||
213 | 214 | ||
214 | // добавить в избранное (звёздочка) | 215 | // добавить в избранное (звёздочка) |
215 | addToFavorites() { | 216 | addToFavorites() { |
216 | 217 | ||
217 | const cardFavorites = document.querySelectorAll('.js_card_favorites'); | 218 | const cardFavorites = document.querySelectorAll('.js_card_favorites'); |
218 | 219 | ||
219 | if (cardFavorites.length) { | 220 | if (cardFavorites.length) { |
220 | 221 | ||
221 | cardFavorites.forEach(item => { | 222 | cardFavorites.forEach(item => { |
222 | 223 | ||
223 | item.addEventListener('click', (e) => { | 224 | item.addEventListener('click', (e) => { |
224 | e.preventDefault(); | 225 | e.preventDefault(); |
225 | item.classList.toggle('active'); | 226 | item.classList.toggle('active'); |
226 | }); | 227 | }); |
227 | 228 | ||
228 | }); | 229 | }); |
229 | 230 | ||
230 | } | 231 | } |
231 | 232 | ||
232 | } | 233 | } |
233 | 234 | ||
234 | 235 | ||
235 | // типовые слайдеры | 236 | // типовые слайдеры |
236 | initTypicalSlider() { | 237 | initTypicalSlider() { |
237 | 238 | ||
238 | const slidersWraps = document.querySelectorAll('.slider__wrap'); | 239 | const slidersWraps = document.querySelectorAll('.slider__wrap'); |
239 | 240 | ||
240 | if (slidersWraps.length) { | 241 | if (slidersWraps.length) { |
241 | 242 | ||
242 | slidersWraps.forEach(wrap => { | 243 | slidersWraps.forEach(wrap => { |
243 | 244 | ||
244 | const slider = wrap.querySelector('.swiper'); | 245 | const slider = wrap.querySelector('.swiper'); |
245 | const prev = wrap.querySelector('.swiper-button-prev'); | 246 | const prev = wrap.querySelector('.swiper-button-prev'); |
246 | const next = wrap.querySelector('.swiper-button-next'); | 247 | const next = wrap.querySelector('.swiper-button-next'); |
247 | const pagination = wrap.querySelector('.swiper-pagination'); | 248 | const pagination = wrap.querySelector('.swiper-pagination'); |
248 | 249 | ||
249 | let swiper1 = new Swiper(slider, { | 250 | let swiper1 = new Swiper(slider, { |
250 | navigation: { | 251 | navigation: { |
251 | nextEl: next, | 252 | nextEl: next, |
252 | prevEl: prev, | 253 | prevEl: prev, |
253 | }, | 254 | }, |
254 | pagination: { | 255 | pagination: { |
255 | el: pagination, | 256 | el: pagination, |
256 | clickable: true, | 257 | clickable: true, |
257 | }, | 258 | }, |
258 | slidesPerView: 1, | 259 | slidesPerView: 1, |
259 | spaceBetween: 20, | 260 | spaceBetween: 20, |
260 | observer: true, | 261 | observer: true, |
261 | observeParents: true, | 262 | observeParents: true, |
262 | observeSlideChildren: true, | 263 | observeSlideChildren: true, |
263 | breakpoints: { | 264 | breakpoints: { |
264 | 480: { | 265 | 480: { |
265 | slidesPerView: 1.5, | 266 | slidesPerView: 1.5, |
266 | }, | 267 | }, |
267 | 640: { | 268 | 640: { |
268 | slidesPerView: 2, | 269 | slidesPerView: 2, |
269 | }, | 270 | }, |
270 | 780: { | 271 | 780: { |
271 | slidesPerView: 2.5, | 272 | slidesPerView: 2.5, |
272 | }, | 273 | }, |
273 | 920: { | 274 | 920: { |
274 | slidesPerView: 3, | 275 | slidesPerView: 3, |
275 | }, | 276 | }, |
276 | 1024: { | 277 | 1024: { |
277 | slidesPerView: 3.4 | 278 | slidesPerView: 3.4 |
278 | }, | 279 | }, |
279 | 1200: { | 280 | 1200: { |
280 | slidesPerView: 4, | 281 | slidesPerView: 4, |
281 | } | 282 | } |
282 | } | 283 | } |
283 | }); | 284 | }); |
284 | 285 | ||
285 | }); | 286 | }); |
286 | 287 | ||
287 | } | 288 | } |
288 | 289 | ||
289 | } | 290 | } |
290 | 291 | ||
291 | 292 | ||
292 | // метод, делающий число удобночитаемым (добавляет пробел справа через каждые 3 цифры) | 293 | // метод, делающий число удобночитаемым (добавляет пробел справа через каждые 3 цифры) |
293 | prettify(num) { | 294 | prettify(num) { |
294 | const withoutSpace = num.replace(/[^\d]/g, ''); //убирает все символы; | 295 | const withoutSpace = num.replace(/[^\d]/g, ''); //убирает все символы; |
295 | return withoutSpace.replace(/(?!^)(?=(?:\d{3})+(?:\.|$))/gm, ' '); //ставит пробелы; | 296 | return withoutSpace.replace(/(?!^)(?=(?:\d{3})+(?:\.|$))/gm, ' '); //ставит пробелы; |
296 | } | 297 | } |
297 | 298 | ||
298 | 299 | ||
299 | // фильтры на главном экране | 300 | // фильтры на главном экране |
300 | controlFilters() { | 301 | controlFilters() { |
301 | 302 | ||
302 | const heroFilters = document.querySelectorAll('.js_hero_filter'); | 303 | const heroFilters = document.querySelectorAll('.js_hero_filter'); |
303 | const heroSearchBtns = document.querySelectorAll('.js_hero_search_btn'); | 304 | const heroSearchBtns = document.querySelectorAll('.js_hero_search_btn'); |
304 | 305 | ||
305 | if (heroFilters.length) { | 306 | if (heroFilters.length) { |
306 | 307 | ||
307 | heroFilters.forEach(filter => { | 308 | heroFilters.forEach(filter => { |
308 | 309 | ||
309 | const heroFilterInput = filter.querySelector('.js_hero_filter_input'); | 310 | const heroFilterInput = filter.querySelector('.js_hero_filter_input'); |
310 | const heroFilterCurrent = filter.querySelector('.js_hero_filter_current'); | 311 | const heroFilterCurrent = filter.querySelector('.js_hero_filter_current'); |
311 | const heroFilterItems = filter.querySelectorAll('.hero-filter__item'); | 312 | const heroFilterItems = filter.querySelectorAll('.hero-filter__item'); |
312 | const heroFilterFields = filter.querySelectorAll('.js_hero_filter_field'); | 313 | const heroFilterFields = filter.querySelectorAll('.js_hero_filter_field'); |
313 | const heroFilterFrom = filter.querySelector('.js_hero_filter_from'); | 314 | const heroFilterFrom = filter.querySelector('.js_hero_filter_from'); |
314 | const heroFilterTo = filter.querySelector('.js_hero_filter_to'); | 315 | const heroFilterTo = filter.querySelector('.js_hero_filter_to'); |
315 | const heroFilterReset = filter.querySelector('.js_hero_filter_reset'); | 316 | const heroFilterReset = filter.querySelector('.js_hero_filter_reset'); |
316 | 317 | ||
317 | heroFilterCurrent.addEventListener('click', () => { | 318 | heroFilterCurrent.addEventListener('click', () => { |
318 | 319 | ||
319 | if (filter.classList.contains('active')) { | 320 | if (filter.classList.contains('active')) { |
320 | 321 | ||
321 | filter.classList.remove('active'); | 322 | filter.classList.remove('active'); |
322 | 323 | ||
323 | heroSearchBtns.forEach(btn => { | 324 | heroSearchBtns.forEach(btn => { |
324 | btn.disabled = false; | 325 | btn.disabled = false; |
325 | }); | 326 | }); |
326 | 327 | ||
327 | } else { | 328 | } else { |
328 | 329 | ||
329 | heroFilters.forEach(filter => { | 330 | heroFilters.forEach(filter => { |
330 | filter.classList.remove('active'); | 331 | filter.classList.remove('active'); |
331 | }); | 332 | }); |
332 | 333 | ||
333 | filter.classList.add('active'); | 334 | filter.classList.add('active'); |
334 | 335 | ||
335 | heroSearchBtns.forEach(btn => { | 336 | heroSearchBtns.forEach(btn => { |
336 | btn.disabled = true; | 337 | btn.disabled = true; |
337 | }); | 338 | }); |
338 | 339 | ||
339 | } | 340 | } |
340 | 341 | ||
341 | }); | 342 | }); |
342 | 343 | ||
343 | if (heroFilterItems.length) { | 344 | if (heroFilterItems.length) { |
344 | 345 | ||
345 | heroFilterItems.forEach(item => { | 346 | heroFilterItems.forEach(item => { |
346 | 347 | ||
347 | item.addEventListener('click', () => { | 348 | item.addEventListener('click', () => { |
348 | 349 | ||
349 | heroFilterCurrent.textContent = item.textContent; | 350 | heroFilterCurrent.textContent = item.textContent; |
350 | heroFilterInput.value = item.dataset.val; | 351 | heroFilterInput.value = item.dataset.val; |
351 | filter.classList.remove('active'); | 352 | filter.classList.remove('active'); |
352 | 353 | ||
353 | heroSearchBtns.forEach(btn => { | 354 | heroSearchBtns.forEach(btn => { |
354 | btn.disabled = false; | 355 | btn.disabled = false; |
355 | }); | 356 | }); |
356 | 357 | ||
357 | }); | 358 | }); |
358 | 359 | ||
359 | }); | 360 | }); |
360 | 361 | ||
361 | } | 362 | } |
362 | 363 | ||
363 | if (heroFilterFields.length) { | 364 | if (heroFilterFields.length) { |
364 | 365 | ||
365 | const heroFilterMin = heroFilterFrom.dataset.min; | 366 | const heroFilterMin = heroFilterFrom.dataset.min; |
366 | const heroFilterMax = heroFilterTo.dataset.max; | 367 | const heroFilterMax = heroFilterTo.dataset.max; |
367 | 368 | ||
368 | let heroFilterFromVal; | 369 | let heroFilterFromVal; |
369 | let heroFilterToVal; | 370 | let heroFilterToVal; |
370 | 371 | ||
371 | heroFilterFields.forEach(field => { | 372 | heroFilterFields.forEach(field => { |
372 | 373 | ||
373 | field.addEventListener('input', () => { | 374 | field.addEventListener('input', () => { |
374 | 375 | ||
375 | field.value = this.prettify(field.value); | 376 | field.value = this.prettify(field.value); |
376 | 377 | ||
377 | heroFilterReset.classList.remove('active'); | 378 | heroFilterReset.classList.remove('active'); |
378 | 379 | ||
379 | heroFilterFields.forEach(field => { | 380 | heroFilterFields.forEach(field => { |
380 | 381 | ||
381 | if (field.value != "") { | 382 | if (field.value != "") { |
382 | heroFilterReset.classList.add('active'); | 383 | heroFilterReset.classList.add('active'); |
383 | } | 384 | } |
384 | 385 | ||
385 | }); | 386 | }); |
386 | 387 | ||
387 | }); | 388 | }); |
388 | 389 | ||
389 | }); | 390 | }); |
390 | 391 | ||
391 | heroFilterFrom.addEventListener('change', () => { | 392 | heroFilterFrom.addEventListener('change', () => { |
392 | 393 | ||
393 | heroFilterFromVal = +heroFilterFrom.value.replace(/\s/g, ''); | 394 | heroFilterFromVal = +heroFilterFrom.value.replace(/\s/g, ''); |
394 | heroFilterToVal = +heroFilterTo.value.replace(/\s/g, ''); | 395 | heroFilterToVal = +heroFilterTo.value.replace(/\s/g, ''); |
395 | 396 | ||
396 | if (heroFilterToVal != '' && heroFilterFromVal > heroFilterToVal) { | 397 | if (heroFilterToVal != '' && heroFilterFromVal > heroFilterToVal) { |
397 | 398 | ||
398 | heroFilterFrom.value = heroFilterTo.value; | 399 | heroFilterFrom.value = heroFilterTo.value; |
399 | 400 | ||
400 | } else if (heroFilterFromVal < +heroFilterMin) { | 401 | } else if (heroFilterFromVal < +heroFilterMin) { |
401 | 402 | ||
402 | heroFilterFrom.value = this.prettify(heroFilterMin); | 403 | heroFilterFrom.value = this.prettify(heroFilterMin); |
403 | 404 | ||
404 | } else if (heroFilterFromVal > +heroFilterMax) { | 405 | } else if (heroFilterFromVal > +heroFilterMax) { |
405 | 406 | ||
406 | heroFilterFrom.value = this.prettify(heroFilterMax); | 407 | heroFilterFrom.value = this.prettify(heroFilterMax); |
407 | 408 | ||
408 | } | 409 | } |
409 | 410 | ||
410 | }); | 411 | }); |
411 | 412 | ||
412 | heroFilterTo.addEventListener('change', () => { | 413 | heroFilterTo.addEventListener('change', () => { |
413 | 414 | ||
414 | heroFilterFromVal = +heroFilterFrom.value.replace(/\s/g, ''); | 415 | heroFilterFromVal = +heroFilterFrom.value.replace(/\s/g, ''); |
415 | heroFilterToVal = +heroFilterTo.value.replace(/\s/g, ''); | 416 | heroFilterToVal = +heroFilterTo.value.replace(/\s/g, ''); |
416 | 417 | ||
417 | if (heroFilterFromVal != '' && heroFilterToVal < heroFilterFromVal) { | 418 | if (heroFilterFromVal != '' && heroFilterToVal < heroFilterFromVal) { |
418 | 419 | ||
419 | heroFilterTo.value = heroFilterFrom.value; | 420 | heroFilterTo.value = heroFilterFrom.value; |
420 | 421 | ||
421 | } else if (heroFilterToVal < +heroFilterMin) { | 422 | } else if (heroFilterToVal < +heroFilterMin) { |
422 | 423 | ||
423 | heroFilterTo.value = this.prettify(heroFilterMax); | 424 | heroFilterTo.value = this.prettify(heroFilterMax); |
424 | 425 | ||
425 | } else if (heroFilterToVal > +heroFilterMax) { | 426 | } else if (heroFilterToVal > +heroFilterMax) { |
426 | 427 | ||
427 | heroFilterTo.value = this.prettify(heroFilterMax); | 428 | heroFilterTo.value = this.prettify(heroFilterMax); |
428 | 429 | ||
429 | } | 430 | } |
430 | 431 | ||
431 | }); | 432 | }); |
432 | 433 | ||
433 | heroFilterReset.addEventListener('click', () => { | 434 | heroFilterReset.addEventListener('click', () => { |
434 | 435 | ||
435 | heroFilterFields.forEach(field => { | 436 | heroFilterFields.forEach(field => { |
436 | field.value = ''; | 437 | field.value = ''; |
437 | }); | 438 | }); |
438 | 439 | ||
439 | heroFilterReset.classList.remove('active'); | 440 | heroFilterReset.classList.remove('active'); |
440 | 441 | ||
441 | }); | 442 | }); |
442 | } | 443 | } |
443 | 444 | ||
444 | }); | 445 | }); |
445 | 446 | ||
446 | document.addEventListener('click', (e) => { | 447 | document.addEventListener('click', (e) => { |
447 | 448 | ||
448 | if (!e.target.closest('.js_hero_filter_dropdown') && !e.target.closest('.js_hero_filter_current')) { | 449 | if (!e.target.closest('.js_hero_filter_dropdown') && !e.target.closest('.js_hero_filter_current')) { |
449 | 450 | ||
450 | heroFilters.forEach(filter => { | 451 | heroFilters.forEach(filter => { |
451 | filter.classList.remove('active'); | 452 | filter.classList.remove('active'); |
452 | }); | 453 | }); |
453 | 454 | ||
454 | heroSearchBtns.forEach(btn => { | 455 | heroSearchBtns.forEach(btn => { |
455 | btn.disabled = false; | 456 | btn.disabled = false; |
456 | }); | 457 | }); |
457 | 458 | ||
458 | } | 459 | } |
459 | 460 | ||
460 | }); | 461 | }); |
461 | 462 | ||
462 | } | 463 | } |
463 | 464 | ||
464 | } | 465 | } |
465 | 466 | ||
466 | 467 | ||
467 | // открытие/закрытие типовых поп-апов | 468 | // открытие/закрытие типовых поп-апов |
468 | controlPopups() { | 469 | controlPopups() { |
469 | 470 | ||
470 | const popupShowBtns = document.querySelectorAll('[data-btn]'); | 471 | const popupShowBtns = document.querySelectorAll('[data-btn]'); |
471 | const popups = document.querySelectorAll('[data-popup]'); | 472 | const popups = document.querySelectorAll('[data-popup]'); |
472 | 473 | ||
473 | if (popupShowBtns.length) { | 474 | if (popupShowBtns.length) { |
474 | 475 | ||
475 | popupShowBtns.forEach(btn => { | 476 | popupShowBtns.forEach(btn => { |
476 | 477 | ||
477 | btn.addEventListener('click', (e) => { | 478 | btn.addEventListener('click', (e) => { |
478 | 479 | ||
479 | e.preventDefault(); | 480 | e.preventDefault(); |
480 | 481 | ||
481 | popups.forEach(popup => { | 482 | popups.forEach(popup => { |
482 | 483 | ||
483 | popup.classList.remove('active'); // если какойто поп-ап открыт, то закрываем его; | 484 | popup.classList.remove('active'); // если какойто поп-ап открыт, то закрываем его; |
484 | this.unfixBodyPosition(); | 485 | this.unfixBodyPosition(); |
485 | 486 | ||
486 | if (btn.dataset.btn == popup.dataset.popup) { | 487 | if (btn.dataset.btn == popup.dataset.popup) { |
487 | popup.classList.add('active'); | 488 | popup.classList.add('active'); |
488 | this.fixBodyPosition(); | 489 | this.fixBodyPosition(); |
489 | } | 490 | } |
490 | 491 | ||
491 | }); | 492 | }); |
492 | 493 | ||
493 | 494 | ||
494 | }); | 495 | }); |
495 | 496 | ||
496 | }); | 497 | }); |
497 | 498 | ||
498 | popups.forEach(popup => { | 499 | popups.forEach(popup => { |
499 | 500 | ||
500 | const popupCloseBtns = popup.querySelectorAll('.js_popup_close'); | 501 | const popupCloseBtns = popup.querySelectorAll('.js_popup_close'); |
501 | 502 | ||
502 | popupCloseBtns.forEach(btn => { | 503 | popupCloseBtns.forEach(btn => { |
503 | 504 | ||
504 | btn.addEventListener('click', (e) => { | 505 | btn.addEventListener('click', (e) => { |
505 | e.preventDefault(); | 506 | e.preventDefault(); |
506 | popup.classList.remove('active'); | 507 | popup.classList.remove('active'); |
507 | this.unfixBodyPosition(); | 508 | this.unfixBodyPosition(); |
508 | }); | 509 | }); |
509 | 510 | ||
510 | }); | 511 | }); |
511 | 512 | ||
512 | popup.addEventListener('click', (e) => { | 513 | popup.addEventListener('click', (e) => { |
513 | 514 | ||
514 | if (e.target == popup) { | 515 | if (e.target == popup) { |
515 | 516 | ||
516 | popup.classList.remove('active'); | 517 | popup.classList.remove('active'); |
517 | this.unfixBodyPosition(); | 518 | this.unfixBodyPosition(); |
518 | } | 519 | } |
519 | 520 | ||
520 | }); | 521 | }); |
521 | 522 | ||
522 | }); | 523 | }); |
523 | 524 | ||
524 | } | 525 | } |
525 | } | 526 | } |
526 | 527 | ||
527 | 528 | ||
528 | // открытие/закрытие поп-апа 'обратный звонок' | 529 | // открытие/закрытие поп-апа 'обратный звонок' |
529 | controlContactUsPopup() { | 530 | controlContactUsPopup() { |
530 | 531 | ||
531 | const contactUsBtn = document.querySelector('.js_btn_contact_us'); | 532 | const contactUsBtn = document.querySelector('.js_btn_contact_us'); |
532 | const contactUsPopup = document.querySelector('.js_contact_us'); | 533 | const contactUsPopup = document.querySelector('.js_contact_us'); |
533 | 534 | ||
534 | if (contactUsPopup) { | 535 | if (contactUsPopup) { |
535 | 536 | ||
536 | const contactUsPopupCloseBtns = contactUsPopup.querySelectorAll('.js_contact_us_close'); | 537 | const contactUsPopupCloseBtns = contactUsPopup.querySelectorAll('.js_contact_us_close'); |
537 | 538 | ||
538 | contactUsBtn.addEventListener('click', (e) => { | 539 | contactUsBtn.addEventListener('click', (e) => { |
539 | 540 | ||
540 | e.preventDefault(); | 541 | e.preventDefault(); |
541 | 542 | ||
542 | if (contactUsPopup.classList.contains('active')) { | 543 | if (contactUsPopup.classList.contains('active')) { |
543 | contactUsPopup.classList.remove('active'); | 544 | contactUsPopup.classList.remove('active'); |
544 | } else { | 545 | } else { |
545 | contactUsPopup.classList.add('active'); | 546 | contactUsPopup.classList.add('active'); |
546 | } | 547 | } |
547 | 548 | ||
548 | }); | 549 | }); |
549 | 550 | ||
550 | contactUsPopupCloseBtns.forEach(btn => { | 551 | contactUsPopupCloseBtns.forEach(btn => { |
551 | btn.addEventListener('click', () => { | 552 | btn.addEventListener('click', () => { |
552 | contactUsPopup.classList.remove('active'); | 553 | contactUsPopup.classList.remove('active'); |
553 | }); | 554 | }); |
554 | }); | 555 | }); |
555 | 556 | ||
556 | 557 | ||
557 | document.addEventListener('click', (e) => { | 558 | document.addEventListener('click', (e) => { |
558 | 559 | ||
559 | if (!e.target.closest('.js_contact_us') && !e.target.closest('.js_btn_contact_us')) { | 560 | if (!e.target.closest('.js_contact_us') && !e.target.closest('.js_btn_contact_us')) { |
560 | contactUsPopup.classList.remove('active'); | 561 | contactUsPopup.classList.remove('active'); |
561 | } | 562 | } |
562 | 563 | ||
563 | }); | 564 | }); |
564 | 565 | ||
565 | } | 566 | } |
566 | 567 | ||
567 | } | 568 | } |
568 | 569 | ||
569 | 570 | ||
570 | // валидатор форм | 571 | // валидатор форм |
571 | validateForm(input) { | 572 | validateForm(input) { |
572 | 573 | ||
573 | // функция добавления ошибки | 574 | // функция добавления ошибки |
574 | const createError = (text) => { | 575 | const createError = (text) => { |
575 | 576 | ||
576 | input.classList.add('error'); | 577 | input.classList.add('error'); |
577 | input.classList.remove('no-error'); | 578 | input.classList.remove('no-error'); |
578 | 579 | ||
579 | if (input.closest('label').querySelector('span.error')) { | 580 | if (input.closest('label').querySelector('span.error')) { |
580 | input.closest('label').querySelector('span.error').remove(); | 581 | input.closest('label').querySelector('span.error').remove(); |
581 | input.closest('label').insertAdjacentHTML('beforeend', `<span class="error">${text}</span>`); | 582 | input.closest('label').insertAdjacentHTML('beforeend', `<span class="error">${text}</span>`); |
582 | } else { | 583 | } else { |
583 | input.closest('label').insertAdjacentHTML('beforeend', `<span class="error">${text}</span>`); | 584 | input.closest('label').insertAdjacentHTML('beforeend', `<span class="error">${text}</span>`); |
584 | } | 585 | } |
585 | 586 | ||
586 | } | 587 | } |
587 | 588 | ||
588 | // функция удаления ошибки | 589 | // функция удаления ошибки |
589 | const removeError = () => { | 590 | const removeError = () => { |
590 | 591 | ||
591 | input.classList.remove('error'); | 592 | input.classList.remove('error'); |
592 | input.classList.add('no-error'); | 593 | input.classList.add('no-error'); |
593 | 594 | ||
594 | if (input.closest('label').querySelector('span.error')) { | 595 | if (input.closest('label').querySelector('span.error')) { |
595 | input.closest('label').querySelector('span.error').remove(); | 596 | input.closest('label').querySelector('span.error').remove(); |
596 | } | 597 | } |
597 | 598 | ||
598 | } | 599 | } |
599 | 600 | ||
600 | // проверяем на правильность заполнения поля 'Телефон' | 601 | // проверяем на правильность заполнения поля 'Телефон' |
601 | if (input.classList.contains('js_input_phone') && input.value == "") { | 602 | if (input.classList.contains('js_input_phone') && input.value == "") { |
602 | createError('Заполните, пожалуйста, поле'); | 603 | createError('Заполните, пожалуйста, поле'); |
603 | } else if (input.classList.contains('js_input_phone') && input.value.search(this.patternPhone) == 0) { | 604 | } else if (input.classList.contains('js_input_phone') && input.value.search(this.patternPhone) == 0) { |
604 | removeError(); | 605 | removeError(); |
605 | } else if (input.classList.contains('js_input_phone')) { | 606 | } else if (input.classList.contains('js_input_phone')) { |
606 | createError('Укажите, пожалуйста, корректный телефон'); | 607 | createError('Укажите, пожалуйста, корректный телефон'); |
607 | } | 608 | } |
608 | 609 | ||
609 | // проверяем правильность заполнения поля 'Электронная почта' | 610 | // проверяем правильность заполнения поля 'Электронная почта' |
610 | if (input.classList.contains('js_input_email') && input.value == "") { | 611 | if (input.classList.contains('js_input_email') && input.value == "") { |
611 | createError('Заполните, пожалуйста, поле'); | 612 | createError('Заполните, пожалуйста, поле'); |
612 | } else if (input.classList.contains('js_input_email') && input.value.search(this.patternEmail) == 0) { | 613 | } else if (input.classList.contains('js_input_email') && input.value.search(this.patternEmail) == 0) { |
613 | removeError(); | 614 | removeError(); |
614 | } else if (input.classList.contains('js_input_email')) { | 615 | } else if (input.classList.contains('js_input_email')) { |
615 | createError('Укажите, пожалуйста, корректный e-mail'); | 616 | createError('Укажите, пожалуйста, корректный e-mail'); |
616 | } | 617 | } |
617 | 618 | ||
618 | } | 619 | } |
619 | 620 | ||
620 | 621 | ||
621 | // отправка форм | 622 | // отправка форм |
622 | sendForm(formEl, success) { | 623 | sendForm(formEl, success) { |
623 | 624 | ||
624 | const form = document.querySelector(formEl); | 625 | const form = document.querySelector(formEl); |
625 | 626 | ||
626 | if (form) { | 627 | if (form) { |
627 | 628 | ||
628 | form.addEventListener('submit', async (e) => { | 629 | form.addEventListener('submit', async (e) => { |
629 | 630 | ||
630 | e.preventDefault(); | 631 | e.preventDefault(); |
631 | 632 | ||
632 | const formInputs = form.querySelectorAll('input'); | 633 | const formInputs = form.querySelectorAll('input'); |
633 | const formBtn = form.querySelector('.js_form_btn'); | 634 | const formBtn = form.querySelector('.js_form_btn'); |
634 | 635 | ||
635 | formInputs.forEach(input => { // перебираем все инпуты в форме; | 636 | formInputs.forEach(input => { // перебираем все инпуты в форме; |
636 | 637 | ||
637 | this.validateForm(input); | 638 | this.validateForm(input); |
638 | 639 | ||
639 | input.addEventListener('input', () => { | 640 | input.addEventListener('input', () => { |
640 | this.validateForm(input); | 641 | this.validateForm(input); |
641 | }); | 642 | }); |
642 | 643 | ||
643 | }); | 644 | }); |
644 | 645 | ||
645 | if (!form.querySelector('.error')) { //проверяем, чтоб все инпуты прошли валидацию (чтоб не было в форме ни одного элемента с класссом error); | 646 | if (!form.querySelector('.error')) { //проверяем, чтоб все инпуты прошли валидацию (чтоб не было в форме ни одного элемента с класссом error); |
646 | 647 | ||
647 | // сюда пишем команды, которые должны сработать после успешной валидации; | 648 | // сюда пишем команды, которые должны сработать после успешной валидации; |
648 | 649 | ||
649 | console.log('validate'); | 650 | console.log('validate'); |
650 | formBtn.classList.add('btn-animate'); | 651 | formBtn.classList.add('btn-animate'); |
651 | formBtn.disabled = true; | 652 | formBtn.disabled = true; |
652 | 653 | ||
653 | const formData = new FormData(form); | 654 | const formData = new FormData(form); |
654 | 655 | ||
655 | console.log(...formData); | 656 | console.log(...formData); |
656 | 657 | ||
657 | const response = await fetch(e.target.action, { | 658 | const response = await fetch(e.target.action, { |
658 | method: e.target.method, | 659 | method: e.target.method, |
659 | body: formData | 660 | body: formData |
660 | }); | 661 | }); |
661 | 662 | ||
662 | if (response.ok) { | 663 | if (response.ok) { |
663 | 664 | ||
664 | setTimeout(() => { // имитация отправки, когда отправка будет настроена, нужно достать всё из setTimeout() и удалить его; | 665 | setTimeout(() => { // имитация отправки, когда отправка будет настроена, нужно достать всё из setTimeout() и удалить его; |
665 | 666 | ||
666 | console.log('Отправлено'); | 667 | console.log('Отправлено'); |
667 | formBtn.classList.remove('btn-animate'); | 668 | formBtn.classList.remove('btn-animate'); |
668 | formBtn.disabled = false; | 669 | formBtn.disabled = false; |
669 | if (document.querySelector('[data-popup="feedback"]')) { | 670 | if (document.querySelector('[data-popup="feedback"]')) { |
670 | document.querySelector('[data-popup="feedback"]').classList.remove('active'); | 671 | document.querySelector('[data-popup="feedback"]').classList.remove('active'); |
671 | } | 672 | } |
672 | if (document.querySelector('[data-popup="viewing"]')) { | 673 | if (document.querySelector('[data-popup="viewing"]')) { |
673 | document.querySelector('[data-popup="viewing"]').classList.remove('active'); | 674 | document.querySelector('[data-popup="viewing"]').classList.remove('active'); |
674 | } | 675 | } |
675 | document.querySelector(success).classList.add('active'); | 676 | document.querySelector(success).classList.add('active'); |
676 | this.fixBodyPosition(); | 677 | this.fixBodyPosition(); |
677 | form.reset(); | 678 | form.reset(); |
678 | 679 | ||
679 | formInputs.forEach(input => { | 680 | formInputs.forEach(input => { |
680 | input.classList.remove('no-error'); | 681 | input.classList.remove('no-error'); |
681 | }); | 682 | }); |
682 | 683 | ||
683 | }, 2000) | 684 | }, 2000) |
684 | 685 | ||
685 | } else { | 686 | } else { |
686 | formBtn.classList.remove('btn-animate'); | 687 | formBtn.classList.remove('btn-animate'); |
687 | formBtn.disabled = false; | 688 | formBtn.disabled = false; |
688 | alert('Ошибка'); | 689 | alert('Ошибка'); |
689 | } | 690 | } |
690 | 691 | ||
691 | } else { | 692 | } else { |
692 | console.log('no-validate'); | 693 | console.log('no-validate'); |
693 | form.querySelector('.error').focus(); //фокус к полю с ошибкой; | 694 | form.querySelector('.error').focus(); //фокус к полю с ошибкой; |
694 | } | 695 | } |
695 | 696 | ||
696 | }); | 697 | }); |
697 | 698 | ||
698 | } | 699 | } |
699 | 700 | ||
700 | } | 701 | } |
701 | 702 | ||
702 | //отправка предложения по e-mail | 703 | //отправка предложения по e-mail |
703 | sendOffer() { | 704 | sendOffer() { |
704 | 705 | ||
705 | const form = document.querySelector('.js_popup_sending_form'); | 706 | const form = document.querySelector('.js_popup_sending_form'); |
706 | 707 | ||
707 | if (form) { | 708 | if (form) { |
708 | 709 | ||
709 | form.addEventListener('submit', async (e) => { | 710 | form.addEventListener('submit', async (e) => { |
710 | 711 | ||
711 | e.preventDefault(); | 712 | e.preventDefault(); |
712 | 713 | ||
713 | const formInputs = form.querySelectorAll('input'); | 714 | const formInputs = form.querySelectorAll('input'); |
714 | const formBtn = form.querySelector('.js_form_btn'); | 715 | const formBtn = form.querySelector('.js_form_btn'); |
715 | 716 | ||
716 | formInputs.forEach(input => { // перебираем все инпуты в форме; | 717 | formInputs.forEach(input => { // перебираем все инпуты в форме; |
717 | 718 | ||
718 | this.validateForm(input); | 719 | this.validateForm(input); |
719 | 720 | ||
720 | input.addEventListener('input', () => { | 721 | input.addEventListener('input', () => { |
721 | this.validateForm(input); | 722 | this.validateForm(input); |
722 | }); | 723 | }); |
723 | 724 | ||
724 | }); | 725 | }); |
725 | 726 | ||
726 | if (!form.querySelector('.error')) { //проверяем, чтоб все инпуты прошли валидацию (чтоб не было в форме ни одного элемента с класссом error); | 727 | if (!form.querySelector('.error')) { //проверяем, чтоб все инпуты прошли валидацию (чтоб не было в форме ни одного элемента с класссом error); |
727 | 728 | ||
728 | // сюда пишем команды, которые должны сработать после успешной валидации; | 729 | // сюда пишем команды, которые должны сработать после успешной валидации; |
729 | 730 | ||
730 | console.log('validate'); | 731 | console.log('validate'); |
731 | formBtn.classList.add('btn-animate'); | 732 | formBtn.classList.add('btn-animate'); |
732 | formBtn.disabled = true; | 733 | formBtn.disabled = true; |
733 | 734 | ||
734 | const formData = new FormData(form); | 735 | const formData = new FormData(form); |
735 | 736 | ||
736 | console.log(...formData); | 737 | console.log(...formData); |
737 | 738 | ||
738 | const response = await fetch(e.target.action, { | 739 | const response = await fetch(e.target.action, { |
739 | method: e.target.method, | 740 | method: e.target.method, |
740 | body: formData | 741 | body: formData |
741 | }); | 742 | }); |
742 | 743 | ||
743 | if (response.ok) { | 744 | if (response.ok) { |
744 | 745 | ||
745 | setTimeout(() => { // имитация отправки, когда отправка будет настроена, нужно достать всё из setTimeout() и удалить его; | 746 | setTimeout(() => { // имитация отправки, когда отправка будет настроена, нужно достать всё из setTimeout() и удалить его; |
746 | 747 | ||
747 | console.log('Отправлено'); | 748 | console.log('Отправлено'); |
748 | formBtn.classList.remove('btn-animate'); | 749 | formBtn.classList.remove('btn-animate'); |
749 | formBtn.disabled = false; | 750 | formBtn.disabled = false; |
750 | if (document.querySelector('[data-popup="sending"]')) { | 751 | if (document.querySelector('[data-popup="sending"]')) { |
751 | document.querySelector('[data-popup="sending"]').classList.remove('active'); | 752 | document.querySelector('[data-popup="sending"]').classList.remove('active'); |
752 | } | 753 | } |
753 | this.fixBodyPosition(); | 754 | this.fixBodyPosition(); |
754 | form.reset(); | 755 | form.reset(); |
755 | 756 | ||
756 | formInputs.forEach(input => { | 757 | formInputs.forEach(input => { |
757 | input.classList.remove('no-error'); | 758 | input.classList.remove('no-error'); |
758 | }); | 759 | }); |
759 | 760 | ||
760 | }, 2000) | 761 | }, 2000) |
761 | 762 | ||
762 | } else { | 763 | } else { |
763 | formBtn.classList.remove('btn-animate'); | 764 | formBtn.classList.remove('btn-animate'); |
764 | formBtn.disabled = false; | 765 | formBtn.disabled = false; |
765 | alert('Ошибка'); | 766 | alert('Ошибка'); |
766 | } | 767 | } |
767 | 768 | ||
768 | } else { | 769 | } else { |
769 | console.log('no-validate'); | 770 | console.log('no-validate'); |
770 | form.querySelector('.error').focus(); //фокус к полю с ошибкой; | 771 | form.querySelector('.error').focus(); //фокус к полю с ошибкой; |
771 | } | 772 | } |
772 | 773 | ||
773 | }); | 774 | }); |
774 | 775 | ||
775 | } | 776 | } |
776 | 777 | ||
777 | } | 778 | } |
778 | 779 | ||
779 | 780 | ||
780 | // карта на странице 'ЖК' | 781 | // карта на странице 'ЖК' |
781 | setComplexMap(id, coords, caption) { | 782 | setComplexMap(id, coords, caption) { |
782 | 783 | ||
783 | if (document.querySelector('#' + id)) { | 784 | if (document.querySelector('#' + id)) { |
784 | 785 | ||
785 | // Дождёмся загрузки API и готовности DOM. | 786 | // Дождёмся загрузки API и готовности DOM. |
786 | ymaps.ready(init); | 787 | ymaps.ready(init); |
787 | 788 | ||
788 | function init() { | 789 | function init() { |
789 | const map = new ymaps.Map(id, { | 790 | const map = new ymaps.Map(id, { |
790 | // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования. | 791 | // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования. |
791 | center: coords, | 792 | center: coords, |
792 | zoom: 16, | 793 | zoom: 16, |
793 | controls: [] | 794 | controls: [] |
794 | }); | 795 | }); |
795 | 796 | ||
796 | // Создаём макет содержимого. | 797 | // Создаём макет содержимого. |
797 | const MyIconContentLayout = ymaps.templateLayoutFactory.createClass( | 798 | const MyIconContentLayout = ymaps.templateLayoutFactory.createClass( |
798 | '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>' | 799 | '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>' |
799 | ); | 800 | ); |
800 | 801 | ||
801 | // Создание макета содержимого хинта. | 802 | // Создание макета содержимого хинта. |
802 | // Макет создается через фабрику макетов с помощью текстового шаблона. | 803 | // Макет создается через фабрику макетов с помощью текстового шаблона. |
803 | const HintLayout = ymaps.templateLayoutFactory.createClass("<div class='my-hint'>" + | 804 | const HintLayout = ymaps.templateLayoutFactory.createClass("<div class='my-hint'>" + |
804 | "{{ properties.object }}" + "</div>", { | 805 | "{{ properties.object }}" + "</div>", { |
805 | // Определяем метод getShape, который | 806 | // Определяем метод getShape, который |
806 | // будет возвращать размеры макета хинта. | 807 | // будет возвращать размеры макета хинта. |
807 | // Это необходимо для того, чтобы хинт автоматически | 808 | // Это необходимо для того, чтобы хинт автоматически |
808 | // сдвигал позицию при выходе за пределы карты. | 809 | // сдвигал позицию при выходе за пределы карты. |
809 | getShape: function () { | 810 | getShape: function () { |
810 | let el = this.getElement(), | 811 | let el = this.getElement(), |
811 | result = null; | 812 | result = null; |
812 | if (el) { | 813 | if (el) { |
813 | var firstChild = el.firstChild; | 814 | var firstChild = el.firstChild; |
814 | result = new ymaps.shape.Rectangle( | 815 | result = new ymaps.shape.Rectangle( |
815 | new ymaps.geometry.pixel.Rectangle([ | 816 | new ymaps.geometry.pixel.Rectangle([ |
816 | [0, 0], | 817 | [0, 0], |
817 | [firstChild.offsetWidth, firstChild.offsetHeight] | 818 | [firstChild.offsetWidth, firstChild.offsetHeight] |
818 | ]) | 819 | ]) |
819 | ); | 820 | ); |
820 | } | 821 | } |
821 | return result; | 822 | return result; |
822 | } | 823 | } |
823 | } | 824 | } |
824 | ); | 825 | ); |
825 | 826 | ||
826 | // метка | 827 | // метка |
827 | const placemark = new ymaps.Placemark(coords, { | 828 | const placemark = new ymaps.Placemark(coords, { |
828 | // hintContent: caption, | 829 | // hintContent: caption, |
829 | // balloonContent: caption, | 830 | // balloonContent: caption, |
830 | iconContent: '1', | 831 | iconContent: '1', |
831 | // address: caption, | 832 | // address: caption, |
832 | object: caption | 833 | object: caption |
833 | }, { | 834 | }, { |
834 | iconLayout: 'default#imageWithContent', | 835 | iconLayout: 'default#imageWithContent', |
835 | iconImageHref: 'images/mark-complex.svg', | 836 | iconImageHref: 'images/mark-complex.svg', |
836 | iconImageSize: [52, 67], | 837 | iconImageSize: [52, 67], |
837 | iconImageOffset: [-26, -67], | 838 | iconImageOffset: [-26, -67], |
838 | iconContentOffset: [0, 17], | 839 | iconContentOffset: [0, 17], |
839 | iconContentLayout: MyIconContentLayout, | 840 | iconContentLayout: MyIconContentLayout, |
840 | hintLayout: HintLayout | 841 | hintLayout: HintLayout |
841 | }); | 842 | }); |
842 | 843 | ||
843 | map.geoObjects.add(placemark); | 844 | map.geoObjects.add(placemark); |
844 | 845 | ||
845 | } | 846 | } |
846 | 847 | ||
847 | } | 848 | } |
848 | 849 | ||
849 | } | 850 | } |
850 | 851 | ||
851 | 852 | ||
852 | // фильтры и сортировка на странице 'каталог' | 853 | // фильтры и сортировка на странице 'каталог' |
853 | setCatalogSorts() { | 854 | setCatalogSorts() { |
854 | 855 | ||
855 | const sortGroups = document.querySelectorAll('.js_sort_group'); | 856 | const sortGroups = document.querySelectorAll('.js_sort_group'); |
856 | 857 | ||
857 | if (sortGroups.length) { | 858 | if (sortGroups.length) { |
858 | 859 | ||
859 | sortGroups.forEach(group => { | 860 | sortGroups.forEach(group => { |
860 | 861 | ||
861 | const sortGroupInput = group.querySelector('.js_sort_group_input'); | 862 | const sortGroupInput = group.querySelector('.js_sort_group_input'); |
862 | const sortGroupCurrent = group.querySelector('.js_sort_group_current'); | 863 | const sortGroupCurrent = group.querySelector('.js_sort_group_current'); |
863 | const sortGroupList = group.querySelector('.js_sort_group_list'); | 864 | const sortGroupList = group.querySelector('.js_sort_group_list'); |
864 | const sortGroupItems = group.querySelectorAll('.js_sort_group_item'); | 865 | const sortGroupItems = group.querySelectorAll('.js_sort_group_item'); |
865 | 866 | ||
866 | const sendRequest = () => { | 867 | const sendRequest = () => { |
867 | 868 | ||
868 | const spinner = document.querySelector('.spinner'); // спиннер; | 869 | const spinner = document.querySelector('.spinner'); // спиннер; |
869 | 870 | ||
870 | spinner.classList.add('active'); | 871 | spinner.classList.add('active'); |
871 | document.body.classList.add('overlay'); | 872 | document.body.classList.add('overlay'); |
872 | /*this.fixBodyPosition(); | 873 | /*this.fixBodyPosition(); |
873 | 874 | ||
874 | fetch('test.json') | 875 | fetch('test.json') |
875 | .then(response => response.json()) | 876 | .then(response => response.json()) |
876 | .then(data => { | 877 | .then(data => { |
877 | 878 | ||
878 | console.log() | 879 | console.log() |
879 | 880 | ||
880 | setTimeout(() => { //имитация ответа сервера | 881 | setTimeout(() => { //имитация ответа сервера |
881 | 882 | ||
882 | spinner.classList.remove('active'); | 883 | spinner.classList.remove('active'); |
883 | document.body.classList.remove('overlay'); | 884 | document.body.classList.remove('overlay'); |
884 | this.unfixBodyPosition(); | 885 | this.unfixBodyPosition(); |
885 | 886 | ||
886 | }, 3000); | 887 | }, 3000); |
887 | 888 | ||
888 | }) | 889 | }) |
889 | .catch(err => { | 890 | .catch(err => { |
890 | console.log(err); | 891 | console.log(err); |
891 | }); | 892 | }); |
892 | 893 | ||
893 | */ | 894 | */ |
894 | spinner.classList.remove('active'); | 895 | spinner.classList.remove('active'); |
895 | document.body.classList.remove('overlay'); | 896 | document.body.classList.remove('overlay'); |
896 | 897 | ||
897 | 898 | ||
898 | }; | 899 | }; |
899 | 900 | ||
900 | sortGroupCurrent.addEventListener('click', () => { | 901 | sortGroupCurrent.addEventListener('click', () => { |
901 | 902 | ||
902 | if (group.classList.contains('active')) { | 903 | if (group.classList.contains('active')) { |
903 | 904 | ||
904 | group.classList.remove('active'); | 905 | group.classList.remove('active'); |
905 | 906 | ||
906 | } else { | 907 | } else { |
907 | 908 | ||
908 | sortGroups.forEach(group => { | 909 | sortGroups.forEach(group => { |
909 | group.classList.remove('active'); | 910 | group.classList.remove('active'); |
910 | }); | 911 | }); |
911 | 912 | ||
912 | group.classList.add('active'); | 913 | group.classList.add('active'); |
913 | 914 | ||
914 | } | 915 | } |
915 | 916 | ||
916 | }); | 917 | }); |
917 | 918 | ||
918 | sortGroupItems.forEach(item => { | 919 | sortGroupItems.forEach(item => { |
919 | 920 | ||
920 | item.addEventListener('click', () => { | 921 | item.addEventListener('click', () => { |
921 | 922 | ||
922 | sortGroupItems.forEach(item => { | 923 | sortGroupItems.forEach(item => { |
923 | item.classList.remove('active'); | 924 | item.classList.remove('active'); |
924 | }); | 925 | }); |
925 | 926 | ||
926 | item.classList.add('active'); | 927 | item.classList.add('active'); |
927 | sortGroupCurrent.textContent = item.textContent; | 928 | sortGroupCurrent.textContent = item.textContent; |
928 | sortGroupInput.value = item.dataset.val; | 929 | sortGroupInput.value = item.dataset.val; |
929 | group.classList.remove('active'); | 930 | group.classList.remove('active'); |
930 | 931 | ||
931 | sendRequest(); | 932 | sendRequest(); |
932 | 933 | ||
933 | }); | 934 | }); |
934 | 935 | ||
935 | }); | 936 | }); |
936 | 937 | ||
937 | }); | 938 | }); |
938 | 939 | ||
939 | document.addEventListener('click', (e) => { | 940 | document.addEventListener('click', (e) => { |
940 | 941 | ||
941 | if (!e.target.closest('.js_sort_group_list') && !e.target.closest('.js_sort_group_current')) { | 942 | if (!e.target.closest('.js_sort_group_list') && !e.target.closest('.js_sort_group_current')) { |
942 | 943 | ||
943 | sortGroups.forEach(group => { | 944 | sortGroups.forEach(group => { |
944 | group.classList.remove('active'); | 945 | group.classList.remove('active'); |
945 | }); | 946 | }); |
946 | 947 | ||
947 | } | 948 | } |
948 | 949 | ||
949 | }); | 950 | }); |
950 | 951 | ||
951 | } | 952 | } |
952 | 953 | ||
953 | } | 954 | } |
954 | 955 | ||
955 | 956 | ||
956 | // слайдер на странице жк и на странице предложения | 957 | // слайдер на странице жк и на странице предложения |
957 | initIntroSlider() { | 958 | initIntroSlider() { |
958 | 959 | ||
959 | let swiper3 = new Swiper('.intro__swiper', { | 960 | let swiper3 = new Swiper('.intro__swiper', { |
960 | navigation: { | 961 | navigation: { |
961 | nextEl: '.swiper-button-next', | 962 | nextEl: '.swiper-button-next', |
962 | prevEl: '.swiper-button-prev', | 963 | prevEl: '.swiper-button-prev', |
963 | }, | 964 | }, |
964 | pagination: { | 965 | pagination: { |
965 | el: '.swiper-pagination', | 966 | el: '.swiper-pagination', |
966 | clickable: true, | 967 | clickable: true, |
967 | }, | 968 | }, |
968 | slidesPerView: 1.1, | 969 | slidesPerView: 1.1, |
969 | spaceBetween: 20, | 970 | spaceBetween: 20, |
970 | breakpoints: { | 971 | breakpoints: { |
971 | 480: { | 972 | 480: { |
972 | slidesPerView: 1.5, | 973 | slidesPerView: 1.5, |
973 | }, | 974 | }, |
974 | 640: { | 975 | 640: { |
975 | slidesPerView: 1.75, | 976 | slidesPerView: 1.75, |
976 | }, | 977 | }, |
977 | 780: { | 978 | 780: { |
978 | slidesPerView: 2.15, | 979 | slidesPerView: 2.15, |
979 | }, | 980 | }, |
980 | 1024: { | 981 | 1024: { |
981 | slidesPerView: 3.5, | 982 | slidesPerView: 3.5, |
982 | }, | 983 | }, |
983 | 1200: { | 984 | 1200: { |
984 | slidesPerView: 1, | 985 | slidesPerView: 1, |
985 | } | 986 | } |
986 | } | 987 | } |
987 | }); | 988 | }); |
988 | 989 | ||
989 | } | 990 | } |
990 | 991 | ||
991 | 992 | ||
992 | // табы на странице предложения | 993 | // табы на странице предложения |
993 | setTabs(tabs, items) { | 994 | setTabs(tabs, items) { |
994 | 995 | ||
995 | const offerSideTabs = document.querySelectorAll(tabs); | 996 | const offerSideTabs = document.querySelectorAll(tabs); |
996 | const offerSideItems = document.querySelectorAll(items); | 997 | const offerSideItems = document.querySelectorAll(items); |
997 | 998 | ||
998 | if (offerSideTabs) { | 999 | if (offerSideTabs) { |
999 | 1000 | ||
1000 | offerSideTabs.forEach(tab => { | 1001 | offerSideTabs.forEach(tab => { |
1001 | 1002 | ||
1002 | tab.addEventListener('click', () => { | 1003 | tab.addEventListener('click', () => { |
1003 | 1004 | ||
1004 | offerSideTabs.forEach(tab => { | 1005 | offerSideTabs.forEach(tab => { |
1005 | tab.classList.remove('active'); | 1006 | tab.classList.remove('active'); |
1006 | }); | 1007 | }); |
1007 | 1008 | ||
1008 | tab.classList.add('active'); | 1009 | tab.classList.add('active'); |
1009 | 1010 | ||
1010 | offerSideItems.forEach(item => { | 1011 | offerSideItems.forEach(item => { |
1011 | 1012 | ||
1012 | item.classList.remove('active', 'fade'); | 1013 | item.classList.remove('active', 'fade'); |
1013 | 1014 | ||
1014 | if (tab.dataset.tab == item.dataset.item) { | 1015 | if (tab.dataset.tab == item.dataset.item) { |
1015 | item.classList.add('active', 'fade'); | 1016 | item.classList.add('active', 'fade'); |
1016 | } | 1017 | } |
1017 | 1018 | ||
1018 | }); | 1019 | }); |
1019 | 1020 | ||
1020 | }); | 1021 | }); |
1021 | 1022 | ||
1022 | }); | 1023 | }); |
1023 | 1024 | ||
1024 | } | 1025 | } |
1025 | 1026 | ||
1026 | } | 1027 | } |
1027 | 1028 | ||
1028 | 1029 | ||
1029 | // логика открытия нужного таба при открытии поп-апа с планами объекат и этажа на странице предложения | 1030 | // логика открытия нужного таба при открытии поп-апа с планами объекат и этажа на странице предложения |
1030 | sontrolOfferSidePopup() { | 1031 | sontrolOfferSidePopup() { |
1031 | 1032 | ||
1032 | const offerSideItems = document.querySelectorAll('.js_offer_side_item'); | 1033 | const offerSideItems = document.querySelectorAll('.js_offer_side_item'); |
1033 | const offerSidePopupTabs = document.querySelectorAll('.js_offer_side_popup_tab'); | 1034 | const offerSidePopupTabs = document.querySelectorAll('.js_offer_side_popup_tab'); |
1034 | const offerSidePopupItems = document.querySelectorAll('.js_offer_side_popup_item'); | 1035 | const offerSidePopupItems = document.querySelectorAll('.js_offer_side_popup_item'); |
1035 | 1036 | ||
1036 | if (offerSideItems) { | 1037 | if (offerSideItems) { |
1037 | 1038 | ||
1038 | offerSideItems.forEach(item => { | 1039 | offerSideItems.forEach(item => { |
1039 | 1040 | ||
1040 | const offerSideItemBtn = item.querySelector('.js_offer_side_item_btn'); | 1041 | const offerSideItemBtn = item.querySelector('.js_offer_side_item_btn'); |
1041 | 1042 | ||
1042 | offerSideItemBtn.addEventListener('click', (e) => { | 1043 | offerSideItemBtn.addEventListener('click', (e) => { |
1043 | 1044 | ||
1044 | e.preventDefault(); | 1045 | e.preventDefault(); |
1045 | 1046 | ||
1046 | offerSidePopupTabs.forEach(tab => { | 1047 | offerSidePopupTabs.forEach(tab => { |
1047 | 1048 | ||
1048 | tab.classList.remove('active'); | 1049 | tab.classList.remove('active'); |
1049 | 1050 | ||
1050 | if (item.dataset.item == tab.dataset.tab) { | 1051 | if (item.dataset.item == tab.dataset.tab) { |
1051 | tab.classList.add('active'); | 1052 | tab.classList.add('active'); |
1052 | } | 1053 | } |
1053 | 1054 | ||
1054 | }); | 1055 | }); |
1055 | 1056 | ||
1056 | offerSidePopupItems.forEach(el => { | 1057 | offerSidePopupItems.forEach(el => { |
1057 | 1058 | ||
1058 | el.classList.remove('active', 'fade'); | 1059 | el.classList.remove('active', 'fade'); |
1059 | 1060 | ||
1060 | if (item.dataset.item == el.dataset.item) { | 1061 | if (item.dataset.item == el.dataset.item) { |
1061 | el.classList.add('active', 'fade'); | 1062 | el.classList.add('active', 'fade'); |
1062 | } | 1063 | } |
1063 | 1064 | ||
1064 | }); | 1065 | }); |
1065 | 1066 | ||
1066 | }); | 1067 | }); |
1067 | 1068 | ||
1068 | }); | 1069 | }); |
1069 | 1070 | ||
1070 | } | 1071 | } |
1071 | 1072 | ||
1072 | } | 1073 | } |
1073 | 1074 | ||
1074 | 1075 | ||
1075 | // галлерея | 1076 | // галлерея |
1076 | setCustomGallery() { | 1077 | setCustomGallery() { |
1077 | 1078 | ||
1078 | let swiper4 = new Swiper(".img-viewer__thumbs-swiper", { | 1079 | let swiper4 = new Swiper(".img-viewer__thumbs-swiper", { |
1079 | slidesPerView: 3, | 1080 | slidesPerView: 3, |
1080 | spaceBetween: 8, | 1081 | spaceBetween: 8, |
1081 | // freeMode: true, | 1082 | // freeMode: true, |
1082 | observer: true, | 1083 | observer: true, |
1083 | observeParents: true, | 1084 | observeParents: true, |
1084 | observeSlideChildren: true, | 1085 | observeSlideChildren: true, |
1085 | breakpoints: { | 1086 | breakpoints: { |
1086 | 640: { | 1087 | 640: { |
1087 | spaceBetween: 10, | 1088 | spaceBetween: 10, |
1088 | }, | 1089 | }, |
1089 | }, | 1090 | }, |
1090 | }); | 1091 | }); |
1091 | 1092 | ||
1092 | let swiper5 = new Swiper(".img-viewer__slider .swiper", { | 1093 | let swiper5 = new Swiper(".img-viewer__slider .swiper", { |
1093 | navigation: { | 1094 | navigation: { |
1094 | nextEl: ".img-viewer__slider .swiper-button-next", | 1095 | nextEl: ".img-viewer__slider .swiper-button-next", |
1095 | prevEl: ".img-viewer__slider .swiper-button-prev", | 1096 | prevEl: ".img-viewer__slider .swiper-button-prev", |
1096 | }, | 1097 | }, |
1097 | slidesPerView: 1, | 1098 | slidesPerView: 1, |
1098 | spaceBetween: 20, | 1099 | spaceBetween: 20, |
1099 | thumbs: { | 1100 | thumbs: { |
1100 | swiper: swiper4 | 1101 | swiper: swiper4 |
1101 | }, | 1102 | }, |
1102 | observer: true, | 1103 | observer: true, |
1103 | observeParents: true, | 1104 | observeParents: true, |
1104 | observeSlideChildren: true, | 1105 | observeSlideChildren: true, |
1105 | }); | 1106 | }); |
1106 | 1107 | ||
1107 | if (document.querySelector('.js_intro_item_btn')) { | 1108 | if (document.querySelector('.js_intro_item_btn')) { |
1108 | 1109 | ||
1109 | const imgViewer = document.querySelector('.js_img_viewer'); | 1110 | const imgViewer = document.querySelector('.js_img_viewer'); |
1110 | const imgViewerCloses = imgViewer.querySelectorAll('.js_img_viewer_close'); | 1111 | const imgViewerCloses = imgViewer.querySelectorAll('.js_img_viewer_close'); |
1111 | const imgViewerCaption = imgViewer.querySelector('.js_img_viewer_caption'); | 1112 | const imgViewerCaption = imgViewer.querySelector('.js_img_viewer_caption'); |
1112 | 1113 | ||
1113 | const imgViewerSliderSwiper = imgViewer.querySelector('.js_img_viewer_slider_swiper'); | 1114 | const imgViewerSliderSwiper = imgViewer.querySelector('.js_img_viewer_slider_swiper'); |
1114 | const imgViewerSliderSwiperWrap = imgViewerSliderSwiper.querySelector('.js_img_viewer_slider_swiper .swiper-wrapper'); | 1115 | const imgViewerSliderSwiperWrap = imgViewerSliderSwiper.querySelector('.js_img_viewer_slider_swiper .swiper-wrapper'); |
1115 | 1116 | ||
1116 | const imgViewerThumbsSwiper = imgViewer.querySelector('.js_img_viewer_thumbs_swiper'); | 1117 | const imgViewerThumbsSwiper = imgViewer.querySelector('.js_img_viewer_thumbs_swiper'); |
1117 | const imgViewerThumbsSwiperWrap = imgViewerThumbsSwiper.querySelector('.js_img_viewer_thumbs_swiper .swiper-wrapper'); | 1118 | const imgViewerThumbsSwiperWrap = imgViewerThumbsSwiper.querySelector('.js_img_viewer_thumbs_swiper .swiper-wrapper'); |
1118 | 1119 | ||
1119 | const introItemBtns = document.querySelectorAll('.js_intro_item_btn'); | 1120 | const introItemBtns = document.querySelectorAll('.js_intro_item_btn'); |
1120 | 1121 | ||
1121 | introItemBtns.forEach((btn, i) => { | 1122 | introItemBtns.forEach((btn, i) => { |
1122 | 1123 | ||
1123 | btn.addEventListener('click', (e) => { | 1124 | btn.addEventListener('click', (e) => { |
1124 | 1125 | ||
1125 | e.preventDefault(); | 1126 | e.preventDefault(); |
1126 | 1127 | ||
1127 | imgViewer.classList.add('active'); | 1128 | imgViewer.classList.add('active'); |
1128 | this.fixBodyPosition(); | 1129 | this.fixBodyPosition(); |
1129 | 1130 | ||
1130 | imgViewerSliderSwiperWrap.innerHTML = ''; | 1131 | imgViewerSliderSwiperWrap.innerHTML = ''; |
1131 | imgViewerThumbsSwiperWrap.innerHTML = ''; | 1132 | imgViewerThumbsSwiperWrap.innerHTML = ''; |
1132 | imgViewerCaption.textContent = ''; | 1133 | imgViewerCaption.textContent = ''; |
1133 | 1134 | ||
1134 | 1135 | ||
1135 | introItemBtns.forEach(btn => { | 1136 | introItemBtns.forEach(btn => { |
1136 | 1137 | ||
1137 | imgViewerSliderSwiperWrap.insertAdjacentHTML('beforeend', ` | 1138 | imgViewerSliderSwiperWrap.insertAdjacentHTML('beforeend', ` |
1138 | <div class="swiper-slide"> | 1139 | <div class="swiper-slide"> |
1139 | <img src="${btn.getAttribute('href')}" alt=""> | 1140 | <img src="${btn.getAttribute('href')}" alt=""> |
1140 | </div>` | 1141 | </div>` |
1141 | ); | 1142 | ); |
1142 | 1143 | ||
1143 | imgViewerThumbsSwiperWrap.insertAdjacentHTML('beforeend', ` | 1144 | imgViewerThumbsSwiperWrap.insertAdjacentHTML('beforeend', ` |
1144 | <div class="swiper-slide"> | 1145 | <div class="swiper-slide"> |
1145 | <img src="${btn.getAttribute('href')}" alt=""> | 1146 | <img src="${btn.getAttribute('href')}" alt=""> |
1146 | </div>` | 1147 | </div>` |
1147 | ); | 1148 | ); |
1148 | 1149 | ||
1149 | }); | 1150 | }); |
1150 | 1151 | ||
1151 | swiper4.update(); | 1152 | swiper4.update(); |
1152 | swiper5.update(); | 1153 | swiper5.update(); |
1153 | swiper5.slideTo(i); | 1154 | swiper5.slideTo(i); |
1154 | imgViewerCaption.textContent = btn.dataset.caption; | 1155 | imgViewerCaption.textContent = btn.dataset.caption; |
1155 | 1156 | ||
1156 | }); | 1157 | }); |
1157 | 1158 | ||
1158 | }); | 1159 | }); |
1159 | 1160 | ||
1160 | swiper5.on('slideChange', function () { | 1161 | swiper5.on('slideChange', function () { |
1161 | imgViewerCaption.textContent = introItemBtns[swiper5.realIndex].dataset.caption; | 1162 | imgViewerCaption.textContent = introItemBtns[swiper5.realIndex].dataset.caption; |
1162 | }); | 1163 | }); |
1163 | 1164 | ||
1164 | imgViewerCloses.forEach(close => { | 1165 | imgViewerCloses.forEach(close => { |
1165 | 1166 | ||
1166 | close.addEventListener('click', () => { | 1167 | close.addEventListener('click', () => { |
1167 | 1168 | ||
1168 | imgViewer.classList.remove('active'); | 1169 | imgViewer.classList.remove('active'); |
1169 | this.unfixBodyPosition(); | 1170 | this.unfixBodyPosition(); |
1170 | 1171 | ||
1171 | }); | 1172 | }); |
1172 | 1173 | ||
1173 | }); | 1174 | }); |
1174 | 1175 | ||
1175 | } | 1176 | } |
1176 | 1177 | ||
1177 | } | 1178 | } |
1178 | 1179 | ||
1179 | 1180 | ||
1180 | // куки | 1181 | // куки |
1181 | setCookies() { | 1182 | setCookies() { |
1182 | 1183 | ||
1183 | const cookies = document.querySelector('.js_cookies'); | 1184 | const cookies = document.querySelector('.js_cookies'); |
1184 | const cookiesBtn = document.querySelector('.js_cookies_confirm'); | 1185 | const cookiesBtn = document.querySelector('.js_cookies_confirm'); |
1185 | const cookiesTrigger = document.querySelector('.js_btn_cookies'); | 1186 | const cookiesTrigger = document.querySelector('.js_btn_cookies'); |
1186 | 1187 | ||
1187 | if (cookiesTrigger) { | 1188 | if (cookiesTrigger) { |
1188 | 1189 | ||
1189 | cookiesTrigger.addEventListener('click', () => { | 1190 | cookiesTrigger.addEventListener('click', () => { |
1190 | cookies.classList.add('active'); | 1191 | cookies.classList.add('active'); |
1191 | }); | 1192 | }); |
1192 | 1193 | ||
1193 | }; | 1194 | }; |
1194 | 1195 | ||
1195 | if (cookies) { | 1196 | if (cookies) { |
1196 | 1197 | ||
1197 | cookiesBtn.addEventListener('click', () => { | 1198 | cookiesBtn.addEventListener('click', () => { |
1198 | cookies.classList.remove('active'); | 1199 | cookies.classList.remove('active'); |
1199 | }); | 1200 | }); |
1200 | 1201 | ||
1201 | }; | 1202 | }; |
1202 | 1203 | ||
1203 | } | 1204 | } |
1204 | 1205 | ||
1205 | 1206 | ||
1206 | // карта на странице карт; | 1207 | // карта на странице карт; |
1207 | setGeneralMap() { | 1208 | setGeneralMap() { |
1208 | 1209 | ||
1209 | if (document.querySelector('#general-map')) { | 1210 | if (document.querySelector('#general-map')) { |
1210 | 1211 | ||
1211 | ymaps.ready(init); // Дождёмся загрузки API и готовности DOM; | 1212 | ymaps.ready(init); // Дождёмся загрузки API и готовности DOM; |
1212 | 1213 | ||
1213 | function init() { | 1214 | function init() { |
1214 | 1215 | ||
1215 | const myMap = new ymaps.Map('general-map', { // Создание экземпляра карты и его привязка к контейнеру с заданным id; | 1216 | const myMap = new ymaps.Map('general-map', { // Создание экземпляра карты и его привязка к контейнеру с заданным id; |
1216 | center: [55.752933963675126, 37.52233749962665], // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования; | 1217 | center: [55.752933963675126, 37.52233749962665], // При инициализации карты обязательно нужно указать её центр и коэффициент масштабирования; |
1217 | zoom: 10, | 1218 | zoom: 10, |
1218 | controls: [] // Скрываем элементы управления на карте; | 1219 | controls: [] // Скрываем элементы управления на карте; |
1219 | }); | 1220 | }); |
1220 | 1221 | ||
1221 | // Создаём макет содержимого. | 1222 | // Создаём макет содержимого. |
1222 | const MyIconContentLayout = ymaps.templateLayoutFactory.createClass( | 1223 | const MyIconContentLayout = ymaps.templateLayoutFactory.createClass( |
1223 | '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>' | 1224 | '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>' |
1224 | ); | 1225 | ); |
1225 | 1226 | ||
1226 | let collection = new ymaps.GeoObjectCollection(null, { // Создаём коллекцию, в которую будемпомещать метки (что-то типа массива); | 1227 | let collection = new ymaps.GeoObjectCollection(null, { // Создаём коллекцию, в которую будемпомещать метки (что-то типа массива); |
1227 | // preset: 'islands#yellowIcon' | 1228 | // preset: 'islands#yellowIcon' |
1228 | }); | 1229 | }); |
1229 | 1230 | ||
1230 | let collectionCoords = [ // Создаём массив с координатами (координаты должны располагаться в том же порядке, что и адреса в списке на сайте); | 1231 | let collectionCoords = [ // Создаём массив с координатами (координаты должны располагаться в том же порядке, что и адреса в списке на сайте); |
1231 | [55.867783219108354, 37.392867499999916], | 1232 | [55.867783219108354, 37.392867499999916], |
1232 | [55.728043075486504, 37.73937949999994], | 1233 | [55.728043075486504, 37.73937949999994], |
1233 | [55.72624100423305, 37.476078499999964], | 1234 | [55.72624100423305, 37.476078499999964], |
1234 | [55.80751105044832, 37.449622999999974], | 1235 | [55.80751105044832, 37.449622999999974], |
1235 | [55.601783098948836, 37.36700499999998], | 1236 | [55.601783098948836, 37.36700499999998], |
1236 | [55.86086502152225, 37.540348999999964], | 1237 | [55.86086502152225, 37.540348999999964], |
1237 | [55.784961528728715, 37.56188599999996], | 1238 | [55.784961528728715, 37.56188599999996], |
1238 | [55.63910010399773, 37.319407999999996], | 1239 | [55.63910010399773, 37.319407999999996], |
1239 | [55.55819256767507, 37.55711549999994], | 1240 | [55.55819256767507, 37.55711549999994], |
1240 | [55.79829252928473, 37.52063549999999], | 1241 | [55.79829252928473, 37.52063549999999], |
1241 | ]; | 1242 | ]; |
1242 | 1243 | ||
1243 | for (let i = 0, l = collectionCoords.length; i < l; i++) { // C помощью цикла добавляем все метки в коллекцию; | 1244 | for (let i = 0, l = collectionCoords.length; i < l; i++) { // C помощью цикла добавляем все метки в коллекцию; |
1244 | collection.add(new ymaps.Placemark(collectionCoords[i])); | 1245 | collection.add(new ymaps.Placemark(collectionCoords[i])); |
1245 | collection.get(i).properties.set('iconContent', `${i + 1}`); // Добавляем каждой метке порядковый номер, записываем его в свойство 'iconContent'; | 1246 | collection.get(i).properties.set('iconContent', `${i + 1}`); // Добавляем каждой метке порядковый номер, записываем его в свойство 'iconContent'; |
1246 | } | 1247 | } |
1247 | 1248 | ||
1248 | myMap.geoObjects.add(collection); // Добавляем коллекцию с метками на карту; | 1249 | myMap.geoObjects.add(collection); // Добавляем коллекцию с метками на карту; |
1249 | 1250 | ||
1250 | collection.options.set('iconLayout', 'default#imageWithContent'); // Необходимо указать данный тип макета; | 1251 | collection.options.set('iconLayout', 'default#imageWithContent'); // Необходимо указать данный тип макета; |
1251 | collection.options.set('iconImageHref', 'images/mark-complex.svg'); // Своё изображение иконки метки; | 1252 | collection.options.set('iconImageHref', 'images/mark-complex.svg'); // Своё изображение иконки метки; |
1252 | collection.options.set('iconImageSize', [52, 67]); // Размеры метки; | 1253 | collection.options.set('iconImageSize', [52, 67]); // Размеры метки; |
1253 | collection.options.set('iconImageOffset', [-26, -67]); // Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки); | 1254 | collection.options.set('iconImageOffset', [-26, -67]); // Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки); |
1254 | collection.options.set('iconContentOffset', [0, 17]); | 1255 | collection.options.set('iconContentOffset', [0, 17]); |
1255 | collection.options.set('iconContentLayout', MyIconContentLayout); // Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки); | 1256 | collection.options.set('iconContentLayout', MyIconContentLayout); // Смещение левого верхнего угла иконки относительно её "ножки" (точки привязки); |
1256 | 1257 | ||
1257 | const pageMapBar = document.querySelector('.js_page_map_bar'); | 1258 | const pageMapBar = document.querySelector('.js_page_map_bar'); |
1258 | const pageMapBarBtn = pageMapBar.querySelector('.js_page_map_bar_btn'); | 1259 | const pageMapBarBtn = pageMapBar.querySelector('.js_page_map_bar_btn'); |
1259 | const pageMapBarList = pageMapBar.querySelector('.js_page_map_bar_list'); | 1260 | const pageMapBarList = pageMapBar.querySelector('.js_page_map_bar_list'); |
1260 | const pageMapBarCards = pageMapBar.querySelectorAll('.card-news'); | 1261 | const pageMapBarCards = pageMapBar.querySelectorAll('.card-news'); |
1261 | 1262 | ||
1262 | const showCard = (i) => { | 1263 | const showCard = (i) => { |
1263 | 1264 | ||
1264 | pageMapBarCards.forEach((card, k) => { | 1265 | pageMapBarCards.forEach((card, k) => { |
1265 | 1266 | ||
1266 | card.classList.remove('active'); | 1267 | card.classList.remove('active'); |
1267 | 1268 | ||
1268 | if (i == k) { | 1269 | if (i == k) { |
1269 | card.classList.add('active'); | 1270 | card.classList.add('active'); |
1270 | } | 1271 | } |
1271 | 1272 | ||
1272 | }); | 1273 | }); |
1273 | 1274 | ||
1274 | }; | 1275 | }; |
1275 | 1276 | ||
1276 | const hidecard = () => { | 1277 | const hidecard = () => { |
1277 | 1278 | ||
1278 | pageMapBarCards.forEach(card => { | 1279 | pageMapBarCards.forEach(card => { |
1279 | card.classList.remove('active'); | 1280 | card.classList.remove('active'); |
1280 | }); | 1281 | }); |
1281 | 1282 | ||
1282 | } | 1283 | } |
1283 | 1284 | ||
1284 | let pageMapBarItems; | 1285 | let pageMapBarItems; |
1285 | 1286 | ||
1286 | pageMapBarBtn.addEventListener('click', () => { | 1287 | pageMapBarBtn.addEventListener('click', () => { |
1287 | pageMapBar.classList.toggle('active'); | 1288 | pageMapBar.classList.toggle('active'); |
1288 | }); | 1289 | }); |
1289 | 1290 | ||
1290 | pageMapBarList.addEventListener('click', (e) => { | 1291 | pageMapBarList.addEventListener('click', (e) => { |
1291 | 1292 | ||
1292 | if (e.target.closest('.page-map-bar__item')) { | 1293 | if (e.target.closest('.page-map-bar__item')) { |
1293 | 1294 | ||
1294 | pageMapBarItems = pageMapBarList.querySelectorAll('.page-map-bar__item'); | 1295 | pageMapBarItems = pageMapBarList.querySelectorAll('.page-map-bar__item'); |
1295 | 1296 | ||
1296 | pageMapBarItems.forEach((item, i) => { | 1297 | pageMapBarItems.forEach((item, i) => { |
1297 | 1298 | ||
1298 | if (e.target == item && e.target.classList.contains('active')) { | 1299 | if (e.target == item && e.target.classList.contains('active')) { |
1299 | 1300 | ||
1300 | item.classList.remove('active'); | 1301 | item.classList.remove('active'); |
1301 | 1302 | ||
1302 | hidecard(); | 1303 | hidecard(); |
1303 | 1304 | ||
1304 | } else if (e.target == item) { | 1305 | } else if (e.target == item) { |
1305 | 1306 | ||
1306 | pageMapBarItems.forEach(item => { | 1307 | pageMapBarItems.forEach(item => { |
1307 | item.classList.remove('active'); | 1308 | item.classList.remove('active'); |
1308 | }); | 1309 | }); |
1309 | 1310 | ||
1310 | item.classList.add('active'); | 1311 | item.classList.add('active'); |
1311 | 1312 | ||
1312 | let offsetCoords = collection.get(i).geometry.getCoordinates(); | 1313 | let offsetCoords = collection.get(i).geometry.getCoordinates(); |
1313 | 1314 | ||
1314 | offsetCoords = [ | 1315 | offsetCoords = [ |
1315 | offsetCoords[0] - 0.0025, | 1316 | offsetCoords[0] - 0.0025, |
1316 | offsetCoords[1] | 1317 | offsetCoords[1] |
1317 | ]; | 1318 | ]; |
1318 | 1319 | ||
1319 | myMap.setZoom(16); | 1320 | myMap.setZoom(16); |
1320 | // myMap.setCenter(collection.get(i).geometry.getCoordinates()); | 1321 | // myMap.setCenter(collection.get(i).geometry.getCoordinates()); |
1321 | myMap.setCenter(offsetCoords); | 1322 | myMap.setCenter(offsetCoords); |
1322 | 1323 | ||
1323 | showCard(i); | 1324 | showCard(i); |
1324 | 1325 | ||
1325 | } | 1326 | } |
1326 | 1327 | ||
1327 | }); | 1328 | }); |
1328 | } | 1329 | } |
1329 | 1330 | ||
1330 | }); | 1331 | }); |
1331 | 1332 | ||
1332 | collection.events.add('click', function (e) { | 1333 | collection.events.add('click', function (e) { |
1333 | 1334 | ||
1334 | for (let i = 0, l = collection.getLength(); i < l; i++) { | 1335 | for (let i = 0, l = collection.getLength(); i < l; i++) { |
1335 | 1336 | ||
1336 | if (e.get('target') == collection.get(i)) { | 1337 | if (e.get('target') == collection.get(i)) { |
1337 | 1338 | ||
1338 | pageMapBarItems = pageMapBarList.querySelectorAll('.page-map-bar__item'); | 1339 | pageMapBarItems = pageMapBarList.querySelectorAll('.page-map-bar__item'); |
1339 | 1340 | ||
1340 | pageMapBarItems.forEach((item) => { | 1341 | pageMapBarItems.forEach((item) => { |
1341 | pageMapBar.classList.add('active'); | 1342 | pageMapBar.classList.add('active'); |
1342 | item.classList.remove('active'); | 1343 | item.classList.remove('active'); |
1343 | }); | 1344 | }); |
1344 | 1345 | ||
1345 | pageMapBarItems[i].classList.add('active'); | 1346 | pageMapBarItems[i].classList.add('active'); |
1346 | 1347 | ||
1347 | showCard(i); | 1348 | showCard(i); |
1348 | 1349 | ||
1349 | } | 1350 | } |
1350 | 1351 | ||
1351 | } | 1352 | } |
1352 | 1353 | ||
1353 | }); | 1354 | }); |
1354 | 1355 | ||
1355 | } | 1356 | } |
1356 | 1357 | ||
1357 | } | 1358 | } |
1358 | 1359 | ||
1359 | }; | 1360 | }; |
1360 | 1361 | ||
1361 | 1362 | ||
1362 | // аккордеон в футере | 1363 | // аккордеон в футере |
1363 | setFooterSpoilers() { | 1364 | setFooterSpoilers() { |
1364 | 1365 | ||
1365 | const items = document.querySelectorAll('.js_footer_col'); | 1366 | const items = document.querySelectorAll('.js_footer_col'); |
1366 | 1367 | ||
1367 | items.forEach(item => { | 1368 | items.forEach(item => { |
1368 | 1369 | ||
1369 | const itemTitle = item.querySelector('.js_footer_caption'); | 1370 | const itemTitle = item.querySelector('.js_footer_caption'); |
1370 | const itemContent = item.querySelector('.js_footer_block'); | 1371 | const itemContent = item.querySelector('.js_footer_block'); |
1371 | 1372 | ||
1372 | const blockToggle = (block, duration) => { | 1373 | const blockToggle = (block, duration) => { |
1373 | 1374 | ||
1374 | if (window.getComputedStyle(block).display == "none" && !block.classList.contains('smooth')) { | 1375 | if (window.getComputedStyle(block).display == "none" && !block.classList.contains('smooth')) { |
1375 | 1376 | ||
1376 | block.style.display = "block"; | 1377 | block.style.display = "block"; |
1377 | 1378 | ||
1378 | const blockHeight = block.offsetHeight; | 1379 | const blockHeight = block.offsetHeight; |
1379 | 1380 | ||
1380 | block.style.height = 0; | 1381 | block.style.height = 0; |
1381 | block.style.overflow = "hidden"; | 1382 | block.style.overflow = "hidden"; |
1382 | block.style.transition = `height ${duration}ms ease`; | 1383 | block.style.transition = `height ${duration}ms ease`; |
1383 | block.classList.add('smooth'); | 1384 | block.classList.add('smooth'); |
1384 | block.offsetHeight; | 1385 | block.offsetHeight; |
1385 | block.style.height = `${blockHeight}px`; | 1386 | block.style.height = `${blockHeight}px`; |
1386 | 1387 | ||
1387 | setTimeout(() => { | 1388 | setTimeout(() => { |
1388 | 1389 | ||
1389 | block.classList.remove('smooth'); | 1390 | block.classList.remove('smooth'); |
1390 | block.style.height = ''; | 1391 | block.style.height = ''; |
1391 | block.style.transition = ''; | 1392 | block.style.transition = ''; |
1392 | block.style.overflow = ''; | 1393 | block.style.overflow = ''; |
1393 | 1394 | ||
1394 | }, duration); | 1395 | }, duration); |
1395 | 1396 | ||
1396 | } else if (!block.classList.contains('smooth')) { | 1397 | } else if (!block.classList.contains('smooth')) { |
1397 | 1398 | ||
1398 | block.style.height = `${block.offsetHeight}px`; | 1399 | block.style.height = `${block.offsetHeight}px`; |
1399 | block.offsetHeight; | 1400 | block.offsetHeight; |
1400 | block.style.height = 0; | 1401 | block.style.height = 0; |
1401 | block.style.overflow = "hidden"; | 1402 | block.style.overflow = "hidden"; |
1402 | block.style.transition = `height ${duration}ms ease`; | 1403 | block.style.transition = `height ${duration}ms ease`; |
1403 | block.classList.add('smooth'); | 1404 | block.classList.add('smooth'); |
1404 | 1405 | ||
1405 | setTimeout(() => { | 1406 | setTimeout(() => { |
1406 | 1407 | ||
1407 | block.classList.remove('smooth'); | 1408 | block.classList.remove('smooth'); |
1408 | block.style.display = "none"; | 1409 | block.style.display = "none"; |
1409 | block.style.height = ''; | 1410 | block.style.height = ''; |
1410 | block.style.transition = ''; | 1411 | block.style.transition = ''; |
1411 | block.style.overflow = ''; | 1412 | block.style.overflow = ''; |
1412 | 1413 | ||
1413 | }, duration); | 1414 | }, duration); |
1414 | 1415 | ||
1415 | } | 1416 | } |
1416 | 1417 | ||
1417 | }; | 1418 | }; |
1418 | 1419 | ||
1419 | itemTitle.addEventListener('click', (e) => { | 1420 | itemTitle.addEventListener('click', (e) => { |
1420 | itemTitle.classList.toggle('active'); | 1421 | itemTitle.classList.toggle('active'); |
1421 | blockToggle(itemContent, 300); | 1422 | blockToggle(itemContent, 300); |
1422 | }); | 1423 | }); |
1423 | 1424 | ||
1424 | }); | 1425 | }); |
1425 | 1426 | ||
1426 | } | 1427 | } |
1427 | 1428 | ||
1428 | 1429 | ||
1429 | // слайдер с партнёрами; | 1430 | // слайдер с партнёрами; |
1430 | initPartnerslSlider() { | 1431 | initPartnerslSlider() { |
1431 | 1432 | ||
1432 | const slider = document.querySelector('.partners__swiper'); | 1433 | const slider = document.querySelector('.partners__swiper'); |
1433 | 1434 | ||
1434 | if (slider) { | 1435 | if (slider) { |
1435 | 1436 | ||
1436 | let swiper6; | 1437 | let swiper6; |
1437 | 1438 | ||
1438 | const initSlider = () => { | 1439 | const initSlider = () => { |
1439 | 1440 | ||
1440 | swiper6 = new Swiper(slider, { | 1441 | swiper6 = new Swiper(slider, { |
1441 | // scrollbar: { | 1442 | // scrollbar: { |
1442 | // el: '.swiper-scrollbar', | 1443 | // el: '.swiper-scrollbar', |
1443 | // draggable: true, | 1444 | // draggable: true, |
1444 | // }, | 1445 | // }, |
1445 | slidesPerView: 0.275, | 1446 | slidesPerView: 0.275, |
1446 | loop: true, | 1447 | loop: true, |
1447 | spaceBetween: 20, | 1448 | spaceBetween: 20, |
1448 | freeMode: true, | 1449 | freeMode: true, |
1449 | allowTouchMove: true, | 1450 | allowTouchMove: true, |
1450 | breakpoints: { | 1451 | breakpoints: { |
1451 | 480: { | 1452 | 480: { |
1452 | slidesPerView: 0.4, | 1453 | slidesPerView: 0.4, |
1453 | }, | 1454 | }, |
1454 | 640: { | 1455 | 640: { |
1455 | slidesPerView: 0.65, | 1456 | slidesPerView: 0.65, |
1456 | }, | 1457 | }, |
1457 | 780: { | 1458 | 780: { |
1458 | slidesPerView: 0.65, | 1459 | slidesPerView: 0.65, |
1459 | }, | 1460 | }, |
1460 | 1024: { | 1461 | 1024: { |
1461 | slidesPerView: 0.8, | 1462 | slidesPerView: 0.8, |
1462 | }, | 1463 | }, |
1463 | 1200: { | 1464 | 1200: { |
1464 | slidesPerView: 1, | 1465 | slidesPerView: 1, |
1465 | loop: false, | 1466 | loop: false, |
1466 | allowTouchMove: false, | 1467 | allowTouchMove: false, |
1467 | } | 1468 | } |
1468 | } | 1469 | } |
1469 | }); | 1470 | }); |
1470 | 1471 | ||
1471 | }; | 1472 | }; |
1472 | 1473 | ||
1473 | initSlider(); | 1474 | initSlider(); |
1474 | 1475 | ||
1475 | const updateSlider = () => { | 1476 | const updateSlider = () => { |
1476 | swiper6.destroy(); | 1477 | swiper6.destroy(); |
1477 | initSlider(); | 1478 | initSlider(); |
1478 | } | 1479 | } |
1479 | 1480 | ||
1480 | window.addEventListener('resize', () => { | 1481 | window.addEventListener('resize', () => { |
1481 | 1482 | ||
1482 | if (window.innerWidth <= 1200 && slider.dataset.mobile == 'false') { | 1483 | if (window.innerWidth <= 1200 && slider.dataset.mobile == 'false') { |
1483 | slider.dataset.mobile = 'true'; | 1484 | slider.dataset.mobile = 'true'; |
1484 | updateSlider(); | 1485 | updateSlider(); |
1485 | } | 1486 | } |
1486 | 1487 | ||
1487 | if (window.innerWidth > 1200 && slider.dataset.mobile == 'true') { | 1488 | if (window.innerWidth > 1200 && slider.dataset.mobile == 'true') { |
1488 | slider.dataset.mobile = 'false'; | 1489 | slider.dataset.mobile = 'false'; |
1489 | updateSlider(); | 1490 | updateSlider(); |
1490 | } | 1491 | } |
1491 | 1492 | ||
1492 | }); | 1493 | }); |
1493 | 1494 | ||
1494 | } | 1495 | } |
1495 | 1496 | ||
1496 | } | 1497 | } |
1497 | 1498 | ||
1498 | } | 1499 | } |
1499 | 1500 | ||
1500 | 1501 | ||
1501 | document.addEventListener('DOMContentLoaded', () => { | 1502 | document.addEventListener('DOMContentLoaded', () => { |
1502 | 1503 | ||
1503 | const app = new App(); | 1504 | const app = new App(); |
1504 | app.init(); | 1505 | app.init(); |
1505 | 1506 | ||
1506 | }); | 1507 | }); |
1507 | 1508 |
resources/views/admin/index.blade.php
1 | @extends('layout.site', ['title' => 'Личный кабинет']) | 1 | @extends('layout.site', ['title' => 'Личный кабинет']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <section class="favorites"> | 4 | <section class="favorites"> |
5 | <div class="favorites-top"> | 5 | <div class="favorites-top"> |
6 | <div class="container"> | 6 | <div class="container"> |
7 | <div class="breadcrumbs"> | 7 | <div class="breadcrumbs"> |
8 | <ul class="breadcrumbs__list"> | 8 | <ul class="breadcrumbs__list"> |
9 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> | 9 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> |
10 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">Админка </span></li> | 10 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">Админка </span></li> |
11 | </ul> | 11 | </ul> |
12 | </div> | 12 | </div> |
13 | <h1 class="favorites__title title-main">Личный кабинет</h1> | 13 | <h1 class="favorites__title title-main">Личный кабинет</h1> |
14 | <p class="favorites__descr"> | 14 | <p class="favorites__descr"> |
15 | Добрый день {{ auth()->user()->name }}!<br> | 15 | Добрый день {{ auth()->user()->name }}!<br> |
16 | Это личный кабинет пользователя сайта.<br> | 16 | Это личный кабинет пользователя сайта.<br> |
17 | <a class="btn btn-success" href="{{ route('auth.logout') }}">Выйти из системы</a><br> | 17 | <a class="btn hero-search__btn btn--main" href="{{ route('auth.logout') }}">Выйти из системы</a><br> |
18 | </p> | 18 | </p> |
19 | <h2>Меню</h2> | 19 | <h2>Меню</h2> |
20 | <ul class="breadcrumbs__list"> | 20 | <ul class="breadcrumbs__list"> |
21 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Сайт</a></li> | 21 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Сайт</a></li> |
22 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.area.index') }}">Объекты </a></li> | 22 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.area.index') }}">Объекты </a></li> |
23 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.news.index') }}">Новости</a></li> | ||
24 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.company.show', ['company' => 1]) }}">Компания</a></li> | ||
25 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.typearea.index') }}">Типы недвижимости</a></li> | ||
26 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.formatarea.index') }}">Форматы недвижимости</a></li> | ||
27 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.message.index') }}">Сообщения</a></li> | ||
28 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('admin.houses.index') }}">Офисы</a></li> | ||
23 | </ul> | 29 | </ul> |
24 | </div> | 30 | </div> |
25 | </div> | 31 | </div> |
26 | <div class="favorites-cnt"> | 32 | <div class="favorites-cnt"> |
27 | <div class="container"> | 33 | <div class="container"> |
28 | <div class="favorites__items"> | 34 | <div class="favorites__items"> |
29 | <div class="favorites-item"> | 35 | <div class="favorites-item"> |
30 | <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-1.svg" alt=""></div> | 36 | <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-1.svg" alt=""></div> |
31 | <p class="favorites-item__descr"><a href="#">Найдите</a> идеальную планировку на сайте Renttorg</p> | 37 | <p class="favorites-item__descr"><a href="#">Найдите</a> идеальную планировку на сайте Renttorg</p> |
32 | </div> | 38 | </div> |
33 | <div class="favorites-item"> | 39 | <div class="favorites-item"> |
34 | <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-2.svg" alt=""></div> | 40 | <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-2.svg" alt=""></div> |
35 | <p class="favorites-item__descr">Нажмите на <img src="images/favorites-icon-mini.svg" alt=""> для добавления недвижемости в избранное</p> | 41 | <p class="favorites-item__descr">Нажмите на <img src="images/favorites-icon-mini.svg" alt=""> для добавления недвижемости в избранное</p> |
36 | </div> | 42 | </div> |
37 | <div class="favorites-item"> | 43 | <div class="favorites-item"> |
38 | <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-3.svg" alt=""></div> | 44 | <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-3.svg" alt=""></div> |
39 | <p class="favorites-item__descr">Перейдите в избранное или сравнение для выбора планировки</p> | 45 | <p class="favorites-item__descr">Перейдите в избранное или сравнение для выбора планировки</p> |
40 | </div> | 46 | </div> |
41 | </div> | 47 | </div> |
42 | </div> | 48 | </div> |
43 | </div> | 49 | </div> |
44 | </section> | 50 | </section> |
45 | @endsection | 51 | @endsection |
46 | 52 | ||
47 | 53 |
resources/views/catalogs/elemhouse.blade.php
1 | <div class="swiper-slide"> | 1 | <div class="swiper-slide"> |
2 | <div class="card"> | 2 | <div class="card"> |
3 | <div class="card__top"> | 3 | <div class="card__top"> |
4 | @if (empty($house->foto_main)) | 4 | @if (empty($house->foto_main)) |
5 | 5 | ||
6 | @else | 6 | @else |
7 | <img src="{{ asset($house->foto_main) }}" alt="{{ $house->title }}" loading="lazy"/> | 7 | <img src="{{ asset(Storage::url($house->foto_main)) }}" alt="{{ $house->title }}" loading="lazy"/> |
8 | @endif; | 8 | @endif; |
9 | 9 | ||
10 | <h3 class="card__title">{{$house->typearea->name_type }}</h3> | 10 | <h3 class="card__title">{{$house->typearea->name_type }}</h3> |
11 | <div class="card__labels"> | 11 | <div class="card__labels"> |
12 | <span class="card__label card__label-favorites js_card_favorites <?=\App\Classes\RusDate::selected_item($house->id);?>" data-val="{{$house->id}}" id="card_favorite{{$house->id}}" name="card_favorite{{$house->id}}"> | 12 | <span class="card__label card__label-favorites js_card_favorites <?=\App\Classes\RusDate::selected_item($house->id);?>" data-val="{{$house->id}}" id="card_favorite{{$house->id}}" name="card_favorite{{$house->id}}"> |
13 | <svg width="18" height="18"> | 13 | <svg width="18" height="18"> |
14 | <use xlink:href="{{ asset('images/sprite.svg#card-favorites-empty') }}"></use> | 14 | <use xlink:href="{{ asset('images/sprite.svg#card-favorites-empty') }}"></use> |
15 | </svg> | 15 | </svg> |
16 | <svg width="18" height="18"> | 16 | <svg width="18" height="18"> |
17 | <use xlink:href="{{ asset('images/sprite.svg#card-favorites') }}"></use> | 17 | <use xlink:href="{{ asset('images/sprite.svg#card-favorites') }}"></use> |
18 | </svg> | 18 | </svg> |
19 | </span> | 19 | </span> |
20 | <a class="card__label card__label-messenger" href="#"> | 20 | <a class="card__label card__label-messenger" href="#"> |
21 | <svg width="25" height="25"> | 21 | <svg width="25" height="25"> |
22 | <use xlink:href="{{ asset('images/sprite.svg#card-messenger') }}"></use> | 22 | <use xlink:href="{{ asset('images/sprite.svg#card-messenger') }}"></use> |
23 | </svg></a></div> | 23 | </svg></a></div> |
24 | </div> | 24 | </div> |
25 | <div class="card__cnt"> | 25 | <div class="card__cnt"> |
26 | <div class="card__info"> | 26 | <div class="card__info"> |
27 | <address class="card__line card__line-complex">{{ $house->areas->name_area }}</address> | 27 | <address class="card__line card__line-complex">{{ $house->areas->name_area }}</address> |
28 | <address class="card__line">{{$house->metro}} ({{$house->description_metro }})<span style="background-color: #FFC955;"></span></address> | 28 | <address class="card__line">{{$house->metro}} ({{$house->description_metro }})<span style="background-color: #FFC955;"></span></address> |
29 | <address class="card__line">{{$house->address }}</address> | 29 | <address class="card__line">{{$house->address }}</address> |
30 | <div class="card__line">Площадь: <b>{{$house->area}} м2</b></div> | 30 | <div class="card__line">Площадь: <b>{{$house->area}} м2</b></div> |
31 | <div class="card__line">Цена за м<sup>2</sup>: <b>{{ $house->price_m2 }}₽</b></div> | 31 | <div class="card__line">Цена за м<sup>2</sup>: <b>{{ $house->price_m2 }}₽</b></div> |
32 | </div> | 32 | </div> |
33 | <? switch ($house->format_house) { | 33 | <? switch ($house->format_house) { |
34 | case 'Аренда': | 34 | case 'Аренда': |
35 | $comment = "<span>в месяц</span>"; | 35 | $comment = "<span>в месяц</span>"; |
36 | break; | 36 | break; |
37 | case 'Продажа': | 37 | case 'Продажа': |
38 | $comment = ""; | 38 | $comment = ""; |
39 | break; | 39 | break; |
40 | case 'Бизнес': | 40 | case 'Бизнес': |
41 | $comment= "<span>в месяц</span>"; | 41 | $comment= "<span>в месяц</span>"; |
42 | break; | 42 | break; |
43 | case 'Арендованные': | 43 | case 'Арендованные': |
44 | $comment = "<span>в месяц</span>"; | 44 | $comment = "<span>в месяц</span>"; |
45 | break; | 45 | break; |
46 | } | 46 | } |
47 | ?> | 47 | ?> |
48 | <div class="card__price"><span>{{ $house->price }} ₽ </span><? echo $comment; ?> | 48 | <div class="card__price"><span>{{ $house->price }} ₽ </span><? echo $comment; ?> |
49 | </div><a class="card__btn btn btn--bordered" href="{{ route('offer', ['house' => $house->id]) }}">Подробнее</a> | 49 | </div><a class="card__btn btn btn--bordered" href="{{ route('offer', ['house' => $house->id]) }}">Подробнее</a> |
50 | </div> | 50 | </div> |
51 | </div> | 51 | </div> |
52 | </div> | 52 | </div> |
53 | 53 |
resources/views/catalogs/house_mini.blade.php
1 | <div class="card"> | 1 | <div class="card"> |
2 | <div class="card__top"> | 2 | <div class="card__top"> |
3 | @if (empty($house->foto_main)) | 3 | @if (empty($house->foto_main)) |
4 | 4 | ||
5 | @else | 5 | @else |
6 | <img src="{{ asset($house->foto_main) }}" alt="{{ $house->title }}" loading="lazy"/> | 6 | <img src="{{ asset(Storage::url($house->foto_main)) }}" alt="{{ $house->title }}" loading="lazy"/> |
7 | @endif; | 7 | @endif; |
8 | 8 | ||
9 | <h3 class="card__title">{{$house->typearea->name_type }}</h3> | 9 | <h3 class="card__title">{{$house->typearea->name_type }}</h3> |
10 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites <?=\App\Classes\RusDate::selected_item($house->id);?>" data-val="{{$house->id}}" id="card_favorite{{$house->id}}" name="card_favorite{{$house->id}}"> | 10 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites <?=\App\Classes\RusDate::selected_item($house->id);?>" data-val="{{$house->id}}" id="card_favorite{{$house->id}}" name="card_favorite{{$house->id}}"> |
11 | <svg width="18" height="18"> | 11 | <svg width="18" height="18"> |
12 | <use xlink:href="{{ asset('images/sprite.svg#card-favorites-empty') }}"></use> | 12 | <use xlink:href="{{ asset('images/sprite.svg#card-favorites-empty') }}"></use> |
13 | </svg> | 13 | </svg> |
14 | <svg width="18" height="18"> | 14 | <svg width="18" height="18"> |
15 | <use xlink:href="{{ asset('images/sprite.svg#card-favorites') }}"></use> | 15 | <use xlink:href="{{ asset('images/sprite.svg#card-favorites') }}"></use> |
16 | </svg></span><a class="card__label card__label-messenger" href="#"> | 16 | </svg></span><a class="card__label card__label-messenger" href="#"> |
17 | <svg width="25" height="25"> | 17 | <svg width="25" height="25"> |
18 | <use xlink:href="{{ asset('images/sprite.svg#card-messenger') }}"></use> | 18 | <use xlink:href="{{ asset('images/sprite.svg#card-messenger') }}"></use> |
19 | </svg></a></div> | 19 | </svg></a></div> |
20 | </div> | 20 | </div> |
21 | <div class="card__cnt"> | 21 | <div class="card__cnt"> |
22 | <div class="card__info"> | 22 | <div class="card__info"> |
23 | <address class="card__line card__line-complex">{{ $house->areas->name_area }}</address> | 23 | <address class="card__line card__line-complex">{{ $house->areas->name_area }}</address> |
24 | <address class="card__line">{{$house->metro}} ({{$house->description_metro }})<span style="background-color: #FFC955;"></span></address> | 24 | <address class="card__line">{{$house->metro}} ({{$house->description_metro }})<span style="background-color: #FFC955;"></span></address> |
25 | <address class="card__line">{{$house->address }}</address> | 25 | <address class="card__line">{{$house->address }}</address> |
26 | <div class="card__line">Площадь: <b>{{$house->area}} м2</b></div> | 26 | <div class="card__line">Площадь: <b>{{$house->area}} м2</b></div> |
27 | <div class="card__line">Цена за м<sup>2</sup>: <b>{{ $house->price_m2 }}₽</b></div> | 27 | <div class="card__line">Цена за м<sup>2</sup>: <b>{{ $house->price_m2 }}₽</b></div> |
28 | </div> | 28 | </div> |
29 | <? switch ($house->format_house) { | 29 | <? switch ($house->format_house) { |
30 | case 'Аренда': | 30 | case 'Аренда': |
31 | $comment = "<span>в месяц</span>"; | 31 | $comment = "<span>в месяц</span>"; |
32 | break; | 32 | break; |
33 | case 'Продажа': | 33 | case 'Продажа': |
34 | $comment = ""; | 34 | $comment = ""; |
35 | break; | 35 | break; |
36 | case 'Бизнес': | 36 | case 'Бизнес': |
37 | $comment= "<span>в месяц</span>"; | 37 | $comment= "<span>в месяц</span>"; |
38 | break; | 38 | break; |
39 | case 'Арендованные': | 39 | case 'Арендованные': |
40 | $comment = "<span>в месяц</span>"; | 40 | $comment = "<span>в месяц</span>"; |
41 | break; | 41 | break; |
42 | } | 42 | } |
43 | ?> | 43 | ?> |
44 | <div class="card__price"><span>{{ $house->price }} ₽ </span><? echo $comment; ?> | 44 | <div class="card__price"><span>{{ $house->price }} ₽ </span><? echo $comment; ?> |
45 | </div><a class="card__btn btn btn--bordered" href="{{ route('offer', ['house' => $house->id]) }}">Подробнее</a> | 45 | </div><a class="card__btn btn btn--bordered" href="{{ route('offer', ['house' => $house->id]) }}">Подробнее</a> |
46 | </div> | 46 | </div> |
47 | </div> | 47 | </div> |
48 | 48 | ||
49 | 49 |
resources/views/catalogs/new.blade.php
1 | <div class="swiper-slide"> | 1 | <div class="swiper-slide"> |
2 | <div class="card-news"> | 2 | <div class="card-news"> |
3 | <div class="card-news__top"><img src="{{ asset($new->foto) }}" alt="{{ $new->title }}" loading="lazy"> | 3 | <div class="card-news__top"> |
4 | <? if (empty($new->foto)) {?> | ||
5 | |||
6 | <?} else {?> | ||
7 | <img src="{{ asset(Storage::url($new->foto)) }}" alt="{{ $new->title }}" loading="lazy"> | ||
8 | <? } ?> | ||
4 | <div class="card-news__date"><span>{{ $new->created_at->format('d') }}</span><span>{{ \App\Classes\RusDate::russian_month($new->created_at->format('m')) }} {{$new->created_at->format('Y')}}</span></div> | 9 | <div class="card-news__date"><span>{{ $new->created_at->format('d') }}</span><span>{{ \App\Classes\RusDate::russian_month($new->created_at->format('m')) }} {{$new->created_at->format('Y')}}</span></div> |
5 | </div> | 10 | </div> |
6 | <div class="card-news__cnt"> | 11 | <div class="card-news__cnt"> |
7 | <p class="card-news__descr">{{ $new->title }}</p><a class="card-news__link" href="{{ route('new', ['news' => $new->id]) }}">Подробнее | 12 | <p class="card-news__descr">{{ $new->title }}</p><a class="card-news__link" href="{{ route('new', ['news' => $new->id]) }}">Подробнее |
8 | <svg width="17" height="12"> | 13 | <svg width="17" height="12"> |
9 | <use xlink:href="{{ asset('images/sprite.svg#card-news-link-arrow') }}"></use> | 14 | <use xlink:href="{{ asset('images/sprite.svg#card-news-link-arrow') }}"></use> |
10 | </svg></a> | 15 | </svg></a> |
11 | </div> | 16 | </div> |
12 | </div> | 17 | </div> |
13 | </div> | 18 | </div> |
14 | 19 |
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 | <script> | 4 | <script> |
5 | $(document).on('click', '.js_sort_group_item', function() { | 5 | $(document).on('click', '.js_sort_group_item', function() { |
6 | var val = $(this).data('val'); | 6 | var val = $(this).data('val'); |
7 | var sort_price_val = ''; | 7 | var sort_price_val = ''; |
8 | var sort_area_val = ''; | 8 | var sort_area_val = ''; |
9 | var sort_new_val = ''; | 9 | var sort_new_val = ''; |
10 | 10 | ||
11 | $('.sort-price').each(function() { | 11 | $('.sort-price').each(function() { |
12 | var this_ = $(this); | 12 | var this_ = $(this); |
13 | var v = $(this).data('val'); | 13 | var v = $(this).data('val'); |
14 | if (this_.hasClass('active')) | 14 | if (this_.hasClass('active')) |
15 | sort_price_val = v; | 15 | sort_price_val = v; |
16 | }); | 16 | }); |
17 | 17 | ||
18 | $('.sort-new').each(function() { | 18 | $('.sort-new').each(function() { |
19 | var v = $(this).data('val'); | 19 | var v = $(this).data('val'); |
20 | var this_ = $(this); | 20 | var this_ = $(this); |
21 | if (this_.hasClass('active')) | 21 | if (this_.hasClass('active')) |
22 | sort_new_val = v; | 22 | sort_new_val = v; |
23 | }); | 23 | }); |
24 | 24 | ||
25 | $('.sort-area').each(function() { | 25 | $('.sort-area').each(function() { |
26 | var v = $(this).data('val'); | 26 | var v = $(this).data('val'); |
27 | var this_ = $(this); | 27 | var this_ = $(this); |
28 | if (this_.hasClass('active')) | 28 | if (this_.hasClass('active')) |
29 | sort_area_val = v; | 29 | sort_area_val = v; |
30 | 30 | ||
31 | }); | 31 | }); |
32 | 32 | ||
33 | console.log('-------------------'); | 33 | console.log('-------------------'); |
34 | $.ajax({ | 34 | $.ajax({ |
35 | type: "GET", | 35 | type: "GET", |
36 | url: "{{ route('complex', ['area' => $area->id]) }}", | 36 | 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+"", | 37 | data: "view=arenda&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"", |
38 | success: function(data) { | 38 | success: function(data) { |
39 | console.log('Успешно обновлены данные АРЕНДА таблиц '+data); | 39 | console.log('Успешно обновлены данные АРЕНДА таблиц '+data); |
40 | $('#arenda_block').html(data); | 40 | $('#arenda_block').html(data); |
41 | }, | 41 | }, |
42 | headers: { | 42 | headers: { |
43 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 43 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
44 | }, | 44 | }, |
45 | error: function(data) { | 45 | error: function(data) { |
46 | console.log('Error: '+ data); | 46 | console.log('Error: '+ data); |
47 | } | 47 | } |
48 | }); | 48 | }); |
49 | 49 | ||
50 | $.ajax({ | 50 | $.ajax({ |
51 | type: "GET", | 51 | type: "GET", |
52 | url: "{{ route('complex', ['area' => $area->id]) }}", | 52 | 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+"", | 53 | data: "view=prodaja&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"", |
54 | success: function(data) { | 54 | success: function(data) { |
55 | console.log('Успешно обновлены данные ПРОДАЖА таблиц '+data); | 55 | console.log('Успешно обновлены данные ПРОДАЖА таблиц '+data); |
56 | $('#prodaja_block').html(data); | 56 | $('#prodaja_block').html(data); |
57 | }, | 57 | }, |
58 | headers: { | 58 | headers: { |
59 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 59 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
60 | }, | 60 | }, |
61 | error: function(data) { | 61 | error: function(data) { |
62 | console.log('Error: '+ data); | 62 | console.log('Error: '+ data); |
63 | } | 63 | } |
64 | }); | 64 | }); |
65 | 65 | ||
66 | $.ajax({ | 66 | $.ajax({ |
67 | type: "GET", | 67 | type: "GET", |
68 | url: "{{ route('complex', ['area' => $area->id]) }}", | 68 | 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+"", | 69 | data: "view=bissnes&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"", |
70 | success: function(data) { | 70 | success: function(data) { |
71 | console.log('Успешно обновлены данные БИЗНЕС таблиц '+data); | 71 | console.log('Успешно обновлены данные БИЗНЕС таблиц '+data); |
72 | $('#bissnes_block').html(data); | 72 | $('#bissnes_block').html(data); |
73 | }, | 73 | }, |
74 | headers: { | 74 | headers: { |
75 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 75 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
76 | }, | 76 | }, |
77 | error: function(data) { | 77 | error: function(data) { |
78 | console.log('Error: '+ data); | 78 | console.log('Error: '+ data); |
79 | } | 79 | } |
80 | }); | 80 | }); |
81 | 81 | ||
82 | $.ajax({ | 82 | $.ajax({ |
83 | type: "GET", | 83 | type: "GET", |
84 | url: "{{ route('complex', ['area' => $area->id]) }}", | 84 | 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+"", | 85 | data: "view=arendovannie&sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"", |
86 | success: function(data) { | 86 | success: function(data) { |
87 | console.log('Успешно обновлены данные таблиц '+data); | 87 | console.log('Успешно обновлены данные таблиц '+data); |
88 | $('#arendovannie_block').html(data); | 88 | $('#arendovannie_block').html(data); |
89 | //.append(data); | 89 | //.append(data); |
90 | }, | 90 | }, |
91 | headers: { | 91 | headers: { |
92 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 92 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
93 | }, | 93 | }, |
94 | error: function(data) { | 94 | error: function(data) { |
95 | console.log('Error: '+ data); | 95 | console.log('Error: '+ data); |
96 | } | 96 | } |
97 | }); | 97 | }); |
98 | 98 | ||
99 | } | 99 | } |
100 | ); | 100 | ); |
101 | </script> | 101 | </script> |
102 | @endsection | 102 | @endsection |
103 | 103 | ||
104 | @section('content') | 104 | @section('content') |
105 | <section class="intro" style="background-image:url({{ asset('images/intro-bg-1.jpg') }})"> | 105 | <section class="intro" style="background-image:url({{ asset('images/intro-bg-1.jpg') }})"> |
106 | <div class="container"> | 106 | <div class="container"> |
107 | <div class="intro__wrap"> | 107 | <div class="intro__wrap"> |
108 | <div class="breadcrumbs"> | 108 | <div class="breadcrumbs"> |
109 | <ul class="breadcrumbs__list"> | 109 | <ul class="breadcrumbs__list"> |
110 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> | 110 | <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> | 111 | <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> | 112 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">{{$area->name_area }}</span></li> |
113 | </ul> | 113 | </ul> |
114 | </div> | 114 | </div> |
115 | <div class="intro__inner"> | 115 | <div class="intro__inner"> |
116 | <div class="intro__cnt"> | 116 | <div class="intro__cnt"> |
117 | <h1 class="intro__title title-main">{{ $area->name_area }}</h1> | 117 | <h1 class="intro__title title-main">{{ $area->name_area }}</h1> |
118 | <p class="intro__descr">{{ $area->description }}</p> | 118 | <p class="intro__descr">{{ $area->description }}</p> |
119 | </div> | 119 | </div> |
120 | <div class="intro__swiper swiper"> | 120 | <div class="intro__swiper swiper"> |
121 | <div class="swiper-wrapper"> | 121 | <div class="swiper-wrapper"> |
122 | <? if (!empty($area->foto_main)) {?> | ||
123 | <div class="swiper-slide"> | ||
124 | <div class="intro-item"> | ||
125 | <div class="intro-item__img"><img src="{{ asset(Storage::url($area->foto_main)) }}" alt=""></div> | ||
126 | <a class="intro-item__btn js_intro_item_btn" href="{{ asset(Storage::url($area->foto_main)) }}" data-caption="{{ $area->name_area }}"> | ||
127 | <svg width="16" height="16"> | ||
128 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | ||
129 | </svg></a> | ||
130 | </div> | ||
131 | </div> | ||
132 | <? } ?> | ||
122 | <? $i = 1 ?> | 133 | <? $i = 1 ?> |
123 | @if ($area->fotos->count()) | 134 | @if ($area->fotos->count()) |
124 | @foreach($area->fotos as $img) | 135 | @foreach($area->fotos as $img) |
125 | <div class="swiper-slide"> | 136 | <div class="swiper-slide"> |
126 | <div class="intro-item"> | 137 | <div class="intro-item"> |
127 | <div class="intro-item__img"><img src="{{ asset($img->foto) }}" alt=""></div> | 138 | <div class="intro-item__img"><img src="{{ asset(Storage::url($img->foto)) }}" alt=""></div> |
128 | <a class="intro-item__btn js_intro_item_btn" href="{{ asset($img->foto) }}" data-caption="Фото {{ $i }}"> | 139 | <a class="intro-item__btn js_intro_item_btn" href="{{ asset(Storage::url($img->foto)) }}" data-caption="Фото {{ $i }}"> |
129 | <svg width="16" height="16"> | 140 | <svg width="16" height="16"> |
130 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 141 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
131 | </svg></a> | 142 | </svg></a> |
132 | </div> | 143 | </div> |
133 | </div> | 144 | </div> |
134 | <? $i++?> | 145 | <? $i++?> |
135 | @endforeach | 146 | @endforeach |
136 | @endif | 147 | @endif |
137 | <!--<div class="swiper-slide"> | 148 | <!--<div class="swiper-slide"> |
138 | <div class="intro-item"> | 149 | <div class="intro-item"> |
139 | <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"> | 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"> |
140 | <svg width="16" height="16"> | 151 | <svg width="16" height="16"> |
141 | <use xlink:href="images/sprite.svg#intro-item-btn"></use> | 152 | <use xlink:href="images/sprite.svg#intro-item-btn"></use> |
142 | </svg></a> | 153 | </svg></a> |
143 | </div> | 154 | </div> |
144 | </div> | 155 | </div> |
145 | <div class="swiper-slide"> | 156 | <div class="swiper-slide"> |
146 | <div class="intro-item"> | 157 | <div class="intro-item"> |
147 | <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"> | 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"> |
148 | <svg width="16" height="16"> | 159 | <svg width="16" height="16"> |
149 | <use xlink:href="images/sprite.svg#intro-item-btn"></use> | 160 | <use xlink:href="images/sprite.svg#intro-item-btn"></use> |
150 | </svg></a> | 161 | </svg></a> |
151 | </div> | 162 | </div> |
152 | </div> | 163 | </div> |
153 | <div class="swiper-slide"> | 164 | <div class="swiper-slide"> |
154 | <div class="intro-item"> | 165 | <div class="intro-item"> |
155 | <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"> | 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"> |
156 | <svg width="16" height="16"> | 167 | <svg width="16" height="16"> |
157 | <use xlink:href="images/sprite.svg#intro-item-btn"></use> | 168 | <use xlink:href="images/sprite.svg#intro-item-btn"></use> |
158 | </svg></a> | 169 | </svg></a> |
159 | </div> | 170 | </div> |
160 | </div> | 171 | </div> |
161 | <div class="swiper-slide"> | 172 | <div class="swiper-slide"> |
162 | <div class="intro-item"> | 173 | <div class="intro-item"> |
163 | <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"> | 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"> |
164 | <svg width="16" height="16"> | 175 | <svg width="16" height="16"> |
165 | <use xlink:href="images/sprite.svg#intro-item-btn"></use> | 176 | <use xlink:href="images/sprite.svg#intro-item-btn"></use> |
166 | </svg></a> | 177 | </svg></a> |
167 | </div> | 178 | </div> |
168 | </div>--> | 179 | </div>--> |
169 | </div> | 180 | </div> |
170 | <div class="swiper-pagination"></div> | 181 | <div class="swiper-pagination"></div> |
171 | <div class="swiper-button-prev"> | 182 | <div class="swiper-button-prev"> |
172 | <svg width="10" height="17"> | 183 | <svg width="10" height="17"> |
173 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 184 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
174 | </svg> | 185 | </svg> |
175 | </div> | 186 | </div> |
176 | <div class="swiper-button-next"> | 187 | <div class="swiper-button-next"> |
177 | <svg width="10" height="17"> | 188 | <svg width="10" height="17"> |
178 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 189 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
179 | </svg> | 190 | </svg> |
180 | </div> | 191 | </div> |
181 | </div> | 192 | </div> |
182 | </div> | 193 | </div> |
183 | </div> | 194 | </div> |
184 | </div> | 195 | </div> |
185 | </section> | 196 | </section> |
186 | <!-- СТРАНИЦА ЖК--> | 197 | <!-- СТРАНИЦА ЖК--> |
187 | <section class="complex"> | 198 | <section class="complex"> |
188 | <div class="container"> | 199 | <div class="container"> |
189 | <div class="complex__top top-catalog"> | 200 | <div class="complex__top top-catalog"> |
190 | <div class="top-catalog__inner"> | 201 | <div class="top-catalog__inner"> |
191 | <h2 class="top-catalog__title title">{{ $area->name_area }}</h2> | 202 | <h2 class="top-catalog__title title">{{ $area->name_area }}</h2> |
192 | <div class="top-catalog__result">Найдено объектов по Вашему запросу: <span><?=$house_arenda->count()+$house_prodaja->count()+$house_bissnes->count()+$house_arendovannie->count(); ?></span></div> | 203 | <div class="top-catalog__result">Найдено объектов по Вашему запросу: <span><?=$house_arenda->count()+$house_prodaja->count()+$house_bissnes->count()+$house_arendovannie->count(); ?></span></div> |
193 | </div> | 204 | </div> |
194 | <form class="top-catalog__sorts"> | 205 | <form class="top-catalog__sorts"> |
195 | <div class="top-catalog__sort-group sort-group js_sort_group"> | 206 | <div class="top-catalog__sort-group sort-group js_sort_group"> |
196 | <input class="js_sort_group_input" type="hidden"> | 207 | <input class="js_sort_group_input" type="hidden"> |
197 | <div class="sort-group__current js_sort_group_current">Сначала дешевле</div> | 208 | <div class="sort-group__current js_sort_group_current">Сначала дешевле</div> |
198 | <ul class="sort-group__list js_sort_group_list"> | 209 | <ul class="sort-group__list js_sort_group_list"> |
199 | <li class="sort-price sort-group__item js_sort_group_item active" data-val="1">Сначала дешевле</li> | 210 | <li class="sort-price sort-group__item js_sort_group_item active" data-val="1">Сначала дешевле</li> |
200 | <li class="sort-price sort-group__item js_sort_group_item" data-val="2">Сначала дороже</li> | 211 | <li class="sort-price sort-group__item js_sort_group_item" data-val="2">Сначала дороже</li> |
201 | </ul> | 212 | </ul> |
202 | </div> | 213 | </div> |
203 | <div class="top-catalog__sort-group sort-group js_sort_group"> | 214 | <div class="top-catalog__sort-group sort-group js_sort_group"> |
204 | <input class="js_sort_group_input" type="hidden"> | 215 | <input class="js_sort_group_input" type="hidden"> |
205 | <div class="sort-group__current js_sort_group_current">Сначала новые</div> | 216 | <div class="sort-group__current js_sort_group_current">Сначала новые</div> |
206 | <ul class="sort-group__list js_sort_group_list"> | 217 | <ul class="sort-group__list js_sort_group_list"> |
207 | <li class="sort-new sort-group__item js_sort_group_item active" data-val="1">Сначала новые</li> | 218 | <li class="sort-new sort-group__item js_sort_group_item active" data-val="1">Сначала новые</li> |
208 | <li class="sort-new sort-group__item js_sort_group_item" data-val="2">Сначала старые</li> | 219 | <li class="sort-new sort-group__item js_sort_group_item" data-val="2">Сначала старые</li> |
209 | </ul> | 220 | </ul> |
210 | </div> | 221 | </div> |
211 | <div class="top-catalog__sort-group sort-group sort-group--wide js_sort_group"> | 222 | <div class="top-catalog__sort-group sort-group sort-group--wide js_sort_group"> |
212 | <input class="js_sort_group_input" type="hidden"> | 223 | <input class="js_sort_group_input" type="hidden"> |
213 | <div class="sort-group__current js_sort_group_current">Сначала с большей площадью</div> | 224 | <div class="sort-group__current js_sort_group_current">Сначала с большей площадью</div> |
214 | <ul class="sort-group__list js_sort_group_list"> | 225 | <ul class="sort-group__list js_sort_group_list"> |
215 | <li class="sort-area sort-group__item js_sort_group_item active" data-val="1">Сначала с большей площадью</li> | 226 | <li class="sort-area sort-group__item js_sort_group_item active" data-val="1">Сначала с большей площадью</li> |
216 | <li class="sort-area sort-group__item js_sort_group_item" data-val="2">Сначала с меньшей площадью</li> | 227 | <li class="sort-area sort-group__item js_sort_group_item" data-val="2">Сначала с меньшей площадью</li> |
217 | </ul> | 228 | </ul> |
218 | </div> | 229 | </div> |
219 | </form> | 230 | </form> |
220 | </div> | 231 | </div> |
221 | </div> | 232 | </div> |
222 | <div class="complex__sliders"> | 233 | <div class="complex__sliders"> |
223 | <section class="slider"> | 234 | <section class="slider"> |
224 | <div class="container"> | 235 | <div class="container"> |
225 | <div class="slider__wrap"> | 236 | <div class="slider__wrap"> |
226 | <div class="slider__top"> | 237 | <div class="slider__top"> |
227 | <h2 class="slider__title title">Аренда торговых помещений</h2><a class="slider__more" href="#">Показать все объекты</a> | 238 | <h2 class="slider__title title">Аренда торговых помещений</h2><a class="slider__more" href="#">Показать все объекты</a> |
228 | <div class="slider__control"> | 239 | <div class="slider__control"> |
229 | <div class="swiper-button-prev"> | 240 | <div class="swiper-button-prev"> |
230 | <svg width="10" height="17"> | 241 | <svg width="10" height="17"> |
231 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 242 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
232 | </svg> | 243 | </svg> |
233 | </div> | 244 | </div> |
234 | <div class="swiper-button-next"> | 245 | <div class="swiper-button-next"> |
235 | <svg width="10" height="17"> | 246 | <svg width="10" height="17"> |
236 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 247 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
237 | </svg> | 248 | </svg> |
238 | </div> | 249 | </div> |
239 | </div> | 250 | </div> |
240 | </div> | 251 | </div> |
241 | <div class="slider__swiper swiper"> | 252 | <div class="slider__swiper swiper"> |
242 | <div class="swiper-wrapper" id="arenda_block"> | 253 | <div class="swiper-wrapper" id="arenda_block"> |
243 | @if ($house_arenda->count()) | 254 | @if ($house_arenda->count()) |
244 | @foreach ($house_arenda as $house1) | 255 | @foreach ($house_arenda as $house1) |
245 | @include('catalogs.elemhouse', ['house' => $house1]) | 256 | @include('catalogs.elemhouse', ['house' => $house1]) |
246 | @endforeach | 257 | @endforeach |
247 | @else | 258 | @else |
248 | <h3>Здесь пока что нет предложений</h3> | 259 | <h3>Здесь пока что нет предложений</h3> |
249 | @endif | 260 | @endif |
250 | <!--<div class="swiper-slide"> | 261 | <!--<div class="swiper-slide"> |
251 | <div class="card"> | 262 | <div class="card"> |
252 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 263 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
253 | <h3 class="card__title">Салон красоты</h3> | 264 | <h3 class="card__title">Салон красоты</h3> |
254 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 265 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
255 | <svg width="18" height="18"> | 266 | <svg width="18" height="18"> |
256 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 267 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
257 | </svg> | 268 | </svg> |
258 | <svg width="18" height="18"> | 269 | <svg width="18" height="18"> |
259 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 270 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
260 | </svg></span><a class="card__label card__label-messenger" href="#"> | 271 | </svg></span><a class="card__label card__label-messenger" href="#"> |
261 | <svg width="25" height="25"> | 272 | <svg width="25" height="25"> |
262 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 273 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
263 | </svg></a></div> | 274 | </svg></a></div> |
264 | </div> | 275 | </div> |
265 | <div class="card__cnt"> | 276 | <div class="card__cnt"> |
266 | <div class="card__info"> | 277 | <div class="card__info"> |
267 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 278 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
268 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 279 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
269 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 280 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
270 | <div class="card__line">Площадь: <b>556 м2</b></div> | 281 | <div class="card__line">Площадь: <b>556 м2</b></div> |
271 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 282 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
272 | </div> | 283 | </div> |
273 | <div class="card__price"><span>1 000 000 ₽</span> | 284 | <div class="card__price"><span>1 000 000 ₽</span> |
274 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 285 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
275 | </div> | 286 | </div> |
276 | </div> | 287 | </div> |
277 | </div> | 288 | </div> |
278 | <div class="swiper-slide"> | 289 | <div class="swiper-slide"> |
279 | <div class="card"> | 290 | <div class="card"> |
280 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 291 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
281 | <h3 class="card__title">Барбер-шоп</h3> | 292 | <h3 class="card__title">Барбер-шоп</h3> |
282 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 293 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
283 | <svg width="18" height="18"> | 294 | <svg width="18" height="18"> |
284 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 295 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
285 | </svg> | 296 | </svg> |
286 | <svg width="18" height="18"> | 297 | <svg width="18" height="18"> |
287 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 298 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
288 | </svg></span><a class="card__label card__label-messenger" href="#"> | 299 | </svg></span><a class="card__label card__label-messenger" href="#"> |
289 | <svg width="25" height="25"> | 300 | <svg width="25" height="25"> |
290 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 301 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
291 | </svg></a></div> | 302 | </svg></a></div> |
292 | </div> | 303 | </div> |
293 | <div class="card__cnt"> | 304 | <div class="card__cnt"> |
294 | <div class="card__info"> | 305 | <div class="card__info"> |
295 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 306 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
296 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 307 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
297 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 308 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
298 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 309 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
299 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 310 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
300 | </div> | 311 | </div> |
301 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 312 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
302 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 313 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
303 | </div> | 314 | </div> |
304 | </div> | 315 | </div> |
305 | </div> | 316 | </div> |
306 | <div class="swiper-slide"> | 317 | <div class="swiper-slide"> |
307 | <div class="card"> | 318 | <div class="card"> |
308 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 319 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
309 | <h3 class="card__title">Аптека</h3> | 320 | <h3 class="card__title">Аптека</h3> |
310 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 321 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
311 | <svg width="18" height="18"> | 322 | <svg width="18" height="18"> |
312 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 323 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
313 | </svg> | 324 | </svg> |
314 | <svg width="18" height="18"> | 325 | <svg width="18" height="18"> |
315 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 326 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
316 | </svg></span><a class="card__label card__label-messenger" href="#"> | 327 | </svg></span><a class="card__label card__label-messenger" href="#"> |
317 | <svg width="25" height="25"> | 328 | <svg width="25" height="25"> |
318 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 329 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
319 | </svg></a></div> | 330 | </svg></a></div> |
320 | </div> | 331 | </div> |
321 | <div class="card__cnt"> | 332 | <div class="card__cnt"> |
322 | <div class="card__info"> | 333 | <div class="card__info"> |
323 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 334 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
324 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 335 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
325 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 336 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
326 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 337 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
327 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 338 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
328 | </div> | 339 | </div> |
329 | <div class="card__price"><span>5 280 000 ₽</span> | 340 | <div class="card__price"><span>5 280 000 ₽</span> |
330 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 341 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
331 | </div> | 342 | </div> |
332 | </div> | 343 | </div> |
333 | </div> | 344 | </div> |
334 | <div class="swiper-slide"> | 345 | <div class="swiper-slide"> |
335 | <div class="card"> | 346 | <div class="card"> |
336 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 347 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
337 | <h3 class="card__title">Витрина</h3> | 348 | <h3 class="card__title">Витрина</h3> |
338 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 349 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
339 | <svg width="18" height="18"> | 350 | <svg width="18" height="18"> |
340 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 351 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
341 | </svg> | 352 | </svg> |
342 | <svg width="18" height="18"> | 353 | <svg width="18" height="18"> |
343 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 354 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
344 | </svg></span><a class="card__label card__label-messenger" href="#"> | 355 | </svg></span><a class="card__label card__label-messenger" href="#"> |
345 | <svg width="25" height="25"> | 356 | <svg width="25" height="25"> |
346 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 357 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
347 | </svg></a></div> | 358 | </svg></a></div> |
348 | </div> | 359 | </div> |
349 | <div class="card__cnt"> | 360 | <div class="card__cnt"> |
350 | <div class="card__info"> | 361 | <div class="card__info"> |
351 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 362 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
352 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 363 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
353 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 364 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
354 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 365 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
355 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 366 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
356 | </div> | 367 | </div> |
357 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 368 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
358 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 369 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
359 | </div> | 370 | </div> |
360 | </div> | 371 | </div> |
361 | </div> | 372 | </div> |
362 | <div class="swiper-slide"> | 373 | <div class="swiper-slide"> |
363 | <div class="card"> | 374 | <div class="card"> |
364 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 375 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
365 | <h3 class="card__title">Салон красоты</h3> | 376 | <h3 class="card__title">Салон красоты</h3> |
366 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 377 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
367 | <svg width="18" height="18"> | 378 | <svg width="18" height="18"> |
368 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 379 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
369 | </svg> | 380 | </svg> |
370 | <svg width="18" height="18"> | 381 | <svg width="18" height="18"> |
371 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 382 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
372 | </svg></span><a class="card__label card__label-messenger" href="#"> | 383 | </svg></span><a class="card__label card__label-messenger" href="#"> |
373 | <svg width="25" height="25"> | 384 | <svg width="25" height="25"> |
374 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 385 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
375 | </svg></a></div> | 386 | </svg></a></div> |
376 | </div> | 387 | </div> |
377 | <div class="card__cnt"> | 388 | <div class="card__cnt"> |
378 | <div class="card__info"> | 389 | <div class="card__info"> |
379 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 390 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
380 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 391 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
381 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 392 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
382 | <div class="card__line">Площадь: <b>556 м2</b></div> | 393 | <div class="card__line">Площадь: <b>556 м2</b></div> |
383 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 394 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
384 | </div> | 395 | </div> |
385 | <div class="card__price"><span>1 000 000 ₽</span> | 396 | <div class="card__price"><span>1 000 000 ₽</span> |
386 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 397 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
387 | </div> | 398 | </div> |
388 | </div> | 399 | </div> |
389 | </div> | 400 | </div> |
390 | <div class="swiper-slide"> | 401 | <div class="swiper-slide"> |
391 | <div class="card"> | 402 | <div class="card"> |
392 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 403 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
393 | <h3 class="card__title">Барбер-шоп</h3> | 404 | <h3 class="card__title">Барбер-шоп</h3> |
394 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 405 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
395 | <svg width="18" height="18"> | 406 | <svg width="18" height="18"> |
396 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 407 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
397 | </svg> | 408 | </svg> |
398 | <svg width="18" height="18"> | 409 | <svg width="18" height="18"> |
399 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 410 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
400 | </svg></span><a class="card__label card__label-messenger" href="#"> | 411 | </svg></span><a class="card__label card__label-messenger" href="#"> |
401 | <svg width="25" height="25"> | 412 | <svg width="25" height="25"> |
402 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 413 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
403 | </svg></a></div> | 414 | </svg></a></div> |
404 | </div> | 415 | </div> |
405 | <div class="card__cnt"> | 416 | <div class="card__cnt"> |
406 | <div class="card__info"> | 417 | <div class="card__info"> |
407 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 418 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
408 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 419 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
409 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 420 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
410 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 421 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
411 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 422 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
412 | </div> | 423 | </div> |
413 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 424 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
414 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 425 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
415 | </div> | 426 | </div> |
416 | </div> | 427 | </div> |
417 | </div> | 428 | </div> |
418 | <div class="swiper-slide"> | 429 | <div class="swiper-slide"> |
419 | <div class="card"> | 430 | <div class="card"> |
420 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 431 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
421 | <h3 class="card__title">Аптека</h3> | 432 | <h3 class="card__title">Аптека</h3> |
422 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 433 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
423 | <svg width="18" height="18"> | 434 | <svg width="18" height="18"> |
424 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 435 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
425 | </svg> | 436 | </svg> |
426 | <svg width="18" height="18"> | 437 | <svg width="18" height="18"> |
427 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 438 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
428 | </svg></span><a class="card__label card__label-messenger" href="#"> | 439 | </svg></span><a class="card__label card__label-messenger" href="#"> |
429 | <svg width="25" height="25"> | 440 | <svg width="25" height="25"> |
430 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 441 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
431 | </svg></a></div> | 442 | </svg></a></div> |
432 | </div> | 443 | </div> |
433 | <div class="card__cnt"> | 444 | <div class="card__cnt"> |
434 | <div class="card__info"> | 445 | <div class="card__info"> |
435 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 446 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
436 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 447 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
437 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 448 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
438 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 449 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
439 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 450 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
440 | </div> | 451 | </div> |
441 | <div class="card__price"><span>5 280 000 ₽</span> | 452 | <div class="card__price"><span>5 280 000 ₽</span> |
442 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 453 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
443 | </div> | 454 | </div> |
444 | </div> | 455 | </div> |
445 | </div> | 456 | </div> |
446 | <div class="swiper-slide"> | 457 | <div class="swiper-slide"> |
447 | <div class="card"> | 458 | <div class="card"> |
448 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 459 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
449 | <h3 class="card__title">Витрина</h3> | 460 | <h3 class="card__title">Витрина</h3> |
450 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 461 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
451 | <svg width="18" height="18"> | 462 | <svg width="18" height="18"> |
452 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 463 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
453 | </svg> | 464 | </svg> |
454 | <svg width="18" height="18"> | 465 | <svg width="18" height="18"> |
455 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 466 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
456 | </svg></span><a class="card__label card__label-messenger" href="#"> | 467 | </svg></span><a class="card__label card__label-messenger" href="#"> |
457 | <svg width="25" height="25"> | 468 | <svg width="25" height="25"> |
458 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 469 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
459 | </svg></a></div> | 470 | </svg></a></div> |
460 | </div> | 471 | </div> |
461 | <div class="card__cnt"> | 472 | <div class="card__cnt"> |
462 | <div class="card__info"> | 473 | <div class="card__info"> |
463 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 474 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
464 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 475 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
465 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 476 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
466 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 477 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
467 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 478 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
468 | </div> | 479 | </div> |
469 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 480 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
470 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 481 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
471 | </div> | 482 | </div> |
472 | </div> | 483 | </div> |
473 | </div>--> | 484 | </div>--> |
474 | </div> | 485 | </div> |
475 | </div> | 486 | </div> |
476 | <div class="swiper-pagination"></div> | 487 | <div class="swiper-pagination"></div> |
477 | </div> | 488 | </div> |
478 | </div> | 489 | </div> |
479 | </section> | 490 | </section> |
480 | <section class="slider"> | 491 | <section class="slider"> |
481 | <div class="container"> | 492 | <div class="container"> |
482 | <div class="slider__wrap"> | 493 | <div class="slider__wrap"> |
483 | <div class="slider__top"> | 494 | <div class="slider__top"> |
484 | <h2 class="slider__title title">Продажа торговых помещений</h2><a class="slider__more" href="#">Показать все объекты</a> | 495 | <h2 class="slider__title title">Продажа торговых помещений</h2><a class="slider__more" href="#">Показать все объекты</a> |
485 | <div class="slider__control"> | 496 | <div class="slider__control"> |
486 | <div class="swiper-button-prev"> | 497 | <div class="swiper-button-prev"> |
487 | <svg width="10" height="17"> | 498 | <svg width="10" height="17"> |
488 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 499 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
489 | </svg> | 500 | </svg> |
490 | </div> | 501 | </div> |
491 | <div class="swiper-button-next"> | 502 | <div class="swiper-button-next"> |
492 | <svg width="10" height="17"> | 503 | <svg width="10" height="17"> |
493 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 504 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
494 | </svg> | 505 | </svg> |
495 | </div> | 506 | </div> |
496 | </div> | 507 | </div> |
497 | </div> | 508 | </div> |
498 | <div class="slider__swiper swiper"> | 509 | <div class="slider__swiper swiper"> |
499 | <div class="swiper-wrapper" id="prodaja_block"> | 510 | <div class="swiper-wrapper" id="prodaja_block"> |
500 | @if ($house_prodaja->count()) | 511 | @if ($house_prodaja->count()) |
501 | @foreach ($house_prodaja as $house2) | 512 | @foreach ($house_prodaja as $house2) |
502 | @include('catalogs.elemhouse', ['house' => $house2]) | 513 | @include('catalogs.elemhouse', ['house' => $house2]) |
503 | @endforeach | 514 | @endforeach |
504 | @else | 515 | @else |
505 | <h3>Здесь пока что нет предложений</h3> | 516 | <h3>Здесь пока что нет предложений</h3> |
506 | @endif | 517 | @endif |
507 | 518 | ||
508 | 519 | ||
509 | <!--<div class="swiper-slide"> | 520 | <!--<div class="swiper-slide"> |
510 | <div class="card"> | 521 | <div class="card"> |
511 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 522 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
512 | <h3 class="card__title">Салон красоты</h3> | 523 | <h3 class="card__title">Салон красоты</h3> |
513 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 524 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
514 | <svg width="18" height="18"> | 525 | <svg width="18" height="18"> |
515 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 526 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
516 | </svg> | 527 | </svg> |
517 | <svg width="18" height="18"> | 528 | <svg width="18" height="18"> |
518 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 529 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
519 | </svg></span><a class="card__label card__label-messenger" href="#"> | 530 | </svg></span><a class="card__label card__label-messenger" href="#"> |
520 | <svg width="25" height="25"> | 531 | <svg width="25" height="25"> |
521 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 532 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
522 | </svg></a></div> | 533 | </svg></a></div> |
523 | </div> | 534 | </div> |
524 | <div class="card__cnt"> | 535 | <div class="card__cnt"> |
525 | <div class="card__info"> | 536 | <div class="card__info"> |
526 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 537 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
527 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 538 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
528 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 539 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
529 | <div class="card__line">Площадь: <b>556 м2</b></div> | 540 | <div class="card__line">Площадь: <b>556 м2</b></div> |
530 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 541 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
531 | </div> | 542 | </div> |
532 | <div class="card__price"><span>1 000 000 ₽</span> | 543 | <div class="card__price"><span>1 000 000 ₽</span> |
533 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 544 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
534 | </div> | 545 | </div> |
535 | </div> | 546 | </div> |
536 | </div> | 547 | </div> |
537 | <div class="swiper-slide"> | 548 | <div class="swiper-slide"> |
538 | <div class="card"> | 549 | <div class="card"> |
539 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 550 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
540 | <h3 class="card__title">Барбер-шоп</h3> | 551 | <h3 class="card__title">Барбер-шоп</h3> |
541 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 552 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
542 | <svg width="18" height="18"> | 553 | <svg width="18" height="18"> |
543 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 554 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
544 | </svg> | 555 | </svg> |
545 | <svg width="18" height="18"> | 556 | <svg width="18" height="18"> |
546 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 557 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
547 | </svg></span><a class="card__label card__label-messenger" href="#"> | 558 | </svg></span><a class="card__label card__label-messenger" href="#"> |
548 | <svg width="25" height="25"> | 559 | <svg width="25" height="25"> |
549 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 560 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
550 | </svg></a></div> | 561 | </svg></a></div> |
551 | </div> | 562 | </div> |
552 | <div class="card__cnt"> | 563 | <div class="card__cnt"> |
553 | <div class="card__info"> | 564 | <div class="card__info"> |
554 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 565 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
555 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 566 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
556 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 567 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
557 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 568 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
558 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 569 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
559 | </div> | 570 | </div> |
560 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 571 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
561 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 572 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
562 | </div> | 573 | </div> |
563 | </div> | 574 | </div> |
564 | </div> | 575 | </div> |
565 | <div class="swiper-slide"> | 576 | <div class="swiper-slide"> |
566 | <div class="card"> | 577 | <div class="card"> |
567 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 578 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
568 | <h3 class="card__title">Аптека</h3> | 579 | <h3 class="card__title">Аптека</h3> |
569 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 580 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
570 | <svg width="18" height="18"> | 581 | <svg width="18" height="18"> |
571 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 582 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
572 | </svg> | 583 | </svg> |
573 | <svg width="18" height="18"> | 584 | <svg width="18" height="18"> |
574 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 585 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
575 | </svg></span><a class="card__label card__label-messenger" href="#"> | 586 | </svg></span><a class="card__label card__label-messenger" href="#"> |
576 | <svg width="25" height="25"> | 587 | <svg width="25" height="25"> |
577 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 588 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
578 | </svg></a></div> | 589 | </svg></a></div> |
579 | </div> | 590 | </div> |
580 | <div class="card__cnt"> | 591 | <div class="card__cnt"> |
581 | <div class="card__info"> | 592 | <div class="card__info"> |
582 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 593 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
583 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 594 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
584 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 595 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
585 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 596 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
586 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 597 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
587 | </div> | 598 | </div> |
588 | <div class="card__price"><span>5 280 000 ₽</span> | 599 | <div class="card__price"><span>5 280 000 ₽</span> |
589 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 600 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
590 | </div> | 601 | </div> |
591 | </div> | 602 | </div> |
592 | </div> | 603 | </div> |
593 | <div class="swiper-slide"> | 604 | <div class="swiper-slide"> |
594 | <div class="card"> | 605 | <div class="card"> |
595 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 606 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
596 | <h3 class="card__title">Витрина</h3> | 607 | <h3 class="card__title">Витрина</h3> |
597 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 608 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
598 | <svg width="18" height="18"> | 609 | <svg width="18" height="18"> |
599 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 610 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
600 | </svg> | 611 | </svg> |
601 | <svg width="18" height="18"> | 612 | <svg width="18" height="18"> |
602 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 613 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
603 | </svg></span><a class="card__label card__label-messenger" href="#"> | 614 | </svg></span><a class="card__label card__label-messenger" href="#"> |
604 | <svg width="25" height="25"> | 615 | <svg width="25" height="25"> |
605 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 616 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
606 | </svg></a></div> | 617 | </svg></a></div> |
607 | </div> | 618 | </div> |
608 | <div class="card__cnt"> | 619 | <div class="card__cnt"> |
609 | <div class="card__info"> | 620 | <div class="card__info"> |
610 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 621 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
611 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 622 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
612 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 623 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
613 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 624 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
614 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 625 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
615 | </div> | 626 | </div> |
616 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 627 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
617 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 628 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
618 | </div> | 629 | </div> |
619 | </div> | 630 | </div> |
620 | </div> | 631 | </div> |
621 | <div class="swiper-slide"> | 632 | <div class="swiper-slide"> |
622 | <div class="card"> | 633 | <div class="card"> |
623 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 634 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
624 | <h3 class="card__title">Салон красоты</h3> | 635 | <h3 class="card__title">Салон красоты</h3> |
625 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 636 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
626 | <svg width="18" height="18"> | 637 | <svg width="18" height="18"> |
627 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 638 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
628 | </svg> | 639 | </svg> |
629 | <svg width="18" height="18"> | 640 | <svg width="18" height="18"> |
630 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 641 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
631 | </svg></span><a class="card__label card__label-messenger" href="#"> | 642 | </svg></span><a class="card__label card__label-messenger" href="#"> |
632 | <svg width="25" height="25"> | 643 | <svg width="25" height="25"> |
633 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 644 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
634 | </svg></a></div> | 645 | </svg></a></div> |
635 | </div> | 646 | </div> |
636 | <div class="card__cnt"> | 647 | <div class="card__cnt"> |
637 | <div class="card__info"> | 648 | <div class="card__info"> |
638 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 649 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
639 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 650 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
640 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 651 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
641 | <div class="card__line">Площадь: <b>556 м2</b></div> | 652 | <div class="card__line">Площадь: <b>556 м2</b></div> |
642 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 653 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
643 | </div> | 654 | </div> |
644 | <div class="card__price"><span>1 000 000 ₽</span> | 655 | <div class="card__price"><span>1 000 000 ₽</span> |
645 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 656 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
646 | </div> | 657 | </div> |
647 | </div> | 658 | </div> |
648 | </div> | 659 | </div> |
649 | <div class="swiper-slide"> | 660 | <div class="swiper-slide"> |
650 | <div class="card"> | 661 | <div class="card"> |
651 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 662 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
652 | <h3 class="card__title">Барбер-шоп</h3> | 663 | <h3 class="card__title">Барбер-шоп</h3> |
653 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 664 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
654 | <svg width="18" height="18"> | 665 | <svg width="18" height="18"> |
655 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 666 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
656 | </svg> | 667 | </svg> |
657 | <svg width="18" height="18"> | 668 | <svg width="18" height="18"> |
658 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 669 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
659 | </svg></span><a class="card__label card__label-messenger" href="#"> | 670 | </svg></span><a class="card__label card__label-messenger" href="#"> |
660 | <svg width="25" height="25"> | 671 | <svg width="25" height="25"> |
661 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 672 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
662 | </svg></a></div> | 673 | </svg></a></div> |
663 | </div> | 674 | </div> |
664 | <div class="card__cnt"> | 675 | <div class="card__cnt"> |
665 | <div class="card__info"> | 676 | <div class="card__info"> |
666 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 677 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
667 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 678 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
668 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 679 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
669 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 680 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
670 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 681 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
671 | </div> | 682 | </div> |
672 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 683 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
673 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 684 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
674 | </div> | 685 | </div> |
675 | </div> | 686 | </div> |
676 | </div> | 687 | </div> |
677 | <div class="swiper-slide"> | 688 | <div class="swiper-slide"> |
678 | <div class="card"> | 689 | <div class="card"> |
679 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 690 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
680 | <h3 class="card__title">Аптека</h3> | 691 | <h3 class="card__title">Аптека</h3> |
681 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 692 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
682 | <svg width="18" height="18"> | 693 | <svg width="18" height="18"> |
683 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 694 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
684 | </svg> | 695 | </svg> |
685 | <svg width="18" height="18"> | 696 | <svg width="18" height="18"> |
686 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 697 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
687 | </svg></span><a class="card__label card__label-messenger" href="#"> | 698 | </svg></span><a class="card__label card__label-messenger" href="#"> |
688 | <svg width="25" height="25"> | 699 | <svg width="25" height="25"> |
689 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 700 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
690 | </svg></a></div> | 701 | </svg></a></div> |
691 | </div> | 702 | </div> |
692 | <div class="card__cnt"> | 703 | <div class="card__cnt"> |
693 | <div class="card__info"> | 704 | <div class="card__info"> |
694 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 705 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
695 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 706 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
696 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 707 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
697 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 708 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
698 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 709 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
699 | </div> | 710 | </div> |
700 | <div class="card__price"><span>5 280 000 ₽</span> | 711 | <div class="card__price"><span>5 280 000 ₽</span> |
701 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 712 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
702 | </div> | 713 | </div> |
703 | </div> | 714 | </div> |
704 | </div> | 715 | </div> |
705 | <div class="swiper-slide"> | 716 | <div class="swiper-slide"> |
706 | <div class="card"> | 717 | <div class="card"> |
707 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 718 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
708 | <h3 class="card__title">Витрина</h3> | 719 | <h3 class="card__title">Витрина</h3> |
709 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 720 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
710 | <svg width="18" height="18"> | 721 | <svg width="18" height="18"> |
711 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 722 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
712 | </svg> | 723 | </svg> |
713 | <svg width="18" height="18"> | 724 | <svg width="18" height="18"> |
714 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 725 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
715 | </svg></span><a class="card__label card__label-messenger" href="#"> | 726 | </svg></span><a class="card__label card__label-messenger" href="#"> |
716 | <svg width="25" height="25"> | 727 | <svg width="25" height="25"> |
717 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 728 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
718 | </svg></a></div> | 729 | </svg></a></div> |
719 | </div> | 730 | </div> |
720 | <div class="card__cnt"> | 731 | <div class="card__cnt"> |
721 | <div class="card__info"> | 732 | <div class="card__info"> |
722 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 733 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
723 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 734 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
724 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 735 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
725 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 736 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
726 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 737 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
727 | </div> | 738 | </div> |
728 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 739 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
729 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 740 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
730 | </div> | 741 | </div> |
731 | </div> | 742 | </div> |
732 | </div>--> | 743 | </div>--> |
733 | </div> | 744 | </div> |
734 | </div> | 745 | </div> |
735 | <div class="swiper-pagination"></div> | 746 | <div class="swiper-pagination"></div> |
736 | </div> | 747 | </div> |
737 | </div> | 748 | </div> |
738 | </section> | 749 | </section> |
739 | <section class="slider"> | 750 | <section class="slider"> |
740 | <div class="container"> | 751 | <div class="container"> |
741 | <div class="slider__wrap"> | 752 | <div class="slider__wrap"> |
742 | <div class="slider__top"> | 753 | <div class="slider__top"> |
743 | <h2 class="slider__title title">Арендный бизнес</h2><a class="slider__more" href="#">Показать все объекты</a> | 754 | <h2 class="slider__title title">Арендный бизнес</h2><a class="slider__more" href="#">Показать все объекты</a> |
744 | <div class="slider__control"> | 755 | <div class="slider__control"> |
745 | <div class="swiper-button-prev"> | 756 | <div class="swiper-button-prev"> |
746 | <svg width="10" height="17"> | 757 | <svg width="10" height="17"> |
747 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 758 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
748 | </svg> | 759 | </svg> |
749 | </div> | 760 | </div> |
750 | <div class="swiper-button-next"> | 761 | <div class="swiper-button-next"> |
751 | <svg width="10" height="17"> | 762 | <svg width="10" height="17"> |
752 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 763 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
753 | </svg> | 764 | </svg> |
754 | </div> | 765 | </div> |
755 | </div> | 766 | </div> |
756 | </div> | 767 | </div> |
757 | <div class="slider__swiper swiper"> | 768 | <div class="slider__swiper swiper"> |
758 | <div class="swiper-wrapper" id="bissnes_block"> | 769 | <div class="swiper-wrapper" id="bissnes_block"> |
759 | @if ($house_bissnes->count()) | 770 | @if ($house_bissnes->count()) |
760 | @foreach ($house_bissnes as $house3) | 771 | @foreach ($house_bissnes as $house3) |
761 | @include('catalogs.elemhouse', ['house' => $house3]) | 772 | @include('catalogs.elemhouse', ['house' => $house3]) |
762 | @endforeach | 773 | @endforeach |
763 | @else | 774 | @else |
764 | <h3>Здесь пока что нет предложений</h3> | 775 | <h3>Здесь пока что нет предложений</h3> |
765 | @endif | 776 | @endif |
766 | <!--<div class="swiper-slide"> | 777 | <!--<div class="swiper-slide"> |
767 | <div class="card"> | 778 | <div class="card"> |
768 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 779 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
769 | <h3 class="card__title">Салон красоты</h3> | 780 | <h3 class="card__title">Салон красоты</h3> |
770 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 781 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
771 | <svg width="18" height="18"> | 782 | <svg width="18" height="18"> |
772 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 783 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
773 | </svg> | 784 | </svg> |
774 | <svg width="18" height="18"> | 785 | <svg width="18" height="18"> |
775 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 786 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
776 | </svg></span><a class="card__label card__label-messenger" href="#"> | 787 | </svg></span><a class="card__label card__label-messenger" href="#"> |
777 | <svg width="25" height="25"> | 788 | <svg width="25" height="25"> |
778 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 789 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
779 | </svg></a></div> | 790 | </svg></a></div> |
780 | </div> | 791 | </div> |
781 | <div class="card__cnt"> | 792 | <div class="card__cnt"> |
782 | <div class="card__info"> | 793 | <div class="card__info"> |
783 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 794 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
784 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 795 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
785 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 796 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
786 | <div class="card__line">Площадь: <b>556 м2</b></div> | 797 | <div class="card__line">Площадь: <b>556 м2</b></div> |
787 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 798 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
788 | </div> | 799 | </div> |
789 | <div class="card__price"><span>1 000 000 ₽</span> | 800 | <div class="card__price"><span>1 000 000 ₽</span> |
790 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 801 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
791 | </div> | 802 | </div> |
792 | </div> | 803 | </div> |
793 | </div> | 804 | </div> |
794 | <div class="swiper-slide"> | 805 | <div class="swiper-slide"> |
795 | <div class="card"> | 806 | <div class="card"> |
796 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 807 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
797 | <h3 class="card__title">Барбер-шоп</h3> | 808 | <h3 class="card__title">Барбер-шоп</h3> |
798 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 809 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
799 | <svg width="18" height="18"> | 810 | <svg width="18" height="18"> |
800 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 811 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
801 | </svg> | 812 | </svg> |
802 | <svg width="18" height="18"> | 813 | <svg width="18" height="18"> |
803 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 814 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
804 | </svg></span><a class="card__label card__label-messenger" href="#"> | 815 | </svg></span><a class="card__label card__label-messenger" href="#"> |
805 | <svg width="25" height="25"> | 816 | <svg width="25" height="25"> |
806 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 817 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
807 | </svg></a></div> | 818 | </svg></a></div> |
808 | </div> | 819 | </div> |
809 | <div class="card__cnt"> | 820 | <div class="card__cnt"> |
810 | <div class="card__info"> | 821 | <div class="card__info"> |
811 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 822 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
812 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 823 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
813 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 824 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
814 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 825 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
815 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 826 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
816 | </div> | 827 | </div> |
817 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 828 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
818 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 829 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
819 | </div> | 830 | </div> |
820 | </div> | 831 | </div> |
821 | </div> | 832 | </div> |
822 | <div class="swiper-slide"> | 833 | <div class="swiper-slide"> |
823 | <div class="card"> | 834 | <div class="card"> |
824 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 835 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
825 | <h3 class="card__title">Аптека</h3> | 836 | <h3 class="card__title">Аптека</h3> |
826 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 837 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
827 | <svg width="18" height="18"> | 838 | <svg width="18" height="18"> |
828 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 839 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
829 | </svg> | 840 | </svg> |
830 | <svg width="18" height="18"> | 841 | <svg width="18" height="18"> |
831 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 842 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
832 | </svg></span><a class="card__label card__label-messenger" href="#"> | 843 | </svg></span><a class="card__label card__label-messenger" href="#"> |
833 | <svg width="25" height="25"> | 844 | <svg width="25" height="25"> |
834 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 845 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
835 | </svg></a></div> | 846 | </svg></a></div> |
836 | </div> | 847 | </div> |
837 | <div class="card__cnt"> | 848 | <div class="card__cnt"> |
838 | <div class="card__info"> | 849 | <div class="card__info"> |
839 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 850 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
840 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 851 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
841 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 852 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
842 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 853 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
843 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 854 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
844 | </div> | 855 | </div> |
845 | <div class="card__price"><span>5 280 000 ₽</span> | 856 | <div class="card__price"><span>5 280 000 ₽</span> |
846 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 857 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
847 | </div> | 858 | </div> |
848 | </div> | 859 | </div> |
849 | </div> | 860 | </div> |
850 | <div class="swiper-slide"> | 861 | <div class="swiper-slide"> |
851 | <div class="card"> | 862 | <div class="card"> |
852 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 863 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
853 | <h3 class="card__title">Витрина</h3> | 864 | <h3 class="card__title">Витрина</h3> |
854 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 865 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
855 | <svg width="18" height="18"> | 866 | <svg width="18" height="18"> |
856 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 867 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
857 | </svg> | 868 | </svg> |
858 | <svg width="18" height="18"> | 869 | <svg width="18" height="18"> |
859 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 870 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
860 | </svg></span><a class="card__label card__label-messenger" href="#"> | 871 | </svg></span><a class="card__label card__label-messenger" href="#"> |
861 | <svg width="25" height="25"> | 872 | <svg width="25" height="25"> |
862 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 873 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
863 | </svg></a></div> | 874 | </svg></a></div> |
864 | </div> | 875 | </div> |
865 | <div class="card__cnt"> | 876 | <div class="card__cnt"> |
866 | <div class="card__info"> | 877 | <div class="card__info"> |
867 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 878 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
868 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 879 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
869 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 880 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
870 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 881 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
871 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 882 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
872 | </div> | 883 | </div> |
873 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 884 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
874 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 885 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
875 | </div> | 886 | </div> |
876 | </div> | 887 | </div> |
877 | </div> | 888 | </div> |
878 | <div class="swiper-slide"> | 889 | <div class="swiper-slide"> |
879 | <div class="card"> | 890 | <div class="card"> |
880 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 891 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
881 | <h3 class="card__title">Салон красоты</h3> | 892 | <h3 class="card__title">Салон красоты</h3> |
882 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 893 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
883 | <svg width="18" height="18"> | 894 | <svg width="18" height="18"> |
884 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 895 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
885 | </svg> | 896 | </svg> |
886 | <svg width="18" height="18"> | 897 | <svg width="18" height="18"> |
887 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 898 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
888 | </svg></span><a class="card__label card__label-messenger" href="#"> | 899 | </svg></span><a class="card__label card__label-messenger" href="#"> |
889 | <svg width="25" height="25"> | 900 | <svg width="25" height="25"> |
890 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 901 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
891 | </svg></a></div> | 902 | </svg></a></div> |
892 | </div> | 903 | </div> |
893 | <div class="card__cnt"> | 904 | <div class="card__cnt"> |
894 | <div class="card__info"> | 905 | <div class="card__info"> |
895 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 906 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
896 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 907 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
897 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 908 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
898 | <div class="card__line">Площадь: <b>556 м2</b></div> | 909 | <div class="card__line">Площадь: <b>556 м2</b></div> |
899 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 910 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
900 | </div> | 911 | </div> |
901 | <div class="card__price"><span>1 000 000 ₽</span> | 912 | <div class="card__price"><span>1 000 000 ₽</span> |
902 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 913 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
903 | </div> | 914 | </div> |
904 | </div> | 915 | </div> |
905 | </div> | 916 | </div> |
906 | <div class="swiper-slide"> | 917 | <div class="swiper-slide"> |
907 | <div class="card"> | 918 | <div class="card"> |
908 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 919 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
909 | <h3 class="card__title">Барбер-шоп</h3> | 920 | <h3 class="card__title">Барбер-шоп</h3> |
910 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 921 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
911 | <svg width="18" height="18"> | 922 | <svg width="18" height="18"> |
912 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 923 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
913 | </svg> | 924 | </svg> |
914 | <svg width="18" height="18"> | 925 | <svg width="18" height="18"> |
915 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 926 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
916 | </svg></span><a class="card__label card__label-messenger" href="#"> | 927 | </svg></span><a class="card__label card__label-messenger" href="#"> |
917 | <svg width="25" height="25"> | 928 | <svg width="25" height="25"> |
918 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 929 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
919 | </svg></a></div> | 930 | </svg></a></div> |
920 | </div> | 931 | </div> |
921 | <div class="card__cnt"> | 932 | <div class="card__cnt"> |
922 | <div class="card__info"> | 933 | <div class="card__info"> |
923 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 934 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
924 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 935 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
925 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 936 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
926 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 937 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
927 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 938 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
928 | </div> | 939 | </div> |
929 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 940 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
930 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 941 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
931 | </div> | 942 | </div> |
932 | </div> | 943 | </div> |
933 | </div> | 944 | </div> |
934 | <div class="swiper-slide"> | 945 | <div class="swiper-slide"> |
935 | <div class="card"> | 946 | <div class="card"> |
936 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 947 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
937 | <h3 class="card__title">Аптека</h3> | 948 | <h3 class="card__title">Аптека</h3> |
938 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 949 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
939 | <svg width="18" height="18"> | 950 | <svg width="18" height="18"> |
940 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 951 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
941 | </svg> | 952 | </svg> |
942 | <svg width="18" height="18"> | 953 | <svg width="18" height="18"> |
943 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 954 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
944 | </svg></span><a class="card__label card__label-messenger" href="#"> | 955 | </svg></span><a class="card__label card__label-messenger" href="#"> |
945 | <svg width="25" height="25"> | 956 | <svg width="25" height="25"> |
946 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 957 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
947 | </svg></a></div> | 958 | </svg></a></div> |
948 | </div> | 959 | </div> |
949 | <div class="card__cnt"> | 960 | <div class="card__cnt"> |
950 | <div class="card__info"> | 961 | <div class="card__info"> |
951 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 962 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
952 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 963 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
953 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 964 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
954 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 965 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
955 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 966 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
956 | </div> | 967 | </div> |
957 | <div class="card__price"><span>5 280 000 ₽</span> | 968 | <div class="card__price"><span>5 280 000 ₽</span> |
958 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 969 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
959 | </div> | 970 | </div> |
960 | </div> | 971 | </div> |
961 | </div> | 972 | </div> |
962 | <div class="swiper-slide"> | 973 | <div class="swiper-slide"> |
963 | <div class="card"> | 974 | <div class="card"> |
964 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 975 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
965 | <h3 class="card__title">Витрина</h3> | 976 | <h3 class="card__title">Витрина</h3> |
966 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 977 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
967 | <svg width="18" height="18"> | 978 | <svg width="18" height="18"> |
968 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 979 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
969 | </svg> | 980 | </svg> |
970 | <svg width="18" height="18"> | 981 | <svg width="18" height="18"> |
971 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 982 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
972 | </svg></span><a class="card__label card__label-messenger" href="#"> | 983 | </svg></span><a class="card__label card__label-messenger" href="#"> |
973 | <svg width="25" height="25"> | 984 | <svg width="25" height="25"> |
974 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 985 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
975 | </svg></a></div> | 986 | </svg></a></div> |
976 | </div> | 987 | </div> |
977 | <div class="card__cnt"> | 988 | <div class="card__cnt"> |
978 | <div class="card__info"> | 989 | <div class="card__info"> |
979 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 990 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
980 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 991 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
981 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 992 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
982 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 993 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
983 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 994 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
984 | </div> | 995 | </div> |
985 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 996 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
986 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 997 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
987 | </div> | 998 | </div> |
988 | </div> | 999 | </div> |
989 | </div>--> | 1000 | </div>--> |
990 | </div> | 1001 | </div> |
991 | </div> | 1002 | </div> |
992 | <div class="swiper-pagination"></div> | 1003 | <div class="swiper-pagination"></div> |
993 | </div> | 1004 | </div> |
994 | </div> | 1005 | </div> |
995 | </section> | 1006 | </section> |
996 | <section class="slider"> | 1007 | <section class="slider"> |
997 | <div class="container"> | 1008 | <div class="container"> |
998 | <div class="slider__wrap"> | 1009 | <div class="slider__wrap"> |
999 | <div class="slider__top"> | 1010 | <div class="slider__top"> |
1000 | <h2 class="slider__title title">Арендованные</h2><a class="slider__more" href="#">Показать все объекты</a> | 1011 | <h2 class="slider__title title">Арендованные</h2><a class="slider__more" href="#">Показать все объекты</a> |
1001 | <div class="slider__control"> | 1012 | <div class="slider__control"> |
1002 | <div class="swiper-button-prev"> | 1013 | <div class="swiper-button-prev"> |
1003 | <svg width="10" height="17"> | 1014 | <svg width="10" height="17"> |
1004 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 1015 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
1005 | </svg> | 1016 | </svg> |
1006 | </div> | 1017 | </div> |
1007 | <div class="swiper-button-next"> | 1018 | <div class="swiper-button-next"> |
1008 | <svg width="10" height="17"> | 1019 | <svg width="10" height="17"> |
1009 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 1020 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
1010 | </svg> | 1021 | </svg> |
1011 | </div> | 1022 | </div> |
1012 | </div> | 1023 | </div> |
1013 | </div> | 1024 | </div> |
1014 | <div class="slider__swiper swiper"> | 1025 | <div class="slider__swiper swiper"> |
1015 | <div class="swiper-wrapper" id="arendovannie_block"> | 1026 | <div class="swiper-wrapper" id="arendovannie_block"> |
1016 | @if ($house_arendovannie->count()) | 1027 | @if ($house_arendovannie->count()) |
1017 | @foreach ($house_arendovannie as $house1) | 1028 | @foreach ($house_arendovannie as $house1) |
1018 | @include('catalogs.elemhouse', ['house' => $house1]) | 1029 | @include('catalogs.elemhouse', ['house' => $house1]) |
1019 | @endforeach | 1030 | @endforeach |
1020 | @else | 1031 | @else |
1021 | <h3>Здесь пока что нет предложений</h3> | 1032 | <h3>Здесь пока что нет предложений</h3> |
1022 | @endif | 1033 | @endif |
1023 | <!--<div class="swiper-slide"> | 1034 | <!--<div class="swiper-slide"> |
1024 | <div class="card"> | 1035 | <div class="card"> |
1025 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 1036 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
1026 | <h3 class="card__title">Салон красоты</h3> | 1037 | <h3 class="card__title">Салон красоты</h3> |
1027 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 1038 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
1028 | <svg width="18" height="18"> | 1039 | <svg width="18" height="18"> |
1029 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 1040 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
1030 | </svg> | 1041 | </svg> |
1031 | <svg width="18" height="18"> | 1042 | <svg width="18" height="18"> |
1032 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 1043 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
1033 | </svg></span><a class="card__label card__label-messenger" href="#"> | 1044 | </svg></span><a class="card__label card__label-messenger" href="#"> |
1034 | <svg width="25" height="25"> | 1045 | <svg width="25" height="25"> |
1035 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 1046 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
1036 | </svg></a></div> | 1047 | </svg></a></div> |
1037 | </div> | 1048 | </div> |
1038 | <div class="card__cnt"> | 1049 | <div class="card__cnt"> |
1039 | <div class="card__info"> | 1050 | <div class="card__info"> |
1040 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 1051 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
1041 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 1052 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
1042 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 1053 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
1043 | <div class="card__line">Площадь: <b>556 м2</b></div> | 1054 | <div class="card__line">Площадь: <b>556 м2</b></div> |
1044 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 1055 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
1045 | </div> | 1056 | </div> |
1046 | <div class="card__price"><span>1 000 000 ₽</span> | 1057 | <div class="card__price"><span>1 000 000 ₽</span> |
1047 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 1058 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
1048 | </div> | 1059 | </div> |
1049 | </div> | 1060 | </div> |
1050 | </div> | 1061 | </div> |
1051 | <div class="swiper-slide"> | 1062 | <div class="swiper-slide"> |
1052 | <div class="card"> | 1063 | <div class="card"> |
1053 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 1064 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
1054 | <h3 class="card__title">Барбер-шоп</h3> | 1065 | <h3 class="card__title">Барбер-шоп</h3> |
1055 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 1066 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
1056 | <svg width="18" height="18"> | 1067 | <svg width="18" height="18"> |
1057 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 1068 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
1058 | </svg> | 1069 | </svg> |
1059 | <svg width="18" height="18"> | 1070 | <svg width="18" height="18"> |
1060 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 1071 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
1061 | </svg></span><a class="card__label card__label-messenger" href="#"> | 1072 | </svg></span><a class="card__label card__label-messenger" href="#"> |
1062 | <svg width="25" height="25"> | 1073 | <svg width="25" height="25"> |
1063 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 1074 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
1064 | </svg></a></div> | 1075 | </svg></a></div> |
1065 | </div> | 1076 | </div> |
1066 | <div class="card__cnt"> | 1077 | <div class="card__cnt"> |
1067 | <div class="card__info"> | 1078 | <div class="card__info"> |
1068 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 1079 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
1069 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 1080 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
1070 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 1081 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
1071 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 1082 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
1072 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 1083 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
1073 | </div> | 1084 | </div> |
1074 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 1085 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
1075 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 1086 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
1076 | </div> | 1087 | </div> |
1077 | </div> | 1088 | </div> |
1078 | </div> | 1089 | </div> |
1079 | <div class="swiper-slide"> | 1090 | <div class="swiper-slide"> |
1080 | <div class="card"> | 1091 | <div class="card"> |
1081 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 1092 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
1082 | <h3 class="card__title">Аптека</h3> | 1093 | <h3 class="card__title">Аптека</h3> |
1083 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 1094 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
1084 | <svg width="18" height="18"> | 1095 | <svg width="18" height="18"> |
1085 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 1096 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
1086 | </svg> | 1097 | </svg> |
1087 | <svg width="18" height="18"> | 1098 | <svg width="18" height="18"> |
1088 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 1099 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
1089 | </svg></span><a class="card__label card__label-messenger" href="#"> | 1100 | </svg></span><a class="card__label card__label-messenger" href="#"> |
1090 | <svg width="25" height="25"> | 1101 | <svg width="25" height="25"> |
1091 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 1102 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
1092 | </svg></a></div> | 1103 | </svg></a></div> |
1093 | </div> | 1104 | </div> |
1094 | <div class="card__cnt"> | 1105 | <div class="card__cnt"> |
1095 | <div class="card__info"> | 1106 | <div class="card__info"> |
1096 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 1107 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
1097 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 1108 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
1098 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 1109 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
1099 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 1110 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
1100 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 1111 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
1101 | </div> | 1112 | </div> |
1102 | <div class="card__price"><span>5 280 000 ₽</span> | 1113 | <div class="card__price"><span>5 280 000 ₽</span> |
1103 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 1114 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
1104 | </div> | 1115 | </div> |
1105 | </div> | 1116 | </div> |
1106 | </div> | 1117 | </div> |
1107 | <div class="swiper-slide"> | 1118 | <div class="swiper-slide"> |
1108 | <div class="card"> | 1119 | <div class="card"> |
1109 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 1120 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
1110 | <h3 class="card__title">Витрина</h3> | 1121 | <h3 class="card__title">Витрина</h3> |
1111 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 1122 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
1112 | <svg width="18" height="18"> | 1123 | <svg width="18" height="18"> |
1113 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 1124 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
1114 | </svg> | 1125 | </svg> |
1115 | <svg width="18" height="18"> | 1126 | <svg width="18" height="18"> |
1116 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 1127 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
1117 | </svg></span><a class="card__label card__label-messenger" href="#"> | 1128 | </svg></span><a class="card__label card__label-messenger" href="#"> |
1118 | <svg width="25" height="25"> | 1129 | <svg width="25" height="25"> |
1119 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 1130 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
1120 | </svg></a></div> | 1131 | </svg></a></div> |
1121 | </div> | 1132 | </div> |
1122 | <div class="card__cnt"> | 1133 | <div class="card__cnt"> |
1123 | <div class="card__info"> | 1134 | <div class="card__info"> |
1124 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 1135 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
1125 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 1136 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
1126 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 1137 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
1127 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 1138 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
1128 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 1139 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
1129 | </div> | 1140 | </div> |
1130 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 1141 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
1131 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 1142 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
1132 | </div> | 1143 | </div> |
1133 | </div> | 1144 | </div> |
1134 | </div> | 1145 | </div> |
1135 | <div class="swiper-slide"> | 1146 | <div class="swiper-slide"> |
1136 | <div class="card"> | 1147 | <div class="card"> |
1137 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 1148 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
1138 | <h3 class="card__title">Салон красоты</h3> | 1149 | <h3 class="card__title">Салон красоты</h3> |
1139 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 1150 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
1140 | <svg width="18" height="18"> | 1151 | <svg width="18" height="18"> |
1141 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 1152 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
1142 | </svg> | 1153 | </svg> |
1143 | <svg width="18" height="18"> | 1154 | <svg width="18" height="18"> |
1144 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 1155 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
1145 | </svg></span><a class="card__label card__label-messenger" href="#"> | 1156 | </svg></span><a class="card__label card__label-messenger" href="#"> |
1146 | <svg width="25" height="25"> | 1157 | <svg width="25" height="25"> |
1147 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 1158 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
1148 | </svg></a></div> | 1159 | </svg></a></div> |
1149 | </div> | 1160 | </div> |
1150 | <div class="card__cnt"> | 1161 | <div class="card__cnt"> |
1151 | <div class="card__info"> | 1162 | <div class="card__info"> |
1152 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 1163 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
1153 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 1164 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
1154 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 1165 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
1155 | <div class="card__line">Площадь: <b>556 м2</b></div> | 1166 | <div class="card__line">Площадь: <b>556 м2</b></div> |
1156 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 1167 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
1157 | </div> | 1168 | </div> |
1158 | <div class="card__price"><span>1 000 000 ₽</span> | 1169 | <div class="card__price"><span>1 000 000 ₽</span> |
1159 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 1170 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
1160 | </div> | 1171 | </div> |
1161 | </div> | 1172 | </div> |
1162 | </div> | 1173 | </div> |
1163 | <div class="swiper-slide"> | 1174 | <div class="swiper-slide"> |
1164 | <div class="card"> | 1175 | <div class="card"> |
1165 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 1176 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
1166 | <h3 class="card__title">Барбер-шоп</h3> | 1177 | <h3 class="card__title">Барбер-шоп</h3> |
1167 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 1178 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
1168 | <svg width="18" height="18"> | 1179 | <svg width="18" height="18"> |
1169 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 1180 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
1170 | </svg> | 1181 | </svg> |
1171 | <svg width="18" height="18"> | 1182 | <svg width="18" height="18"> |
1172 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 1183 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
1173 | </svg></span><a class="card__label card__label-messenger" href="#"> | 1184 | </svg></span><a class="card__label card__label-messenger" href="#"> |
1174 | <svg width="25" height="25"> | 1185 | <svg width="25" height="25"> |
1175 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 1186 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
1176 | </svg></a></div> | 1187 | </svg></a></div> |
1177 | </div> | 1188 | </div> |
1178 | <div class="card__cnt"> | 1189 | <div class="card__cnt"> |
1179 | <div class="card__info"> | 1190 | <div class="card__info"> |
1180 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 1191 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
1181 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 1192 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
1182 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 1193 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
1183 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 1194 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
1184 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 1195 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
1185 | </div> | 1196 | </div> |
1186 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 1197 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
1187 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 1198 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
1188 | </div> | 1199 | </div> |
1189 | </div> | 1200 | </div> |
1190 | </div> | 1201 | </div> |
1191 | <div class="swiper-slide"> | 1202 | <div class="swiper-slide"> |
1192 | <div class="card"> | 1203 | <div class="card"> |
1193 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 1204 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
1194 | <h3 class="card__title">Аптека</h3> | 1205 | <h3 class="card__title">Аптека</h3> |
1195 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 1206 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
1196 | <svg width="18" height="18"> | 1207 | <svg width="18" height="18"> |
1197 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 1208 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
1198 | </svg> | 1209 | </svg> |
1199 | <svg width="18" height="18"> | 1210 | <svg width="18" height="18"> |
1200 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 1211 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
1201 | </svg></span><a class="card__label card__label-messenger" href="#"> | 1212 | </svg></span><a class="card__label card__label-messenger" href="#"> |
1202 | <svg width="25" height="25"> | 1213 | <svg width="25" height="25"> |
1203 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 1214 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
1204 | </svg></a></div> | 1215 | </svg></a></div> |
1205 | </div> | 1216 | </div> |
1206 | <div class="card__cnt"> | 1217 | <div class="card__cnt"> |
1207 | <div class="card__info"> | 1218 | <div class="card__info"> |
1208 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 1219 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
1209 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 1220 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
1210 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 1221 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
1211 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 1222 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
1212 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 1223 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
1213 | </div> | 1224 | </div> |
1214 | <div class="card__price"><span>5 280 000 ₽</span> | 1225 | <div class="card__price"><span>5 280 000 ₽</span> |
1215 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 1226 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
1216 | </div> | 1227 | </div> |
1217 | </div> | 1228 | </div> |
1218 | </div> | 1229 | </div> |
1219 | <div class="swiper-slide"> | 1230 | <div class="swiper-slide"> |
1220 | <div class="card"> | 1231 | <div class="card"> |
1221 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 1232 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
1222 | <h3 class="card__title">Витрина</h3> | 1233 | <h3 class="card__title">Витрина</h3> |
1223 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 1234 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
1224 | <svg width="18" height="18"> | 1235 | <svg width="18" height="18"> |
1225 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 1236 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
1226 | </svg> | 1237 | </svg> |
1227 | <svg width="18" height="18"> | 1238 | <svg width="18" height="18"> |
1228 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 1239 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
1229 | </svg></span><a class="card__label card__label-messenger" href="#"> | 1240 | </svg></span><a class="card__label card__label-messenger" href="#"> |
1230 | <svg width="25" height="25"> | 1241 | <svg width="25" height="25"> |
1231 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 1242 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
1232 | </svg></a></div> | 1243 | </svg></a></div> |
1233 | </div> | 1244 | </div> |
1234 | <div class="card__cnt"> | 1245 | <div class="card__cnt"> |
1235 | <div class="card__info"> | 1246 | <div class="card__info"> |
1236 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 1247 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
1237 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 1248 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
1238 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 1249 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
1239 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 1250 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
1240 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 1251 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
1241 | </div> | 1252 | </div> |
1242 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 1253 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
1243 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 1254 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
1244 | </div> | 1255 | </div> |
1245 | </div> | 1256 | </div> |
1246 | </div>--> | 1257 | </div>--> |
1247 | </div> | 1258 | </div> |
1248 | </div> | 1259 | </div> |
1249 | <div class="swiper-pagination"></div> | 1260 | <div class="swiper-pagination"></div> |
1250 | </div> | 1261 | </div> |
1251 | </div> | 1262 | </div> |
1252 | </section> | 1263 | </section> |
1253 | </div> | 1264 | </div> |
1254 | <div class="complex__map map" id="complex-map"></div> | 1265 | <div class="complex__map map" id="complex-map"></div> |
1255 | </section> | 1266 | </section> |
1256 | @endsection | 1267 | @endsection |
1257 | 1268 | ||
1258 | @section('form_feedback') | 1269 | @section('form_feedback') |
1259 | <!-- Форма обратной связи --> | 1270 | <!-- Форма обратной связи --> |
1260 | @include('form.form_feedback') | 1271 | @include('form.form_feedback') |
1261 | @endsection | 1272 | @endsection |
1262 | 1273 | ||
1263 | 1274 |
resources/views/cookies.blade.php
1 | @extends('layout.site', ['title' => 'Мы используем cookies']) | 1 | @extends('layout.site', ['title' => 'Мы используем cookies']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <section class="page-cookies"> | 4 | <section class="page-cookies"> |
5 | <div class="page-cookies-top"> | 5 | <div class="page-cookies-top"> |
6 | <div class="container"> | 6 | <div class="container"> |
7 | <div class="breadcrumbs"> | 7 | <div class="breadcrumbs"> |
8 | <ul class="breadcrumbs__list"> | 8 | <ul class="breadcrumbs__list"> |
9 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> | 9 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> |
10 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">Мы используем cookie файлы</span></li> | 10 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">Мы используем cookie файлы</span></li> |
11 | </ul> | 11 | </ul> |
12 | </div> | 12 | </div> |
13 | <h1 class="page-cookies__title title-main">Мы используем cookie файлы</h1> | 13 | <h1 class="page-cookies__title title-main">Мы используем cookie файлы</h1> |
14 | </div> | 14 | </div> |
15 | </div> | 15 | </div> |
16 | <div class="page-cookies-cnt"> | 16 | <div class="page-cookies-cnt"> |
17 | <div class="container"> | 17 | <div class="container"> |
18 | <div class="page-cookies__inner"> | 18 | <div class="page-cookies__inner"> |
19 | <p>Когда вы посещаете сайт, Renttorg может использовать общеотраслевую технологию, называемую cookie. Файлы cookie представляют собой небольшие фрагменты данных, которые временно сохраняются на вашем компьютере или мобильном устройстве и обеспечивают более эффективную работу сайта. Renttorg для сбора статистики использует подсистему «Цифровая культура». На основе этих данных мы делаем наш сайт лучше и эффективнее для пользователей. Продолжая пользоваться этим сайтом, вы соглашаетесь на использование cookie и обработку данных в соответствии с Политикой сайта в области обработки и защиты персональных данных. Если вы не хотите использовать cookie, вы можете отключить их в настройках безопасности вашего браузера. Отключение cookie следует выполнить для каждого браузера и устройства, с помощью которого осуществляется вход на сайт. Обратите внимание, что в случае, если использование сайтом cookie-файлов отключено, некоторые возможности и услуги сайта могут быть недоступны. Согласие на обработку персональных данных посетителей сайта Настоящим, свободно, своей волей и в своем интересе выражаю свое согласие [адрес учреждения – собственника сайта] (далее – Оператор) на автоматизированную обработку моих персональных данных в соответствии со следующим перечнем персональных данных:</p> | 19 | <p>Когда вы посещаете сайт, Renttorg может использовать общеотраслевую технологию, называемую cookie. Файлы cookie представляют собой небольшие фрагменты данных, которые временно сохраняются на вашем компьютере или мобильном устройстве и обеспечивают более эффективную работу сайта. Renttorg для сбора статистики использует подсистему «Цифровая культура». На основе этих данных мы делаем наш сайт лучше и эффективнее для пользователей. Продолжая пользоваться этим сайтом, вы соглашаетесь на использование cookie и обработку данных в соответствии с Политикой сайта в области обработки и защиты персональных данных. Если вы не хотите использовать cookie, вы можете отключить их в настройках безопасности вашего браузера. Отключение cookie следует выполнить для каждого браузера и устройства, с помощью которого осуществляется вход на сайт. Обратите внимание, что в случае, если использование сайтом cookie-файлов отключено, некоторые возможности и услуги сайта могут быть недоступны. Согласие на обработку персональных данных посетителей сайта Настоящим, свободно, своей волей и в своем интересе выражаю свое согласие [адрес учреждения – собственника сайта] (далее – Оператор) на автоматизированную обработку моих персональных данных в соответствии со следующим перечнем персональных данных:</p> |
20 | <ul> | 20 | <ul> |
21 | <li>Опционально: обучение заказчиков заказчиков.</li> | 21 | <li>Опционально: обучение заказчиков заказчиков.</li> |
22 | <li>Системная информация, данные из моего браузера.</li> | 22 | <li>Системная информация, данные из моего браузера.</li> |
23 | <li>Системная информация, данные из моего браузера.</li> | 23 | <li>Системная информация, данные из моего браузера.</li> |
24 | <li>Мой IP-адрес.</li> | 24 | <li>Мой IP-адрес.</li> |
25 | <li>Установленные на моем устройстве операционные системы.</li> | 25 | <li>Установленные на моем устройстве операционные системы.</li> |
26 | <li>Установленные на моем устройстве типы браузеров.</li> | 26 | <li>Установленные на моем устройстве типы браузеров.</li> |
27 | <li>Установленные на моем устройстве расширения и настройки цвета экрана.</li> | 27 | <li>Установленные на моем устройстве расширения и настройки цвета экрана.</li> |
28 | <li>Установленные и используемые на моем устройстве языки.</li> | 28 | <li>Установленные и используемые на моем устройстве языки.</li> |
29 | <li>Версии Flash и поддержка JavaScript.</li> | 29 | <li>Версии Flash и поддержка JavaScript.</li> |
30 | <li>Типы мобильных устройств, используемых мной, если применимо.</li> | 30 | <li>Типы мобильных устройств, используемых мной, если применимо.</li> |
31 | <li>Географическое положение.</li> | 31 | <li>Географическое положение.</li> |
32 | <li>Типы мобильных устройств, используемых мной, если применимо.</li> | 32 | <li>Типы мобильных устройств, используемых мной, если применимо.</li> |
33 | <li>Количество посещений сайта и просмотров страниц.</li> | 33 | <li>Количество посещений сайта и просмотров страниц.</li> |
34 | <li>Длительность пребывания на сайте.</li> | 34 | <li>Длительность пребывания на сайте.</li> |
35 | <li>Запросы, использованные мной при переходе на сайт.</li> | 35 | <li>Запросы, использованные мной при переходе на сайт.</li> |
36 | <li>Страницы, с которых были совершены переходы.</li> | 36 | <li>Страницы, с которых были совершены переходы.</li> |
37 | </ul> | 37 | </ul> |
38 | <p>Для целей сбора статистики о посетителях сайта Оператор вправе осуществлять обработку моих персональных данных следующими способами: сбор, систематизация, накопление, хранение, обновление, изменение, использование. Оператор может обрабатывать файлы cookie самостоятельно или с привлечением иных сервисов. Настоящее согласие вступает в силу с момента моего перехода на сайт Оператора и действует до момента его отзыва. Согласие действует на период: 1 год. Согласие на обработку персональных данных может быть отозвано мною путем письменного уведомления по указанному адресу об этом не менее чем за один месяц до даты фактического прекращения обработки моих персональных данных Оператором.</p> | 38 | <p>Для целей сбора статистики о посетителях сайта Оператор вправе осуществлять обработку моих персональных данных следующими способами: сбор, систематизация, накопление, хранение, обновление, изменение, использование. Оператор может обрабатывать файлы cookie самостоятельно или с привлечением иных сервисов. Настоящее согласие вступает в силу с момента моего перехода на сайт Оператора и действует до момента его отзыва. Согласие действует на период: 1 год. Согласие на обработку персональных данных может быть отозвано мною путем письменного уведомления по указанному адресу об этом не менее чем за один месяц до даты фактического прекращения обработки моих персональных данных Оператором.</p> |
39 | </div><a class="page-cookies__btn btn btn--main" href="#">Принять и продолжить</a> | 39 | </div><a class="page-cookies__btn btn btn--main" href="{{ route('index') }}">Принять и продолжить</a> |
40 | </div> | 40 | </div> |
41 | </div> | 41 | </div> |
42 | </section> | 42 | </section> |
43 | @endsection | 43 | @endsection |
44 | 44 | ||
45 | @section('form_feedback') | 45 | @section('form_feedback') |
46 | <!-- Форма обратной связи --> | 46 | <!-- Форма обратной связи --> |
47 | @include('form.form_feedback') | 47 | @include('form.form_feedback') |
48 | @endsection | 48 | @endsection |
49 | 49 | ||
50 | 50 |
resources/views/house/post.blade.php
1 | @extends('layout.site', ['title' => 'Избранное RentTorg']) | 1 | @extends('layout.site', ['title' => 'Избранное RentTorg']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <section class="intro" style="background-image:url({{ asset('images/intro-bg-2.jpg') }}"> | 4 | <section class="intro" style="background-image:url({{ asset('images/intro-bg-2.jpg') }}"> |
5 | <div class="container"> | 5 | <div class="container"> |
6 | <div class="intro__wrap"> | 6 | <div class="intro__wrap"> |
7 | <div class="breadcrumbs"> | 7 | <div class="breadcrumbs"> |
8 | <ul class="breadcrumbs__list"> | 8 | <ul class="breadcrumbs__list"> |
9 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> | 9 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> |
10 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('catalog') }}">Каталог</a></li> | 10 | <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>--> | 11 | <!--<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> | 12 | <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> | 13 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">{{ $house->title }}</span></li> |
14 | </ul> | 14 | </ul> |
15 | </div> | 15 | </div> |
16 | <div class="intro__inner"> | 16 | <div class="intro__inner"> |
17 | <div class="intro__cnt"> | 17 | <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> | 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> |
19 | <div class="intro__row"> | 19 | <div class="intro__row"> |
20 | <div class="intro__col"> | 20 | <div class="intro__col"> |
21 | <ul class="intro__list"> | 21 | <ul class="intro__list"> |
22 | <li class="intro__item" style="color:{{ $house->color_metro }};"><span>{{ $house->metro }}</span></li> | 22 | <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> | 23 | <li class="intro__item"><span>{{ $house->description_metro }}</span></li> |
24 | <li class="intro__item"><span>{{ $house->okrug }}</span></li> | 24 | <li class="intro__item"><span>{{ $house->okrug }}</span></li> |
25 | </ul><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a> | 25 | </ul><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a> |
26 | </div> | 26 | </div> |
27 | <div class="intro__col"> | 27 | <div class="intro__col"> |
28 | <div class="intro__group"><span>Адрес</span><span>{{ $house->address }}</span></div> | 28 | <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> | 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> |
30 | </div> | 30 | </div> |
31 | </div> | 31 | </div> |
32 | <div class="intro__bottom"> | 32 | <div class="intro__bottom"> |
33 | <div class="intro__views">16 человек интересовались этим объектом за последние 24 ч</div><a class="intro__link-phone btn btn--main" href="tel:+70001234567"><span>Позвонить | 33 | <div class="intro__views">16 человек интересовались этим объектом за последние 24 ч</div> |
34 | <svg width="22" height="22"> | 34 | <a class="intro__link-phone btn btn--main" href="tel:+70001234567"><span>Позвонить |
35 | <use xlink:href="images/sprite.svg#intro-link-phone"></use> | 35 | <svg width="22" height="22"> |
36 | </svg></span></a> | 36 | <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> |
37 | </svg></span></a> | ||
37 | </div> | 38 | </div> |
38 | </div> | 39 | </div> |
39 | <div class="intro__swiper swiper"> | 40 | <div class="intro__swiper swiper"> |
40 | <div class="swiper-wrapper"> | 41 | <div class="swiper-wrapper"> |
42 | <?if (!empty($house->foto_main)) {?> | ||
41 | <div class="swiper-slide"> | 43 | <div class="swiper-slide"> |
42 | <div class="intro-item"> | 44 | <div class="intro-item"> |
43 | <div class="intro-item__img"><img src="{{ asset('images/intro-item-img-1.jpg') }}" alt=""></div> | 45 | <div class="intro-item__img"><img src="{{ asset(Storage::url($house->foto_main)) }}" alt=""></div> |
44 | <a class="intro-item__btn js_intro_item_btn" href="{{asset('images/intro-item-img-1.jpg')}}" data-caption="Фото 1"> | 46 | <a class="intro-item__btn js_intro_item_btn" href="{{asset(Storage::url($house->foto_main))}}" data-caption="{{ $house->title }}"> |
45 | <svg width="16" height="16"> | 47 | <svg width="16" height="16"> |
46 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 48 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
47 | </svg></a> | 49 | </svg></a> |
48 | </div> | 50 | </div> |
49 | </div> | 51 | </div> |
52 | <?}?> | ||
50 | @foreach($house->fotohouse as $foto) | 53 | @foreach($house->fotohouse as $foto) |
51 | <div class="swiper-slide"> | 54 | <div class="swiper-slide"> |
52 | <div class="intro-item"> | 55 | <div class="intro-item"> |
53 | <div class="intro-item__img"><img src="{{ asset($foto->foto) }}" alt=""></div> | 56 | <div class="intro-item__img"><img src="{{ asset(Storage::url($foto->foto)) }}" alt=""></div> |
54 | <a class="intro-item__btn js_intro_item_btn" href="{{ asset($foto->foto) }}" data-caption="Фото {{ $foto->id }}"> | 57 | <a class="intro-item__btn js_intro_item_btn" href="{{ asset(Storage::url($foto->foto)) }}" data-caption="Фото {{ $foto->id }}"> |
55 | <svg width="16" height="16"> | 58 | <svg width="16" height="16"> |
56 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 59 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
57 | </svg></a> | 60 | </svg></a> |
58 | </div> | 61 | </div> |
59 | </div> | 62 | </div> |
60 | @endforeach | 63 | @endforeach |
61 | 64 | ||
62 | </div> | 65 | </div> |
63 | <div class="swiper-pagination"></div> | 66 | <div class="swiper-pagination"></div> |
64 | <div class="swiper-button-prev"> | 67 | <div class="swiper-button-prev"> |
65 | <svg width="10" height="17"> | 68 | <svg width="10" height="17"> |
66 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 69 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
67 | </svg> | 70 | </svg> |
68 | </div> | 71 | </div> |
69 | <div class="swiper-button-next"> | 72 | <div class="swiper-button-next"> |
70 | <svg width="10" height="17"> | 73 | <svg width="10" height="17"> |
71 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 74 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
72 | </svg> | 75 | </svg> |
73 | </div> | 76 | </div> |
74 | </div> | 77 | </div> |
75 | </div> | 78 | </div> |
76 | </div> | 79 | </div> |
77 | </div> | 80 | </div> |
78 | </section> | 81 | </section> |
79 | <section class="offer"> | 82 | <section class="offer"> |
80 | <div class="offer__wrap"> | 83 | <div class="offer__wrap"> |
81 | <div class="container"> | 84 | <div class="container"> |
82 | <div class="offer__inner"> | 85 | <div class="offer__inner"> |
83 | <div class="offer-side"> | 86 | <div class="offer-side"> |
84 | <div class="offer-side__tabs"> | 87 | <div class="offer-side__tabs"> |
85 | <button class="offer-side__tab js_offer_side_tab active" type="button" data-tab="1">План объекта</button> | 88 | <button class="offer-side__tab js_offer_side_tab active" type="button" data-tab="1">План объекта</button> |
86 | <button class="offer-side__tab js_offer_side_tab" type="button" data-tab="2">План этажа</button> | 89 | <button class="offer-side__tab js_offer_side_tab" type="button" data-tab="2">План этажа</button> |
87 | </div> | 90 | </div> |
88 | <div class="offer-side__cnt"> | 91 | <div class="offer-side__cnt"> |
89 | <div class="offer-side-item js_offer_side_item active" data-item="1"> | 92 | <div class="offer-side-item js_offer_side_item active" data-item="1"> |
90 | <div class="offer-side-item__img"><img src="{{ asset('images/offer-side-item-img-1.jpg') }}" alt="План объекта"></div> | 93 | <div class="offer-side-item__img"> |
94 | <? if (!empty($house->object_plan)) {?> | ||
95 | <img src="{{ asset(Storage::url($house->object_plan)) }}" alt="План объекта"> | ||
96 | <? } ?> | ||
97 | </div> | ||
91 | <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> | 98 | <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> |
92 | <svg width="16" height="16"> | 99 | <svg width="16" height="16"> |
93 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 100 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
94 | </svg></a> | 101 | </svg></a> |
95 | </div> | 102 | </div> |
96 | <div class="offer-side-item js_offer_side_item" data-item="2"> | 103 | <div class="offer-side-item js_offer_side_item" data-item="2"> |
97 | <div class="offer-side-item__img"><img src="{{ asset('images/offer-side-item-img-2.jpg') }}" alt="План этажа"></div><a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> | 104 | <div class="offer-side-item__img"> |
105 | <? if (!empty($house->floor_plan)) { ?> | ||
106 | <img src="{{ asset(Storage::url($house->floor_plan)) }}" alt="План этажа"> | ||
107 | <? }?> | ||
108 | </div> | ||
109 | <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> | ||
98 | <svg width="16" height="16"> | 110 | <svg width="16" height="16"> |
99 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 111 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
100 | </svg></a> | 112 | </svg></a> |
101 | </div> | 113 | </div> |
102 | </div> | 114 | </div> |
115 | |||
116 | <!---------------------------!> | ||
117 | <div class="offer-side-popup" data-popup="offer-side-popup"> | ||
118 | <div class="offer-side-popup__wrap"> | ||
119 | <button class="offer-side-popup__close js_popup_close" type="button"> | ||
120 | <svg width="20" height="20"> | ||
121 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | ||
122 | </svg> | ||
123 | </button> | ||
124 | <div class="offer-side-popup__cnt"> | ||
125 | <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"> | ||
126 | <? if (!empty($house->object_plan)) {?> | ||
127 | <img src="{{ asset(Storage::url($house->object_plan)) }}" alt="План объекта"> | ||
128 | <? } ?> | ||
129 | </div> | ||
130 | <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"> | ||
131 | <? if (!empty($house->floor_plan)) { ?> | ||
132 | <img src="{{ asset(Storage::url($house->floor_plan)) }}" alt="План этажа"> | ||
133 | <? }?> | ||
134 | </div> | ||
135 | </div> | ||
136 | <div class="offer-side-popup__tabs"> | ||
137 | <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> | ||
138 | <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> | ||
139 | </div> | ||
140 | <button class="offer-side-popup__sizeoff js_popup_close" type="button"> | ||
141 | <svg width="18" height="18"> | ||
142 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> | ||
143 | </svg> | ||
144 | </button> | ||
145 | </div> | ||
146 | </div> | ||
147 | <!---------------------------!> | ||
103 | <div class="offer__lines"> | 148 | <div class="offer__lines"> |
104 | <div class="offer__line"><span>Аренда в год за м2</span><span>{{ $house->rent_in_year }} ₽</span></div> | 149 | <div class="offer__line"><span>Аренда в год за м2</span><span>{{ $house->rent_in_year }} ₽</span></div> |
105 | <div class="offer__line"><span>Аренда в месяц</span><span>{{ $house->rent_in_month }} ₽</span></div> | 150 | <div class="offer__line"><span>Аренда в месяц</span><span>{{ $house->rent_in_month }} ₽</span></div> |
106 | <div class="offer__line"><span>Схема сделки</span><span>{{ $house->scheme_deal }}</span></div> | 151 | <div class="offer__line"><span>Схема сделки</span><span>{{ $house->scheme_deal }}</span></div> |
107 | </div> | 152 | </div> |
108 | <div class="offer-side__buttons"><a class="offer-side__btn btn btn--main" href="#" data-btn="viewing"><span>Записаться на просмотр | 153 | <div class="offer-side__buttons"><a class="offer-side__btn btn btn--main" href="#" data-btn="viewing"><span>Записаться на просмотр |
109 | <svg width="20" height="20"> | 154 | <svg width="20" height="20"> |
110 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-viewing') }}"></use> | 155 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-viewing') }}"></use> |
111 | </svg></span></a><a class="offer-side__btn btn btn--main" href="#" data-btn="sending"><span>Отправить по Email | 156 | </svg></span></a><a class="offer-side__btn btn btn--main" href="#" data-btn="sending"><span>Отправить по Email |
112 | <svg width="22" height="22"> | 157 | <svg width="22" height="22"> |
113 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-email') }}"></use> | 158 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-email') }}"></use> |
114 | </svg></span></a><a class="offer-side__btn btn btn--main" href="tel:+70001234567"><span>Позвонить | 159 | </svg></span></a><a class="offer-side__btn btn btn--main" href="tel:+70001234567"><span>Позвонить |
115 | <svg width="22" height="22"> | 160 | <svg width="22" height="22"> |
116 | <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> | 161 | <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> |
117 | </svg></span></a></div><a class="offer-side__download" href="#" download><span>Скачать презентацию | 162 | </svg></span></a></div><a class="offer-side__download" href="#" download><span>Скачать презентацию |
118 | <svg width="60" height="60"> | 163 | <svg width="60" height="60"> |
119 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-download') }}"></use> | 164 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-download') }}"></use> |
120 | </svg></span></a> | 165 | </svg></span></a> |
121 | </div> | 166 | </div> |
122 | <div class="offer__cnt"> | 167 | <div class="offer__cnt"> |
123 | <h2 class="offer__title">{{ $house->title }} {{ $house->address }}</h2> | 168 | <h2 class="offer__title">{{ $house->title }} {{ $house->address }}</h2> |
124 | <div class="offer__lines"> | 169 | <div class="offer__lines"> |
125 | <div class="offer__line"><span>Площадь, м2</span><span>{{ $house->area }}</span></div> | 170 | <div class="offer__line"><span>Площадь, м2</span><span>{{ $house->area }}</span></div> |
126 | <div class="offer__line"><span>Адрес</span><span>{{ $house->address }}</span></div> | 171 | <div class="offer__line"><span>Адрес</span><span>{{ $house->address }}</span></div> |
127 | <div class="offer__line"><span>Тип объекта</span><span>{{ $house->typearea->name_type }}</span></div> | 172 | <div class="offer__line"><span>Тип объекта</span><span>{{ $house->typearea->name_type }}</span></div> |
128 | <div class="offer__line"><span>Формат</span><span>{{ $house->format_house }}</span></div> | 173 | <div class="offer__line"><span>Формат</span><span>{{ $house->format_house }}</span></div> |
129 | <div class="offer__line"><span>Этаж</span><span>{{ $house->floor }} эт.</span></div> | 174 | <div class="offer__line"><span>Этаж</span><span>{{ $house->floor }} эт.</span></div> |
130 | <div class="offer__line"><span>Этажность здания</span><span>{{ $house->floor_bild }} эт.</span></div> | 175 | <div class="offer__line"><span>Этажность здания</span><span>{{ $house->floor_bild }} эт.</span></div> |
131 | <div class="offer__line"><span>Арендаторы</span><span>{{ $house->renter }}</span></div> | 176 | <div class="offer__line"><span>Арендаторы</span><span>{{ $house->renter }}</span></div> |
132 | <div class="offer__line"><span>Состояние объекта</span><span>{{ $house->sos_obj }}</span></div> | 177 | <div class="offer__line"><span>Состояние объекта</span><span>{{ $house->sos_obj }}</span></div> |
133 | <div class="offer__line"><span>Тип планировки</span><span>{{ $house->type_plan }}</span></div> | 178 | <div class="offer__line"><span>Тип планировки</span><span>{{ $house->type_plan }}</span></div> |
134 | <div class="offer__line"><span>Наличие зоны разгрузки</span><span><? if($house->uploading_area == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 179 | <div class="offer__line"><span>Наличие зоны разгрузки</span><span><? if($house->uploading_area == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
135 | <div class="offer__line"><span>Электрическая мощность</span><span>{{ $house->electric_power }} кВт</span></div> | 180 | <div class="offer__line"><span>Электрическая мощность</span><span>{{ $house->electric_power }} кВт</span></div> |
136 | <div class="offer__line"><span>Проездное</span><span><? if($house->travel_card == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 181 | <div class="offer__line"><span>Проездное</span><span><? if($house->travel_card == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
137 | <div class="offer__line"><span>Проходное место</span><span><? if($house->passing_place == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 182 | <div class="offer__line"><span>Проходное место</span><span><? if($house->passing_place == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
138 | <div class="offer__line"><span>Отдельный вход</span><span><? if($house->separate_input == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 183 | <div class="offer__line"><span>Отдельный вход</span><span><? if($house->separate_input == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
139 | <div class="offer__line"><span>Витрины</span><span><? if($house->shop_windows == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 184 | <div class="offer__line"><span>Витрины</span><span><? if($house->shop_windows == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
140 | <div class="offer__line"><span>Место для рекламы</span><span><? if($house->place_advertising == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 185 | <div class="offer__line"><span>Место для рекламы</span><span><? if($house->place_advertising == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
141 | <div class="offer__line"><span>Окна</span><span>{{ $house->windows }}</span></div> | 186 | <div class="offer__line"><span>Окна</span><span>{{ $house->windows }}</span></div> |
142 | <div class="offer__line"><span>Вытяжка</span><span><? if($house->hood == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 187 | <div class="offer__line"><span>Вытяжка</span><span><? if($house->hood == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
143 | <div class="offer__line"><span>Центральное отопление</span><span><? if($house->central_hearing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 188 | <div class="offer__line"><span>Центральное отопление</span><span><? if($house->central_hearing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
144 | <div class="offer__line"><span>Возможные часы работы</span><span>{{ $house->opening_hours }}</span></div> | 189 | <div class="offer__line"><span>Возможные часы работы</span><span>{{ $house->opening_hours }}</span></div> |
145 | <div class="offer__line"><span>Отделка</span><span><? if($house->finishing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 190 | <div class="offer__line"><span>Отделка</span><span><? if($house->finishing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
146 | <div class="offer__line"><span>Парковка</span><span>{{ $house->parking }} мест</span></div> | 191 | <div class="offer__line"><span>Парковка</span><span>{{ $house->parking }} мест</span></div> |
147 | </div> | 192 | </div> |
148 | <p class="offer__additional">{{ $house->description_2 }}</p> | 193 | <p class="offer__additional">{{ $house->description_2 }}</p> |
149 | </div> | 194 | </div> |
150 | </div> | 195 | </div> |
151 | <div class="offer-descr"> | 196 | <div class="offer-descr"> |
152 | <h3 class="offer-descr__caption">Описание объекта</h3> | 197 | <h3 class="offer-descr__caption">Описание объекта</h3> |
153 | <p class="offer-descr__text">{{ $house->description_house }}</p> | 198 | <p class="offer-descr__text">{{ $house->description_house }}</p> |
154 | </div> | 199 | </div> |
155 | </div> | 200 | </div> |
156 | </div> | 201 | </div> |
157 | <div class="offer__map map" id="offer-map"></div> | 202 | <div class="offer__map map" id="offer-map"></div> |
158 | </section> | 203 | </section> |
159 | <section class="slider"> | 204 | <section class="slider"> |
160 | <div class="container"> | 205 | <div class="container"> |
161 | <div class="slider__wrap"> | 206 | <div class="slider__wrap"> |
162 | <div class="slider__top"> | 207 | <div class="slider__top"> |
163 | <h2 class="slider__title title">Похожие помещения</h2> | 208 | <h2 class="slider__title title">Похожие помещения</h2> |
164 | <div class="slider__control"> | 209 | <div class="slider__control"> |
165 | <div class="swiper-button-prev"> | 210 | <div class="swiper-button-prev"> |
166 | <svg width="10" height="17"> | 211 | <svg width="10" height="17"> |
167 | <use xlink:href="images/sprite.svg#slider-arrow"></use> | 212 | <use xlink:href="images/sprite.svg#slider-arrow"></use> |
168 | </svg> | 213 | </svg> |
169 | </div> | 214 | </div> |
170 | <div class="swiper-button-next"> | 215 | <div class="swiper-button-next"> |
171 | <svg width="10" height="17"> | 216 | <svg width="10" height="17"> |
172 | <use xlink:href="images/sprite.svg#slider-arrow"></use> | 217 | <use xlink:href="images/sprite.svg#slider-arrow"></use> |
173 | </svg> | 218 | </svg> |
174 | </div> | 219 | </div> |
175 | </div> | 220 | </div> |
176 | </div> | 221 | </div> |
177 | <div class="slider__swiper swiper"> | 222 | <div class="slider__swiper swiper"> |
178 | <div class="swiper-wrapper"> | 223 | <div class="swiper-wrapper"> |
179 | @if ($houses->count()) | 224 | @if ($houses->count()) |
180 | @foreach ($houses as $house) | 225 | @foreach ($houses as $house) |
181 | @include('catalogs.elemhouse', ['house' => $house]) | 226 | @include('catalogs.elemhouse', ['house' => $house]) |
182 | @endforeach | 227 | @endforeach |
183 | @endif | 228 | @endif |
184 | 229 | ||
185 | <!--<div class="swiper-slide"> | 230 | <!--<div class="swiper-slide"> |
186 | <div class="card"> | 231 | <div class="card"> |
187 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 232 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
188 | <h3 class="card__title">Салон красоты</h3> | 233 | <h3 class="card__title">Салон красоты</h3> |
189 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 234 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
190 | <svg width="18" height="18"> | 235 | <svg width="18" height="18"> |
191 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 236 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
192 | </svg> | 237 | </svg> |
193 | <svg width="18" height="18"> | 238 | <svg width="18" height="18"> |
194 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 239 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
195 | </svg></span><a class="card__label card__label-messenger" href="#"> | 240 | </svg></span><a class="card__label card__label-messenger" href="#"> |
196 | <svg width="25" height="25"> | 241 | <svg width="25" height="25"> |
197 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 242 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
198 | </svg></a></div> | 243 | </svg></a></div> |
199 | </div> | 244 | </div> |
200 | <div class="card__cnt"> | 245 | <div class="card__cnt"> |
201 | <div class="card__info"> | 246 | <div class="card__info"> |
202 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 247 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
203 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 248 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
204 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 249 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
205 | <div class="card__line">Площадь: <b>556 м2</b></div> | 250 | <div class="card__line">Площадь: <b>556 м2</b></div> |
206 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 251 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
207 | </div> | 252 | </div> |
208 | <div class="card__price"><span>1 000 000 ₽</span> | 253 | <div class="card__price"><span>1 000 000 ₽</span> |
209 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 254 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
210 | </div> | 255 | </div> |
211 | </div> | 256 | </div> |
212 | </div> | 257 | </div> |
213 | <div class="swiper-slide"> | 258 | <div class="swiper-slide"> |
214 | <div class="card"> | 259 | <div class="card"> |
215 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 260 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
216 | <h3 class="card__title">Барбер-шоп</h3> | 261 | <h3 class="card__title">Барбер-шоп</h3> |
217 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 262 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
218 | <svg width="18" height="18"> | 263 | <svg width="18" height="18"> |
219 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 264 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
220 | </svg> | 265 | </svg> |
221 | <svg width="18" height="18"> | 266 | <svg width="18" height="18"> |
222 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 267 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
223 | </svg></span><a class="card__label card__label-messenger" href="#"> | 268 | </svg></span><a class="card__label card__label-messenger" href="#"> |
224 | <svg width="25" height="25"> | 269 | <svg width="25" height="25"> |
225 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 270 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
226 | </svg></a></div> | 271 | </svg></a></div> |
227 | </div> | 272 | </div> |
228 | <div class="card__cnt"> | 273 | <div class="card__cnt"> |
229 | <div class="card__info"> | 274 | <div class="card__info"> |
230 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 275 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
231 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 276 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
232 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 277 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
233 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 278 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
234 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 279 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
235 | </div> | 280 | </div> |
236 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 281 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
237 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 282 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
238 | </div> | 283 | </div> |
239 | </div> | 284 | </div> |
240 | </div> | 285 | </div> |
241 | <div class="swiper-slide"> | 286 | <div class="swiper-slide"> |
242 | <div class="card"> | 287 | <div class="card"> |
243 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 288 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
244 | <h3 class="card__title">Аптека</h3> | 289 | <h3 class="card__title">Аптека</h3> |
245 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 290 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
246 | <svg width="18" height="18"> | 291 | <svg width="18" height="18"> |
247 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 292 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
248 | </svg> | 293 | </svg> |
249 | <svg width="18" height="18"> | 294 | <svg width="18" height="18"> |
250 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 295 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
251 | </svg></span><a class="card__label card__label-messenger" href="#"> | 296 | </svg></span><a class="card__label card__label-messenger" href="#"> |
252 | <svg width="25" height="25"> | 297 | <svg width="25" height="25"> |
253 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 298 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
254 | </svg></a></div> | 299 | </svg></a></div> |
255 | </div> | 300 | </div> |
256 | <div class="card__cnt"> | 301 | <div class="card__cnt"> |
257 | <div class="card__info"> | 302 | <div class="card__info"> |
258 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 303 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
259 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 304 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
260 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 305 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
261 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 306 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
262 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 307 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
263 | </div> | 308 | </div> |
264 | <div class="card__price"><span>5 280 000 ₽</span> | 309 | <div class="card__price"><span>5 280 000 ₽</span> |
265 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 310 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
266 | </div> | 311 | </div> |
267 | </div> | 312 | </div> |
268 | </div> | 313 | </div> |
269 | <div class="swiper-slide"> | 314 | <div class="swiper-slide"> |
270 | <div class="card"> | 315 | <div class="card"> |
271 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 316 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
272 | <h3 class="card__title">Витрина</h3> | 317 | <h3 class="card__title">Витрина</h3> |
273 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 318 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
274 | <svg width="18" height="18"> | 319 | <svg width="18" height="18"> |
275 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 320 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
276 | </svg> | 321 | </svg> |
277 | <svg width="18" height="18"> | 322 | <svg width="18" height="18"> |
278 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 323 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
279 | </svg></span><a class="card__label card__label-messenger" href="#"> | 324 | </svg></span><a class="card__label card__label-messenger" href="#"> |
280 | <svg width="25" height="25"> | 325 | <svg width="25" height="25"> |
281 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 326 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
282 | </svg></a></div> | 327 | </svg></a></div> |
283 | </div> | 328 | </div> |
284 | <div class="card__cnt"> | 329 | <div class="card__cnt"> |
285 | <div class="card__info"> | 330 | <div class="card__info"> |
286 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 331 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
287 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 332 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
288 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 333 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
289 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 334 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
290 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 335 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
291 | </div> | 336 | </div> |
292 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 337 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
293 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 338 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
294 | </div> | 339 | </div> |
295 | </div> | 340 | </div> |
296 | </div> | 341 | </div> |
297 | <div class="swiper-slide"> | 342 | <div class="swiper-slide"> |
298 | <div class="card"> | 343 | <div class="card"> |
299 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 344 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
300 | <h3 class="card__title">Салон красоты</h3> | 345 | <h3 class="card__title">Салон красоты</h3> |
301 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 346 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
302 | <svg width="18" height="18"> | 347 | <svg width="18" height="18"> |
303 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 348 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
304 | </svg> | 349 | </svg> |
305 | <svg width="18" height="18"> | 350 | <svg width="18" height="18"> |
306 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 351 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
307 | </svg></span><a class="card__label card__label-messenger" href="#"> | 352 | </svg></span><a class="card__label card__label-messenger" href="#"> |
308 | <svg width="25" height="25"> | 353 | <svg width="25" height="25"> |
309 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 354 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
310 | </svg></a></div> | 355 | </svg></a></div> |
311 | </div> | 356 | </div> |
312 | <div class="card__cnt"> | 357 | <div class="card__cnt"> |
313 | <div class="card__info"> | 358 | <div class="card__info"> |
314 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 359 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
315 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 360 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
316 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 361 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
317 | <div class="card__line">Площадь: <b>556 м2</b></div> | 362 | <div class="card__line">Площадь: <b>556 м2</b></div> |
318 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 363 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
319 | </div> | 364 | </div> |
320 | <div class="card__price"><span>1 000 000 ₽</span> | 365 | <div class="card__price"><span>1 000 000 ₽</span> |
321 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 366 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
322 | </div> | 367 | </div> |
323 | </div> | 368 | </div> |
324 | </div> | 369 | </div> |
325 | <div class="swiper-slide"> | 370 | <div class="swiper-slide"> |
326 | <div class="card"> | 371 | <div class="card"> |
327 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 372 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
328 | <h3 class="card__title">Барбер-шоп</h3> | 373 | <h3 class="card__title">Барбер-шоп</h3> |
329 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 374 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
330 | <svg width="18" height="18"> | 375 | <svg width="18" height="18"> |
331 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 376 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
332 | </svg> | 377 | </svg> |
333 | <svg width="18" height="18"> | 378 | <svg width="18" height="18"> |
334 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 379 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
335 | </svg></span><a class="card__label card__label-messenger" href="#"> | 380 | </svg></span><a class="card__label card__label-messenger" href="#"> |
336 | <svg width="25" height="25"> | 381 | <svg width="25" height="25"> |
337 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 382 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
338 | </svg></a></div> | 383 | </svg></a></div> |
339 | </div> | 384 | </div> |
340 | <div class="card__cnt"> | 385 | <div class="card__cnt"> |
341 | <div class="card__info"> | 386 | <div class="card__info"> |
342 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 387 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
343 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 388 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
344 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 389 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
345 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 390 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
346 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 391 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
347 | </div> | 392 | </div> |
348 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 393 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
349 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 394 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
350 | </div> | 395 | </div> |
351 | </div> | 396 | </div> |
352 | </div> | 397 | </div> |
353 | <div class="swiper-slide"> | 398 | <div class="swiper-slide"> |
354 | <div class="card"> | 399 | <div class="card"> |
355 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 400 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
356 | <h3 class="card__title">Аптека</h3> | 401 | <h3 class="card__title">Аптека</h3> |
357 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 402 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
358 | <svg width="18" height="18"> | 403 | <svg width="18" height="18"> |
359 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 404 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
360 | </svg> | 405 | </svg> |
361 | <svg width="18" height="18"> | 406 | <svg width="18" height="18"> |
362 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 407 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
363 | </svg></span><a class="card__label card__label-messenger" href="#"> | 408 | </svg></span><a class="card__label card__label-messenger" href="#"> |
364 | <svg width="25" height="25"> | 409 | <svg width="25" height="25"> |
365 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 410 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
366 | </svg></a></div> | 411 | </svg></a></div> |
367 | </div> | 412 | </div> |
368 | <div class="card__cnt"> | 413 | <div class="card__cnt"> |
369 | <div class="card__info"> | 414 | <div class="card__info"> |
370 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 415 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
371 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 416 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
372 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 417 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
373 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 418 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
374 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 419 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
375 | </div> | 420 | </div> |
376 | <div class="card__price"><span>5 280 000 ₽</span> | 421 | <div class="card__price"><span>5 280 000 ₽</span> |
377 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 422 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
378 | </div> | 423 | </div> |
379 | </div> | 424 | </div> |
380 | </div> | 425 | </div> |
381 | <div class="swiper-slide"> | 426 | <div class="swiper-slide"> |
382 | <div class="card"> | 427 | <div class="card"> |
383 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 428 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
384 | <h3 class="card__title">Витрина</h3> | 429 | <h3 class="card__title">Витрина</h3> |
385 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 430 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
386 | <svg width="18" height="18"> | 431 | <svg width="18" height="18"> |
387 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 432 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
388 | </svg> | 433 | </svg> |
389 | <svg width="18" height="18"> | 434 | <svg width="18" height="18"> |
390 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 435 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
391 | </svg></span><a class="card__label card__label-messenger" href="#"> | 436 | </svg></span><a class="card__label card__label-messenger" href="#"> |
392 | <svg width="25" height="25"> | 437 | <svg width="25" height="25"> |
393 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 438 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
394 | </svg></a></div> | 439 | </svg></a></div> |
395 | </div> | 440 | </div> |
396 | <div class="card__cnt"> | 441 | <div class="card__cnt"> |
397 | <div class="card__info"> | 442 | <div class="card__info"> |
398 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 443 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
399 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 444 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
400 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 445 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
401 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 446 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
402 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 447 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
403 | </div> | 448 | </div> |
404 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 449 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
405 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 450 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
406 | </div> | 451 | </div> |
407 | </div> | 452 | </div> |
408 | </div>--> | 453 | </div>--> |
409 | </div> | 454 | </div> |
410 | </div> | 455 | </div> |
411 | <div class="swiper-pagination"></div> | 456 | <div class="swiper-pagination"></div> |
412 | </div> | 457 | </div> |
413 | </div> | 458 | </div> |
414 | </section> | 459 | </section> |
415 | @endsection | 460 | @endsection |
416 | 461 | ||
417 | @section('form_feedback') | 462 | @section('form_feedback') |
418 | <!-- Форма обратной связи --> | 463 | <!-- Форма обратной связи --> |
419 | @include('form.form_feedback') | 464 | @include('form.form_feedback') |
420 | @endsection | 465 | @endsection |
421 | 466 | ||
422 | 467 |
resources/views/index.blade.php
1 | @extends('layout.site', ['title' => 'Главная страница RentTorg']) | 1 | @extends('layout.site', ['title' => 'Главная страница RentTorg']) |
2 | 2 | ||
3 | @section('filter') | 3 | @section('filter') |
4 | @include('part.filter.main') | 4 | @include('part.filter.main') |
5 | @endsection | 5 | @endsection |
6 | 6 | ||
7 | @section('content') | 7 | @section('content') |
8 | 8 | ||
9 | <!-- Каталог --> | 9 | <!-- Каталог --> |
10 | <section class="slider" id="slider"> | 10 | <section class="slider" id="slider"> |
11 | <div class="container"> | 11 | <div class="container"> |
12 | <div class="slider__wrap"> | 12 | <div class="slider__wrap"> |
13 | <div class="slider__top"> | 13 | <div class="slider__top"> |
14 | <h2 class="slider__title title">Лучшие предложения</h2> | 14 | <h2 class="slider__title title">Лучшие предложения</h2> |
15 | <div class="slider__control"> | 15 | <div class="slider__control"> |
16 | <div class="swiper-button-prev"> | 16 | <div class="swiper-button-prev"> |
17 | <svg width="10" height="17"> | 17 | <svg width="10" height="17"> |
18 | <use xlink:href="images/sprite.svg#slider-arrow"></use> | 18 | <use xlink:href="images/sprite.svg#slider-arrow"></use> |
19 | </svg> | 19 | </svg> |
20 | </div> | 20 | </div> |
21 | <div class="swiper-button-next"> | 21 | <div class="swiper-button-next"> |
22 | <svg width="10" height="17"> | 22 | <svg width="10" height="17"> |
23 | <use xlink:href="images/sprite.svg#slider-arrow"></use> | 23 | <use xlink:href="images/sprite.svg#slider-arrow"></use> |
24 | </svg> | 24 | </svg> |
25 | </div> | 25 | </div> |
26 | </div> | 26 | </div> |
27 | </div> | 27 | </div> |
28 | <div class="slider__swiper swiper"> | 28 | <div class="slider__swiper swiper"> |
29 | <div class="swiper-wrapper"> | 29 | <div class="swiper-wrapper"> |
30 | 30 | ||
31 | @if ($houses->count()) | 31 | @if ($houses->count()) |
32 | @foreach ($houses as $house) | 32 | @foreach ($houses as $house) |
33 | @include('catalogs.elemhouse', ['house' => $house]) | 33 | @include('catalogs.elemhouse', ['house' => $house]) |
34 | @endforeach | 34 | @endforeach |
35 | @endif | 35 | @endif |
36 | <!--<div class="swiper-slide"> | 36 | <!--<div class="swiper-slide"> |
37 | <div class="card"> | 37 | <div class="card"> |
38 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 38 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
39 | <h3 class="card__title">Салон красоты</h3> | 39 | <h3 class="card__title">Салон красоты</h3> |
40 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 40 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
41 | <svg width="18" height="18"> | 41 | <svg width="18" height="18"> |
42 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 42 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
43 | </svg> | 43 | </svg> |
44 | <svg width="18" height="18"> | 44 | <svg width="18" height="18"> |
45 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 45 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
46 | </svg></span><a class="card__label card__label-messenger" href="#"> | 46 | </svg></span><a class="card__label card__label-messenger" href="#"> |
47 | <svg width="25" height="25"> | 47 | <svg width="25" height="25"> |
48 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 48 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
49 | </svg></a></div> | 49 | </svg></a></div> |
50 | </div> | 50 | </div> |
51 | <div class="card__cnt"> | 51 | <div class="card__cnt"> |
52 | <div class="card__info"> | 52 | <div class="card__info"> |
53 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 53 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
54 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 54 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
55 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 55 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
56 | <div class="card__line">Площадь: <b>556 м2</b></div> | 56 | <div class="card__line">Площадь: <b>556 м2</b></div> |
57 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 57 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
58 | </div> | 58 | </div> |
59 | <div class="card__price"><span>1 000 000 ₽</span> | 59 | <div class="card__price"><span>1 000 000 ₽</span> |
60 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 60 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
61 | </div> | 61 | </div> |
62 | </div> | 62 | </div> |
63 | </div> | 63 | </div> |
64 | <div class="swiper-slide"> | 64 | <div class="swiper-slide"> |
65 | <div class="card"> | 65 | <div class="card"> |
66 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 66 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
67 | <h3 class="card__title">Барбер-шоп</h3> | 67 | <h3 class="card__title">Барбер-шоп</h3> |
68 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 68 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
69 | <svg width="18" height="18"> | 69 | <svg width="18" height="18"> |
70 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 70 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
71 | </svg> | 71 | </svg> |
72 | <svg width="18" height="18"> | 72 | <svg width="18" height="18"> |
73 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 73 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
74 | </svg></span><a class="card__label card__label-messenger" href="#"> | 74 | </svg></span><a class="card__label card__label-messenger" href="#"> |
75 | <svg width="25" height="25"> | 75 | <svg width="25" height="25"> |
76 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 76 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
77 | </svg></a></div> | 77 | </svg></a></div> |
78 | </div> | 78 | </div> |
79 | <div class="card__cnt"> | 79 | <div class="card__cnt"> |
80 | <div class="card__info"> | 80 | <div class="card__info"> |
81 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 81 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
82 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 82 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
83 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 83 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
84 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 84 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
85 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 85 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
86 | </div> | 86 | </div> |
87 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 87 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
88 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 88 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
89 | </div> | 89 | </div> |
90 | </div> | 90 | </div> |
91 | </div> | 91 | </div> |
92 | <div class="swiper-slide"> | 92 | <div class="swiper-slide"> |
93 | <div class="card"> | 93 | <div class="card"> |
94 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 94 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
95 | <h3 class="card__title">Аптека</h3> | 95 | <h3 class="card__title">Аптека</h3> |
96 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 96 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
97 | <svg width="18" height="18"> | 97 | <svg width="18" height="18"> |
98 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 98 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
99 | </svg> | 99 | </svg> |
100 | <svg width="18" height="18"> | 100 | <svg width="18" height="18"> |
101 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 101 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
102 | </svg></span><a class="card__label card__label-messenger" href="#"> | 102 | </svg></span><a class="card__label card__label-messenger" href="#"> |
103 | <svg width="25" height="25"> | 103 | <svg width="25" height="25"> |
104 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 104 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
105 | </svg></a></div> | 105 | </svg></a></div> |
106 | </div> | 106 | </div> |
107 | <div class="card__cnt"> | 107 | <div class="card__cnt"> |
108 | <div class="card__info"> | 108 | <div class="card__info"> |
109 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 109 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
110 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 110 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
111 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 111 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
112 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 112 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
113 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 113 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
114 | </div> | 114 | </div> |
115 | <div class="card__price"><span>5 280 000 ₽</span> | 115 | <div class="card__price"><span>5 280 000 ₽</span> |
116 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 116 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
117 | </div> | 117 | </div> |
118 | </div> | 118 | </div> |
119 | </div> | 119 | </div> |
120 | <div class="swiper-slide"> | 120 | <div class="swiper-slide"> |
121 | <div class="card"> | 121 | <div class="card"> |
122 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 122 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
123 | <h3 class="card__title">Витрина</h3> | 123 | <h3 class="card__title">Витрина</h3> |
124 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 124 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
125 | <svg width="18" height="18"> | 125 | <svg width="18" height="18"> |
126 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 126 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
127 | </svg> | 127 | </svg> |
128 | <svg width="18" height="18"> | 128 | <svg width="18" height="18"> |
129 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 129 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
130 | </svg></span><a class="card__label card__label-messenger" href="#"> | 130 | </svg></span><a class="card__label card__label-messenger" href="#"> |
131 | <svg width="25" height="25"> | 131 | <svg width="25" height="25"> |
132 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 132 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
133 | </svg></a></div> | 133 | </svg></a></div> |
134 | </div> | 134 | </div> |
135 | <div class="card__cnt"> | 135 | <div class="card__cnt"> |
136 | <div class="card__info"> | 136 | <div class="card__info"> |
137 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 137 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
138 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 138 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
139 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 139 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
140 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 140 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
141 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 141 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
142 | </div> | 142 | </div> |
143 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 143 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
144 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 144 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
145 | </div> | 145 | </div> |
146 | </div> | 146 | </div> |
147 | </div> | 147 | </div> |
148 | <div class="swiper-slide"> | 148 | <div class="swiper-slide"> |
149 | <div class="card"> | 149 | <div class="card"> |
150 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 150 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
151 | <h3 class="card__title">Салон красоты</h3> | 151 | <h3 class="card__title">Салон красоты</h3> |
152 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 152 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
153 | <svg width="18" height="18"> | 153 | <svg width="18" height="18"> |
154 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 154 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
155 | </svg> | 155 | </svg> |
156 | <svg width="18" height="18"> | 156 | <svg width="18" height="18"> |
157 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 157 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
158 | </svg></span><a class="card__label card__label-messenger" href="#"> | 158 | </svg></span><a class="card__label card__label-messenger" href="#"> |
159 | <svg width="25" height="25"> | 159 | <svg width="25" height="25"> |
160 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 160 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
161 | </svg></a></div> | 161 | </svg></a></div> |
162 | </div> | 162 | </div> |
163 | <div class="card__cnt"> | 163 | <div class="card__cnt"> |
164 | <div class="card__info"> | 164 | <div class="card__info"> |
165 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 165 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
166 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 166 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
167 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 167 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
168 | <div class="card__line">Площадь: <b>556 м2</b></div> | 168 | <div class="card__line">Площадь: <b>556 м2</b></div> |
169 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 169 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
170 | </div> | 170 | </div> |
171 | <div class="card__price"><span>1 000 000 ₽</span> | 171 | <div class="card__price"><span>1 000 000 ₽</span> |
172 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 172 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
173 | </div> | 173 | </div> |
174 | </div> | 174 | </div> |
175 | </div> | 175 | </div> |
176 | <div class="swiper-slide"> | 176 | <div class="swiper-slide"> |
177 | <div class="card"> | 177 | <div class="card"> |
178 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 178 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
179 | <h3 class="card__title">Барбер-шоп</h3> | 179 | <h3 class="card__title">Барбер-шоп</h3> |
180 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 180 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
181 | <svg width="18" height="18"> | 181 | <svg width="18" height="18"> |
182 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 182 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
183 | </svg> | 183 | </svg> |
184 | <svg width="18" height="18"> | 184 | <svg width="18" height="18"> |
185 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 185 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
186 | </svg></span><a class="card__label card__label-messenger" href="#"> | 186 | </svg></span><a class="card__label card__label-messenger" href="#"> |
187 | <svg width="25" height="25"> | 187 | <svg width="25" height="25"> |
188 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 188 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
189 | </svg></a></div> | 189 | </svg></a></div> |
190 | </div> | 190 | </div> |
191 | <div class="card__cnt"> | 191 | <div class="card__cnt"> |
192 | <div class="card__info"> | 192 | <div class="card__info"> |
193 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 193 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
194 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 194 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
195 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 195 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
196 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 196 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
197 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 197 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
198 | </div> | 198 | </div> |
199 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 199 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
200 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 200 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
201 | </div> | 201 | </div> |
202 | </div> | 202 | </div> |
203 | </div> | 203 | </div> |
204 | <div class="swiper-slide"> | 204 | <div class="swiper-slide"> |
205 | <div class="card"> | 205 | <div class="card"> |
206 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 206 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
207 | <h3 class="card__title">Аптека</h3> | 207 | <h3 class="card__title">Аптека</h3> |
208 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 208 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
209 | <svg width="18" height="18"> | 209 | <svg width="18" height="18"> |
210 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 210 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
211 | </svg> | 211 | </svg> |
212 | <svg width="18" height="18"> | 212 | <svg width="18" height="18"> |
213 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 213 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
214 | </svg></span><a class="card__label card__label-messenger" href="#"> | 214 | </svg></span><a class="card__label card__label-messenger" href="#"> |
215 | <svg width="25" height="25"> | 215 | <svg width="25" height="25"> |
216 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 216 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
217 | </svg></a></div> | 217 | </svg></a></div> |
218 | </div> | 218 | </div> |
219 | <div class="card__cnt"> | 219 | <div class="card__cnt"> |
220 | <div class="card__info"> | 220 | <div class="card__info"> |
221 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 221 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
222 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 222 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
223 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 223 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
224 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 224 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
225 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 225 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
226 | </div> | 226 | </div> |
227 | <div class="card__price"><span>5 280 000 ₽</span> | 227 | <div class="card__price"><span>5 280 000 ₽</span> |
228 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 228 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
229 | </div> | 229 | </div> |
230 | </div> | 230 | </div> |
231 | </div> | 231 | </div> |
232 | <div class="swiper-slide"> | 232 | <div class="swiper-slide"> |
233 | <div class="card"> | 233 | <div class="card"> |
234 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 234 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
235 | <h3 class="card__title">Витрина</h3> | 235 | <h3 class="card__title">Витрина</h3> |
236 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 236 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
237 | <svg width="18" height="18"> | 237 | <svg width="18" height="18"> |
238 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 238 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
239 | </svg> | 239 | </svg> |
240 | <svg width="18" height="18"> | 240 | <svg width="18" height="18"> |
241 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 241 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
242 | </svg></span><a class="card__label card__label-messenger" href="#"> | 242 | </svg></span><a class="card__label card__label-messenger" href="#"> |
243 | <svg width="25" height="25"> | 243 | <svg width="25" height="25"> |
244 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 244 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
245 | </svg></a></div> | 245 | </svg></a></div> |
246 | </div> | 246 | </div> |
247 | <div class="card__cnt"> | 247 | <div class="card__cnt"> |
248 | <div class="card__info"> | 248 | <div class="card__info"> |
249 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 249 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
250 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 250 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
251 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 251 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
252 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 252 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
253 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 253 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
254 | </div> | 254 | </div> |
255 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 255 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
256 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 256 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
257 | </div> | 257 | </div> |
258 | </div> | 258 | </div> |
259 | </div>--> | 259 | </div>--> |
260 | </div> | 260 | </div> |
261 | </div> | 261 | </div> |
262 | <div class="swiper-pagination"></div> | 262 | <div class="swiper-pagination"></div> |
263 | </div> | 263 | </div> |
264 | </div> | 264 | </div> |
265 | </section> | 265 | </section> |
266 | <!-- Описание компании --> | 266 | <!-- Описание компании --> |
267 | <section class="benefits"> | 267 | <section class="benefits"> |
268 | <div class="container"> | 268 | <div class="container"> |
269 | <div class="benefits__wrap"> | 269 | <div class="benefits__wrap"> |
270 | <h2 class="benefits__title title">Преимущества Renttorg</h2> | 270 | <h2 class="benefits__title title">Преимущества Renttorg</h2> |
271 | <div class="benefits__items"> | 271 | <div class="benefits__items"> |
272 | <div class="benefits-item"> | 272 | <div class="benefits-item"> |
273 | <div class="benefits-item__top"> | 273 | <div class="benefits-item__top"> |
274 | <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-1.svg" alt="Опыт"></div> | 274 | <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-1.svg" alt="Опыт"></div> |
275 | <h3 class="benefits-item__title">{{ $items_contact[0]->title1 }}</h3> | 275 | <h3 class="benefits-item__title">{{ $items_contact[0]->title1 }}</h3> |
276 | </div> | 276 | </div> |
277 | <p class="benefits-item__descr">{{ $items_contact[0]->text1 }}</p> | 277 | <p class="benefits-item__descr">{{ $items_contact[0]->text1 }}</p> |
278 | </div> | 278 | </div> |
279 | <div class="benefits-item"> | 279 | <div class="benefits-item"> |
280 | <div class="benefits-item__top"> | 280 | <div class="benefits-item__top"> |
281 | <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-2.svg" alt="Агенство"></div> | 281 | <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-2.svg" alt="Агенство"></div> |
282 | <h3 class="benefits-item__title">{{ $items_contact[0]->title2 }}</h3> | 282 | <h3 class="benefits-item__title">{{ $items_contact[0]->title2 }}</h3> |
283 | </div> | 283 | </div> |
284 | <p class="benefits-item__descr">{{ $items_contact[0]->text2 }}</p> | 284 | <p class="benefits-item__descr">{{ $items_contact[0]->text2 }}</p> |
285 | </div> | 285 | </div> |
286 | <div class="benefits-item"> | 286 | <div class="benefits-item"> |
287 | <div class="benefits-item__top"> | 287 | <div class="benefits-item__top"> |
288 | <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-3.svg" alt="Предложения"></div> | 288 | <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-3.svg" alt="Предложения"></div> |
289 | <h3 class="benefits-item__title">{{ $items_contact[0]->title3 }}</h3> | 289 | <h3 class="benefits-item__title">{{ $items_contact[0]->title3 }}</h3> |
290 | </div> | 290 | </div> |
291 | <p class="benefits-item__descr">{{ $items_contact[0]->text3 }}</p> | 291 | <p class="benefits-item__descr">{{ $items_contact[0]->text3 }}</p> |
292 | </div> | 292 | </div> |
293 | </div> | 293 | </div> |
294 | </div> | 294 | </div> |
295 | </div> | 295 | </div> |
296 | </section> | 296 | </section> |
297 | <!-- Партнеры --> | 297 | <!-- Партнеры --> |
298 | 298 | ||
299 | @if ($partners->count()) | 299 | @if ($partners->count()) |
300 | <section class="partners"> | 300 | <section class="partners"> |
301 | <div class="container"> | 301 | <div class="container"> |
302 | <h2 class="partners__title title">Партнеры нашей компании</h2> | 302 | <h2 class="partners__title title">Партнеры нашей компании</h2> |
303 | <div class="partners__swiper swiper" data-mobile="false"> | 303 | <div class="partners__swiper swiper" data-mobile="false"> |
304 | <div class="swiper-wrapper"> | 304 | <div class="swiper-wrapper"> |
305 | <div class="swiper-slide"> | 305 | <div class="swiper-slide"> |
306 | <div class="partners__inner"> | 306 | <div class="partners__inner"> |
307 | @foreach ($partners as $partner) | 307 | @foreach ($partners as $partner) |
308 | <div class="partners-item"><img src="{{ $partner->foto }}" alt="{{ $partner->name }}" loading="lazy"></div> | 308 | <div class="partners-item"><img src="{{ asset(Storage::url($partner->foto))}}" alt="{{ $partner->name }}" loading="lazy"></div> |
309 | @endforeach | 309 | @endforeach |
310 | 310 | ||
311 | </div> | 311 | </div> |
312 | </div> | 312 | </div> |
313 | </div> | 313 | </div> |
314 | <div class="swiper-scrollbar"></div> | 314 | <div class="swiper-scrollbar"></div> |
315 | </div> | 315 | </div> |
316 | </div> | 316 | </div> |
317 | </section> | 317 | </section> |
318 | @endif | 318 | @endif |
319 | <!-- Новости --> | 319 | <!-- Новости --> |
320 | 320 | ||
321 | <section class="slider"> | 321 | <section class="slider"> |
322 | <div class="container"> | 322 | <div class="container"> |
323 | <div class="slider__wrap"> | 323 | <div class="slider__wrap"> |
324 | <div class="slider__top"> | 324 | <div class="slider__top"> |
325 | <h2 class="slider__title title">Новости</h2> | 325 | <h2 class="slider__title title">Новости</h2> |
326 | <div class="slider__control"> | 326 | <div class="slider__control"> |
327 | <div class="swiper-button-prev"> | 327 | <div class="swiper-button-prev"> |
328 | <svg width="10" height="17"> | 328 | <svg width="10" height="17"> |
329 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 329 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
330 | </svg> | 330 | </svg> |
331 | </div> | 331 | </div> |
332 | <div class="swiper-button-next"> | 332 | <div class="swiper-button-next"> |
333 | <svg width="10" height="17"> | 333 | <svg width="10" height="17"> |
334 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 334 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
335 | </svg> | 335 | </svg> |
336 | </div> | 336 | </div> |
337 | </div> | 337 | </div> |
338 | </div> | 338 | </div> |
339 | <div class="slider__swiper swiper"> | 339 | <div class="slider__swiper swiper"> |
340 | <div class="swiper-wrapper"> | 340 | <div class="swiper-wrapper"> |
341 | @if ($news->count()) | 341 | @if ($news->count()) |
342 | @foreach($news as $new) | 342 | @foreach($news as $new) |
343 | @include('catalogs.new', ['new' => $new]) | 343 | @include('catalogs.new', ['new' => $new]) |
344 | @endforeach | 344 | @endforeach |
345 | @else | 345 | @else |
346 | <h3>Пока здесь нет новостей!</h3> | 346 | <h3>Пока здесь нет новостей!</h3> |
347 | @endif | 347 | @endif |
348 | 348 | ||
349 | 349 | ||
350 | <!--<div class="swiper-slide"> | 350 | <!--<div class="swiper-slide"> |
351 | <div class="card-news"> | 351 | <div class="card-news"> |
352 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> | 352 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> |
353 | <div class="card-news__date"><span>15</span><span>Декабря 2022</span></div> | 353 | <div class="card-news__date"><span>15</span><span>Декабря 2022</span></div> |
354 | </div> | 354 | </div> |
355 | <div class="card-news__cnt"> | 355 | <div class="card-news__cnt"> |
356 | <p class="card-news__descr">Компания Renttorg продолжает активно сотрудничать с площадкой Сбера Portal DA</p><a class="card-news__link" href="#">Подробнее | 356 | <p class="card-news__descr">Компания Renttorg продолжает активно сотрудничать с площадкой Сбера Portal DA</p><a class="card-news__link" href="#">Подробнее |
357 | <svg width="17" height="12"> | 357 | <svg width="17" height="12"> |
358 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 358 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
359 | </svg></a> | 359 | </svg></a> |
360 | </div> | 360 | </div> |
361 | </div> | 361 | </div> |
362 | </div> | 362 | </div> |
363 | <div class="swiper-slide"> | 363 | <div class="swiper-slide"> |
364 | <div class="card-news"> | 364 | <div class="card-news"> |
365 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> | 365 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> |
366 | <div class="card-news__date"><span>23</span><span>Октября 2022</span></div> | 366 | <div class="card-news__date"><span>23</span><span>Октября 2022</span></div> |
367 | </div> | 367 | </div> |
368 | <div class="card-news__cnt"> | 368 | <div class="card-news__cnt"> |
369 | <p class="card-news__descr">Про надежность торговых арендаторов</p><a class="card-news__link" href="#">Подробнее | 369 | <p class="card-news__descr">Про надежность торговых арендаторов</p><a class="card-news__link" href="#">Подробнее |
370 | <svg width="17" height="12"> | 370 | <svg width="17" height="12"> |
371 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 371 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
372 | </svg></a> | 372 | </svg></a> |
373 | </div> | 373 | </div> |
374 | </div> | 374 | </div> |
375 | </div> | 375 | </div> |
376 | <div class="swiper-slide"> | 376 | <div class="swiper-slide"> |
377 | <div class="card-news"> | 377 | <div class="card-news"> |
378 | <div class="card-news__top"><img src="images/card/card-img-7.jpg" alt="Превью к новости" loading="lazy"> | 378 | <div class="card-news__top"><img src="images/card/card-img-7.jpg" alt="Превью к новости" loading="lazy"> |
379 | <div class="card-news__date"><span>19</span><span>Ноября 2022</span></div> | 379 | <div class="card-news__date"><span>19</span><span>Ноября 2022</span></div> |
380 | </div> | 380 | </div> |
381 | <div class="card-news__cnt"> | 381 | <div class="card-news__cnt"> |
382 | <p class="card-news__descr">Кто развивается быстрее всех из арендаторов</p><a class="card-news__link" href="#">Подробнее | 382 | <p class="card-news__descr">Кто развивается быстрее всех из арендаторов</p><a class="card-news__link" href="#">Подробнее |
383 | <svg width="17" height="12"> | 383 | <svg width="17" height="12"> |
384 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 384 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
385 | </svg></a> | 385 | </svg></a> |
386 | </div> | 386 | </div> |
387 | </div> | 387 | </div> |
388 | </div> | 388 | </div> |
389 | <div class="swiper-slide"> | 389 | <div class="swiper-slide"> |
390 | <div class="card-news"> | 390 | <div class="card-news"> |
391 | <div class="card-news__top"><img src="images/card/card-img-8.jpg" alt="Превью к новости" loading="lazy"> | 391 | <div class="card-news__top"><img src="images/card/card-img-8.jpg" alt="Превью к новости" loading="lazy"> |
392 | <div class="card-news__date"><span>31</span><span>Декабря 2022</span></div> | 392 | <div class="card-news__date"><span>31</span><span>Декабря 2022</span></div> |
393 | </div> | 393 | </div> |
394 | <div class="card-news__cnt"> | 394 | <div class="card-news__cnt"> |
395 | <p class="card-news__descr">Помещение с окупаемостью 6-7 лет, насколько реально купить?</p><a class="card-news__link" href="#">Подробнее | 395 | <p class="card-news__descr">Помещение с окупаемостью 6-7 лет, насколько реально купить?</p><a class="card-news__link" href="#">Подробнее |
396 | <svg width="17" height="12"> | 396 | <svg width="17" height="12"> |
397 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 397 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
398 | </svg></a> | 398 | </svg></a> |
399 | </div> | 399 | </div> |
400 | </div> | 400 | </div> |
401 | </div> | 401 | </div> |
402 | <div class="swiper-slide"> | 402 | <div class="swiper-slide"> |
403 | <div class="card-news"> | 403 | <div class="card-news"> |
404 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> | 404 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> |
405 | <div class="card-news__date"><span>15</span><span>Декабря 2022</span></div> | 405 | <div class="card-news__date"><span>15</span><span>Декабря 2022</span></div> |
406 | </div> | 406 | </div> |
407 | <div class="card-news__cnt"> | 407 | <div class="card-news__cnt"> |
408 | <p class="card-news__descr">Компания Renttorg продолжает активно сотрудничать с площадкой Сбера Portal DA</p><a class="card-news__link" href="#">Подробнее | 408 | <p class="card-news__descr">Компания Renttorg продолжает активно сотрудничать с площадкой Сбера Portal DA</p><a class="card-news__link" href="#">Подробнее |
409 | <svg width="17" height="12"> | 409 | <svg width="17" height="12"> |
410 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 410 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
411 | </svg></a> | 411 | </svg></a> |
412 | </div> | 412 | </div> |
413 | </div> | 413 | </div> |
414 | </div> | 414 | </div> |
415 | <div class="swiper-slide"> | 415 | <div class="swiper-slide"> |
416 | <div class="card-news"> | 416 | <div class="card-news"> |
417 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> | 417 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> |
418 | <div class="card-news__date"><span>23</span><span>Октября 2022</span></div> | 418 | <div class="card-news__date"><span>23</span><span>Октября 2022</span></div> |
419 | </div> | 419 | </div> |
420 | <div class="card-news__cnt"> | 420 | <div class="card-news__cnt"> |
421 | <p class="card-news__descr">Про надежность торговых арендаторов</p><a class="card-news__link" href="#">Подробнее | 421 | <p class="card-news__descr">Про надежность торговых арендаторов</p><a class="card-news__link" href="#">Подробнее |
422 | <svg width="17" height="12"> | 422 | <svg width="17" height="12"> |
423 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 423 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
424 | </svg></a> | 424 | </svg></a> |
425 | </div> | 425 | </div> |
426 | </div> | 426 | </div> |
427 | </div> | 427 | </div> |
428 | <div class="swiper-slide"> | 428 | <div class="swiper-slide"> |
429 | <div class="card-news"> | 429 | <div class="card-news"> |
430 | <div class="card-news__top"><img src="images/card/card-img-7.jpg" alt="Превью к новости" loading="lazy"> | 430 | <div class="card-news__top"><img src="images/card/card-img-7.jpg" alt="Превью к новости" loading="lazy"> |
431 | <div class="card-news__date"><span>19</span><span>Ноября 2022</span></div> | 431 | <div class="card-news__date"><span>19</span><span>Ноября 2022</span></div> |
432 | </div> | 432 | </div> |
433 | <div class="card-news__cnt"> | 433 | <div class="card-news__cnt"> |
434 | <p class="card-news__descr">Кто развивается быстрее всех из арендаторов</p><a class="card-news__link" href="#">Подробнее | 434 | <p class="card-news__descr">Кто развивается быстрее всех из арендаторов</p><a class="card-news__link" href="#">Подробнее |
435 | <svg width="17" height="12"> | 435 | <svg width="17" height="12"> |
436 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 436 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
437 | </svg></a> | 437 | </svg></a> |
438 | </div> | 438 | </div> |
439 | </div> | 439 | </div> |
440 | </div> | 440 | </div> |
441 | <div class="swiper-slide"> | 441 | <div class="swiper-slide"> |
442 | <div class="card-news"> | 442 | <div class="card-news"> |
443 | <div class="card-news__top"><img src="images/card/card-img-8.jpg" alt="Превью к новости" loading="lazy"> | 443 | <div class="card-news__top"><img src="images/card/card-img-8.jpg" alt="Превью к новости" loading="lazy"> |
444 | <div class="card-news__date"><span>31</span><span>Декабря 2022</span></div> | 444 | <div class="card-news__date"><span>31</span><span>Декабря 2022</span></div> |
445 | </div> | 445 | </div> |
446 | <div class="card-news__cnt"> | 446 | <div class="card-news__cnt"> |
447 | <p class="card-news__descr">Помещение с окупаемостью 6-7 лет, насколько реально купить?</p><a class="card-news__link" href="#">Подробнее | 447 | <p class="card-news__descr">Помещение с окупаемостью 6-7 лет, насколько реально купить?</p><a class="card-news__link" href="#">Подробнее |
448 | <svg width="17" height="12"> | 448 | <svg width="17" height="12"> |
449 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 449 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
450 | </svg></a> | 450 | </svg></a> |
451 | </div> | 451 | </div> |
452 | </div> | 452 | </div> |
453 | </div>--> | 453 | </div>--> |
454 | </div> | 454 | </div> |
455 | </div> | 455 | </div> |
456 | <div class="swiper-pagination"></div> | 456 | <div class="swiper-pagination"></div> |
457 | </div> | 457 | </div> |
458 | </div> | 458 | </div> |
459 | </section> | 459 | </section> |
460 | @endsection | 460 | @endsection |
461 | 461 | ||
462 | @section('form_feedback') | 462 | @section('form_feedback') |
463 | <!-- Форма обратной связи --> | 463 | <!-- Форма обратной связи --> |
464 | @include('form.form_feedback') | 464 | @include('form.form_feedback') |
465 | 465 | ||
466 | @endsection | 466 | @endsection |
467 | 467 | ||
468 | 468 | ||
469 | 469 | ||
470 | 470 |
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">×</span> | 91 | <span aria-hidden="true">×</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">×</span> | 102 | <span aria-hidden="true">×</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 | |||
340 | <!-- Всплывашка этажа и объекта | ||
339 | <div class="offer-side-popup" data-popup="offer-side-popup"> | 341 | <div class="offer-side-popup" data-popup="offer-side-popup"> |
340 | <div class="offer-side-popup__wrap"> | 342 | <div class="offer-side-popup__wrap"> |
341 | <button class="offer-side-popup__close js_popup_close" type="button"> | 343 | <button class="offer-side-popup__close js_popup_close" type="button"> |
342 | <svg width="20" height="20"> | 344 | <svg width="20" height="20"> |
343 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | 345 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
344 | </svg> | 346 | </svg> |
345 | </button> | 347 | </button> |
346 | <div class="offer-side-popup__cnt"> | 348 | <div class="offer-side-popup__cnt"> |
347 | <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> |
348 | <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> |
349 | </div> | 351 | </div> |
350 | <div class="offer-side-popup__tabs"> | 352 | <div class="offer-side-popup__tabs"> |
351 | <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> |
352 | <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> |
353 | </div> | 355 | </div> |
354 | <button class="offer-side-popup__sizeoff js_popup_close" type="button"> | 356 | <button class="offer-side-popup__sizeoff js_popup_close" type="button"> |
355 | <svg width="18" height="18"> | 357 | <svg width="18" height="18"> |
356 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> | 358 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> |
357 | </svg> | 359 | </svg> |
358 | </button> | 360 | </button> |
359 | </div> | 361 | </div> |
360 | </div> | 362 | </div> |
363 | --> | ||
364 | |||
361 | <div class="img-viewer js_img_viewer"> | 365 | <div class="img-viewer js_img_viewer"> |
362 | <div class="img-viewer__wrap"> | 366 | <div class="img-viewer__wrap"> |
363 | <button class="img-viewer__close js_img_viewer_close" type="button"> | 367 | <button class="img-viewer__close js_img_viewer_close" type="button"> |
364 | <svg width="20" height="20"> | 368 | <svg width="20" height="20"> |
365 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | 369 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
366 | </svg> | 370 | </svg> |
367 | </button> | 371 | </button> |
368 | <div class="img-viewer__thumbs js_img_viewer_thumbs"> | 372 | <div class="img-viewer__thumbs js_img_viewer_thumbs"> |
369 | <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"> |
370 | <div class="swiper-wrapper"></div> | 374 | <div class="swiper-wrapper"></div> |
371 | </div> | 375 | </div> |
372 | </div> | 376 | </div> |
373 | <div class="img-viewer__slider"> | 377 | <div class="img-viewer__slider"> |
374 | <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"> |
375 | <div class="swiper-wrapper"></div> | 379 | <div class="swiper-wrapper"></div> |
376 | </div> | 380 | </div> |
377 | <div class="swiper-button-prev"> | 381 | <div class="swiper-button-prev"> |
378 | <svg width="10" height="17"> | 382 | <svg width="10" height="17"> |
379 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> | 383 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> |
380 | </svg> | 384 | </svg> |
381 | </div> | 385 | </div> |
382 | <div class="swiper-button-next"> | 386 | <div class="swiper-button-next"> |
383 | <svg width="10" height="17"> | 387 | <svg width="10" height="17"> |
384 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> | 388 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> |
385 | </svg> | 389 | </svg> |
386 | </div> | 390 | </div> |
387 | </div> | 391 | </div> |
388 | <div class="img-viewer__caption js_img_viewer_caption"></div> | 392 | <div class="img-viewer__caption js_img_viewer_caption"></div> |
389 | <button class="img-viewer__sizeoff js_img_viewer_close" type="button"> | 393 | <button class="img-viewer__sizeoff js_img_viewer_close" type="button"> |
390 | <svg width="18" height="18"> | 394 | <svg width="18" height="18"> |
391 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use> | 395 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use> |
392 | </svg> | 396 | </svg> |
393 | </button> | 397 | </button> |
394 | </div> | 398 | </div> |
395 | </div> | 399 | </div> |
396 | <div class="cookies js_cookies"> | 400 | <div class="cookies js_cookies"> |
397 | <div class="container"> | 401 | <div class="container"> |
398 | <div class="cookies__wrap"> | 402 | <div class="cookies__wrap"> |
399 | <div class="cookies__top"> | 403 | <div class="cookies__top"> |
400 | <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> |
401 | <div class="cookies__title">Cookies</div> | 405 | <div class="cookies__title">Cookies</div> |
402 | </div> | 406 | </div> |
403 | <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p> | 407 | <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p> |
404 | <div class="cookies__buttons"> | 408 | <div class="cookies__buttons"> |
405 | <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> |
406 | </div> | 410 | </div> |
407 | </div> | 411 | </div> |
408 | </div> | 412 | </div> |
409 | </div> | 413 | </div> |
410 | <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> |
411 | <script src="{{ asset('js/swiper-bundle.min.js') }}"></script> | 415 | <script src="{{ asset('js/swiper-bundle.min.js') }}"></script> |
412 | <script src="{{ asset('js/main.js') }}"></script> | 416 | <script src="{{ asset('js/main.js') }}"></script> |
413 | <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script> | 417 | <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script> |
414 | <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script> | 418 | <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script> |
415 | @yield('custom_js') | 419 | @yield('custom_js') |
416 | @include('js.cookies_favorite') | 420 | @include('js.cookies_favorite') |
417 | </body> | 421 | </body> |
418 | </html> | 422 | </html> |
419 | 423 |
resources/views/mapsobj.blade.php
1 | @extends('layout.site', ['title' => 'Объекты на карте RentTorg']) | 1 | @extends('layout.site', ['title' => 'Объекты на карте RentTorg']) |
2 | 2 | ||
3 | @section('filter') | ||
4 | @include('part.filter.mapsobj') | ||
5 | @endsection | ||
6 | |||
7 | @section('custom_js') | ||
8 | @include('js.filter_value') | ||
9 | @endsection | ||
10 | |||
3 | @section('content') | 11 | @section('content') |
4 | <section class="hero hero--modified2"> | ||
5 | <div class="container"> | ||
6 | <div class="hero__bg" style="background-image:url('images/page-map-bg.jpg')"></div> | ||
7 | <div class="hero__wrap"> | ||
8 | <div class="hero__inner"> | ||
9 | <div class="breadcrumbs"> | ||
10 | <ul class="breadcrumbs__list"> | ||
11 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="#">Главная</a></li> | ||
12 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">Объекты на карте</span></li> | ||
13 | </ul> | ||
14 | </div> | ||
15 | <div class="hero__cnt"> | ||
16 | <h1 class="hero__title title-main">Объекты на карте</h1> | ||
17 | </div> | ||
18 | <div class="hero__bottom"> | ||
19 | <div class="hero-search"> | ||
20 | <div class="hero-search__control"> | ||
21 | <div class="hero-filter hero-filter--modified1 js_hero_filter"> | ||
22 | <input class="js_hero_filter_input" type="hidden"> | ||
23 | <div class="hero-filter__current js_hero_filter_current">Все объекты</div> | ||
24 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
25 | <ul class="hero-filter__list"> | ||
26 | <li class="hero-filter__item" data-val="1">Все объекты</li> | ||
27 | <li class="hero-filter__item" data-val="2">ЖК Большое Путилково</li> | ||
28 | <li class="hero-filter__item" data-val="3">ЖК Ильменский 17</li> | ||
29 | <li class="hero-filter__item" data-val="4">ЖК Первый Московский</li> | ||
30 | <li class="hero-filter__item" data-val="5">ЖК Большое Путилково</li> | ||
31 | <li class="hero-filter__item" data-val="6">ЖК Ильменский 17</li> | ||
32 | <li class="hero-filter__item" data-val="7">ЖК Первый Московский</li> | ||
33 | </ul> | ||
34 | </div> | ||
35 | </div> | ||
36 | <div class="hero-filter hero-filter--modified2 js_hero_filter"> | ||
37 | <input class="js_hero_filter_input" type="hidden"> | ||
38 | <div class="hero-filter__current js_hero_filter_current">Тип недвижимости</div> | ||
39 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
40 | <ul class="hero-filter__list"> | ||
41 | <li class="hero-filter__item" data-val="1">Выбрать все</li> | ||
42 | <li class="hero-filter__item" data-val="2">Индустриальная недвижимость</li> | ||
43 | <li class="hero-filter__item" data-val="3">Офисы</li> | ||
44 | <li class="hero-filter__item" data-val="4">Торговое помещение</li> | ||
45 | <li class="hero-filter__item" data-val="5">Индустриальная недвижимость</li> | ||
46 | <li class="hero-filter__item" data-val="6">Офисы</li> | ||
47 | <li class="hero-filter__item" data-val="7">Торговое помещение</li> | ||
48 | </ul> | ||
49 | </div> | ||
50 | </div> | ||
51 | <div class="hero-filter hero-filter--modified3 js_hero_filter"> | ||
52 | <input class="js_hero_filter_input" type="hidden"> | ||
53 | <div class="hero-filter__current js_hero_filter_current">Формат недвижимости</div> | ||
54 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
55 | <ul class="hero-filter__list"> | ||
56 | <li class="hero-filter__item" data-val="1">Выбрать все</li> | ||
57 | <li class="hero-filter__item" data-val="2">Аптека</li> | ||
58 | <li class="hero-filter__item" data-val="3">Супермаркет</li> | ||
59 | <li class="hero-filter__item" data-val="4">Барбершоп</li> | ||
60 | <li class="hero-filter__item" data-val="5">Аптека</li> | ||
61 | <li class="hero-filter__item" data-val="6">Супермаркет</li> | ||
62 | <li class="hero-filter__item" data-val="7">Барбершоп</li> | ||
63 | </ul> | ||
64 | </div> | ||
65 | </div> | ||
66 | <div class="hero-filter hero-filter--modified4 js_hero_filter"> | ||
67 | <div class="hero-filter__current js_hero_filter_current">Площадь, м<sup>2</sup></div> | ||
68 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
69 | <div class="hero-filter__fields"> | ||
70 | <label class="hero-filter__field"><span>От</span> | ||
71 | <input class="js_hero_filter_field js_hero_filter_from" type="text" data-min="50" placeholder="50"> | ||
72 | </label> | ||
73 | <label class="hero-filter__field"><span>До</span> | ||
74 | <input class="js_hero_filter_field js_hero_filter_to" type="text" data-max="125000" placeholder="125 000"> | ||
75 | </label> | ||
76 | </div> | ||
77 | <button class="hero-filter__reset js_hero_filter_reset" type="button">Очистить</button> | ||
78 | </div> | ||
79 | </div> | ||
80 | <div class="hero-filter hero-filter--modified5 js_hero_filter"> | ||
81 | <div class="hero-filter__current js_hero_filter_current">Стоимость, ₽</div> | ||
82 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
83 | <div class="hero-filter__fields"> | ||
84 | <label class="hero-filter__field"><span>От</span> | ||
85 | <input class="js_hero_filter_field js_hero_filter_from" type="text" data-min="50" placeholder="50"> | ||
86 | </label> | ||
87 | <label class="hero-filter__field"><span>До</span> | ||
88 | <input class="js_hero_filter_field js_hero_filter_to" type="text" data-max="125000" placeholder="125 000"> | ||
89 | </label> | ||
90 | </div> | ||
91 | <button class="hero-filter__reset js_hero_filter_reset" type="button">Очистить</button> | ||
92 | </div> | ||
93 | </div> | ||
94 | </div> | ||
95 | <div class="hero-search__bottom"> | ||
96 | <div class="hero-search__field"> | ||
97 | <input type="text" placeholder="Укажите метро, округ, район, улицу"> | ||
98 | <button> | ||
99 | <svg width="20" height="20"> | ||
100 | <use xlink:href="images/sprite.svg#hero-search"> </use> | ||
101 | </svg> | ||
102 | </button> | ||
103 | </div> | ||
104 | <div class="hero-search__buttons"> | ||
105 | <button class="hero-search__btn btn btn--main js_hero_search_btn">Поиск</button> | ||
106 | </div> | ||
107 | </div> | ||
108 | </div> | ||
109 | </div> | ||
110 | </div> | ||
111 | </div> | ||
112 | </div> | ||
113 | </section> | ||
114 | <section class="page-map"> | 12 | <section class="page-map"> |
115 | <div class="page-map__wrap"> | 13 | <div class="page-map__wrap"> |
116 | <h2 class="visually-hidden">Карта</h2> | 14 | <h2 class="visually-hidden">Карта</h2> |
117 | <div class="page-map__map" id="general-map"></div> | 15 | <div class="page-map__map" id="general-map"></div> |
118 | <div class="container"> | 16 | <div class="container"> |
119 | <div class="page-map__inner"> | 17 | <div class="page-map__inner"> |
120 | <div class="page-map-bar js_page_map_bar active"> | 18 | <div class="page-map-bar js_page_map_bar active"> |
121 | <div class="page-map-bar__top">Все объекты | 19 | <div class="page-map-bar__top">Все объекты |
122 | <button class="page-map-bar__close js_page_map_bar_btn" type="button"> | 20 | <button class="page-map-bar__close js_page_map_bar_btn" type="button"> |
123 | <svg width="20" height="20"> | 21 | <svg width="20" height="20"> |
124 | <use xlink:href="images/sprite.svg#popup-close"></use> | 22 | <use xlink:href="images/sprite.svg#popup-close"></use> |
125 | </svg> | 23 | </svg> |
126 | </button> | 24 | </button> |
127 | </div> | 25 | </div> |
128 | <ul class="page-map-bar__list js_page_map_bar_list"> | 26 | <ul class="page-map-bar__list js_page_map_bar_list"> |
129 | <li class="page-map-bar__item">ЖК Большое Путилково</li> | 27 | <li class="page-map-bar__item">ЖК Большое Путилково</li> |
130 | <li class="page-map-bar__item">ЖК Среда</li> | 28 | <li class="page-map-bar__item">ЖК Среда</li> |
131 | <li class="page-map-bar__item">ЖК Квартал Триумфальный</li> | 29 | <li class="page-map-bar__item">ЖК Квартал Триумфальный</li> |
132 | <li class="page-map-bar__item">ЖК Алые Паруса</li> | 30 | <li class="page-map-bar__item">ЖК Алые Паруса</li> |
133 | <li class="page-map-bar__item">ЖК Первый Московский</li> | 31 | <li class="page-map-bar__item">ЖК Первый Московский</li> |
134 | <li class="page-map-bar__item">ЖК Ильменский 17</li> | 32 | <li class="page-map-bar__item">ЖК Ильменский 17</li> |
135 | <li class="page-map-bar__item">ЖК Царская Площадь</li> | 33 | <li class="page-map-bar__item">ЖК Царская Площадь</li> |
136 | <li class="page-map-bar__item">ЖК Переделкино Ближнее</li> | 34 | <li class="page-map-bar__item">ЖК Переделкино Ближнее</li> |
137 | <li class="page-map-bar__item">ЖК Этолон Cити</li> | 35 | <li class="page-map-bar__item">ЖК Этолон Cити</li> |
138 | <li class="page-map-bar__item">ЖК Триумф Палас</li> | 36 | <li class="page-map-bar__item">ЖК Триумф Палас</li> |
139 | </ul> | 37 | </ul> |
140 | <div class="card-news"> | 38 | <div class="card-news"> |
141 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> | 39 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> |
142 | <div class="card-news__date"><span>ЖК Большое Путилково</span><span></span></div> | 40 | <div class="card-news__date"><span>ЖК Большое Путилково</span><span></span></div> |
143 | </div> | 41 | </div> |
144 | <div class="card-news__cnt"> | 42 | <div class="card-news__cnt"> |
145 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 43 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
146 | <svg width="17" height="12"> | 44 | <svg width="17" height="12"> |
147 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 45 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
148 | </svg></a> | 46 | </svg></a> |
149 | </div> | 47 | </div> |
150 | </div> | 48 | </div> |
151 | <div class="card-news"> | 49 | <div class="card-news"> |
152 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> | 50 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> |
153 | <div class="card-news__date"><span>ЖК Среда</span><span></span></div> | 51 | <div class="card-news__date"><span>ЖК Среда</span><span></span></div> |
154 | </div> | 52 | </div> |
155 | <div class="card-news__cnt"> | 53 | <div class="card-news__cnt"> |
156 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 54 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
157 | <svg width="17" height="12"> | 55 | <svg width="17" height="12"> |
158 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 56 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
159 | </svg></a> | 57 | </svg></a> |
160 | </div> | 58 | </div> |
161 | </div> | 59 | </div> |
162 | <div class="card-news"> | 60 | <div class="card-news"> |
163 | <div class="card-news__top"><img src="images/card/card-img-7.jpg" alt="Превью к новости" loading="lazy"> | 61 | <div class="card-news__top"><img src="images/card/card-img-7.jpg" alt="Превью к новости" loading="lazy"> |
164 | <div class="card-news__date"><span>ЖК Квартал Триумфальный</span><span></span></div> | 62 | <div class="card-news__date"><span>ЖК Квартал Триумфальный</span><span></span></div> |
165 | </div> | 63 | </div> |
166 | <div class="card-news__cnt"> | 64 | <div class="card-news__cnt"> |
167 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 65 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
168 | <svg width="17" height="12"> | 66 | <svg width="17" height="12"> |
169 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 67 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
170 | </svg></a> | 68 | </svg></a> |
171 | </div> | 69 | </div> |
172 | </div> | 70 | </div> |
173 | <div class="card-news"> | 71 | <div class="card-news"> |
174 | <div class="card-news__top"><img src="images/card/card-img-8.jpg" alt="Превью к новости" loading="lazy"> | 72 | <div class="card-news__top"><img src="images/card/card-img-8.jpg" alt="Превью к новости" loading="lazy"> |
175 | <div class="card-news__date"><span>ЖК Алые Паруса</span><span></span></div> | 73 | <div class="card-news__date"><span>ЖК Алые Паруса</span><span></span></div> |
176 | </div> | 74 | </div> |
177 | <div class="card-news__cnt"> | 75 | <div class="card-news__cnt"> |
178 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 76 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
179 | <svg width="17" height="12"> | 77 | <svg width="17" height="12"> |
180 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 78 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
181 | </svg></a> | 79 | </svg></a> |
182 | </div> | 80 | </div> |
183 | </div> | 81 | </div> |
184 | <div class="card-news"> | 82 | <div class="card-news"> |
185 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> | 83 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> |
186 | <div class="card-news__date"><span>ЖК Первый Московский</span><span></span></div> | 84 | <div class="card-news__date"><span>ЖК Первый Московский</span><span></span></div> |
187 | </div> | 85 | </div> |
188 | <div class="card-news__cnt"> | 86 | <div class="card-news__cnt"> |
189 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 87 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
190 | <svg width="17" height="12"> | 88 | <svg width="17" height="12"> |
191 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 89 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
192 | </svg></a> | 90 | </svg></a> |
193 | </div> | 91 | </div> |
194 | </div> | 92 | </div> |
195 | <div class="card-news"> | 93 | <div class="card-news"> |
196 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> | 94 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> |
197 | <div class="card-news__date"><span>ЖК Ильменский 17</span><span></span></div> | 95 | <div class="card-news__date"><span>ЖК Ильменский 17</span><span></span></div> |
198 | </div> | 96 | </div> |
199 | <div class="card-news__cnt"> | 97 | <div class="card-news__cnt"> |
200 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 98 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
201 | <svg width="17" height="12"> | 99 | <svg width="17" height="12"> |
202 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 100 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
203 | </svg></a> | 101 | </svg></a> |
204 | </div> | 102 | </div> |
205 | </div> | 103 | </div> |
206 | <div class="card-news"> | 104 | <div class="card-news"> |
207 | <div class="card-news__top"><img src="images/card/card-img-7.jpg" alt="Превью к новости" loading="lazy"> | 105 | <div class="card-news__top"><img src="images/card/card-img-7.jpg" alt="Превью к новости" loading="lazy"> |
208 | <div class="card-news__date"><span>ЖК Царская Площадь</span><span></span></div> | 106 | <div class="card-news__date"><span>ЖК Царская Площадь</span><span></span></div> |
209 | </div> | 107 | </div> |
210 | <div class="card-news__cnt"> | 108 | <div class="card-news__cnt"> |
211 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 109 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
212 | <svg width="17" height="12"> | 110 | <svg width="17" height="12"> |
213 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 111 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
214 | </svg></a> | 112 | </svg></a> |
215 | </div> | 113 | </div> |
216 | </div> | 114 | </div> |
217 | <div class="card-news"> | 115 | <div class="card-news"> |
218 | <div class="card-news__top"><img src="images/card/card-img-8.jpg" alt="Превью к новости" loading="lazy"> | 116 | <div class="card-news__top"><img src="images/card/card-img-8.jpg" alt="Превью к новости" loading="lazy"> |
219 | <div class="card-news__date"><span>ЖК Переделкино Ближнее</span><span></span></div> | 117 | <div class="card-news__date"><span>ЖК Переделкино Ближнее</span><span></span></div> |
220 | </div> | 118 | </div> |
221 | <div class="card-news__cnt"> | 119 | <div class="card-news__cnt"> |
222 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 120 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
223 | <svg width="17" height="12"> | 121 | <svg width="17" height="12"> |
224 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 122 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
225 | </svg></a> | 123 | </svg></a> |
226 | </div> | 124 | </div> |
227 | </div> | 125 | </div> |
228 | <div class="card-news"> | 126 | <div class="card-news"> |
229 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> | 127 | <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy"> |
230 | <div class="card-news__date"><span>ЖК Этолон Cити</span><span></span></div> | 128 | <div class="card-news__date"><span>ЖК Этолон Cити</span><span></span></div> |
231 | </div> | 129 | </div> |
232 | <div class="card-news__cnt"> | 130 | <div class="card-news__cnt"> |
233 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 131 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
234 | <svg width="17" height="12"> | 132 | <svg width="17" height="12"> |
235 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 133 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
236 | </svg></a> | 134 | </svg></a> |
237 | </div> | 135 | </div> |
238 | </div> | 136 | </div> |
239 | <div class="card-news"> | 137 | <div class="card-news"> |
240 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> | 138 | <div class="card-news__top"><img src="images/card/card-img-6.jpg" alt="Превью к новости" loading="lazy"> |
241 | <div class="card-news__date"><span>ЖК Триумф Палас</span><span></span></div> | 139 | <div class="card-news__date"><span>ЖК Триумф Палас</span><span></span></div> |
242 | </div> | 140 | </div> |
243 | <div class="card-news__cnt"> | 141 | <div class="card-news__cnt"> |
244 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее | 142 | <p class="card-news__descr">Помещение расположено на первой фасадной линии Лесной улицы. В нескольких минутах пешком от метро «Белорусская», Бизнес центра класса «А» «Белая площадь», напротив гостиницы «Holiday Inn» и рядом с фудмоллом</p><a class="card-news__link" href="#">Подробнее |
245 | <svg width="17" height="12"> | 143 | <svg width="17" height="12"> |
246 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> | 144 | <use xlink:href="images/sprite.svg#card-news-link-arrow"></use> |
247 | </svg></a> | 145 | </svg></a> |
248 | </div> | 146 | </div> |
249 | </div> | 147 | </div> |
250 | </div> | 148 | </div> |
251 | </div> | 149 | </div> |
252 | </div> | 150 | </div> |
253 | </div> | 151 | </div> |
254 | </section> | 152 | </section> |
resources/views/part/filter/mapsobj.blade.php
File was created | 1 | <section class="hero hero--modified2"> | |
2 | <div class="container"> | ||
3 | <div class="hero__bg" style="background-image:url('images/page-map-bg.jpg')"></div> | ||
4 | <div class="hero__wrap"> | ||
5 | <div class="hero__inner"> | ||
6 | <div class="breadcrumbs"> | ||
7 | <ul class="breadcrumbs__list"> | ||
8 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> | ||
9 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">Объекты на карте</span></li> | ||
10 | </ul> | ||
11 | </div> | ||
12 | <div class="hero__cnt"> | ||
13 | <h1 class="hero__title title-main">Объекты на карте</h1> | ||
14 | </div> | ||
15 | <div class="hero__bottom"> | ||
16 | <form class="hero-search" action="{{ route('maps') }}" method="GET"> | ||
17 | <div class="hero-search__control"> | ||
18 | <div class="hero-filter hero-filter--modified1 js_hero_filter"> | ||
19 | <input class="js_hero_filter_input" id="area" name="area" type="hidden"> | ||
20 | <div class="hero-filter__current js_hero_filter_current" id="area_name" name="area_name">Все объекты</div> | ||
21 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
22 | <ul class="hero-filter__list"> | ||
23 | <li class="hero-filter__item" data-val="0">Все объекты</li> | ||
24 | @if ($items_area->count()) | ||
25 | @foreach($items_area as $item_area) | ||
26 | <li class="hero-filter__item" data-val="{{ $item_area->id }}">{{ $item_area->name_area }}</li> | ||
27 | @endforeach | ||
28 | @endif | ||
29 | </ul> | ||
30 | </div> | ||
31 | </div> | ||
32 | <div class="hero-filter hero-filter--modified2 js_hero_filter"> | ||
33 | <input class="js_hero_filter_input" id="type_area" name="type_area" type="hidden"> | ||
34 | <div class="hero-filter__current js_hero_filter_current" id="type_area_name" name="type_area_name">Тип недвижимости</div> | ||
35 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
36 | <ul class="hero-filter__list"> | ||
37 | <li class="hero-filter__item" data-val="0">Выбрать все</li> | ||
38 | @if ($items_type_area->count()) | ||
39 | @foreach($items_type_area as $item_type_area) | ||
40 | <li class="hero-filter__item" data-val="{{ $item_type_area->id }}">{{ $item_type_area->name_type }}</li> | ||
41 | @endforeach | ||
42 | @endif | ||
43 | </ul> | ||
44 | </div> | ||
45 | </div> | ||
46 | <div class="hero-filter hero-filter--modified3 js_hero_filter"> | ||
47 | <input class="js_hero_filter_input" id="format_area" name="format_area" type="hidden"> | ||
48 | <div class="hero-filter__current js_hero_filter_current" id="format_area_name" name="format_area_name">Формат недвижимости</div> | ||
49 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
50 | <ul class="hero-filter__list"> | ||
51 | <li class="hero-filter__item" data-val="0">Выбрать все</li> | ||
52 | @if ($items_format_area->count()) | ||
53 | @foreach($items_format_area as $item_format_area) | ||
54 | <li class="hero-filter__item" data-val="{{ $item_format_area->id }}">{{ $item_format_area->name_format }}</li> | ||
55 | @endforeach | ||
56 | @endif | ||
57 | </ul> | ||
58 | </div> | ||
59 | </div> | ||
60 | <div class="hero-filter hero-filter--modified4 js_hero_filter"> | ||
61 | <div class="hero-filter__current js_hero_filter_current">Площадь, м<sup>2</sup></div> | ||
62 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
63 | <div class="hero-filter__fields"> | ||
64 | <label class="hero-filter__field"><span>От</span> | ||
65 | <input class="js_hero_filter_field js_hero_filter_from" id="area_m2_min" name="area_m2_min" type="text" data-min="3" placeholder="3" value="<?if (isset($_GET['area_m2_min'])) { echo($_GET['area_m2_min']); }?>"> | ||
66 | </label> | ||
67 | <label class="hero-filter__field"><span>До</span> | ||
68 | <input class="js_hero_filter_field js_hero_filter_to" id="area_m2_max" name="area_m2_max" type="text" data-max="125000" placeholder="125 000" value="<?if (isset($_GET['area_m2_max'])) { echo($_GET['area_m2_max']);}?>"> | ||
69 | </label> | ||
70 | </div> | ||
71 | <button class="hero-filter__reset js_hero_filter_reset" type="button">Очистить</button> | ||
72 | </div> | ||
73 | </div> | ||
74 | <div class="hero-filter hero-filter--modified5 js_hero_filter"> | ||
75 | <div class="hero-filter__current js_hero_filter_current">Стоимость, ₽</div> | ||
76 | <div class="hero-filter__dropdown js_hero_filter_dropdown"> | ||
77 | <div class="hero-filter__fields"> | ||
78 | <label class="hero-filter__field"><span>От</span> | ||
79 | <input class="js_hero_filter_field js_hero_filter_from" id="price_min" name="price_min" type="text" data-min="50" placeholder="50" value="<?if (isset($_GET['price_min'])) { echo ($_GET['price_min']); } ?>"> | ||
80 | </label> | ||
81 | <label class="hero-filter__field"><span>До</span> | ||
82 | <input class="js_hero_filter_field js_hero_filter_to" id="price_max" name="price_max" type="text" data-max="125000" placeholder="125 000" value="<?if (isset($_GET['price_max'])) { echo ($_GET['price_max']); }?>"> | ||
83 | </label> | ||
84 | </div> | ||
85 | <button class="hero-filter__reset js_hero_filter_reset" type="button">Очистить</button> | ||
86 | </div> | ||
87 | </div> | ||
88 | </div> | ||
89 | <div class="hero-search__bottom"> | ||
90 | <div class="hero-search__field"> | ||
91 | <input type="text" id="address" name="address" placeholder="Укажите метро, округ, район, улицу" value="<?if (isset($_GET['address'])) { echo ($_GET['address']); }?>"> | ||
92 | <button> | ||
93 | <svg width="20" height="20"> | ||
94 | <use xlink:href="{{ asset('images/sprite.svg#hero-search') }}"> </use> | ||
95 | </svg> | ||
96 | </button> | ||
97 | </div> | ||
98 | <div class="hero-search__buttons"> | ||
99 | <a class="hero-search__btn btn btn--white js_hero_search_btn" href="{{ route('maps') }}">Показать на карте</a> | ||
100 | <button type="submit" class="hero-search__btn btn btn--main js_hero_search_btn"> | ||
101 | Искать | ||
102 | </button> | ||
103 | </div> | ||
104 | </div> | ||
105 | </form> | ||
106 | </div> | ||
107 | </div> | ||
108 | </div> | ||
109 | </div> | ||
110 | </section> | ||
111 |