Commit a9da0bb95e8b9da4572bb40c5a7667d084fb1f69
1 parent
995960380e
Exists in
master
Pdf-генераторы
Showing 7 changed files with 48 additions and 6 deletions Inline Diff
.gitignore
1 | /node_modules | 1 | /node_modules |
2 | /public/build | 2 | /public/build |
3 | /public/hot | 3 | /public/hot |
4 | /public/storage | ||
5 | /storage/*.key | 4 | /storage/*.key |
6 | /vendor | 5 | /vendor |
7 | .env | 6 | .env |
8 | .env.backup | 7 | .env.backup |
9 | .env.production | 8 | .env.production |
10 | .phpunit.result.cache | 9 | .phpunit.result.cache |
11 | Homestead.json | 10 | Homestead.json |
12 | Homestead.yaml | 11 | Homestead.yaml |
13 | auth.json | 12 | auth.json |
14 | npm-debug.log | 13 | npm-debug.log |
15 | yarn-error.log | 14 | yarn-error.log |
16 | /.fleet | 15 | /.fleet |
17 | /.idea | 16 | /.idea |
18 | /.vscode | 17 | /.vscode |
19 | 18 |
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\Classes\SortData; | 5 | use App\Classes\SortData; |
6 | use App\Http\Requests\EmailRequest; | 6 | use App\Http\Requests\EmailRequest; |
7 | use App\Http\Requests\FooterFeedbackRequest; | 7 | use App\Http\Requests\FooterFeedbackRequest; |
8 | use App\Mail\SendMail; | 8 | use App\Mail\SendMail; |
9 | use App\Models\Area; | 9 | use App\Models\Area; |
10 | use App\Models\Contact; | 10 | use App\Models\Contact; |
11 | use App\Models\format_area; | 11 | use App\Models\format_area; |
12 | use App\Models\House; | 12 | use App\Models\House; |
13 | use App\Models\ModelMailFeedback; | 13 | use App\Models\ModelMailFeedback; |
14 | use App\Models\News; | 14 | use App\Models\News; |
15 | use App\Models\Page; | 15 | use App\Models\Page; |
16 | use App\Models\Partners; | 16 | use App\Models\Partners; |
17 | use App\Models\type_area; | 17 | use App\Models\type_area; |
18 | use Barryvdh\DomPDF\Facade\Pdf; | 18 | use Barryvdh\DomPDF\Facade\Pdf; |
19 | use Illuminate\Database\Eloquent\Model; | 19 | use Illuminate\Database\Eloquent\Model; |
20 | use Illuminate\Http\Request; | 20 | use Illuminate\Http\Request; |
21 | use App\Classes\RusDate; | 21 | use App\Classes\RusDate; |
22 | use Illuminate\Support\Facades\DB; | 22 | use Illuminate\Support\Facades\DB; |
23 | use Illuminate\Support\Facades\Mail; | 23 | use Illuminate\Support\Facades\Mail; |
24 | use PhpParser\Node\Stmt\Switch_; | 24 | use PhpParser\Node\Stmt\Switch_; |
25 | use Illuminate\Support\Facades\Response; | 25 | use Illuminate\Support\Facades\Response; |
26 | use App\Classes\FilterData; | 26 | use App\Classes\FilterData; |
27 | //use App\Mail\SendMail; | 27 | //use App\Mail\SendMail; |
28 | //use PDF; | 28 | //use PDF; |
29 | 29 | ||
30 | class MainController extends Controller | 30 | class MainController extends Controller |
31 | { | 31 | { |
32 | /* | 32 | /* |
33 | * Главная страница проекта | 33 | * Главная страница проекта |
34 | */ | 34 | */ |
35 | public function index() { | 35 | public function index() { |
36 | $houses = House::with('areas')->orderByDesc('created_at')->limit(8)->get(); | 36 | $houses = House::with('areas')->orderByDesc('created_at')->limit(8)->get(); |
37 | $news = News::query()->orderByDesc('created_at')->limit(8)->get(); | 37 | $news = News::query()->orderByDesc('created_at')->limit(8)->get(); |
38 | $partners = Partners::query()->limit(18)->get(); | 38 | $partners = Partners::query()->limit(18)->get(); |
39 | return view('index', compact('houses', 'news', 'partners')); | 39 | return view('index', compact('houses', 'news', 'partners')); |
40 | } | 40 | } |
41 | 41 | ||
42 | /* | 42 | /* |
43 | * Фильтр ajax в каталоге | 43 | * Фильтр ajax в каталоге |
44 | */ | 44 | */ |
45 | public function catalog_ajax_filter(Request $request) { | 45 | public function catalog_ajax_filter(Request $request) { |
46 | $Res = Array(); | 46 | $Res = Array(); |
47 | if (!empty($request->area)) { | 47 | if (!empty($request->area)) { |
48 | $area_table = Area::where('id', '=', $request->area)->get(); | 48 | $area_table = Area::where('id', '=', $request->area)->get(); |
49 | $Res[] = $area_table[0]->name_area; | 49 | $Res[] = $area_table[0]->name_area; |
50 | } else { | 50 | } else { |
51 | $Res[] = "Все объекты"; | 51 | $Res[] = "Все объекты"; |
52 | } | 52 | } |
53 | 53 | ||
54 | if (!empty($request->type_area)) { | 54 | if (!empty($request->type_area)) { |
55 | $type_area_table = type_area::where('id', '=', $request->type_area)->get(); | 55 | $type_area_table = type_area::where('id', '=', $request->type_area)->get(); |
56 | $Res[] = $type_area_table[0]->name_type; | 56 | $Res[] = $type_area_table[0]->name_type; |
57 | } else { | 57 | } else { |
58 | $Res[] = "Тип недвижимости"; | 58 | $Res[] = "Тип недвижимости"; |
59 | } | 59 | } |
60 | 60 | ||
61 | if (!empty($request->format_area)) { | 61 | if (!empty($request->format_area)) { |
62 | $format_area_table = format_area::where('id', '=', $request->format_area)->get(); | 62 | $format_area_table = format_area::where('id', '=', $request->format_area)->get(); |
63 | $Res[] = $format_area_table[0]->name_format; | 63 | $Res[] = $format_area_table[0]->name_format; |
64 | } else { | 64 | } else { |
65 | $Res[] = "Формат недвижимости"; | 65 | $Res[] = "Формат недвижимости"; |
66 | } | 66 | } |
67 | 67 | ||
68 | return json_encode($Res); | 68 | return json_encode($Res); |
69 | } | 69 | } |
70 | 70 | ||
71 | /* | 71 | /* |
72 | * Страница ЖК | 72 | * Страница ЖК |
73 | */ | 73 | */ |
74 | public function Complex(Area $area, Request $request) { | 74 | public function Complex(Area $area, Request $request) { |
75 | //////////раздел аренда | 75 | //////////раздел аренда |
76 | $house_arenda = House::with('areas')-> | 76 | $house_arenda = House::with('areas')-> |
77 | where('area_id', '=', $area->id)-> | 77 | where('area_id', '=', $area->id)-> |
78 | where('format_house', '=', 'Аренда'); | 78 | where('format_house', '=', 'Аренда'); |
79 | 79 | ||
80 | if ($request->view == 'arenda') { | 80 | if ($request->view == 'arenda') { |
81 | $house_arenda = (new SortData($house_arenda, $request))->apply()->get(); | 81 | $house_arenda = (new SortData($house_arenda, $request))->apply()->get(); |
82 | 82 | ||
83 | } else { | 83 | } else { |
84 | $house_arenda = $house_arenda->orderBy('price')-> | 84 | $house_arenda = $house_arenda->orderBy('price')-> |
85 | orderByDesc('created_at')-> | 85 | orderByDesc('created_at')-> |
86 | orderByDesc('area')->get(); | 86 | orderByDesc('area')->get(); |
87 | } | 87 | } |
88 | 88 | ||
89 | ////////раздел продажа | 89 | ////////раздел продажа |
90 | $house_prodaja = House::with('areas')-> | 90 | $house_prodaja = House::with('areas')-> |
91 | where('area_id', '=', $area->id)-> | 91 | where('area_id', '=', $area->id)-> |
92 | where('format_house', '=', 'Продажа'); | 92 | where('format_house', '=', 'Продажа'); |
93 | 93 | ||
94 | if ($request->view == 'prodaja') { | 94 | if ($request->view == 'prodaja') { |
95 | $house_prodaja = (new SortData($house_prodaja, $request))->apply()->get(); | 95 | $house_prodaja = (new SortData($house_prodaja, $request))->apply()->get(); |
96 | 96 | ||
97 | } else { | 97 | } else { |
98 | $house_prodaja = $house_prodaja->orderBy('price')-> | 98 | $house_prodaja = $house_prodaja->orderBy('price')-> |
99 | orderByDesc('created_at')-> | 99 | orderByDesc('created_at')-> |
100 | orderByDesc('area')->get(); | 100 | orderByDesc('area')->get(); |
101 | } | 101 | } |
102 | 102 | ||
103 | //////////////// Раздел бизнеса | 103 | //////////////// Раздел бизнеса |
104 | $house_bissnes = House::with('areas')-> | 104 | $house_bissnes = House::with('areas')-> |
105 | where('area_id', '=', $area->id)-> | 105 | where('area_id', '=', $area->id)-> |
106 | where('format_house', '=', 'Бизнес'); | 106 | where('format_house', '=', 'Бизнес'); |
107 | //orderByDesc('created_at')->get(); | 107 | //orderByDesc('created_at')->get(); |
108 | 108 | ||
109 | if ($request->view == 'bissnes') { | 109 | if ($request->view == 'bissnes') { |
110 | $house_bissnes = (new SortData($house_bissnes, $request))->apply()->get(); | 110 | $house_bissnes = (new SortData($house_bissnes, $request))->apply()->get(); |
111 | 111 | ||
112 | } else { | 112 | } else { |
113 | $house_bissnes = $house_bissnes->orderBy('price')-> | 113 | $house_bissnes = $house_bissnes->orderBy('price')-> |
114 | orderByDesc('created_at')-> | 114 | orderByDesc('created_at')-> |
115 | orderByDesc('area')->get(); | 115 | orderByDesc('area')->get(); |
116 | } | 116 | } |
117 | 117 | ||
118 | //////////раздел арендованные | 118 | //////////раздел арендованные |
119 | $house_arendovannie = House::with('areas')-> | 119 | $house_arendovannie = House::with('areas')-> |
120 | where('area_id', '=', $area->id)-> | 120 | where('area_id', '=', $area->id)-> |
121 | where('format_house', '=', 'Арендованные'); | 121 | where('format_house', '=', 'Арендованные'); |
122 | //orderByDesc('created_at')->get(); | 122 | //orderByDesc('created_at')->get(); |
123 | 123 | ||
124 | if ($request->view == 'arendovannie') { | 124 | if ($request->view == 'arendovannie') { |
125 | $house_arendovannie = (new SortData($house_arendovannie, $request))->apply()->get(); | 125 | $house_arendovannie = (new SortData($house_arendovannie, $request))->apply()->get(); |
126 | 126 | ||
127 | } else { | 127 | } else { |
128 | $house_arendovannie = $house_arendovannie->orderBy('price')-> | 128 | $house_arendovannie = $house_arendovannie->orderBy('price')-> |
129 | orderByDesc('created_at')-> | 129 | orderByDesc('created_at')-> |
130 | orderByDesc('area')->get(); | 130 | orderByDesc('area')->get(); |
131 | } | 131 | } |
132 | 132 | ||
133 | if ($request->ajax()) { | 133 | if ($request->ajax()) { |
134 | switch($request->view) { | 134 | switch($request->view) { |
135 | case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; | 135 | case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; |
136 | case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; | 136 | case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; |
137 | case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; | 137 | case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; |
138 | case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; | 138 | case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; |
139 | } | 139 | } |
140 | } | 140 | } |
141 | 141 | ||
142 | return view('complex', compact('area', | 142 | return view('complex', compact('area', |
143 | 'house_arenda', | 143 | 'house_arenda', |
144 | 'house_prodaja', | 144 | 'house_prodaja', |
145 | 'house_bissnes', | 145 | 'house_bissnes', |
146 | 'house_arendovannie')); | 146 | 'house_arendovannie')); |
147 | 147 | ||
148 | } | 148 | } |
149 | 149 | ||
150 | /* | 150 | /* |
151 | * О компании | 151 | * О компании |
152 | */ | 152 | */ |
153 | public function About(): \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Contracts\Foundation\Application | 153 | public function About(): \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Contracts\Foundation\Application |
154 | { | 154 | { |
155 | $news = News::query()->orderByDesc('created_at')->limit(8)->get(); | 155 | $news = News::query()->orderByDesc('created_at')->limit(8)->get(); |
156 | $partners = Partners::query()->limit(18)->get(); | 156 | $partners = Partners::query()->limit(18)->get(); |
157 | return view('about', compact('news', 'partners')); | 157 | return view('about', compact('news', 'partners')); |
158 | } | 158 | } |
159 | 159 | ||
160 | public function send_mail() { | 160 | public function send_mail() { |
161 | $toEmail = "integralal@mail.ru";//$RentTorg[0]->email; | 161 | $toEmail = "integralal@mail.ru";//$RentTorg[0]->email; |
162 | $message = "Тест сообщения, проверка связи!"; | 162 | $message = "Тест сообщения, проверка связи!"; |
163 | $mm = new SendMail($message); | 163 | $mm = new SendMail($message); |
164 | $d = Mail::to($toEmail)->send(new SendMail($message)); | 164 | $d = Mail::to($toEmail)->send(new SendMail($message)); |
165 | dd($d); | 165 | dd($d); |
166 | } | 166 | } |
167 | 167 | ||
168 | /* | 168 | /* |
169 | * Форма обратной связи внизу сайта | 169 | * Форма обратной связи внизу сайта |
170 | */ | 170 | */ |
171 | public function main_form(FooterFeedbackRequest $request) { | 171 | public function main_form(FooterFeedbackRequest $request) { |
172 | $RentTorg = Contact::query()->limit(1)->get(); | 172 | $RentTorg = Contact::query()->limit(1)->get(); |
173 | $MailBD = new ModelMailFeedback(); | 173 | $MailBD = new ModelMailFeedback(); |
174 | $MailBD->to = 'Администрации сайта'; | 174 | $MailBD->to = 'Администрации сайта'; |
175 | $MailBD->from = $request->TelephoneUser; | 175 | $MailBD->from = $request->TelephoneUser; |
176 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; | 176 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; |
177 | $MailBD->form = 'Форма в футере'; | 177 | $MailBD->form = 'Форма в футере'; |
178 | $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Заявка на лучшие предложения. Сообщение: ".$request->TextUser; | 178 | $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Заявка на лучшие предложения. Сообщение: ".$request->TextUser; |
179 | $MailBD->text = $message; | 179 | $MailBD->text = $message; |
180 | $MailBD->save(); | 180 | $MailBD->save(); |
181 | 181 | ||
182 | $toEmail = $RentTorg[0]->email; | 182 | $toEmail = $RentTorg[0]->email; |
183 | $mm = new SendMail($message); | 183 | $mm = new SendMail($message); |
184 | $d = Mail::to($toEmail)->send(new SendMail($message)); | 184 | $d = Mail::to($toEmail)->send(new SendMail($message)); |
185 | 185 | ||
186 | //$toEmail = "integralal@mail.ru";//$RentTorg[0]->email; | 186 | //$toEmail = "integralal@mail.ru";//$RentTorg[0]->email; |
187 | /*$email = $RentTorg[0]->email; | 187 | /*$email = $RentTorg[0]->email; |
188 | $sender = "alarionov@nologostudio.ru"; | 188 | $sender = "alarionov@nologostudio.ru"; |
189 | 189 | ||
190 | $headers = "From: $sender" . "\r\n" . | 190 | $headers = "From: $sender" . "\r\n" . |
191 | "Reply-To: $sender" . "\r\n" . | 191 | "Reply-To: $sender" . "\r\n" . |
192 | "X-Mailer: PHP/" . phpversion(); | 192 | "X-Mailer: PHP/" . phpversion(); |
193 | mail($email, "От сайта Рентторг", $message, $headers); | 193 | mail($email, "От сайта Рентторг", $message, $headers); |
194 | */ | 194 | */ |
195 | //$mm = new SendMail($message); | 195 | //$mm = new SendMail($message); |
196 | //Mail::to($toEmail)->send($mm); | 196 | //Mail::to($toEmail)->send($mm); |
197 | 197 | ||
198 | //return true; | 198 | //return true; |
199 | /* | 199 | /* |
200 | Mail::send('emails.feedback', ['user' => $user], | 200 | Mail::send('emails.feedback', ['user' => $user], |
201 | function ($message) use ($user) { | 201 | function ($message) use ($user) { |
202 | $message->from('sender@gmail.com', 'Sender'); | 202 | $message->from('sender@gmail.com', 'Sender'); |
203 | $message->to($user->email, $user->name)->subject('Test message'); | 203 | $message->to($user->email, $user->name)->subject('Test message'); |
204 | }); | 204 | }); |
205 | */ | 205 | */ |
206 | 206 | ||
207 | 207 | ||
208 | } | 208 | } |
209 | 209 | ||
210 | /* | 210 | /* |
211 | * Форма обратной связе в хедере | 211 | * Форма обратной связе в хедере |
212 | */ | 212 | */ |
213 | public function header_form(FooterFeedbackRequest $request) { | 213 | public function header_form(FooterFeedbackRequest $request) { |
214 | $RentTorg = Contact::query()->limit(1)->get(); | 214 | $RentTorg = Contact::query()->limit(1)->get(); |
215 | $MailBD = new ModelMailFeedback(); | 215 | $MailBD = new ModelMailFeedback(); |
216 | $MailBD->to = 'Администрации сайта'; | 216 | $MailBD->to = 'Администрации сайта'; |
217 | $MailBD->from = $request->TelephoneUser; | 217 | $MailBD->from = $request->TelephoneUser; |
218 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; | 218 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; |
219 | $MailBD->form = 'Форма в заголовке сайта'; | 219 | $MailBD->form = 'Форма в заголовке сайта'; |
220 | $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Сообщение: Заказываю обратный звонок"; | 220 | $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Сообщение: Заказываю обратный звонок"; |
221 | $MailBD->text = $message; | 221 | $MailBD->text = $message; |
222 | $MailBD->save(); | 222 | $MailBD->save(); |
223 | 223 | ||
224 | $toEmail = $RentTorg[0]->email; | 224 | $toEmail = $RentTorg[0]->email; |
225 | $mm = new SendMail($message); | 225 | $mm = new SendMail($message); |
226 | $d = Mail::to($toEmail)->send(new SendMail($message)); | 226 | $d = Mail::to($toEmail)->send(new SendMail($message)); |
227 | 227 | ||
228 | /*$email = $RentTorg[0]->email; | 228 | /*$email = $RentTorg[0]->email; |
229 | $sender = "alarionov@nologostudio.ru"; | 229 | $sender = "alarionov@nologostudio.ru"; |
230 | 230 | ||
231 | $headers = "From: $sender" . "\r\n" . | 231 | $headers = "From: $sender" . "\r\n" . |
232 | "Reply-To: $sender" . "\r\n" . | 232 | "Reply-To: $sender" . "\r\n" . |
233 | "X-Mailer: PHP/" . phpversion(); | 233 | "X-Mailer: PHP/" . phpversion(); |
234 | mail($email, "От сайта Рентторг", $message, $headers); | 234 | mail($email, "От сайта Рентторг", $message, $headers); |
235 | */ | 235 | */ |
236 | } | 236 | } |
237 | 237 | ||
238 | /* | 238 | /* |
239 | * Форма записаться на просмотр | 239 | * Форма записаться на просмотр |
240 | */ | 240 | */ |
241 | public function rec_view_form(FooterFeedbackRequest $request) { | 241 | public function rec_view_form(FooterFeedbackRequest $request) { |
242 | $RentTorg = Contact::query()->limit(1)->get(); | 242 | $RentTorg = Contact::query()->limit(1)->get(); |
243 | $MailBD = new ModelMailFeedback(); | 243 | $MailBD = new ModelMailFeedback(); |
244 | $MailBD->to = 'Администрации сайта'; | 244 | $MailBD->to = 'Администрации сайта'; |
245 | $MailBD->from = $request->TelephoneUser; | 245 | $MailBD->from = $request->TelephoneUser; |
246 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; | 246 | $MailBD->subject = "Пользователь <".$request->NameUser.">"; |
247 | $MailBD->form = 'Форма записи на просмотр'; | 247 | $MailBD->form = 'Форма записи на просмотр'; |
248 | $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Сообщение: Заказываю просмотр офиса"; | 248 | $message = "От пользователя: ".$request->NameUser.". Телефон: ".$request->TelephoneUser.". Сообщение: Заказываю просмотр офиса"; |
249 | $message.= "Адрес офиса-объекта: ".url()->previous()." "; | 249 | $message.= "Адрес офиса-объекта: ".url()->previous()." "; |
250 | $MailBD->text = $message; | 250 | $MailBD->text = $message; |
251 | $MailBD->save(); | 251 | $MailBD->save(); |
252 | 252 | ||
253 | $toEmail = $RentTorg[0]->email; | 253 | $toEmail = $RentTorg[0]->email; |
254 | $d = Mail::to($toEmail)->send(new SendMail($message)); | 254 | $d = Mail::to($toEmail)->send(new SendMail($message)); |
255 | 255 | ||
256 | /*$email = $RentTorg[0]->email; | 256 | /*$email = $RentTorg[0]->email; |
257 | $sender = "alarionov@nologostudio.ru"; | 257 | $sender = "alarionov@nologostudio.ru"; |
258 | 258 | ||
259 | $headers = "From: $sender" . "\r\n" . | 259 | $headers = "From: $sender" . "\r\n" . |
260 | "Reply-To: $sender" . "\r\n" . | 260 | "Reply-To: $sender" . "\r\n" . |
261 | "X-Mailer: PHP/" . phpversion(); | 261 | "X-Mailer: PHP/" . phpversion(); |
262 | mail($email, "От сайта Рентторг", $message, $headers);*/ | 262 | mail($email, "От сайта Рентторг", $message, $headers);*/ |
263 | } | 263 | } |
264 | 264 | ||
265 | /* | 265 | /* |
266 | * Форма обратной связи на странице "Контакты" | 266 | * Форма обратной связи на странице "Контакты" |
267 | */ | 267 | */ |
268 | public function page_contact_form(FooterFeedbackRequest $request) { | 268 | public function page_contact_form(FooterFeedbackRequest $request) { |
269 | $RentTorg = Contact::query()->limit(1)->get(); | 269 | $RentTorg = Contact::query()->limit(1)->get(); |
270 | $MailBD = new ModelMailFeedback(); | 270 | $MailBD = new ModelMailFeedback(); |
271 | $MailBD->to = 'Администрации сайта'; | 271 | $MailBD->to = 'Администрации сайта'; |
272 | $MailBD->from = $request->TelephoneUser; | 272 | $MailBD->from = $request->TelephoneUser; |
273 | $MailBD->subject = "Пользователь <".$request->NameUser."> Компания <".$request->NameCompany.">"; | 273 | $MailBD->subject = "Пользователь <".$request->NameUser."> Компания <".$request->NameCompany.">"; |
274 | $MailBD->form = 'Форма на странице "Контакты"'; | 274 | $MailBD->form = 'Форма на странице "Контакты"'; |
275 | $message = "От пользователя: ".$request->NameUser.". Компания <".$request->NameCompany.">. Телефон: ".$request->TelephoneUser." Почта: <".$request->EmailUser."> Сообщение:".$request->TextUser; | 275 | $message = "От пользователя: ".$request->NameUser.". Компания <".$request->NameCompany.">. Телефон: ".$request->TelephoneUser." Почта: <".$request->EmailUser."> Сообщение:".$request->TextUser; |
276 | $MailBD->text = $message; | 276 | $MailBD->text = $message; |
277 | $MailBD->save(); | 277 | $MailBD->save(); |
278 | 278 | ||
279 | $toEmail = $RentTorg[0]->email; | 279 | $toEmail = $RentTorg[0]->email; |
280 | $d = Mail::to($toEmail)->send(new SendMail($message)); | 280 | $d = Mail::to($toEmail)->send(new SendMail($message)); |
281 | 281 | ||
282 | /* | 282 | /* |
283 | $email = $RentTorg[0]->email; | 283 | $email = $RentTorg[0]->email; |
284 | $sender = "alarionov@nologostudio.ru"; | 284 | $sender = "alarionov@nologostudio.ru"; |
285 | 285 | ||
286 | $headers = "From: $sender" . "\r\n" . | 286 | $headers = "From: $sender" . "\r\n" . |
287 | "Reply-To: $sender" . "\r\n" . | 287 | "Reply-To: $sender" . "\r\n" . |
288 | "X-Mailer: PHP/" . phpversion(); | 288 | "X-Mailer: PHP/" . phpversion(); |
289 | mail($email, "От сайта Рентторг", $message, $headers); | 289 | mail($email, "От сайта Рентторг", $message, $headers); |
290 | */ | 290 | */ |
291 | } | 291 | } |
292 | /* | 292 | /* |
293 | * Форма обратной связи по емайлу | 293 | * Форма обратной связи по емайлу |
294 | */ | 294 | */ |
295 | public function email_form(EmailRequest $request) { | 295 | public function email_form(EmailRequest $request) { |
296 | $RentTorg = Contact::query()->limit(1)->get(); | 296 | $RentTorg = Contact::query()->limit(1)->get(); |
297 | $MailBD = new ModelMailFeedback(); | 297 | $MailBD = new ModelMailFeedback(); |
298 | $MailBD->to = 'Администрации сайта'; | 298 | $MailBD->to = 'Администрации сайта'; |
299 | $MailBD->from = $request->EmailUser; | 299 | $MailBD->from = $request->EmailUser; |
300 | $MailBD->subject = "Пользователь <".$request->EmailUser.">"; | 300 | $MailBD->subject = "Пользователь <".$request->EmailUser.">"; |
301 | $MailBD->form = 'Форма обратной связи по Email'; | 301 | $MailBD->form = 'Форма обратной связи по Email'; |
302 | $message = "От почты: ".$request->EmailUser.". Сообщение: Отправить на данную почту предложения RentTorg"; | 302 | $message = "От почты: ".$request->EmailUser.". Сообщение: Отправить на данную почту предложения RentTorg"; |
303 | $MailBD->text = $message; | 303 | $MailBD->text = $message; |
304 | $MailBD->save(); | 304 | $MailBD->save(); |
305 | 305 | ||
306 | $toEmail = $RentTorg[0]->email; | 306 | $toEmail = $RentTorg[0]->email; |
307 | $d = Mail::to($toEmail)->send(new SendMail($message)); | 307 | $d = Mail::to($toEmail)->send(new SendMail($message)); |
308 | 308 | ||
309 | /* | 309 | /* |
310 | $email = $RentTorg[0]->email; | 310 | $email = $RentTorg[0]->email; |
311 | $sender = "alarionov@nologostudio.ru"; | 311 | $sender = "alarionov@nologostudio.ru"; |
312 | 312 | ||
313 | $headers = "From: $sender" . "\r\n" . | 313 | $headers = "From: $sender" . "\r\n" . |
314 | "Reply-To: $sender" . "\r\n" . | 314 | "Reply-To: $sender" . "\r\n" . |
315 | "X-Mailer: PHP/" . phpversion(); | 315 | "X-Mailer: PHP/" . phpversion(); |
316 | mail($email, "От сайта Рентторг", $message, $headers); | 316 | mail($email, "От сайта Рентторг", $message, $headers); |
317 | */ | 317 | */ |
318 | //dd('Email form'); | 318 | //dd('Email form'); |
319 | return redirect()->route('index'); | 319 | return redirect()->route('index'); |
320 | } | 320 | } |
321 | 321 | ||
322 | /* | 322 | /* |
323 | * Избранное | 323 | * Избранное |
324 | */ | 324 | */ |
325 | public function Favorite(Request $request) { | 325 | public function Favorite(Request $request) { |
326 | if (empty($_COOKIE['favorite_house'])) { | 326 | if (empty($_COOKIE['favorite_house'])) { |
327 | $Arr = Array(); | 327 | $Arr = Array(); |
328 | } else { | 328 | } else { |
329 | $Arr = json_decode($_COOKIE['favorite_house'], true); | 329 | $Arr = json_decode($_COOKIE['favorite_house'], true); |
330 | } | 330 | } |
331 | if (!empty($Arr) && is_array($Arr)) { | 331 | if (!empty($Arr) && is_array($Arr)) { |
332 | $houses = House::with('areas')->whereIn('id', $Arr); | 332 | $houses = House::with('areas')->whereIn('id', $Arr); |
333 | 333 | ||
334 | if (isset($request->sort_price)) { | 334 | if (isset($request->sort_price)) { |
335 | $houses = (new SortData($houses, $request))->apply(); | 335 | $houses = (new SortData($houses, $request))->apply(); |
336 | 336 | ||
337 | 337 | ||
338 | } else { | 338 | } else { |
339 | $houses = $houses->orderBy('price')-> | 339 | $houses = $houses->orderBy('price')-> |
340 | orderByDesc('created_at')-> | 340 | orderByDesc('created_at')-> |
341 | orderByDesc('area'); | 341 | orderByDesc('area'); |
342 | } | 342 | } |
343 | 343 | ||
344 | $houses = $houses->paginate(4); | 344 | $houses = $houses->paginate(4); |
345 | 345 | ||
346 | if ($request->ajax()) { | 346 | if ($request->ajax()) { |
347 | return view('ajax.complex.favorite', compact('houses')); | 347 | return view('ajax.complex.favorite', compact('houses')); |
348 | } | 348 | } |
349 | 349 | ||
350 | return view('favorite_data', compact('houses')); | 350 | return view('favorite_data', compact('houses')); |
351 | } else { | 351 | } else { |
352 | return view('favorite', compact('Arr')); | 352 | return view('favorite', compact('Arr')); |
353 | } | 353 | } |
354 | 354 | ||
355 | 355 | ||
356 | } | 356 | } |
357 | 357 | ||
358 | /* | 358 | /* |
359 | * Категории каталога Аренда/Продажа/Бизнес/Арендованные | 359 | * Категории каталога Аренда/Продажа/Бизнес/Арендованные |
360 | */ | 360 | */ |
361 | public function Category($cat, Request $request) { | 361 | public function Category($cat, Request $request) { |
362 | switch ($cat) { | 362 | switch ($cat) { |
363 | case 'arenda': | 363 | case 'arenda': |
364 | $title = "Аренда торговых помещениий"; | 364 | $title = "Аренда торговых помещениий"; |
365 | $format_house = 'Аренда'; | 365 | $format_house = 'Аренда'; |
366 | break; | 366 | break; |
367 | case 'sale': | 367 | case 'sale': |
368 | $title = "Продажа торговых помещений"; | 368 | $title = "Продажа торговых помещений"; |
369 | $format_house = 'Продажа'; | 369 | $format_house = 'Продажа'; |
370 | break; | 370 | break; |
371 | case 'bussiness': | 371 | case 'bussiness': |
372 | $title = "Арендый бизнес"; | 372 | $title = "Арендый бизнес"; |
373 | $format_house = 'Бизнес'; | 373 | $format_house = 'Бизнес'; |
374 | break; | 374 | break; |
375 | case 'arendovannie': | 375 | case 'arendovannie': |
376 | $title = "Арендованные"; | 376 | $title = "Арендованные"; |
377 | $format_house = 'Арендованные'; | 377 | $format_house = 'Арендованные'; |
378 | break; | 378 | break; |
379 | default: | 379 | default: |
380 | $title = "Аренда торговых помещениий"; | 380 | $title = "Аренда торговых помещениий"; |
381 | $format_house = 'Аренда'; | 381 | $format_house = 'Аренда'; |
382 | break; | 382 | break; |
383 | } | 383 | } |
384 | 384 | ||
385 | $houses = House::with('areas')-> | 385 | $houses = House::with('areas')-> |
386 | where('format_house', '=', $format_house); | 386 | where('format_house', '=', $format_house); |
387 | //->appends(request()->query()); | 387 | //->appends(request()->query()); |
388 | 388 | ||
389 | $houses = (new FilterData($houses, $request))->apply(); | 389 | $houses = (new FilterData($houses, $request))->apply(); |
390 | 390 | ||
391 | if (isset($request->sort_price)) { | 391 | if (isset($request->sort_price)) { |
392 | $houses = (new SortData($houses, $request))->apply(); | 392 | $houses = (new SortData($houses, $request))->apply(); |
393 | 393 | ||
394 | 394 | ||
395 | } else { | 395 | } else { |
396 | $houses = $houses->orderBy('price')-> | 396 | $houses = $houses->orderBy('price')-> |
397 | orderByDesc('created_at')-> | 397 | orderByDesc('created_at')-> |
398 | orderByDesc('area'); | 398 | orderByDesc('area'); |
399 | } | 399 | } |
400 | 400 | ||
401 | $houses = $houses->paginate(4); | 401 | $houses = $houses->paginate(4); |
402 | 402 | ||
403 | if ($request->ajax()) { | 403 | if ($request->ajax()) { |
404 | return view('ajax.complex.category', compact('houses')); | 404 | return view('ajax.complex.category', compact('houses')); |
405 | } | 405 | } |
406 | 406 | ||
407 | return view('category_catalog', compact('title', 'cat', 'houses')); | 407 | return view('category_catalog', compact('title', 'cat', 'houses')); |
408 | } | 408 | } |
409 | 409 | ||
410 | public function Test(Request $request) { | 410 | public function Test(Request $request) { |
411 | $house_arenda = House::with('areas')-> | 411 | $house_arenda = House::with('areas')-> |
412 | where('format_house', '=', 'Аренда'); | 412 | where('format_house', '=', 'Аренда'); |
413 | 413 | ||
414 | $house_arenda = $house_arenda->orderByDesc('price')-> | 414 | $house_arenda = $house_arenda->orderByDesc('price')-> |
415 | orderByDesc('created_at')-> | 415 | orderByDesc('created_at')-> |
416 | orderByDesc('area')->get(); | 416 | orderByDesc('area')->get(); |
417 | 417 | ||
418 | 418 | ||
419 | return view('ajax.complex.arenda', compact('house_arenda')); | 419 | return view('ajax.complex.arenda', compact('house_arenda')); |
420 | 420 | ||
421 | } | 421 | } |
422 | 422 | ||
423 | 423 | ||
424 | /* | 424 | /* |
425 | * Каталог | 425 | * Каталог |
426 | */ | 426 | */ |
427 | public function Catalog(Request $request) { | 427 | public function Catalog(Request $request) { |
428 | 428 | ||
429 | //////////раздел аренда///////////////////////////////////////////////////////////////// | 429 | //////////раздел аренда///////////////////////////////////////////////////////////////// |
430 | $house_arenda = House::with('areas')-> | 430 | $house_arenda = House::with('areas')-> |
431 | where('format_house', '=', 'Аренда'); | 431 | where('format_house', '=', 'Аренда'); |
432 | // условия поиска по объектам комплексов | 432 | // условия поиска по объектам комплексов |
433 | 433 | ||
434 | $house_arenda = (new FilterData($house_arenda, $request))->apply(); | 434 | $house_arenda = (new FilterData($house_arenda, $request))->apply(); |
435 | 435 | ||
436 | if ($request->view == 'arenda') { | 436 | if ($request->view == 'arenda') { |
437 | $house_arenda = (new SortData($house_arenda, $request))->apply()->get(); | 437 | $house_arenda = (new SortData($house_arenda, $request))->apply()->get(); |
438 | } else { | 438 | } else { |
439 | $house_arenda = $house_arenda->orderBy('price')-> | 439 | $house_arenda = $house_arenda->orderBy('price')-> |
440 | orderByDesc('created_at')-> | 440 | orderByDesc('created_at')-> |
441 | orderByDesc('area')->get(); | 441 | orderByDesc('area')->get(); |
442 | } | 442 | } |
443 | 443 | ||
444 | ////////раздел продажа////////////////////////////////////////////////////////////////// | 444 | ////////раздел продажа////////////////////////////////////////////////////////////////// |
445 | $house_prodaja = House::with('areas')-> | 445 | $house_prodaja = House::with('areas')-> |
446 | where('format_house', '=', 'Продажа'); | 446 | where('format_house', '=', 'Продажа'); |
447 | 447 | ||
448 | $house_prodaja = (new FilterData($house_prodaja, $request))->apply(); | 448 | $house_prodaja = (new FilterData($house_prodaja, $request))->apply(); |
449 | 449 | ||
450 | if ($request->view == 'prodaja') { | 450 | if ($request->view == 'prodaja') { |
451 | $house_prodaja = (new SortData($house_prodaja, $request))->apply()->get(); | 451 | $house_prodaja = (new SortData($house_prodaja, $request))->apply()->get(); |
452 | 452 | ||
453 | } else { | 453 | } else { |
454 | $house_prodaja = $house_prodaja->orderBy('price')-> | 454 | $house_prodaja = $house_prodaja->orderBy('price')-> |
455 | orderByDesc('created_at')-> | 455 | orderByDesc('created_at')-> |
456 | orderByDesc('area')->get(); | 456 | orderByDesc('area')->get(); |
457 | } | 457 | } |
458 | 458 | ||
459 | //////////////// Раздел бизнеса///////////////////////////////////////////////////////// | 459 | //////////////// Раздел бизнеса///////////////////////////////////////////////////////// |
460 | $house_bissnes = House::with('areas')-> | 460 | $house_bissnes = House::with('areas')-> |
461 | where('format_house', '=', 'Бизнес'); | 461 | where('format_house', '=', 'Бизнес'); |
462 | //orderByDesc('created_at')->get(); | 462 | //orderByDesc('created_at')->get(); |
463 | 463 | ||
464 | $house_bissnes = (new FilterData($house_bissnes, $request))->apply(); | 464 | $house_bissnes = (new FilterData($house_bissnes, $request))->apply(); |
465 | 465 | ||
466 | if ($request->view == 'bissnes') { | 466 | if ($request->view == 'bissnes') { |
467 | $house_bissnes = (new SortData($house_bissnes, $request))->apply()->get(); | 467 | $house_bissnes = (new SortData($house_bissnes, $request))->apply()->get(); |
468 | 468 | ||
469 | } else { | 469 | } else { |
470 | $house_bissnes = $house_bissnes->orderBy('price')-> | 470 | $house_bissnes = $house_bissnes->orderBy('price')-> |
471 | orderByDesc('created_at')-> | 471 | orderByDesc('created_at')-> |
472 | orderByDesc('area')->get(); | 472 | orderByDesc('area')->get(); |
473 | } | 473 | } |
474 | 474 | ||
475 | //////////раздел арендованные////////////////////////////////////////////////////////// | 475 | //////////раздел арендованные////////////////////////////////////////////////////////// |
476 | $house_arendovannie = House::with('areas')-> | 476 | $house_arendovannie = House::with('areas')-> |
477 | where('format_house', '=', 'Арендованные'); | 477 | where('format_house', '=', 'Арендованные'); |
478 | //orderByDesc('created_at')->get(); | 478 | //orderByDesc('created_at')->get(); |
479 | 479 | ||
480 | $house_arendovannie = (new FilterData($house_arendovannie, $request))->apply(); | 480 | $house_arendovannie = (new FilterData($house_arendovannie, $request))->apply(); |
481 | 481 | ||
482 | if ($request->view == 'arendovannie') { | 482 | if ($request->view == 'arendovannie') { |
483 | $house_arendovannie = (new SortData($house_arendovannie, $request))->apply()->get(); | 483 | $house_arendovannie = (new SortData($house_arendovannie, $request))->apply()->get(); |
484 | 484 | ||
485 | } else { | 485 | } else { |
486 | $house_arendovannie = $house_arendovannie->orderBy('price')-> | 486 | $house_arendovannie = $house_arendovannie->orderBy('price')-> |
487 | orderByDesc('created_at')-> | 487 | orderByDesc('created_at')-> |
488 | orderByDesc('area')->get(); | 488 | orderByDesc('area')->get(); |
489 | } | 489 | } |
490 | 490 | ||
491 | if ($request->ajax()) { | 491 | if ($request->ajax()) { |
492 | switch($request->view) { | 492 | switch($request->view) { |
493 | case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; | 493 | case 'arenda': return view('ajax.complex.arenda', compact('house_arenda')); break; |
494 | case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; | 494 | case 'prodaja': return view('ajax.complex.prodaja', compact('house_prodaja'));break; |
495 | case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; | 495 | case 'bissnes': return view('ajax.complex.bissnes', compact('house_bissnes')); break; |
496 | case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; | 496 | case 'arendovannie': return view('ajax.complex.arendovannie', compact('house_arendovannie')); break; |
497 | } | 497 | } |
498 | } | 498 | } |
499 | if (session('message') == 'Искать') { | 499 | if (session('message') == 'Искать') { |
500 | session()->flash('message', 'Сброс'); | 500 | session()->flash('message', 'Сброс'); |
501 | } else { | 501 | } else { |
502 | session()->flash('message', 'Искать'); | 502 | session()->flash('message', 'Искать'); |
503 | } | 503 | } |
504 | 504 | ||
505 | if (empty($request)) { | 505 | if (empty($request)) { |
506 | session()->flash('message', 'Искать'); | 506 | session()->flash('message', 'Искать'); |
507 | } | 507 | } |
508 | 508 | ||
509 | return view('catalog', compact( | 509 | return view('catalog', compact( |
510 | 'house_arenda', | 510 | 'house_arenda', |
511 | 'house_prodaja', | 511 | 'house_prodaja', |
512 | 'house_bissnes', | 512 | 'house_bissnes', |
513 | 'house_arendovannie' | 513 | 'house_arendovannie' |
514 | )); | 514 | )); |
515 | 515 | ||
516 | 516 | ||
517 | } | 517 | } |
518 | 518 | ||
519 | /* | 519 | /* |
520 | * Новости | 520 | * Новости |
521 | */ | 521 | */ |
522 | public function News() { | 522 | public function News() { |
523 | //$news = News::orderByDesc('created_at')->limit(1)->paginate(); | 523 | //$news = News::orderByDesc('created_at')->limit(1)->paginate(); |
524 | $news_ = News::query()->orderByDesc('created_at')->paginate(4); | 524 | $news_ = News::query()->orderByDesc('created_at')->paginate(4); |
525 | return view('news', compact('news_')); | 525 | return view('news', compact('news_')); |
526 | } | 526 | } |
527 | 527 | ||
528 | /* | 528 | /* |
529 | * Контакты | 529 | * Контакты |
530 | */ | 530 | */ |
531 | public function Contact() { | 531 | public function Contact() { |
532 | return view('contact'); | 532 | return view('contact'); |
533 | } | 533 | } |
534 | 534 | ||
535 | /* | 535 | /* |
536 | * Карта объектов | 536 | * Карта объектов |
537 | */ | 537 | */ |
538 | public function MapsObj(Request $request) { | 538 | public function MapsObj(Request $request) { |
539 | //$houses = House::with('areas'); | 539 | //$houses = House::with('areas'); |
540 | //$houses = $houses->orderBy('id')->get(); | 540 | //$houses = $houses->orderBy('id')->get(); |
541 | $input = $request->all(); | 541 | $input = $request->all(); |
542 | 542 | ||
543 | $houses = House::with('areas'); | 543 | $houses = House::with('areas'); |
544 | if (empty($input)) { | 544 | if (empty($input)) { |
545 | 545 | ||
546 | } else { | 546 | } else { |
547 | $houses = (new FilterData($houses, $request))->apply(); | 547 | $houses = (new FilterData($houses, $request))->apply(); |
548 | } | 548 | } |
549 | 549 | ||
550 | $houses = $houses->orderByDesc('id')->get(); | 550 | $houses = $houses->orderByDesc('id')->get(); |
551 | 551 | ||
552 | $areas = Area::query()->orderBy('id')->get(); | 552 | $areas = Area::query()->orderBy('id')->get(); |
553 | 553 | ||
554 | return view('mapsobj', compact('areas', 'input', 'houses')); | 554 | return view('mapsobj', compact('areas', 'input', 'houses')); |
555 | } | 555 | } |
556 | 556 | ||
557 | /* | 557 | /* |
558 | * Посмотр конктретного предложение офиса | 558 | * Посмотр конктретного предложение офиса |
559 | */ | 559 | */ |
560 | public function Offer(House $house, Request $request) { | 560 | public function Offer(House $house, Request $request) { |
561 | $houses = House::with('areas'); | 561 | $houses = House::with('areas'); |
562 | $houses = $houses->where('type_area_id', '=', $house->typearea->id); | 562 | $houses = $houses->where('type_area_id', '=', $house->typearea->id); |
563 | $houses = $houses->where('format_house', '=', $house->format_house); | 563 | $houses = $houses->where('format_house', '=', $house->format_house); |
564 | $houses = $houses->orderByDesc('created_at')->limit(8)->get(); | 564 | $houses = $houses->orderByDesc('created_at')->limit(8)->get(); |
565 | 565 | ||
566 | //получение адреса страницы | 566 | //получение адреса страницы |
567 | $url = $request->url(); | 567 | $url = $request->url(); |
568 | // получение ip-адреса клиента | 568 | // получение ip-адреса клиента |
569 | $ip = RusDate::ip_addr_client(); | 569 | $ip = RusDate::ip_addr_client(); |
570 | 570 | ||
571 | //получение выборки данных из базы данных по данной странице | 571 | //получение выборки данных из базы данных по данной странице |
572 | $page_ = Page::query()->where('url', '=', "$url")-> | 572 | $page_ = Page::query()->where('url', '=', "$url")-> |
573 | orderBy('created_at')->limit(1)->get(); | 573 | orderBy('created_at')->limit(1)->get(); |
574 | 574 | ||
575 | //если интервал времени больше суток, то обнуляем счетчик | 575 | //если интервал времени больше суток, то обнуляем счетчик |
576 | if ($page_->count()) { | 576 | if ($page_->count()) { |
577 | $result = RusDate::interval_day($page_[0]->created_at); | 577 | $result = RusDate::interval_day($page_[0]->created_at); |
578 | if ($result) { | 578 | if ($result) { |
579 | DB::table('pages')->where('url', '=', "$url")->delete(); | 579 | DB::table('pages')->where('url', '=', "$url")->delete(); |
580 | } | 580 | } |
581 | } | 581 | } |
582 | // проверяем если в базе данных данный ip-адрес | 582 | // проверяем если в базе данных данный ip-адрес |
583 | $count_user = DB::table('pages')->where('ipaddress', '=', "$ip")-> | 583 | $count_user = DB::table('pages')->where('ipaddress', '=', "$ip")-> |
584 | where('url', '=', "$url")->get(); | 584 | where('url', '=', "$url")->get(); |
585 | // если есть, то обновляем дату просмотра | 585 | // если есть, то обновляем дату просмотра |
586 | if ($count_user->count() > 0) { | 586 | if ($count_user->count() > 0) { |
587 | DB::table('pages')->where('ipaddress', '=', "$ip")-> | 587 | DB::table('pages')->where('ipaddress', '=', "$ip")-> |
588 | where('url', '=', "$url")->update(['created_at' => date('Y-m-d H:i')]); | 588 | where('url', '=', "$url")->update(['created_at' => date('Y-m-d H:i')]); |
589 | } else { | 589 | } else { |
590 | // в противном случае добавляем новый ip В бд | 590 | // в противном случае добавляем новый ip В бд |
591 | $page = new Page(); | 591 | $page = new Page(); |
592 | $page->ipaddress = $ip; | 592 | $page->ipaddress = $ip; |
593 | $page->url = $url; | 593 | $page->url = $url; |
594 | $page->save(); | 594 | $page->save(); |
595 | } | 595 | } |
596 | 596 | ||
597 | // выводим количество пользователей гостей данной страницы | 597 | // выводим количество пользователей гостей данной страницы |
598 | $count_user = DB::table('pages')->where('url', '=', "$url")->get(); | 598 | $count_user = DB::table('pages')->where('url', '=', "$url")->get(); |
599 | $title = $house->title; | 599 | $title = $house->title; |
600 | 600 | ||
601 | return view('house.post', compact('house', 'houses', 'count_user', 'title')); | 601 | return view('house.post', compact('house', 'houses', 'count_user', 'title')); |
602 | } | 602 | } |
603 | 603 | ||
604 | public function preview_PDF(House $house) { | ||
605 | if (!empty($house->foto_main)) { | ||
606 | $file_img = base64_encode(file_get_contents(public_path("storage/".$house->foto_main))); | ||
607 | } else { | ||
608 | $file_img = ""; | ||
609 | } | ||
610 | |||
611 | $arr_house = ['0' => $house, 'image' => $file_img]; | ||
612 | view()->share('house',$arr_house); | ||
613 | $pdf = PDF::loadView('house.pdf', $arr_house); | ||
614 | return $pdf->stream(); | ||
615 | } | ||
616 | |||
604 | public function generate_PDF(House $house) { | 617 | public function generate_PDF(House $house) { |
605 | $arr_house = ['0' => $house]; | 618 | $arr_house = ['0' => $house]; |
606 | view()->share('house',$arr_house); | 619 | view()->share('house',$arr_house); |
607 | $pdf = PDF::loadView('house.pdf', $arr_house); | 620 | $PDFOptions = ['enable_remote' => true, 'chroot' => public_path('storage/app/public')]; |
621 | //$PDFOptions = ['isHtml5ParserEnabled' => true, 'isRemoteEnabled' => true]; | ||
622 | $pdf = PDF::setOptions($PDFOptions)->loadView('house.pdf', $arr_house); | ||
623 | //$pdf = PDF::loadView('house.pdf', $arr_house); | ||
624 | /*$pdf->getDomPDF()->setHttpContext( | ||
625 | stream_context_create([ | ||
626 | 'ssl' => [ | ||
627 | 'allow_self_signed'=> TRUE, | ||
628 | 'verify_peer' => FALSE, | ||
629 | 'verify_peer_name' => FALSE, | ||
630 | ], | ||
631 | ]) | ||
632 | );*/ | ||
608 | $id = $house->id; | 633 | $id = $house->id; |
609 | return $pdf->download("pdf_file_".$id.".pdf"); | 634 | return $pdf->download("pdf_file_".$id.".pdf"); |
610 | } | 635 | } |
611 | 636 | ||
612 | /* | 637 | /* |
613 | * Просмотр детально конкретной новости | 638 | * Просмотр детально конкретной новости |
614 | */ | 639 | */ |
615 | public function DetailNew(News $news) { | 640 | public function DetailNew(News $news) { |
616 | $news_list = News::query()->orderByDesc('created_at')->limit(8)->get(); | 641 | $news_list = News::query()->orderByDesc('created_at')->limit(8)->get(); |
617 | return view('new.post', compact('news', 'news_list')); | 642 | return view('new.post', compact('news', 'news_list')); |
618 | } | 643 | } |
619 | } | 644 | } |
620 | 645 |
public/storage/.gitignore
File was created | 1 | * | |
2 | !.gitignore | ||
3 |
resources/views/house/pdf.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 http-equiv="Content-Type" content="text/html; charset=utf-8"/> | 4 | <meta http-equiv="Content-Type" content="text/html; 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 | <meta name="csrf-token" content="<?=csrf_token() ?>"> | 7 | <meta name="csrf-token" content="<?=csrf_token() ?>"> |
8 | <title>{{$house[0]->title}}</title> | 8 | <title>{{$house[0]->title}}</title> |
9 | <link rel="shortcut icon" href="{{ asset('images/favicon.png')}}" type="image/x-icon"> | 9 | <link rel="shortcut icon" href="{{ asset('images/favicon.png')}}" type="image/x-icon"> |
10 | <style type="text/css"> | 10 | <style type="text/css"> |
11 | * { | 11 | * { |
12 | font-family: "DejaVu Sans", sans-serif; | 12 | font-family: "DejaVu Sans", sans-serif; |
13 | } | 13 | } |
14 | 14 | ||
15 | .font { | 15 | .font { |
16 | font-family: "DejaVu Sans", sans-serif; | 16 | font-family: "DejaVu Sans", sans-serif; |
17 | } | 17 | } |
18 | </style> | 18 | </style> |
19 | <link rel="stylesheet" href="{{ asset('css/swiper-bundle.min.css') }}"> | 19 | <link rel="stylesheet" href="{{ asset('css/swiper-bundle.min.css') }}"> |
20 | <link rel="stylesheet" href="{{ asset('css/style_main.css') }}"> | 20 | <link rel="stylesheet" href="{{ asset('css/style_main.css') }}"> |
21 | </head> | 21 | </head> |
22 | <body> | 22 | <body> |
23 | <? //if (!empty($house[0]->foto_main)) {?> | ||
24 | <!--<img src="<?//=public_path().'/storage/app/public/'.$house[0]->foto_main;?>" width="450px"/> | ||
25 | <!--<img src="<?//=public_path().'/images/footer-bg.jpg';?>" />--> | ||
26 | <?//} ?> | ||
27 | |||
28 | <? if (!empty($house[0]->foto_main)) {?> | ||
29 | <img src='data:image/png;base64,{{ $house['image'] }}' width="450px"> | ||
30 | <? } ?> | ||
31 | |||
23 | <div class="wrapper_"> | 32 | <div class="wrapper_"> |
24 | <a href="{{ route('offer', ['house' => $house[0]->id]) }}">Страница помещения</a> | 33 | <a href="{{ route('offer', ['house' => $house[0]->id]) }}">{{ route('offer', ['house' => $house[0]->id]) }}</a> |
25 | <main> | 34 | <main> |
26 | <!-- Основной контент --> | 35 | <!-- Основной контент --> |
27 | <h2>{{ $house[0]->title }} {{ $house[0]->address }}</h2> | 36 | <h2>{{ $house[0]->title }} {{ $house[0]->address }}</h2> |
28 | <div class="offer__lines"> | 37 | <div class="offer__lines"> |
29 | <div class="offer__line"><span><b>Метро:</b> {{ $house[0]->metro }}</span></div> | 38 | <div class="offer__line"><span><b>Метро:</b> {{ $house[0]->metro }}</span></div> |
30 | <div class="offer__line"><span><b>Доступность метро:</b> {{ $house[0]->description_metro }}</span></div> | 39 | <div class="offer__line"><span><b>Доступность метро:</b> {{ $house[0]->description_metro }}</span></div> |
31 | <div class="offer__line"><span><b>Округ: </b>{{ $house[0]->okrug }}</span></div> | 40 | <div class="offer__line"><span><b>Округ: </b>{{ $house[0]->okrug }}</span></div> |
32 | <? if ($house[0]->format_house == "Продажа") {?> | 41 | <? if ($house[0]->format_house == "Продажа") {?> |
33 | <div class="offer__line"><span><b>Цена:</b> {{ $house[0]->price }} ₽</span></div> | 42 | <div class="offer__line"><span><b>Цена:</b> {{ $house[0]->price }} ₽</span></div> |
34 | <? } else {?> | 43 | <? } else {?> |
35 | <div class="offer__line"><span><b>Аренда в год за м2:</b> {{ $house[0]->rent_in_year }} ₽</span></div> | 44 | <div class="offer__line"><span><b>Аренда в год за м2:</b> {{ $house[0]->rent_in_year }} ₽</span></div> |
36 | <div class="offer__line"><span><b>Аренда в месяц:</b> {{ $house[0]->price }} ₽</span></div> | 45 | <div class="offer__line"><span><b>Аренда в месяц:</b> {{ $house[0]->price }} ₽</span></div> |
37 | <? } ?> | 46 | <? } ?> |
38 | <div class="offer__line"><span><b>Схема сделки:</b> {{ $house[0]->scheme_deal }}</span></div><div class="offer__line"><span><b>Площадь, м2:</b> {{ $house[0]->area }}</span></div> | 47 | <div class="offer__line"><span><b>Схема сделки:</b> {{ $house[0]->scheme_deal }}</span></div> |
39 | <div class="offer__line"><span><b>Площадь, м2:</b> {{ $house[0]->area }}</span></div> | 48 | <div class="offer__line"><span><b>Площадь, м2:</b> {{ $house[0]->area }}</span></div> |
40 | <div class="offer__line"><span><b>Адрес: </b>{{ $house[0]->address }}</span></div> | 49 | <div class="offer__line"><span><b>Адрес: </b>{{ $house[0]->address }}</span></div> |
41 | <div class="offer__line"><span><b>Тип объекта: </b> {{ $house[0]->typearea->name_type }}</span></div> | 50 | <div class="offer__line"><span><b>Тип объекта: </b> {{ $house[0]->typearea->name_type }}</span></div> |
42 | <div class="offer__line"><span><b>Формат:</b> {{ $house[0]->format_house }}</span></div> | 51 | <div class="offer__line"><span><b>Формат:</b> {{ $house[0]->format_house }}</span></div> |
43 | <div class="offer__line"><span><b>Этаж:</b> {{ $house[0]->floor }} эт.</span></div> | 52 | <div class="offer__line"><span><b>Этаж:</b> {{ $house[0]->floor }} эт.</span></div> |
44 | <div class="offer__line"><span><b>Этажность здания:</b> {{ $house[0]->floor_bild }} эт.</span></div> | 53 | <div class="offer__line"><span><b>Этажность здания:</b> {{ $house[0]->floor_bild }} эт.</span></div> |
45 | <div class="offer__line"><span><b>Арендаторы:</b> {{ $house[0]->renter }}</span></div> | 54 | <div class="offer__line"><span><b>Арендаторы:</b> {{ $house[0]->renter }}</span></div> |
46 | <!--<div class="offer__line"><span>Состояние объекта</span><span><?// $house->sos_obj ?></span></div>--> | 55 | <!--<div class="offer__line"><span>Состояние объекта</span><span><?// $house->sos_obj ?></span></div>--> |
47 | <div class="offer__line"><span><b>Тип планировки: </b>{{ $house[0]->type_plan }}</span></div> | 56 | <div class="offer__line"><span><b>Тип планировки: </b>{{ $house[0]->type_plan }}</span></div> |
48 | <div class="offer__line"><span><b>Наличие зоны разгрузки:</b> <? if($house[0]->uploading_area == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 57 | <div class="offer__line"><span><b>Наличие зоны разгрузки:</b> <? if($house[0]->uploading_area == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
49 | <div class="offer__line"><span><b>Электрическая мощность:</b> {{ $house[0]->electric_power }} кВт</span></div> | 58 | <div class="offer__line"><span><b>Электрическая мощность:</b> {{ $house[0]->electric_power }} кВт</span></div> |
50 | <!--<div class="offer__line"><span>Проездное</span><span><? //if($house->travel_card == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> | 59 | <!--<div class="offer__line"><span>Проездное</span><span><? //if($house->travel_card == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> |
51 | <!--<div class="offer__line"><span>Проходное место</span><span><?// if($house->passing_place == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> | 60 | <!--<div class="offer__line"><span>Проходное место</span><span><?// if($house->passing_place == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> |
52 | <div class="offer__line"><span><b>Отдельный вход: </b><? if($house[0]->separate_input == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 61 | <div class="offer__line"><span><b>Отдельный вход: </b><? if($house[0]->separate_input == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
53 | <div class="offer__line"><span><b>Витрины: </b><? if($house[0]->shop_windows == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 62 | <div class="offer__line"><span><b>Витрины: </b><? if($house[0]->shop_windows == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
54 | <!--<div class="offer__line"><span>Место для рекламы</span><span><?// if($house->place_advertising == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> | 63 | <!--<div class="offer__line"><span>Место для рекламы</span><span><?// if($house->place_advertising == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> |
55 | <!--<div class="offer__line"><span>Окна</span><span><? //$house->windows ?></span></div>--> | 64 | <!--<div class="offer__line"><span>Окна</span><span><? //$house->windows ?></span></div>--> |
56 | <div class="offer__line"><span><b>Вытяжка:</b> <? if($house[0]->hood == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 65 | <div class="offer__line"><span><b>Вытяжка:</b> <? if($house[0]->hood == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
57 | <!--<div class="offer__line"><span>Центральное отопление</span><span><? //if($house->central_hearing == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> | 66 | <!--<div class="offer__line"><span>Центральное отопление</span><span><? //if($house->central_hearing == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> |
58 | <div class="offer__line"><span><b>Возможные часы работы:</b> {{ $house[0]->opening_hours }}</span></div> | 67 | <div class="offer__line"><span><b>Возможные часы работы:</b> {{ $house[0]->opening_hours }}</span></div> |
59 | <div class="offer__line"><span><b>Отделка:</b> <? if($house[0]->finishing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 68 | <div class="offer__line"><span><b>Отделка:</b> <? if($house[0]->finishing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
60 | <div class="offer__line"><span><b>Парковка:</b> {{ $house[0]->parking }} мест</span></div> | 69 | <div class="offer__line"><span><b>Парковка:</b> {{ $house[0]->parking }} мест</span></div> |
61 | <div class="offer__line"><span><b>Описание:</b> {{ $house[0]->description_2 }} </span></div> | 70 | <div class="offer__line"><span><b>Описание:</b> {{ $house[0]->description_2 }} </span></div> |
62 | </div> | 71 | </div> |
63 | 72 | ||
64 | <div class="offer-descr"> | 73 | <div class="offer-descr"> |
65 | <span><b>Описание объекта</b></span> | 74 | <span><b>Описание объекта</b></span> |
66 | <span>{{ $house[0]->description_house }}</span> | 75 | <span>{{ $house[0]->description_house }}</span> |
67 | </div> | 76 | </div> |
68 | </main> | 77 | </main> |
69 | </div> | 78 | </div> |
70 | 79 | ||
71 | </body> | 80 | </body> |
72 | </html> | 81 | </html> |
73 | 82 |
resources/views/house/post.blade.php
1 | @extends('layout.site', ['title' => $title]) | 1 | @extends('layout.site', ['title' => $title]) |
2 | 2 | ||
3 | @section('custom_js') | 3 | @section('custom_js') |
4 | @include('js.maps_js') | 4 | @include('js.maps_js') |
5 | <script> | 5 | <script> |
6 | setComplexMap('offer-map', [{{ $house->coord_x }}, {{ $house->coord_y }}], "{{ $house->title}}"); | 6 | setComplexMap('offer-map', [{{ $house->coord_x }}, {{ $house->coord_y }}], "{{ $house->title}}"); |
7 | </script> | 7 | </script> |
8 | @endsection | 8 | @endsection |
9 | 9 | ||
10 | @section('content') | 10 | @section('content') |
11 | <section class="intro" style="background-image:url({{ asset('images/intro-bg-2.jpg') }}"> | 11 | <section class="intro" style="background-image:url({{ asset('images/intro-bg-2.jpg') }}"> |
12 | <div class="container"> | 12 | <div class="container"> |
13 | <div class="intro__wrap"> | 13 | <div class="intro__wrap"> |
14 | <div class="breadcrumbs"> | 14 | <div class="breadcrumbs"> |
15 | <ul class="breadcrumbs__list"> | 15 | <ul class="breadcrumbs__list"> |
16 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> | 16 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li> |
17 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('catalog') }}">Каталог</a></li> | 17 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('catalog') }}">Каталог</a></li> |
18 | <!--<li class="breadcrumbs__item"><a class="breadcrumbs__link" href="#">Каталок недвижимости</a></li>--> | 18 | <!--<li class="breadcrumbs__item"><a class="breadcrumbs__link" href="#">Каталок недвижимости</a></li>--> |
19 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('complex', ['area' => $house->areas->id]) }}">{{ $house->areas->name_area }}</a></li> | 19 | <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('complex', ['area' => $house->areas->id]) }}">{{ $house->areas->name_area }}</a></li> |
20 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">{{ $house->title }}</span></li> | 20 | <li class="breadcrumbs__item"><span class="breadcrumbs__link">{{ $house->title }}</span></li> |
21 | </ul> | 21 | </ul> |
22 | </div> | 22 | </div> |
23 | <div class="intro__inner"> | 23 | <div class="intro__inner"> |
24 | <div class="intro__cnt"> | 24 | <div class="intro__cnt"> |
25 | <h1 class="intro__title title-main">{{ $house->title }}</h1><a class="intro__link-complex" href="{{ route('complex', ['area' => $house->areas->id]) }}">Перейти на страницу: <span>{{ $house->areas->name_area }}</span></a> | 25 | <h1 class="intro__title title-main">{{ $house->title }}</h1><a class="intro__link-complex" href="{{ route('complex', ['area' => $house->areas->id]) }}">Перейти на страницу: <span>{{ $house->areas->name_area }}</span></a> |
26 | <div class="intro__row"> | 26 | <div class="intro__row"> |
27 | <div class="intro__col"> | 27 | <div class="intro__col"> |
28 | <ul class="intro__list"> | 28 | <ul class="intro__list"> |
29 | <li class="intro__item" style="color:{{ $house->color_metro }};"><span>{{ $house->metro }}</span></li> | 29 | <li class="intro__item" style="color:{{ $house->color_metro }};"><span>{{ $house->metro }}</span></li> |
30 | <li class="intro__item"><span>{{ $house->description_metro }}</span></li> | 30 | <li class="intro__item"><span>{{ $house->description_metro }}</span></li> |
31 | <li class="intro__item"><span>{{ $house->okrug }}</span></li> | 31 | <li class="intro__item"><span>{{ $house->okrug }}</span></li> |
32 | </ul><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a> | 32 | </ul><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a> |
33 | </div> | 33 | </div> |
34 | <div class="intro__col"> | 34 | <div class="intro__col"> |
35 | <div class="intro__group"><span>Адрес</span><span>{{ $house->address }}</span></div> | 35 | <div class="intro__group"><span>Адрес</span><span>{{ $house->address }}</span></div> |
36 | <div class="intro__group"><span>Артикул помещения</span><span>{{ $house->articul_area }}</span></div><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a> | 36 | <div class="intro__group"><span>Артикул помещения</span><span>{{ $house->articul_area }}</span></div><a class="intro__link-map js_smooth_link" href="#offer-map">Посмотреть на карте</a> |
37 | </div> | 37 | </div> |
38 | </div> | 38 | </div> |
39 | <div class="intro__bottom"> | 39 | <div class="intro__bottom"> |
40 | <div class="intro__views">{{ $count_user->count() }} человек(а) интересовались этим объектом за последние 24 ч</div> | 40 | <div class="intro__views">{{ $count_user->count() }} человек(а) интересовались этим объектом за последние 24 ч</div> |
41 | <a class="intro__link-phone btn btn--main" href="tel:{{ $items_contact[0]->telephone }}"><span>Позвонить | 41 | <a class="intro__link-phone btn btn--main" href="tel:{{ $items_contact[0]->telephone }}"><span>Позвонить |
42 | <svg width="22" height="22"> | 42 | <svg width="22" height="22"> |
43 | <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> | 43 | <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> |
44 | </svg></span></a> | 44 | </svg></span></a> |
45 | </div> | 45 | </div> |
46 | </div> | 46 | </div> |
47 | <div class="intro__swiper swiper"> | 47 | <div class="intro__swiper swiper"> |
48 | <div class="swiper-wrapper"> | 48 | <div class="swiper-wrapper"> |
49 | <?if (!empty($house->foto_main)) {?> | 49 | <?if (!empty($house->foto_main)) {?> |
50 | <div class="swiper-slide"> | 50 | <div class="swiper-slide"> |
51 | <div class="intro-item"> | 51 | <div class="intro-item"> |
52 | <div class="intro-item__img"><img src="/storage/app/public/<?=$house->foto_main; // asset(Storage::url($house->foto_main)) ?>" alt=""></div> | 52 | <div class="intro-item__img"><img src="/storage/app/public/<?=$house->foto_main; // asset(Storage::url($house->foto_main)) ?>" alt=""></div> |
53 | <a class="intro-item__btn js_intro_item_btn" href="/storage/app/public/<?=$house->foto_main; //asset(Storage::url($house->foto_main))?>" data-caption="{{ $house->title }}"> | 53 | <a class="intro-item__btn js_intro_item_btn" href="/storage/app/public/<?=$house->foto_main; //asset(Storage::url($house->foto_main))?>" data-caption="{{ $house->title }}"> |
54 | <svg width="16" height="16"> | 54 | <svg width="16" height="16"> |
55 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 55 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
56 | </svg></a> | 56 | </svg></a> |
57 | </div> | 57 | </div> |
58 | </div> | 58 | </div> |
59 | <?}?> | 59 | <?}?> |
60 | @foreach($house->fotohouse as $foto) | 60 | @foreach($house->fotohouse as $foto) |
61 | <div class="swiper-slide"> | 61 | <div class="swiper-slide"> |
62 | <div class="intro-item"> | 62 | <div class="intro-item"> |
63 | <div class="intro-item__img"><img src="/storage/app/public/<?=$foto->foto; //asset(Storage::url($foto->foto)) ?>" alt=""></div> | 63 | <div class="intro-item__img"><img src="/storage/app/public/<?=$foto->foto; //asset(Storage::url($foto->foto)) ?>" alt=""></div> |
64 | <a class="intro-item__btn js_intro_item_btn" href="/storage/app/public/<?=$foto->foto; //asset(Storage::url($foto->foto)) ?>" data-caption="Фото {{ $foto->id }}"> | 64 | <a class="intro-item__btn js_intro_item_btn" href="/storage/app/public/<?=$foto->foto; //asset(Storage::url($foto->foto)) ?>" data-caption="Фото {{ $foto->id }}"> |
65 | <svg width="16" height="16"> | 65 | <svg width="16" height="16"> |
66 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 66 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
67 | </svg></a> | 67 | </svg></a> |
68 | </div> | 68 | </div> |
69 | </div> | 69 | </div> |
70 | @endforeach | 70 | @endforeach |
71 | 71 | ||
72 | </div> | 72 | </div> |
73 | <div class="swiper-pagination"></div> | 73 | <div class="swiper-pagination"></div> |
74 | <div class="swiper-button-prev"> | 74 | <div class="swiper-button-prev"> |
75 | <svg width="10" height="17"> | 75 | <svg width="10" height="17"> |
76 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 76 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
77 | </svg> | 77 | </svg> |
78 | </div> | 78 | </div> |
79 | <div class="swiper-button-next"> | 79 | <div class="swiper-button-next"> |
80 | <svg width="10" height="17"> | 80 | <svg width="10" height="17"> |
81 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 81 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
82 | </svg> | 82 | </svg> |
83 | </div> | 83 | </div> |
84 | </div> | 84 | </div> |
85 | </div> | 85 | </div> |
86 | </div> | 86 | </div> |
87 | </div> | 87 | </div> |
88 | </section> | 88 | </section> |
89 | <section class="offer"> | 89 | <section class="offer"> |
90 | <div class="offer__wrap"> | 90 | <div class="offer__wrap"> |
91 | <div class="container"> | 91 | <div class="container"> |
92 | <div class="offer__inner"> | 92 | <div class="offer__inner"> |
93 | <div class="offer-side"> | 93 | <div class="offer-side"> |
94 | <div class="offer-side__tabs"> | 94 | <div class="offer-side__tabs"> |
95 | <button class="offer-side__tab js_offer_side_tab active" type="button" data-tab="1">План объекта</button> | 95 | <button class="offer-side__tab js_offer_side_tab active" type="button" data-tab="1">План объекта</button> |
96 | <button class="offer-side__tab js_offer_side_tab" type="button" data-tab="2">План этажа</button> | 96 | <button class="offer-side__tab js_offer_side_tab" type="button" data-tab="2">План этажа</button> |
97 | </div> | 97 | </div> |
98 | <div class="offer-side__cnt"> | 98 | <div class="offer-side__cnt"> |
99 | <div class="offer-side-item js_offer_side_item active" data-item="1"> | 99 | <div class="offer-side-item js_offer_side_item active" data-item="1"> |
100 | <div class="offer-side-item__img"> | 100 | <div class="offer-side-item__img"> |
101 | <? if (!empty($house->object_plan)) {?> | 101 | <? if (!empty($house->object_plan)) {?> |
102 | <img src="/storage/app/public/<?=$house->object_plan; //asset(Storage::url($house->object_plan)) ?>" alt="План объекта"> | 102 | <img src="/storage/app/public/<?=$house->object_plan; //asset(Storage::url($house->object_plan)) ?>" alt="План объекта"> |
103 | <? } ?> | 103 | <? } ?> |
104 | </div> | 104 | </div> |
105 | <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> | 105 | <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> |
106 | <svg width="16" height="16"> | 106 | <svg width="16" height="16"> |
107 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 107 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
108 | </svg></a> | 108 | </svg></a> |
109 | </div> | 109 | </div> |
110 | <div class="offer-side-item js_offer_side_item" data-item="2"> | 110 | <div class="offer-side-item js_offer_side_item" data-item="2"> |
111 | <div class="offer-side-item__img"> | 111 | <div class="offer-side-item__img"> |
112 | <? if (!empty($house->floor_plan)) { ?> | 112 | <? if (!empty($house->floor_plan)) { ?> |
113 | <img src="/storage/app/public/<?=$house->floor_plan; //asset(Storage::url($house->floor_plan)) ?>" alt="План этажа"> | 113 | <img src="/storage/app/public/<?=$house->floor_plan; //asset(Storage::url($house->floor_plan)) ?>" alt="План этажа"> |
114 | <? }?> | 114 | <? }?> |
115 | </div> | 115 | </div> |
116 | <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> | 116 | <a class="offer-side-item__btn js_offer_side_item_btn" href="#" data-btn="offer-side-popup"> |
117 | <svg width="16" height="16"> | 117 | <svg width="16" height="16"> |
118 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> | 118 | <use xlink:href="{{ asset('images/sprite.svg#intro-item-btn') }}"></use> |
119 | </svg></a> | 119 | </svg></a> |
120 | </div> | 120 | </div> |
121 | </div> | 121 | </div> |
122 | 122 | ||
123 | <!---------------------------> | 123 | <!---------------------------> |
124 | <div class="offer-side-popup" data-popup="offer-side-popup"> | 124 | <div class="offer-side-popup" data-popup="offer-side-popup"> |
125 | <div class="offer-side-popup__wrap"> | 125 | <div class="offer-side-popup__wrap"> |
126 | <button class="offer-side-popup__close js_popup_close" type="button"> | 126 | <button class="offer-side-popup__close js_popup_close" type="button"> |
127 | <svg width="20" height="20"> | 127 | <svg width="20" height="20"> |
128 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | 128 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
129 | </svg> | 129 | </svg> |
130 | </button> | 130 | </button> |
131 | <div class="offer-side-popup__cnt"> | 131 | <div class="offer-side-popup__cnt"> |
132 | <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"> | 132 | <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"> |
133 | <? if (!empty($house->object_plan)) {?> | 133 | <? if (!empty($house->object_plan)) {?> |
134 | <img src="/storage/app/public/<?=$house->object_plan; //asset(Storage::url($house->object_plan)) ?>" alt="План объекта"> | 134 | <img src="/storage/app/public/<?=$house->object_plan; //asset(Storage::url($house->object_plan)) ?>" alt="План объекта"> |
135 | <? } ?> | 135 | <? } ?> |
136 | </div> | 136 | </div> |
137 | <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"> | 137 | <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"> |
138 | <? if (!empty($house->floor_plan)) { ?> | 138 | <? if (!empty($house->floor_plan)) { ?> |
139 | <img src="/storage/app/public/<?=$house->floor_plan; //asset(Storage::url($house->floor_plan)) ?>" alt="План этажа"> | 139 | <img src="/storage/app/public/<?=$house->floor_plan; //asset(Storage::url($house->floor_plan)) ?>" alt="План этажа"> |
140 | <? }?> | 140 | <? }?> |
141 | </div> | 141 | </div> |
142 | </div> | 142 | </div> |
143 | <div class="offer-side-popup__tabs"> | 143 | <div class="offer-side-popup__tabs"> |
144 | <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> | 144 | <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> |
145 | <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> | 145 | <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> |
146 | </div> | 146 | </div> |
147 | <button class="offer-side-popup__sizeoff js_popup_close" type="button"> | 147 | <button class="offer-side-popup__sizeoff js_popup_close" type="button"> |
148 | <svg width="18" height="18"> | 148 | <svg width="18" height="18"> |
149 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> | 149 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use> |
150 | </svg> | 150 | </svg> |
151 | </button> | 151 | </button> |
152 | </div> | 152 | </div> |
153 | </div> | 153 | </div> |
154 | <!---------------------------> | 154 | <!---------------------------> |
155 | <div class="offer__lines"> | 155 | <div class="offer__lines"> |
156 | <? if ($house->format_house == "Продажа") {?> | 156 | <? if ($house->format_house == "Продажа") {?> |
157 | <div class="offer__line"><span>Цена</span><span>{{ $house->price }} ₽</span></div> | 157 | <div class="offer__line"><span>Цена</span><span>{{ $house->price }} ₽</span></div> |
158 | <? } else {?> | 158 | <? } else {?> |
159 | <div class="offer__line"><span>Аренда в год за м2</span><span>{{ $house->rent_in_year }} ₽</span></div> | 159 | <div class="offer__line"><span>Аренда в год за м2</span><span>{{ $house->rent_in_year }} ₽</span></div> |
160 | <div class="offer__line"><span>Аренда в месяц</span><span>{{ $house->price }} ₽</span></div> | 160 | <div class="offer__line"><span>Аренда в месяц</span><span>{{ $house->price }} ₽</span></div> |
161 | <? } ?> | 161 | <? } ?> |
162 | <div class="offer__line"><span>Схема сделки</span><span>{{ $house->scheme_deal }}</span></div> | 162 | <div class="offer__line"><span>Схема сделки</span><span>{{ $house->scheme_deal }}</span></div> |
163 | </div> | 163 | </div> |
164 | <div class="offer-side__buttons"><a class="offer-side__btn btn btn--main" href="#" data-btn="viewing"><span>Записаться на просмотр | 164 | <div class="offer-side__buttons"><a class="offer-side__btn btn btn--main" href="#" data-btn="viewing"><span>Записаться на просмотр |
165 | <svg width="20" height="20"> | 165 | <svg width="20" height="20"> |
166 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-viewing') }}"></use> | 166 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-viewing') }}"></use> |
167 | </svg></span></a><a class="offer-side__btn btn btn--main" href="#" data-btn="sending"><span>Отправить по Email | 167 | </svg></span></a><a class="offer-side__btn btn btn--main" href="#" data-btn="sending"><span>Отправить по Email |
168 | <svg width="22" height="22"> | 168 | <svg width="22" height="22"> |
169 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-email') }}"></use> | 169 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-btn-email') }}"></use> |
170 | </svg></span></a><a class="offer-side__btn btn btn--main" href="tel:{{ $items_contact[0]->telephone }}"><span>Позвонить | 170 | </svg></span></a><a class="offer-side__btn btn btn--main" href="tel:{{ $items_contact[0]->telephone }}"><span>Позвонить |
171 | <svg width="22" height="22"> | 171 | <svg width="22" height="22"> |
172 | <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> | 172 | <use xlink:href="{{ asset('images/sprite.svg#intro-link-phone') }}"></use> |
173 | </svg></span></a></div> | 173 | </svg></span></a></div> |
174 | <a class="offer-side__download" href="{{ route('pdf', ['house' => $house->id]) }}" download><span>Скачать презентацию | 174 | <a class="offer-side__download" target="_blank" href="{{ route('pdf.preview', ['house' => $house->id]) }}" download_><span>Скачать презентацию |
175 | <svg width="60" height="60"> | 175 | <svg width="60" height="60"> |
176 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-download') }}"></use> | 176 | <use xlink:href="{{ asset('images/sprite.svg#offer-side-download') }}"></use> |
177 | </svg></span></a> | 177 | </svg></span></a> |
178 | </div> | 178 | </div> |
179 | <div class="offer__cnt"> | 179 | <div class="offer__cnt"> |
180 | <h2 class="offer__title">{{ $house->title }} {{ $house->address }}</h2> | 180 | <h2 class="offer__title">{{ $house->title }} {{ $house->address }}</h2> |
181 | <div class="offer__lines"> | 181 | <div class="offer__lines"> |
182 | <div class="offer__line"><span>Площадь, м2</span><span>{{ $house->area }}</span></div> | 182 | <div class="offer__line"><span>Площадь, м2</span><span>{{ $house->area }}</span></div> |
183 | <div class="offer__line"><span>Адрес</span><span>{{ $house->address }}</span></div> | 183 | <div class="offer__line"><span>Адрес</span><span>{{ $house->address }}</span></div> |
184 | <div class="offer__line"><span>Тип объекта</span><span>{{ $house->typearea->name_type }}</span></div> | 184 | <div class="offer__line"><span>Тип объекта</span><span>{{ $house->typearea->name_type }}</span></div> |
185 | <div class="offer__line"><span>Формат</span><span>{{ $house->format_house }}</span></div> | 185 | <div class="offer__line"><span>Формат</span><span>{{ $house->format_house }}</span></div> |
186 | <div class="offer__line"><span>Этаж</span><span>{{ $house->floor }} эт.</span></div> | 186 | <div class="offer__line"><span>Этаж</span><span>{{ $house->floor }} эт.</span></div> |
187 | <div class="offer__line"><span>Этажность здания</span><span>{{ $house->floor_bild }} эт.</span></div> | 187 | <div class="offer__line"><span>Этажность здания</span><span>{{ $house->floor_bild }} эт.</span></div> |
188 | <div class="offer__line"><span>Арендаторы</span><span>{{ $house->renter }}</span></div> | 188 | <div class="offer__line"><span>Арендаторы</span><span>{{ $house->renter }}</span></div> |
189 | <!--<div class="offer__line"><span>Состояние объекта</span><span><?// $house->sos_obj ?></span></div>--> | 189 | <!--<div class="offer__line"><span>Состояние объекта</span><span><?// $house->sos_obj ?></span></div>--> |
190 | <div class="offer__line"><span>Тип планировки</span><span>{{ $house->type_plan }}</span></div> | 190 | <div class="offer__line"><span>Тип планировки</span><span>{{ $house->type_plan }}</span></div> |
191 | <div class="offer__line"><span>Наличие зоны разгрузки</span><span><? if($house->uploading_area == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 191 | <div class="offer__line"><span>Наличие зоны разгрузки</span><span><? if($house->uploading_area == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
192 | <div class="offer__line"><span>Электрическая мощность</span><span>{{ $house->electric_power }} кВт</span></div> | 192 | <div class="offer__line"><span>Электрическая мощность</span><span>{{ $house->electric_power }} кВт</span></div> |
193 | <!--<div class="offer__line"><span>Проездное</span><span><? //if($house->travel_card == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> | 193 | <!--<div class="offer__line"><span>Проездное</span><span><? //if($house->travel_card == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> |
194 | <!--<div class="offer__line"><span>Проходное место</span><span><?// if($house->passing_place == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> | 194 | <!--<div class="offer__line"><span>Проходное место</span><span><?// if($house->passing_place == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> |
195 | <div class="offer__line"><span>Отдельный вход</span><span><? if($house->separate_input == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 195 | <div class="offer__line"><span>Отдельный вход</span><span><? if($house->separate_input == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
196 | <div class="offer__line"><span>Витрины</span><span><? if($house->shop_windows == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 196 | <div class="offer__line"><span>Витрины</span><span><? if($house->shop_windows == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
197 | <!--<div class="offer__line"><span>Место для рекламы</span><span><?// if($house->place_advertising == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> | 197 | <!--<div class="offer__line"><span>Место для рекламы</span><span><?// if($house->place_advertising == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> |
198 | <!--<div class="offer__line"><span>Окна</span><span><? //$house->windows ?></span></div>--> | 198 | <!--<div class="offer__line"><span>Окна</span><span><? //$house->windows ?></span></div>--> |
199 | <div class="offer__line"><span>Вытяжка</span><span><? if($house->hood == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 199 | <div class="offer__line"><span>Вытяжка</span><span><? if($house->hood == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
200 | <!--<div class="offer__line"><span>Центральное отопление</span><span><? //if($house->central_hearing == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> | 200 | <!--<div class="offer__line"><span>Центральное отопление</span><span><? //if($house->central_hearing == 1) {?>Есть<?//} else {?>Нет<?//}?></span></div>--> |
201 | <div class="offer__line"><span>Возможные часы работы</span><span>{{ $house->opening_hours }}</span></div> | 201 | <div class="offer__line"><span>Возможные часы работы</span><span>{{ $house->opening_hours }}</span></div> |
202 | <div class="offer__line"><span>Отделка</span><span><? if($house->finishing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> | 202 | <div class="offer__line"><span>Отделка</span><span><? if($house->finishing == 1) {?>Есть<?} else {?>Нет<?}?></span></div> |
203 | <div class="offer__line"><span>Парковка</span><span>{{ $house->parking }} мест</span></div> | 203 | <div class="offer__line"><span>Парковка</span><span>{{ $house->parking }} мест</span></div> |
204 | </div> | 204 | </div> |
205 | <p class="offer__additional">{{ $house->description_2 }}</p> | 205 | <p class="offer__additional">{{ $house->description_2 }}</p> |
206 | </div> | 206 | </div> |
207 | </div> | 207 | </div> |
208 | <div class="offer-descr"> | 208 | <div class="offer-descr"> |
209 | <h3 class="offer-descr__caption">Описание объекта</h3> | 209 | <h3 class="offer-descr__caption">Описание объекта</h3> |
210 | <p class="offer-descr__text">{{ $house->description_house }}</p> | 210 | <p class="offer-descr__text">{{ $house->description_house }}</p> |
211 | </div> | 211 | </div> |
212 | </div> | 212 | </div> |
213 | </div> | 213 | </div> |
214 | <div class="offer__map map" id="offer-map"></div> | 214 | <div class="offer__map map" id="offer-map"></div> |
215 | </section> | 215 | </section> |
216 | <section class="slider"> | 216 | <section class="slider"> |
217 | <div class="container"> | 217 | <div class="container"> |
218 | <div class="slider__wrap"> | 218 | <div class="slider__wrap"> |
219 | <div class="slider__top"> | 219 | <div class="slider__top"> |
220 | <h2 class="slider__title title">Похожие помещения</h2> | 220 | <h2 class="slider__title title">Похожие помещения</h2> |
221 | <div class="slider__control"> | 221 | <div class="slider__control"> |
222 | <div class="swiper-button-prev"> | 222 | <div class="swiper-button-prev"> |
223 | <svg width="10" height="17"> | 223 | <svg width="10" height="17"> |
224 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 224 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
225 | </svg> | 225 | </svg> |
226 | </div> | 226 | </div> |
227 | <div class="swiper-button-next"> | 227 | <div class="swiper-button-next"> |
228 | <svg width="10" height="17"> | 228 | <svg width="10" height="17"> |
229 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> | 229 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use> |
230 | </svg> | 230 | </svg> |
231 | </div> | 231 | </div> |
232 | </div> | 232 | </div> |
233 | </div> | 233 | </div> |
234 | <div class="slider__swiper swiper"> | 234 | <div class="slider__swiper swiper"> |
235 | <div class="swiper-wrapper"> | 235 | <div class="swiper-wrapper"> |
236 | @if ($houses->count()) | 236 | @if ($houses->count()) |
237 | @foreach ($houses as $house) | 237 | @foreach ($houses as $house) |
238 | @include('catalogs.elemhouse', ['house' => $house]) | 238 | @include('catalogs.elemhouse', ['house' => $house]) |
239 | @endforeach | 239 | @endforeach |
240 | @endif | 240 | @endif |
241 | 241 | ||
242 | <!--<div class="swiper-slide"> | 242 | <!--<div class="swiper-slide"> |
243 | <div class="card"> | 243 | <div class="card"> |
244 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 244 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
245 | <h3 class="card__title">Салон красоты</h3> | 245 | <h3 class="card__title">Салон красоты</h3> |
246 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 246 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
247 | <svg width="18" height="18"> | 247 | <svg width="18" height="18"> |
248 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 248 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
249 | </svg> | 249 | </svg> |
250 | <svg width="18" height="18"> | 250 | <svg width="18" height="18"> |
251 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 251 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
252 | </svg></span><a class="card__label card__label-messenger" href="#"> | 252 | </svg></span><a class="card__label card__label-messenger" href="#"> |
253 | <svg width="25" height="25"> | 253 | <svg width="25" height="25"> |
254 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 254 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
255 | </svg></a></div> | 255 | </svg></a></div> |
256 | </div> | 256 | </div> |
257 | <div class="card__cnt"> | 257 | <div class="card__cnt"> |
258 | <div class="card__info"> | 258 | <div class="card__info"> |
259 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 259 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
260 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 260 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
261 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 261 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
262 | <div class="card__line">Площадь: <b>556 м2</b></div> | 262 | <div class="card__line">Площадь: <b>556 м2</b></div> |
263 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 263 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
264 | </div> | 264 | </div> |
265 | <div class="card__price"><span>1 000 000 ₽</span> | 265 | <div class="card__price"><span>1 000 000 ₽</span> |
266 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 266 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
267 | </div> | 267 | </div> |
268 | </div> | 268 | </div> |
269 | </div> | 269 | </div> |
270 | <div class="swiper-slide"> | 270 | <div class="swiper-slide"> |
271 | <div class="card"> | 271 | <div class="card"> |
272 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 272 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
273 | <h3 class="card__title">Барбер-шоп</h3> | 273 | <h3 class="card__title">Барбер-шоп</h3> |
274 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 274 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
275 | <svg width="18" height="18"> | 275 | <svg width="18" height="18"> |
276 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 276 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
277 | </svg> | 277 | </svg> |
278 | <svg width="18" height="18"> | 278 | <svg width="18" height="18"> |
279 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 279 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
280 | </svg></span><a class="card__label card__label-messenger" href="#"> | 280 | </svg></span><a class="card__label card__label-messenger" href="#"> |
281 | <svg width="25" height="25"> | 281 | <svg width="25" height="25"> |
282 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 282 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
283 | </svg></a></div> | 283 | </svg></a></div> |
284 | </div> | 284 | </div> |
285 | <div class="card__cnt"> | 285 | <div class="card__cnt"> |
286 | <div class="card__info"> | 286 | <div class="card__info"> |
287 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 287 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
288 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 288 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
289 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 289 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
290 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 290 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
291 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 291 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
292 | </div> | 292 | </div> |
293 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 293 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
294 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 294 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
295 | </div> | 295 | </div> |
296 | </div> | 296 | </div> |
297 | </div> | 297 | </div> |
298 | <div class="swiper-slide"> | 298 | <div class="swiper-slide"> |
299 | <div class="card"> | 299 | <div class="card"> |
300 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 300 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
301 | <h3 class="card__title">Аптека</h3> | 301 | <h3 class="card__title">Аптека</h3> |
302 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 302 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
303 | <svg width="18" height="18"> | 303 | <svg width="18" height="18"> |
304 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 304 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
305 | </svg> | 305 | </svg> |
306 | <svg width="18" height="18"> | 306 | <svg width="18" height="18"> |
307 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 307 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
308 | </svg></span><a class="card__label card__label-messenger" href="#"> | 308 | </svg></span><a class="card__label card__label-messenger" href="#"> |
309 | <svg width="25" height="25"> | 309 | <svg width="25" height="25"> |
310 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 310 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
311 | </svg></a></div> | 311 | </svg></a></div> |
312 | </div> | 312 | </div> |
313 | <div class="card__cnt"> | 313 | <div class="card__cnt"> |
314 | <div class="card__info"> | 314 | <div class="card__info"> |
315 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 315 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
316 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 316 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
317 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 317 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
318 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 318 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
319 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 319 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
320 | </div> | 320 | </div> |
321 | <div class="card__price"><span>5 280 000 ₽</span> | 321 | <div class="card__price"><span>5 280 000 ₽</span> |
322 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 322 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
323 | </div> | 323 | </div> |
324 | </div> | 324 | </div> |
325 | </div> | 325 | </div> |
326 | <div class="swiper-slide"> | 326 | <div class="swiper-slide"> |
327 | <div class="card"> | 327 | <div class="card"> |
328 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 328 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
329 | <h3 class="card__title">Витрина</h3> | 329 | <h3 class="card__title">Витрина</h3> |
330 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 330 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
331 | <svg width="18" height="18"> | 331 | <svg width="18" height="18"> |
332 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 332 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
333 | </svg> | 333 | </svg> |
334 | <svg width="18" height="18"> | 334 | <svg width="18" height="18"> |
335 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 335 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
336 | </svg></span><a class="card__label card__label-messenger" href="#"> | 336 | </svg></span><a class="card__label card__label-messenger" href="#"> |
337 | <svg width="25" height="25"> | 337 | <svg width="25" height="25"> |
338 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 338 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
339 | </svg></a></div> | 339 | </svg></a></div> |
340 | </div> | 340 | </div> |
341 | <div class="card__cnt"> | 341 | <div class="card__cnt"> |
342 | <div class="card__info"> | 342 | <div class="card__info"> |
343 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 343 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
344 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 344 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
345 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 345 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
346 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 346 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
347 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 347 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
348 | </div> | 348 | </div> |
349 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 349 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
350 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 350 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
351 | </div> | 351 | </div> |
352 | </div> | 352 | </div> |
353 | </div> | 353 | </div> |
354 | <div class="swiper-slide"> | 354 | <div class="swiper-slide"> |
355 | <div class="card"> | 355 | <div class="card"> |
356 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> | 356 | <div class="card__top"><img src="images/card/card-img-1.jpg" alt="Фото недвижимости" loading="lazy"> |
357 | <h3 class="card__title">Салон красоты</h3> | 357 | <h3 class="card__title">Салон красоты</h3> |
358 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 358 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
359 | <svg width="18" height="18"> | 359 | <svg width="18" height="18"> |
360 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 360 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
361 | </svg> | 361 | </svg> |
362 | <svg width="18" height="18"> | 362 | <svg width="18" height="18"> |
363 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 363 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
364 | </svg></span><a class="card__label card__label-messenger" href="#"> | 364 | </svg></span><a class="card__label card__label-messenger" href="#"> |
365 | <svg width="25" height="25"> | 365 | <svg width="25" height="25"> |
366 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 366 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
367 | </svg></a></div> | 367 | </svg></a></div> |
368 | </div> | 368 | </div> |
369 | <div class="card__cnt"> | 369 | <div class="card__cnt"> |
370 | <div class="card__info"> | 370 | <div class="card__info"> |
371 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> | 371 | <address class="card__line card__line-complex">ЖК “Новинки 1”</address> |
372 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> | 372 | <address class="card__line">Фрунзенская (10 мин., пешком)<span style="background-color: #FFC955;"></span></address> |
373 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 373 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
374 | <div class="card__line">Площадь: <b>556 м2</b></div> | 374 | <div class="card__line">Площадь: <b>556 м2</b></div> |
375 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 375 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
376 | </div> | 376 | </div> |
377 | <div class="card__price"><span>1 000 000 ₽</span> | 377 | <div class="card__price"><span>1 000 000 ₽</span> |
378 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> | 378 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее</a> |
379 | </div> | 379 | </div> |
380 | </div> | 380 | </div> |
381 | </div> | 381 | </div> |
382 | <div class="swiper-slide"> | 382 | <div class="swiper-slide"> |
383 | <div class="card"> | 383 | <div class="card"> |
384 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> | 384 | <div class="card__top"><img src="images/card/card-img-2.jpg" alt="Фото недвижимости" loading="lazy"> |
385 | <h3 class="card__title">Барбер-шоп</h3> | 385 | <h3 class="card__title">Барбер-шоп</h3> |
386 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 386 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
387 | <svg width="18" height="18"> | 387 | <svg width="18" height="18"> |
388 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 388 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
389 | </svg> | 389 | </svg> |
390 | <svg width="18" height="18"> | 390 | <svg width="18" height="18"> |
391 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 391 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
392 | </svg></span><a class="card__label card__label-messenger" href="#"> | 392 | </svg></span><a class="card__label card__label-messenger" href="#"> |
393 | <svg width="25" height="25"> | 393 | <svg width="25" height="25"> |
394 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 394 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
395 | </svg></a></div> | 395 | </svg></a></div> |
396 | </div> | 396 | </div> |
397 | <div class="card__cnt"> | 397 | <div class="card__cnt"> |
398 | <div class="card__info"> | 398 | <div class="card__info"> |
399 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> | 399 | <address class="card__line card__line-complex">ЖК “Новоарбатский”</address> |
400 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> | 400 | <address class="card__line">Арбатская (8 мин., пешком)<span style="background-color: #0000A0;"></span></address> |
401 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 401 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
402 | <div class="card__line">Площадь: <b>6 556 м2</b></div> | 402 | <div class="card__line">Площадь: <b>6 556 м2</b></div> |
403 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> | 403 | <div class="card__line">Цена за м<sup>2</sup>: <b>5 225 256 ₽</b></div> |
404 | </div> | 404 | </div> |
405 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> | 405 | <div class="card__price"><span>15 520 900 ₽</span><span>в месяц</span> |
406 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 406 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
407 | </div> | 407 | </div> |
408 | </div> | 408 | </div> |
409 | </div> | 409 | </div> |
410 | <div class="swiper-slide"> | 410 | <div class="swiper-slide"> |
411 | <div class="card"> | 411 | <div class="card"> |
412 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> | 412 | <div class="card__top"><img src="images/card/card-img-3.jpg" alt="Фото недвижимости" loading="lazy"> |
413 | <h3 class="card__title">Аптека</h3> | 413 | <h3 class="card__title">Аптека</h3> |
414 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 414 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
415 | <svg width="18" height="18"> | 415 | <svg width="18" height="18"> |
416 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 416 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
417 | </svg> | 417 | </svg> |
418 | <svg width="18" height="18"> | 418 | <svg width="18" height="18"> |
419 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 419 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
420 | </svg></span><a class="card__label card__label-messenger" href="#"> | 420 | </svg></span><a class="card__label card__label-messenger" href="#"> |
421 | <svg width="25" height="25"> | 421 | <svg width="25" height="25"> |
422 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 422 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
423 | </svg></a></div> | 423 | </svg></a></div> |
424 | </div> | 424 | </div> |
425 | <div class="card__cnt"> | 425 | <div class="card__cnt"> |
426 | <div class="card__info"> | 426 | <div class="card__info"> |
427 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> | 427 | <address class="card__line card__line-complex">ЖК “Садовые кварталы”</address> |
428 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> | 428 | <address class="card__line">Коломенская (2 мин., пешком)<span style="background-color: #029B55;"></span></address> |
429 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> | 429 | <address class="card__line">ул. Ак. Королева, д. 13, стр. 1, этаж 7, пом. 1, к. 69</address> |
430 | <div class="card__line">Площадь: <b>8 626 м2</b></div> | 430 | <div class="card__line">Площадь: <b>8 626 м2</b></div> |
431 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> | 431 | <div class="card__line">Цена за м<sup>2</sup>: <b>550 256 ₽</b></div> |
432 | </div> | 432 | </div> |
433 | <div class="card__price"><span>5 280 000 ₽</span> | 433 | <div class="card__price"><span>5 280 000 ₽</span> |
434 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> | 434 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее о продаже</a> |
435 | </div> | 435 | </div> |
436 | </div> | 436 | </div> |
437 | </div> | 437 | </div> |
438 | <div class="swiper-slide"> | 438 | <div class="swiper-slide"> |
439 | <div class="card"> | 439 | <div class="card"> |
440 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> | 440 | <div class="card__top"><img src="images/card/card-img-4.jpg" alt="Фото недвижимости" loading="lazy"> |
441 | <h3 class="card__title">Витрина</h3> | 441 | <h3 class="card__title">Витрина</h3> |
442 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> | 442 | <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites"> |
443 | <svg width="18" height="18"> | 443 | <svg width="18" height="18"> |
444 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> | 444 | <use xlink:href="images/sprite.svg#card-favorites-empty"></use> |
445 | </svg> | 445 | </svg> |
446 | <svg width="18" height="18"> | 446 | <svg width="18" height="18"> |
447 | <use xlink:href="images/sprite.svg#card-favorites"></use> | 447 | <use xlink:href="images/sprite.svg#card-favorites"></use> |
448 | </svg></span><a class="card__label card__label-messenger" href="#"> | 448 | </svg></span><a class="card__label card__label-messenger" href="#"> |
449 | <svg width="25" height="25"> | 449 | <svg width="25" height="25"> |
450 | <use xlink:href="images/sprite.svg#card-messenger"></use> | 450 | <use xlink:href="images/sprite.svg#card-messenger"></use> |
451 | </svg></a></div> | 451 | </svg></a></div> |
452 | </div> | 452 | </div> |
453 | <div class="card__cnt"> | 453 | <div class="card__cnt"> |
454 | <div class="card__info"> | 454 | <div class="card__info"> |
455 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> | 455 | <address class="card__line card__line-complex">ЖК “Нахимовский проспект, 46”</address> |
456 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> | 456 | <address class="card__line">Парк Победы (5 мин., пешком)<span style="background-color: #222964;"></span></address> |
457 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> | 457 | <address class="card__line">г. Москва, ул. Дербеневская, д. 1, стр. 6, п. 4, эт. 2, к. 3.1.</address> |
458 | <div class="card__line">Площадь: <b>6 856 м2</b></div> | 458 | <div class="card__line">Площадь: <b>6 856 м2</b></div> |
459 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> | 459 | <div class="card__line">Цена за м<sup>2</sup>: <b>25 256 ₽</b></div> |
460 | </div> | 460 | </div> |
461 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> | 461 | <div class="card__price"><span>2 625 520 ₽</span><span>в месяц</span> |
462 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> | 462 | </div><a class="card__btn btn btn--bordered" href="#">Подробнее об аренде</a> |
463 | </div> | 463 | </div> |
464 | </div> | 464 | </div> |
465 | </div>--> | 465 | </div>--> |
466 | </div> | 466 | </div> |
467 | </div> | 467 | </div> |
468 | <div class="swiper-pagination"></div> | 468 | <div class="swiper-pagination"></div> |
469 | </div> | 469 | </div> |
470 | </div> | 470 | </div> |
471 | </section> | 471 | </section> |
472 | @endsection | 472 | @endsection |
473 | 473 | ||
474 | @section('form_feedback') | 474 | @section('form_feedback') |
475 | <!-- Форма обратной связи --> | 475 | <!-- Форма обратной связи --> |
476 | @include('form.form_feedback') | 476 | @include('form.form_feedback') |
477 | @endsection | 477 | @endsection |
478 | 478 | ||
479 | 479 |
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 | <meta name="csrf-token" content="<?=csrf_token() ?>"> | 7 | <meta name="csrf-token" content="<?=csrf_token() ?>"> |
8 | <title>{{$title}}</title> | 8 | <title>{{$title}}</title> |
9 | <link rel="shortcut icon" href="{{ asset('images/favicon.png')}}" type="image/x-icon"> | 9 | <link rel="shortcut icon" href="{{ asset('images/favicon.png')}}" type="image/x-icon"> |
10 | <link rel="preload" href="{{ asset('fonts/Manrope-ExtraLight.woff2') }}" as="font" type="font/woff2" crossorigin> | 10 | <link rel="preload" href="{{ asset('fonts/Manrope-ExtraLight.woff2') }}" as="font" type="font/woff2" crossorigin> |
11 | <link rel="preload" href="{{ asset('fonts/Manrope-Light.woff2" as="font') }}" type="font/woff2" crossorigin> | 11 | <link rel="preload" href="{{ asset('fonts/Manrope-Light.woff2" as="font') }}" type="font/woff2" crossorigin> |
12 | <link rel="preload" href="{{ asset('fonts/Manrope-Regular.woff2') }}" as="font" type="font/woff2" crossorigin> | 12 | <link rel="preload" href="{{ asset('fonts/Manrope-Regular.woff2') }}" as="font" type="font/woff2" crossorigin> |
13 | <link rel="preload" href="{{ asset('fonts/Manrope-Medium.woff2') }}" as="font" type="font/woff2" crossorigin> | 13 | <link rel="preload" href="{{ asset('fonts/Manrope-Medium.woff2') }}" as="font" type="font/woff2" crossorigin> |
14 | <link rel="preload" href="{{ asset('fonts/Manrope-SemiBold.woff2') }}" as="font" type="font/woff2" crossorigin> | 14 | <link rel="preload" href="{{ asset('fonts/Manrope-SemiBold.woff2') }}" as="font" type="font/woff2" crossorigin> |
15 | <link rel="preload" href="{{ asset('fonts/Manrope-Bold.woff2') }}" as="font" type="font/woff2" crossorigin> | 15 | <link rel="preload" href="{{ asset('fonts/Manrope-Bold.woff2') }}" as="font" type="font/woff2" crossorigin> |
16 | <link rel="preload" href="{{ asset('fonts/Manrope-ExtraBold.woff2') }}" as="font" type="font/woff2" crossorigin> | 16 | <link rel="preload" href="{{ asset('fonts/Manrope-ExtraBold.woff2') }}" as="font" type="font/woff2" crossorigin> |
17 | <link rel="stylesheet" href="{{ asset('css/swiper-bundle.min.css') }}"> | 17 | <link rel="stylesheet" href="{{ asset('css/swiper-bundle.min.css') }}"> |
18 | <link rel="stylesheet" href="{{ asset('css/style_main.css') }}"> | 18 | <link rel="stylesheet" href="{{ asset('css/style_main.css') }}"> |
19 | </head> | 19 | </head> |
20 | <body> | 20 | <body> |
21 | <div class="spinner"></div> | 21 | <div class="spinner"></div> |
22 | <div class="wrapper"> | 22 | <div class="wrapper"> |
23 | <header class="header js_header"> | 23 | <header class="header js_header"> |
24 | <div class="container"> | 24 | <div class="container"> |
25 | <div class="header__wrap"><a class="header__logo" href="{{ route('index') }}"><img src="{{ asset('images/logo.svg') }}" alt="Лого"></a> | 25 | <div class="header__wrap"><a class="header__logo" href="{{ route('index') }}"><img src="{{ asset('images/logo.svg') }}" alt="Лого"></a> |
26 | <nav class="header__nav nav"> | 26 | <nav class="header__nav nav"> |
27 | <ul class="nav__list"> | 27 | <ul class="nav__list"> |
28 | <li class="nav__item"><a class="nav__link" href="{{ route('catalog') }}">Каталог</a></li> | 28 | <li class="nav__item"><a class="nav__link" href="{{ route('catalog') }}">Каталог</a></li> |
29 | <li class="nav__item"><a class="nav__link" href="{{ route('about') }}">О компании</a></li> | 29 | <li class="nav__item"><a class="nav__link" href="{{ route('about') }}">О компании</a></li> |
30 | <li class="nav__item"><a class="nav__link" href="{{ route('contact') }}">Контакты</a></li> | 30 | <li class="nav__item"><a class="nav__link" href="{{ route('contact') }}">Контакты</a></li> |
31 | <li class="nav__item"><a class="nav__link nav__link-favorites" href="{{ route('favorite') }}">Избранное<span><?=\App\Classes\RusDate::count_item_fav();?></span></a></li> | 31 | <li class="nav__item"><a class="nav__link nav__link-favorites" href="{{ route('favorite') }}">Избранное<span><?=\App\Classes\RusDate::count_item_fav();?></span></a></li> |
32 | </ul> | 32 | </ul> |
33 | </nav> | 33 | </nav> |
34 | <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback"> | 34 | <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback"> |
35 | <svg width="22" height="22"> | 35 | <svg width="22" height="22"> |
36 | <use xlink:href="{{ asset('images/sprite.svg#header-btn-phone') }}"></use> | 36 | <use xlink:href="{{ asset('images/sprite.svg#header-btn-phone') }}"></use> |
37 | </svg></a> | 37 | </svg></a> |
38 | <div class="header__contacts"> | 38 | <div class="header__contacts"> |
39 | <div class="header__col"><a class="header__contact" href="mailto:{{ $items_contact[0]->email }}">{{ $items_contact[0]->email }}</a></div> | 39 | <div class="header__col"><a class="header__contact" href="mailto:{{ $items_contact[0]->email }}">{{ $items_contact[0]->email }}</a></div> |
40 | <div class="header__col"><a class="header__contact" href="tel:{{ $items_contact[0]->telephone }}">{{ $items_contact[0]->telephone }}</a> | 40 | <div class="header__col"><a class="header__contact" href="tel:{{ $items_contact[0]->telephone }}">{{ $items_contact[0]->telephone }}</a> |
41 | <button class="header__btn-callback" type="button" data-btn="feedback">Обратный звонок</button> | 41 | <button class="header__btn-callback" type="button" data-btn="feedback">Обратный звонок</button> |
42 | </div> | 42 | </div> |
43 | </div> | 43 | </div> |
44 | <button class="header__burger js_header_burger" type="button">Меню | 44 | <button class="header__burger js_header_burger" type="button">Меню |
45 | <svg width="28" height="18"> | 45 | <svg width="28" height="18"> |
46 | <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use> | 46 | <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use> |
47 | </svg> | 47 | </svg> |
48 | </button> | 48 | </button> |
49 | </div> | 49 | </div> |
50 | <div class="menu js_menu"> | 50 | <div class="menu js_menu"> |
51 | <div class="menu__wrap"> | 51 | <div class="menu__wrap"> |
52 | <button class="menu__close js_menu_close" type="button">Меню | 52 | <button class="menu__close js_menu_close" type="button">Меню |
53 | <svg width="20" height="20"> | 53 | <svg width="20" height="20"> |
54 | <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> | 54 | <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> |
55 | </svg> | 55 | </svg> |
56 | </button> | 56 | </button> |
57 | <div class="menu__inner"> | 57 | <div class="menu__inner"> |
58 | <nav class="menu__nav"> | 58 | <nav class="menu__nav"> |
59 | <ul class="menu__list"> | 59 | <ul class="menu__list"> |
60 | <li class="menu__item"><a class="menu__link" href="{{ route('about') }}">О компании</a></li> | 60 | <li class="menu__item"><a class="menu__link" href="{{ route('about') }}">О компании</a></li> |
61 | <li class="menu__item"><a class="menu__link menu__link-favorites" href="{{ route('favorite') }}">Избранное<span>5</span></a></li> | 61 | <li class="menu__item"><a class="menu__link menu__link-favorites" href="{{ route('favorite') }}">Избранное<span>5</span></a></li> |
62 | <li class="menu__item"><a class="menu__link" href="{{ route('catalog') }}">Каталог</a></li> | 62 | <li class="menu__item"><a class="menu__link" href="{{ route('catalog') }}">Каталог</a></li> |
63 | <li class="menu__item"><a class="menu__link" href="{{ route('news') }}">Новости</a></li> | 63 | <li class="menu__item"><a class="menu__link" href="{{ route('news') }}">Новости</a></li> |
64 | <li class="menu__item"><a class="menu__link" href="{{ route('contact') }}">Контакты</a></li> | 64 | <li class="menu__item"><a class="menu__link" href="{{ route('contact') }}">Контакты</a></li> |
65 | </ul> | 65 | </ul> |
66 | </nav> | 66 | </nav> |
67 | <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> | 67 | <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> |
68 | <div class="menu__social social"> | 68 | <div class="menu__social social"> |
69 | <ul class="social__list"> | 69 | <ul class="social__list"> |
70 | <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li> | 70 | <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li> |
71 | <li class="social__item"><a class="social__link" href="#" target="_blank"> | 71 | <li class="social__item"><a class="social__link" href="#" target="_blank"> |
72 | <svg width="40" height="40"> | 72 | <svg width="40" height="40"> |
73 | <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use> | 73 | <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use> |
74 | </svg></a></li> | 74 | </svg></a></li> |
75 | </ul> | 75 | </ul> |
76 | </div> | 76 | </div> |
77 | </div> | 77 | </div> |
78 | </div> | 78 | </div> |
79 | </div> | 79 | </div> |
80 | </div> | 80 | </div> |
81 | </div> | 81 | </div> |
82 | </header> | 82 | </header> |
83 | <main> | 83 | <main> |
84 | 84 | ||
85 | 85 | ||
86 | <!-- Фильтр --> | 86 | <!-- Фильтр --> |
87 | @yield('filter') | 87 | @yield('filter') |
88 | 88 | ||
89 | @if ($message = Session::get('success')) | 89 | @if ($message = Session::get('success')) |
90 | <section> | 90 | <section> |
91 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> | 91 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> |
92 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 92 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
93 | <span aria-hidden="true">×</span> | 93 | <span aria-hidden="true">×</span> |
94 | </button> | 94 | </button> |
95 | {{ $message }} | 95 | {{ $message }} |
96 | </div> | 96 | </div> |
97 | </section> | 97 | </section> |
98 | @endif | 98 | @endif |
99 | 99 | ||
100 | @if ($errors->any()) | 100 | @if ($errors->any()) |
101 | <section> | 101 | <section> |
102 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> | 102 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> |
103 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 103 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
104 | <span aria-hidden="true">×</span> | 104 | <span aria-hidden="true">×</span> |
105 | </button> | 105 | </button> |
106 | <ul class="mb-0"> | 106 | <ul class="mb-0"> |
107 | @foreach ($errors->all() as $error) | 107 | @foreach ($errors->all() as $error) |
108 | <li>{{ $error }}</li> | 108 | <li>{{ $error }}</li> |
109 | @endforeach | 109 | @endforeach |
110 | </ul> | 110 | </ul> |
111 | </div> | 111 | </div> |
112 | </section> | 112 | </section> |
113 | @endif | 113 | @endif |
114 | <!-- Основной контент --> | 114 | <!-- Основной контент --> |
115 | @yield('content') | 115 | @yield('content') |
116 | 116 | ||
117 | </main> | 117 | </main> |
118 | 118 | ||
119 | <footer class="footer" style="background-image:url({{ asset('images/footer-bg.jpg')}})"> | 119 | <footer class="footer" style="background-image:url({{ asset('images/footer-bg.jpg')}})"> |
120 | <div class="footer__buttons"> | 120 | <div class="footer__buttons"> |
121 | <button class="footer__btn footer__btn-phone js_btn_contact_us" type="button"> | 121 | <button class="footer__btn footer__btn-phone js_btn_contact_us" type="button"> |
122 | <svg width="30" height="32"> | 122 | <svg width="30" height="32"> |
123 | <use xlink:href="{{ asset('images/sprite.svg#footer-btn-phone')}}"></use> | 123 | <use xlink:href="{{ asset('images/sprite.svg#footer-btn-phone')}}"></use> |
124 | </svg> | 124 | </svg> |
125 | </button> | 125 | </button> |
126 | <button class="footer__btn footer__btn-up js_btn_up" type="button"> | 126 | <button class="footer__btn footer__btn-up js_btn_up" type="button"> |
127 | <svg width="19" height="11"> | 127 | <svg width="19" height="11"> |
128 | <use xlink:href="{{ asset('images/sprite.svg#footer-btn-up')}}"></use> | 128 | <use xlink:href="{{ asset('images/sprite.svg#footer-btn-up')}}"></use> |
129 | </svg> | 129 | </svg> |
130 | </button> | 130 | </button> |
131 | </div> | 131 | </div> |
132 | <!-- Форма обратной связи --> | 132 | <!-- Форма обратной связи --> |
133 | @yield('form_feedback') | 133 | @yield('form_feedback') |
134 | 134 | ||
135 | <!-- Сам футер мееню --> | 135 | <!-- Сам футер мееню --> |
136 | <div class="footer-middle"> | 136 | <div class="footer-middle"> |
137 | <div class="container"> | 137 | <div class="container"> |
138 | <div class="footer-middle__wrap"> | 138 | <div class="footer-middle__wrap"> |
139 | <div class="footer__col footer__col-intro"><a class="footer__logo" href="index.html"><img src="{{ asset('images/logo-footer.svg')}}" alt="Лого"></a> | 139 | <div class="footer__col footer__col-intro"><a class="footer__logo" href="index.html"><img src="{{ asset('images/logo-footer.svg')}}" alt="Лого"></a> |
140 | <p class="footer__descr">В группу “Renttorg” входит ряд ведущих российских девелоперских компаний полного цикла, реализующих масштабные объекты недвижимости.</p> | 140 | <p class="footer__descr">В группу “Renttorg” входит ряд ведущих российских девелоперских компаний полного цикла, реализующих масштабные объекты недвижимости.</p> |
141 | <div class="footer-questions"> | 141 | <div class="footer-questions"> |
142 | <h3 class="footer-questions__title">Есть вопросы или предложения?</h3><a class="footer-questions__btn btn btn--main" href="#" data-btn="feedback">Напишите нам</a> | 142 | <h3 class="footer-questions__title">Есть вопросы или предложения?</h3><a class="footer-questions__btn btn btn--main" href="#" data-btn="feedback">Напишите нам</a> |
143 | </div> | 143 | </div> |
144 | </div> | 144 | </div> |
145 | <div class="footer__col footer__col-menu js_footer_col"> | 145 | <div class="footer__col footer__col-menu js_footer_col"> |
146 | <h3 class="footer__caption js_footer_caption">Меню123</h3> | 146 | <h3 class="footer__caption js_footer_caption">Меню</h3> |
147 | <div class="footer__block js_footer_block"> | 147 | <div class="footer__block js_footer_block"> |
148 | <ul class="footer__list"> | 148 | <ul class="footer__list"> |
149 | <li class="footer__item"><a class="footer__link" href="{{ route('catalog') }}">Каталог</a></li> | 149 | <li class="footer__item"><a class="footer__link" href="{{ route('catalog') }}">Каталог</a></li> |
150 | <li class="footer__item"><a class="footer__link" href="{{ route('about') }}">О компании</a></li> | 150 | <li class="footer__item"><a class="footer__link" href="{{ route('about') }}">О компании</a></li> |
151 | <li class="footer__item"><a class="footer__link" href="{{ route('contact') }}">Контакты</a></li> | 151 | <li class="footer__item"><a class="footer__link" href="{{ route('contact') }}">Контакты</a></li> |
152 | <li class="footer__item"><a class="footer__link" href="{{ route('favorite') }}">Избранное</a></li> | 152 | <li class="footer__item"><a class="footer__link" href="{{ route('favorite') }}">Избранное</a></li> |
153 | <li class="footer__item"><a class="footer__link" href="{{ route('news') }}">Новости</a></li> | 153 | <li class="footer__item"><a class="footer__link" href="{{ route('news') }}">Новости</a></li> |
154 | </ul> | 154 | </ul> |
155 | 155 | ||
156 | </div> | 156 | </div> |
157 | 157 | ||
158 | <div class="footer__authors"> | 158 | <div class="footer__authors"> |
159 | <a class="footer__author" href="#" target="_blank"> | 159 | <a class="footer__author" href="#" target="_blank"> |
160 | <img src="{{ asset('images/author.png')}}" alt="Лого разработчика"></a> | 160 | <img src="{{ asset('images/author.png')}}" alt="Лого разработчика"></a> |
161 | <a class="footer__author footer__author-2" href="https://nologostudio.ru/" target="_blank"> | 161 | <a class="footer__author footer__author-2" href="https://nologostudio.ru/" target="_blank"> |
162 | <img src="{{ asset('images/author-nls.svg')}}" alt="Лого разработчика"></a> | 162 | <img src="{{ asset('images/author-nls.svg')}}" alt="Лого разработчика"></a> |
163 | </div> | 163 | </div> |
164 | 164 | ||
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('category', ['cat'=>'bussiness']) }}">Продажа арендного бизнеса</a></li> | 170 | <li class="footer__item"><a class="footer__link" href="{{ route('category', ['cat'=>'bussiness']) }}">Продажа арендного бизнеса</a></li> |
171 | <li class="footer__item"><a class="footer__link" href="{{ route('category', ['cat'=>'arendovannie']) }}">Арендованные помещения</a></li> | 171 | <li class="footer__item"><a class="footer__link" href="{{ route('category', ['cat'=>'arendovannie']) }}">Арендованные помещения</a></li> |
172 | <li class="footer__item"><a class="footer__link" href="{{ route('category', ['cat'=>'arenda']) }}">Свободные для аренды</a></li> | 172 | <li class="footer__item"><a class="footer__link" href="{{ route('category', ['cat'=>'arenda']) }}">Свободные для аренды</a></li> |
173 | </ul> | 173 | </ul> |
174 | </div> | 174 | </div> |
175 | </div> | 175 | </div> |
176 | <div class="footer__col js_footer_col"> | 176 | <div class="footer__col js_footer_col"> |
177 | <h3 class="footer__caption js_footer_caption">Страницы</h3> | 177 | <h3 class="footer__caption js_footer_caption">Страницы</h3> |
178 | <div class="footer__block js_footer_block"> | 178 | <div class="footer__block js_footer_block"> |
179 | <ul class="footer__list"> | 179 | <ul class="footer__list"> |
180 | <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Админка</a></li> | 180 | <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Админка</a></li> |
181 | <li class="footer__item"><a class="footer__link" href="{{ route('cookies') }}">Cookies</a></li> | 181 | <li class="footer__item"><a class="footer__link" href="{{ route('cookies') }}">Cookies</a></li> |
182 | 182 | ||
183 | <!--<li class="footer__item"><a class="footer__link" href="#">Новая Москва</a></li> | 183 | <!--<li class="footer__item"><a class="footer__link" href="#">Новая Москва</a></li> |
184 | <li class="footer__item"><a class="footer__link" href="#">Подмосковье</a></li> | 184 | <li class="footer__item"><a class="footer__link" href="#">Подмосковье</a></li> |
185 | <li class="footer__item"><a class="footer__link" href="#">Москва</a></li> | 185 | <li class="footer__item"><a class="footer__link" href="#">Москва</a></li> |
186 | <li class="footer__item"><a class="footer__link" href="#">Тип недвижимости</a></li>--> | 186 | <li class="footer__item"><a class="footer__link" href="#">Тип недвижимости</a></li>--> |
187 | </ul> | 187 | </ul> |
188 | </div> | 188 | </div> |
189 | </div> | 189 | </div> |
190 | <div class="footer__col footer__col-contacts"> | 190 | <div class="footer__col footer__col-contacts"> |
191 | <h3 class="footer__caption js_footer_caption">Контакты</h3> | 191 | <h3 class="footer__caption js_footer_caption">Контакты</h3> |
192 | <ul class="footer__list"> | 192 | <ul class="footer__list"> |
193 | <li class="footer__item"><a class="footer__link" href="#mailto:{{ $items_contact[0]->email }}">{{ $items_contact[0]->email }}</a></li> | 193 | <li class="footer__item"><a class="footer__link" href="#mailto:{{ $items_contact[0]->email }}">{{ $items_contact[0]->email }}</a></li> |
194 | <li class="footer__item"><a class="footer__link" href="tel:{{ $items_contact[0]->telephone }}">{{ $items_contact[0]->telephone }}</a></li> | 194 | <li class="footer__item"><a class="footer__link" href="tel:{{ $items_contact[0]->telephone }}">{{ $items_contact[0]->telephone }}</a></li> |
195 | </ul> | 195 | </ul> |
196 | <div class="footer__social social"> | 196 | <div class="footer__social social"> |
197 | <ul class="social__list"> | 197 | <ul class="social__list"> |
198 | <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg')}}" alt=""></a></li> | 198 | <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg')}}" alt=""></a></li> |
199 | <li class="social__item"><a class="social__link" href="#" target="_blank"> | 199 | <li class="social__item"><a class="social__link" href="#" target="_blank"> |
200 | <svg width="40" height="40"> | 200 | <svg width="40" height="40"> |
201 | <use xlink:href="{{ asset('images/sprite.svg#wa') }}"></use> | 201 | <use xlink:href="{{ asset('images/sprite.svg#wa') }}"></use> |
202 | </svg></a></li> | 202 | </svg></a></li> |
203 | </ul> | 203 | </ul> |
204 | </div> | 204 | </div> |
205 | </div> | 205 | </div> |
206 | </div> | 206 | </div> |
207 | </div> | 207 | </div> |
208 | </div> | 208 | </div> |
209 | 209 | ||
210 | <div class="footer-bottom"> | 210 | <div class="footer-bottom"> |
211 | <div class="container"> | 211 | <div class="container"> |
212 | <div class="footer-bottom__wrap"> | 212 | <div class="footer-bottom__wrap"> |
213 | <div class="footer__copy">© 2023 RentTorg</div><a class="footer__plicy" href="{{ route('conf') }}">Политика конфиденциальности</a> | 213 | <div class="footer__copy">© 2023 RentTorg</div><a class="footer__plicy" href="{{ route('conf') }}">Политика конфиденциальности</a> |
214 | </div> | 214 | </div> |
215 | </div> | 215 | </div> |
216 | </div> | 216 | </div> |
217 | </footer> | 217 | </footer> |
218 | </div> | 218 | </div> |
219 | 219 | ||
220 | <!-- Вплывающие окна --> | 220 | <!-- Вплывающие окна --> |
221 | <div class="popup popup-feedback" data-popup="feedback"> | 221 | <div class="popup popup-feedback" data-popup="feedback"> |
222 | <div class="popup__wrap"> | 222 | <div class="popup__wrap"> |
223 | <button class="popup__close js_popup_close" type="button"> | 223 | <button class="popup__close js_popup_close" type="button"> |
224 | <svg width="20" height="20"> | 224 | <svg width="20" height="20"> |
225 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | 225 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
226 | </svg> | 226 | </svg> |
227 | </button> | 227 | </button> |
228 | <form class="popup-feedback__form js_popup_feedback_form" action="{{ route('header_form') }}" method="POST"> | 228 | <form class="popup-feedback__form js_popup_feedback_form" action="{{ route('header_form') }}" method="POST"> |
229 | @csrf | 229 | @csrf |
230 | <div class="popup-feedback__title">Как с вами связаться</div> | 230 | <div class="popup-feedback__title">Как с вами связаться</div> |
231 | <div class="popup-feedback__fields"> | 231 | <div class="popup-feedback__fields"> |
232 | <label class="popup-feedback__field field"> | 232 | <label class="popup-feedback__field field"> |
233 | <input type="text" placeholder="Имя" name="NameUser"> | 233 | <input type="text" placeholder="Имя" name="NameUser"> |
234 | </label> | 234 | </label> |
235 | <label class="popup-feedback__field field"> | 235 | <label class="popup-feedback__field field"> |
236 | <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> | 236 | <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> |
237 | </label> | 237 | </label> |
238 | </div> | 238 | </div> |
239 | <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> | 239 | <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> |
240 | <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> | 240 | <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> |
241 | </form> | 241 | </form> |
242 | </div> | 242 | </div> |
243 | </div> | 243 | </div> |
244 | <div class="popup popup-feedback" data-popup="viewing"> | 244 | <div class="popup popup-feedback" data-popup="viewing"> |
245 | <div class="popup__wrap"> | 245 | <div class="popup__wrap"> |
246 | <button class="popup__close js_popup_close" type="button"> | 246 | <button class="popup__close js_popup_close" type="button"> |
247 | <svg width="20" height="20"> | 247 | <svg width="20" height="20"> |
248 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | 248 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
249 | </svg> | 249 | </svg> |
250 | </button> | 250 | </button> |
251 | <form class="popup-feedback__form js_popup_viewing_form" action="{{ route('rec_view_form') }}" method="POST"> | 251 | <form class="popup-feedback__form js_popup_viewing_form" action="{{ route('rec_view_form') }}" method="POST"> |
252 | @csrf | 252 | @csrf |
253 | <div class="popup-feedback__title">Записаться на просмотр</div> | 253 | <div class="popup-feedback__title">Записаться на просмотр</div> |
254 | <div class="popup-feedback__fields"> | 254 | <div class="popup-feedback__fields"> |
255 | <label class="popup-feedback__field field"> | 255 | <label class="popup-feedback__field field"> |
256 | <input type="text" placeholder="Имя" name="NameUser"> | 256 | <input type="text" placeholder="Имя" name="NameUser"> |
257 | </label> | 257 | </label> |
258 | <label class="popup-feedback__field field"> | 258 | <label class="popup-feedback__field field"> |
259 | <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> | 259 | <input class="js_input_phone" type="text" placeholder="Телефон" name="TelephoneUser"> |
260 | </label> | 260 | </label> |
261 | </div> | 261 | </div> |
262 | <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> | 262 | <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> |
263 | <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="#">Политикой конфиденциальности</a>.</p> | 263 | <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="#">Политикой конфиденциальности</a>.</p> |
264 | </form> | 264 | </form> |
265 | </div> | 265 | </div> |
266 | </div> | 266 | </div> |
267 | <div class="popup popup-success" data-popup="success"> | 267 | <div class="popup popup-success" data-popup="success"> |
268 | <div class="popup__wrap"> | 268 | <div class="popup__wrap"> |
269 | <button class="popup__close js_popup_close" type="button"> | 269 | <button class="popup__close js_popup_close" type="button"> |
270 | <svg width="20" height="20"> | 270 | <svg width="20" height="20"> |
271 | <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> | 271 | <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use> |
272 | </svg> | 272 | </svg> |
273 | </button> | 273 | </button> |
274 | <div class="popup-success__inner"> | 274 | <div class="popup-success__inner"> |
275 | <div class="popup-success__logo"> | 275 | <div class="popup-success__logo"> |
276 | <svg width="48" height="39"> | 276 | <svg width="48" height="39"> |
277 | <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use> | 277 | <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use> |
278 | </svg> | 278 | </svg> |
279 | </div> | 279 | </div> |
280 | <div class="popup-success__title">Спасибо за заявку</div> | 280 | <div class="popup-success__title">Спасибо за заявку</div> |
281 | <p class="popup-success__descr">В ближайшее время с вами свяжется наш специалист для уточнения деталей вашей задачи.</p> | 281 | <p class="popup-success__descr">В ближайшее время с вами свяжется наш специалист для уточнения деталей вашей задачи.</p> |
282 | </div> | 282 | </div> |
283 | </div> | 283 | </div> |
284 | </div> | 284 | </div> |
285 | <div class="popup popup-feedback" data-popup="sending"> | 285 | <div class="popup popup-feedback" data-popup="sending"> |
286 | <div class="popup__wrap"> | 286 | <div class="popup__wrap"> |
287 | <button class="popup__close js_popup_close" type="button"> | 287 | <button class="popup__close js_popup_close" type="button"> |
288 | <svg width="20" height="20"> | 288 | <svg width="20" height="20"> |
289 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | 289 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
290 | </svg> | 290 | </svg> |
291 | </button> | 291 | </button> |
292 | <form class="popup-feedback__form js_popup_sending_form_" action="{{ route('email_form') }}" method="POST"> | 292 | <form class="popup-feedback__form js_popup_sending_form_" action="{{ route('email_form') }}" method="POST"> |
293 | @csrf | 293 | @csrf |
294 | <div class="popup-feedback__title">Отправить на почту</div> | 294 | <div class="popup-feedback__title">Отправить на почту</div> |
295 | <div class="popup-feedback__fields"> | 295 | <div class="popup-feedback__fields"> |
296 | <label class="popup-feedback__field field"> | 296 | <label class="popup-feedback__field field"> |
297 | <input class="js_input_email" type="text" placeholder="Электронная почта" name="EmailUser"> | 297 | <input class="js_input_email" type="text" placeholder="Электронная почта" name="EmailUser"> |
298 | </label> | 298 | </label> |
299 | </div> | 299 | </div> |
300 | <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> | 300 | <button class="popup-feedback__btn btn btn--main js_form_btn">Отправить</button> |
301 | <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> | 301 | <p class="popup-feedback__confirm">Нажимая на кнопку «Отправить», Вы даете согласие на обработку персональных данных в соответствии с <a href="{{ route('conf') }}">Политикой конфиденциальности</a>.</p> |
302 | </form> | 302 | </form> |
303 | </div> | 303 | </div> |
304 | </div> | 304 | </div> |
305 | <div class="contact-us js_contact_us"> | 305 | <div class="contact-us js_contact_us"> |
306 | <div class="contact-us__top"> | 306 | <div class="contact-us__top"> |
307 | <button class="contact-us__close js_contact_us_close" type="button"> | 307 | <button class="contact-us__close js_contact_us_close" type="button"> |
308 | <svg width="20" height="20"> | 308 | <svg width="20" height="20"> |
309 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | 309 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
310 | </svg> | 310 | </svg> |
311 | </button> | 311 | </button> |
312 | <div class="contact-us__title">Свяжитесь с нами</div> | 312 | <div class="contact-us__title">Свяжитесь с нами</div> |
313 | </div> | 313 | </div> |
314 | <div class="contact-us__body"> | 314 | <div class="contact-us__body"> |
315 | <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" data-btn="feedback"> | 315 | <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" data-btn="feedback"> |
316 | <div class="contact-us-item__icon"> | 316 | <div class="contact-us-item__icon"> |
317 | <svg width="34" height="34"> | 317 | <svg width="34" height="34"> |
318 | <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use> | 318 | <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use> |
319 | </svg> | 319 | </svg> |
320 | </div> | 320 | </div> |
321 | <div class="contact-us-item__name">Позвонить</div></a> | 321 | <div class="contact-us-item__name">Позвонить</div></a> |
322 | 322 | ||
323 | <a class="contact-us-item js_contact_us_close" data-btn="sending"> | 323 | <a class="contact-us-item js_contact_us_close" data-btn="sending"> |
324 | <div class="contact-us-item__icon"> | 324 | <div class="contact-us-item__icon"> |
325 | <svg width="44" height="44"> | 325 | <svg width="44" height="44"> |
326 | <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use> | 326 | <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use> |
327 | </svg> | 327 | </svg> |
328 | </div> | 328 | </div> |
329 | <div class="contact-us-item__name">Написать</div></a> | 329 | <div class="contact-us-item__name">Написать</div></a> |
330 | 330 | ||
331 | <a class="contact-us-item js_contact_us_close" > | 331 | <a class="contact-us-item js_contact_us_close" > |
332 | <div class="contact-us-item__icon"> | 332 | <div class="contact-us-item__icon"> |
333 | <svg width="34" height="34"> | 333 | <svg width="34" height="34"> |
334 | <use xlink:href="<?=asset('images/sprite.svg#contact-us-chat')?>"></use> | 334 | <use xlink:href="<?=asset('images/sprite.svg#contact-us-chat')?>"></use> |
335 | </svg> | 335 | </svg> |
336 | </div> | 336 | </div> |
337 | <div class="contact-us-item__name">Онлайн-чат</div></a> | 337 | <div class="contact-us-item__name">Онлайн-чат</div></a> |
338 | </div> | 338 | </div> |
339 | 339 | ||
340 | <div class="contact-us__socials"> | 340 | <div class="contact-us__socials"> |
341 | <a class="contact-us-social js_contact_us_close" href="<?=$items_contact[0]->telegram?>" target="_blank"> | 341 | <a class="contact-us-social js_contact_us_close" href="<?=$items_contact[0]->telegram?>" target="_blank"> |
342 | <div class="contact-us-social__icon contact-us-social__icon-tg"> | 342 | <div class="contact-us-social__icon contact-us-social__icon-tg"> |
343 | <img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div> | 343 | <img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div> |
344 | <div class="contact-us-social__name">Telegram</div></a> | 344 | <div class="contact-us-social__name">Telegram</div></a> |
345 | 345 | ||
346 | <a class="contact-us-social js_contact_us_close" href="<?=$items_contact[0]->whatapp?>" target="_blank"> | 346 | <a class="contact-us-social js_contact_us_close" href="<?=$items_contact[0]->whatapp?>" target="_blank"> |
347 | <div class="contact-us-social__icon contact-us-social__icon-wa"> | 347 | <div class="contact-us-social__icon contact-us-social__icon-wa"> |
348 | <svg width="31" height="31"> | 348 | <svg width="31" height="31"> |
349 | <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use> | 349 | <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use> |
350 | </svg> | 350 | </svg> |
351 | </div> | 351 | </div> |
352 | <div class="contact-us-social__name">WhatsApp</div></a> | 352 | <div class="contact-us-social__name">WhatsApp</div></a> |
353 | </div> | 353 | </div> |
354 | </div> | 354 | </div> |
355 | </div> | 355 | </div> |
356 | 356 | ||
357 | <!-- Всплывашка этажа и объекта | 357 | <!-- Всплывашка этажа и объекта |
358 | <div class="offer-side-popup" data-popup="offer-side-popup"> | 358 | <div class="offer-side-popup" data-popup="offer-side-popup"> |
359 | <div class="offer-side-popup__wrap"> | 359 | <div class="offer-side-popup__wrap"> |
360 | <button class="offer-side-popup__close js_popup_close" type="button"> | 360 | <button class="offer-side-popup__close js_popup_close" type="button"> |
361 | <svg width="20" height="20"> | 361 | <svg width="20" height="20"> |
362 | <use xlink:href="images/sprite.svg#popup-close"></use> | 362 | <use xlink:href="images/sprite.svg#popup-close"></use> |
363 | </svg> | 363 | </svg> |
364 | </button> | 364 | </button> |
365 | <div class="offer-side-popup__cnt"> | 365 | <div class="offer-side-popup__cnt"> |
366 | <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"><img src="images/offer-side-item-img-1.jpg" alt="План объекта"></div> | 366 | <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"><img src="images/offer-side-item-img-1.jpg" alt="План объекта"></div> |
367 | <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"><img src="images/offer-side-item-img-2.jpg" alt="План этажа"></div> | 367 | <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"><img src="images/offer-side-item-img-2.jpg" alt="План этажа"></div> |
368 | </div> | 368 | </div> |
369 | <div class="offer-side-popup__tabs"> | 369 | <div class="offer-side-popup__tabs"> |
370 | <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> | 370 | <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button> |
371 | <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> | 371 | <button class="offer-side-popup__tab js_offer_side_popup_tab" type="button" data-tab="2">План этажа</button> |
372 | </div> | 372 | </div> |
373 | <button class="offer-side-popup__sizeoff js_popup_close" type="button"> | 373 | <button class="offer-side-popup__sizeoff js_popup_close" type="button"> |
374 | <svg width="18" height="18"> | 374 | <svg width="18" height="18"> |
375 | <use xlink:href="images/sprite.svg#popup-sizeoff"></use> | 375 | <use xlink:href="images/sprite.svg#popup-sizeoff"></use> |
376 | </svg> | 376 | </svg> |
377 | </button> | 377 | </button> |
378 | </div> | 378 | </div> |
379 | </div> | 379 | </div> |
380 | --> | 380 | --> |
381 | 381 | ||
382 | <div class="img-viewer js_img_viewer"> | 382 | <div class="img-viewer js_img_viewer"> |
383 | <div class="img-viewer__wrap"> | 383 | <div class="img-viewer__wrap"> |
384 | <button class="img-viewer__close js_img_viewer_close" type="button"> | 384 | <button class="img-viewer__close js_img_viewer_close" type="button"> |
385 | <svg width="20" height="20"> | 385 | <svg width="20" height="20"> |
386 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> | 386 | <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use> |
387 | </svg> | 387 | </svg> |
388 | </button> | 388 | </button> |
389 | <div class="img-viewer__thumbs js_img_viewer_thumbs"> | 389 | <div class="img-viewer__thumbs js_img_viewer_thumbs"> |
390 | <div class="img-viewer__thumbs-swiper js_img_viewer_thumbs_swiper swiper"> | 390 | <div class="img-viewer__thumbs-swiper js_img_viewer_thumbs_swiper swiper"> |
391 | <div class="swiper-wrapper"></div> | 391 | <div class="swiper-wrapper"></div> |
392 | </div> | 392 | </div> |
393 | </div> | 393 | </div> |
394 | <div class="img-viewer__slider"> | 394 | <div class="img-viewer__slider"> |
395 | <div class="img-viewer__slider-swiper js_img_viewer_slider_swiper swiper"> | 395 | <div class="img-viewer__slider-swiper js_img_viewer_slider_swiper swiper"> |
396 | <div class="swiper-wrapper"></div> | 396 | <div class="swiper-wrapper"></div> |
397 | </div> | 397 | </div> |
398 | <div class="swiper-button-prev"> | 398 | <div class="swiper-button-prev"> |
399 | <svg width="10" height="17"> | 399 | <svg width="10" height="17"> |
400 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> | 400 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> |
401 | </svg> | 401 | </svg> |
402 | </div> | 402 | </div> |
403 | <div class="swiper-button-next"> | 403 | <div class="swiper-button-next"> |
404 | <svg width="10" height="17"> | 404 | <svg width="10" height="17"> |
405 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> | 405 | <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use> |
406 | </svg> | 406 | </svg> |
407 | </div> | 407 | </div> |
408 | </div> | 408 | </div> |
409 | <div class="img-viewer__caption js_img_viewer_caption"></div> | 409 | <div class="img-viewer__caption js_img_viewer_caption"></div> |
410 | <button class="img-viewer__sizeoff js_img_viewer_close" type="button"> | 410 | <button class="img-viewer__sizeoff js_img_viewer_close" type="button"> |
411 | <svg width="18" height="18"> | 411 | <svg width="18" height="18"> |
412 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use> | 412 | <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use> |
413 | </svg> | 413 | </svg> |
414 | </button> | 414 | </button> |
415 | </div> | 415 | </div> |
416 | </div> | 416 | </div> |
417 | <div class="cookies js_cookies"> | 417 | <div class="cookies js_cookies"> |
418 | <div class="container"> | 418 | <div class="container"> |
419 | <div class="cookies__wrap"> | 419 | <div class="cookies__wrap"> |
420 | <div class="cookies__top"> | 420 | <div class="cookies__top"> |
421 | <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div> | 421 | <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div> |
422 | <div class="cookies__title">Cookies</div> | 422 | <div class="cookies__title">Cookies</div> |
423 | </div> | 423 | </div> |
424 | <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p> | 424 | <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p> |
425 | <div class="cookies__buttons"> | 425 | <div class="cookies__buttons"> |
426 | <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a> | 426 | <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a> |
427 | </div> | 427 | </div> |
428 | </div> | 428 | </div> |
429 | </div> | 429 | </div> |
430 | </div> | 430 | </div> |
431 | <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script> | 431 | <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script> |
432 | <script src="{{ asset('js/swiper-bundle.min.js') }}"></script> | 432 | <script src="{{ asset('js/swiper-bundle.min.js') }}"></script> |
433 | <script src="{{ asset('js/main_main.js') }}"></script> | 433 | <script src="{{ asset('js/main_main.js') }}"></script> |
434 | <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script> | 434 | <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script> |
435 | <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script> | 435 | <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script> |
436 | @yield('custom_js') | 436 | @yield('custom_js') |
437 | @include('js.cookies_favorite') | 437 | @include('js.cookies_favorite') |
438 | </body> | 438 | </body> |
439 | </html> | 439 | </html> |
440 | 440 |
routes/web.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use Illuminate\Support\Facades\Artisan; | ||
3 | use Illuminate\Support\Facades\Auth; | 4 | use Illuminate\Support\Facades\Auth; |
4 | use Illuminate\Support\Facades\Route; | 5 | use Illuminate\Support\Facades\Route; |
5 | use App\Http\Controllers\MainController; | 6 | use App\Http\Controllers\MainController; |
6 | use App\Http\Controllers\RegisterController; | 7 | use App\Http\Controllers\RegisterController; |
7 | use App\Http\Controllers\LoginController; | 8 | use App\Http\Controllers\LoginController; |
8 | use App\Http\Controllers\AdminController; | 9 | use App\Http\Controllers\AdminController; |
9 | use App\Http\Controllers\Admin\AreaController; | 10 | use App\Http\Controllers\Admin\AreaController; |
10 | use App\Http\Controllers\Admin\NewsController; | 11 | use App\Http\Controllers\Admin\NewsController; |
11 | use App\Http\Controllers\Admin\CompanyAreaController; | 12 | use App\Http\Controllers\Admin\CompanyAreaController; |
12 | use App\Http\Controllers\Admin\FormatAreaController; | 13 | use App\Http\Controllers\Admin\FormatAreaController; |
13 | use App\Http\Controllers\Admin\TypeAreaController; | 14 | use App\Http\Controllers\Admin\TypeAreaController; |
14 | use App\Http\Controllers\Admin\HousesController; | 15 | use App\Http\Controllers\Admin\HousesController; |
15 | use App\Http\Controllers\Admin\MessageAreaController; | 16 | use App\Http\Controllers\Admin\MessageAreaController; |
16 | 17 | ||
17 | /* | 18 | /* |
18 | |-------------------------------------------------------------------------- | 19 | |-------------------------------------------------------------------------- |
19 | | Web Routes | 20 | | Web Routes |
20 | |-------------------------------------------------------------------------- | 21 | |-------------------------------------------------------------------------- |
21 | | | 22 | | |
22 | | Here is where you can register web routes for your application. These | 23 | | Here is where you can register web routes for your application. These |
23 | | routes are loaded by the RouteServiceProvider within a group which | 24 | | routes are loaded by the RouteServiceProvider within a group which |
24 | | contains the "web" middleware group. Now create something great! | 25 | | contains the "web" middleware group. Now create something great! |
25 | | | 26 | | |
26 | */ | 27 | */ |
27 | 28 | ||
28 | //тест отправка почты | 29 | //тест отправка почты |
29 | Route::get('email', [MainController::class, 'send_mail'])->name('send.mail'); | 30 | Route::get('email', [MainController::class, 'send_mail'])->name('send.mail'); |
30 | 31 | ||
31 | //Главная страница | 32 | //Главная страница |
32 | Route::get('/',[MainController::class, 'index'])->name('index'); | 33 | Route::get('/',[MainController::class, 'index'])->name('index'); |
33 | 34 | ||
34 | //Страница Избранные | 35 | //Страница Избранные |
35 | Route::get('favorite',[MainController::class, 'favorite'])->name('favorite'); | 36 | Route::get('favorite',[MainController::class, 'favorite'])->name('favorite'); |
36 | 37 | ||
37 | //Страница контакты | 38 | //Страница контакты |
38 | Route::get('contact',[MainController::class, 'contact'])->name('contact'); | 39 | Route::get('contact',[MainController::class, 'contact'])->name('contact'); |
39 | 40 | ||
40 | //Страница каталог | 41 | //Страница каталог |
41 | Route::get('catalog',[MainController::class, 'catalog'])->name('catalog'); | 42 | Route::get('catalog',[MainController::class, 'catalog'])->name('catalog'); |
42 | 43 | ||
43 | Route::get('test', [MainController::class, 'test'])->name('test'); | 44 | Route::get('test', [MainController::class, 'test'])->name('test'); |
44 | 45 | ||
45 | //Страница новости | 46 | //Страница новости |
46 | Route::get('news',[MainController::class, 'news'])->name('news'); | 47 | Route::get('news',[MainController::class, 'news'])->name('news'); |
47 | 48 | ||
48 | //Страница о компании | 49 | //Страница о компании |
49 | Route::get('about',[MainController::class, 'about'])->name('about'); | 50 | Route::get('about',[MainController::class, 'about'])->name('about'); |
50 | 51 | ||
51 | //Страница объекты на карте | 52 | //Страница объекты на карте |
52 | Route::get('maps',[MainController::class, 'mapsobj'])->name('maps'); | 53 | Route::get('maps',[MainController::class, 'mapsobj'])->name('maps'); |
53 | 54 | ||
54 | // Политика конфедициальности | 55 | // Политика конфедициальности |
55 | Route::get('conf', function () { | 56 | Route::get('conf', function () { |
56 | return view('conf'); | 57 | return view('conf'); |
57 | })->name('conf'); | 58 | })->name('conf'); |
58 | 59 | ||
59 | //Детальная страница предложения недвижимости | 60 | //Детальная страница предложения недвижимости |
60 | Route::get('offer/{house:id}', [MainController::class, 'offer'])->name('offer'); | 61 | Route::get('offer/{house:id}', [MainController::class, 'offer'])->name('offer'); |
61 | 62 | ||
62 | //pdf-страница недвижимости | 63 | //pdf-страница недвижимости |
63 | Route::get('pdf/{house:id}', [MainController::class, 'generate_PDF'])->name('pdf'); | 64 | Route::get('pdf/{house:id}', [MainController::class, 'generate_PDF'])->name('pdf'); |
64 | 65 | ||
66 | Route::get('pdf/preview/{house:id}', [MainController::class, 'preview_PDF'])->name('pdf.preview'); | ||
67 | |||
65 | //Детальная страница новостей | 68 | //Детальная страница новостей |
66 | Route::get('detail-new/{news:id}', [MainController::class, 'DetailNew'])->name('new'); | 69 | Route::get('detail-new/{news:id}', [MainController::class, 'DetailNew'])->name('new'); |
67 | 70 | ||
68 | //Страница ЖилойКомплекс | 71 | //Страница ЖилойКомплекс |
69 | Route::get('complex/{area:id}', [MainController::class, 'complex'])->name('complex'); | 72 | Route::get('complex/{area:id}', [MainController::class, 'complex'])->name('complex'); |
70 | 73 | ||
71 | // ajax-фильтры каталога | 74 | // ajax-фильтры каталога |
72 | Route::get('catalog_ajax_filter', [MainController::class, 'catalog_ajax_filter'])->name('catalog_ajax_filter'); | 75 | Route::get('catalog_ajax_filter', [MainController::class, 'catalog_ajax_filter'])->name('catalog_ajax_filter'); |
73 | 76 | ||
74 | //Категория | 77 | //Категория |
75 | Route::get('category/{cat}', [MainController::class, 'Category'])->name('category'); | 78 | Route::get('category/{cat}', [MainController::class, 'Category'])->name('category'); |
76 | 79 | ||
77 | //Категория ajax | 80 | //Категория ajax |
78 | Route::get('category_ajax/{cat}', [MainController::class, 'category_ajax'])->name('category_ajax'); | 81 | Route::get('category_ajax/{cat}', [MainController::class, 'category_ajax'])->name('category_ajax'); |
79 | 82 | ||
83 | Route::get('/link/', function() { | ||
84 | Artisan::call('storage:link'); | ||
85 | }); | ||
86 | |||
80 | //Страница куков | 87 | //Страница куков |
81 | Route::get('cookies', function () { | 88 | Route::get('cookies', function () { |
82 | return view('cookies'); | 89 | return view('cookies'); |
83 | })->name('cookies'); | 90 | })->name('cookies'); |
84 | 91 | ||
85 | //Форма обратной связи в футере | 92 | //Форма обратной связи в футере |
86 | Route::post('main_form', [MainController::class, 'main_form'])->name('main_form'); | 93 | Route::post('main_form', [MainController::class, 'main_form'])->name('main_form'); |
87 | 94 | ||
88 | //Форма обратной связи в хедере | 95 | //Форма обратной связи в хедере |
89 | Route::post('header_form', [MainController::class, 'header_form'])->name('header_form'); | 96 | Route::post('header_form', [MainController::class, 'header_form'])->name('header_form'); |
90 | 97 | ||
91 | //Форма записаться на просмотр в карточке офиса | 98 | //Форма записаться на просмотр в карточке офиса |
92 | Route::post('rec_view_form', [MainController::class, 'rec_view_form'])->name('rec_view_form'); | 99 | Route::post('rec_view_form', [MainController::class, 'rec_view_form'])->name('rec_view_form'); |
93 | 100 | ||
94 | //Форма обратной связи на странице контакты | 101 | //Форма обратной связи на странице контакты |
95 | Route::post('page_contact_form', [MainController::class, 'page_contact_form'])->name('page_contact_form'); | 102 | Route::post('page_contact_form', [MainController::class, 'page_contact_form'])->name('page_contact_form'); |
96 | 103 | ||
97 | //Форма обратной связи предложения по почте | 104 | //Форма обратной связи предложения по почте |
98 | Route::post('email_form', [MainController::class, 'email_form'])->name('email_form'); | 105 | Route::post('email_form', [MainController::class, 'email_form'])->name('email_form'); |
99 | 106 | ||
100 | Route::group([ | 107 | Route::group([ |
101 | 'as' => 'auth.', // имя маршрута, например auth.index | 108 | 'as' => 'auth.', // имя маршрута, например auth.index |
102 | 'prefix' => 'auth', // префикс маршрута, например auth/index | 109 | 'prefix' => 'auth', // префикс маршрута, например auth/index |
103 | ], function () { | 110 | ], function () { |
104 | // Форма регистрации | 111 | // Форма регистрации |
105 | Route::get('register', [RegisterController::class, 'register'])->name('register'); | 112 | Route::get('register', [RegisterController::class, 'register'])->name('register'); |
106 | 113 | ||
107 | // Создание пользователя | 114 | // Создание пользователя |
108 | Route::post('register', [RegisterController::class, 'create'])->name('create'); | 115 | Route::post('register', [RegisterController::class, 'create'])->name('create'); |
109 | //Форма входа | 116 | //Форма входа |
110 | Route::get('login', [LoginController::class, 'login'])->name('login'); | 117 | Route::get('login', [LoginController::class, 'login'])->name('login'); |
111 | 118 | ||
112 | // аутентификация | 119 | // аутентификация |
113 | Route::post('login', [LoginController::class, 'autenticate'])->name('auth'); | 120 | Route::post('login', [LoginController::class, 'autenticate'])->name('auth'); |
114 | 121 | ||
115 | // выход | 122 | // выход |
116 | Route::get('logout', [LoginController::class, 'logout'])->name('logout'); | 123 | Route::get('logout', [LoginController::class, 'logout'])->name('logout'); |
117 | 124 | ||
118 | //Страница неудачной авторизации | 125 | //Страница неудачной авторизации |
119 | Route::get('vefiry-message', function () { | 126 | Route::get('vefiry-message', function () { |
120 | return view('auth.vefiry-message'); | 127 | return view('auth.vefiry-message'); |
121 | })->name('vefiry-message'); | 128 | })->name('vefiry-message'); |
122 | 129 | ||
123 | }); | 130 | }); |
124 | 131 | ||
125 | /* | 132 | /* |
126 | * Личный кабинет пользователя | 133 | * Личный кабинет пользователя |
127 | */ | 134 | */ |
128 | Route::group([ | 135 | Route::group([ |
129 | 'as' => 'user.', // имя маршрута, например user.index | 136 | 'as' => 'user.', // имя маршрута, например user.index |
130 | 'prefix' => 'user', // префикс маршрута, например user/index | 137 | 'prefix' => 'user', // префикс маршрута, например user/index |
131 | //'namespace' => 'User', // пространство имен контроллеров | 138 | //'namespace' => 'User', // пространство имен контроллеров |
132 | 'middleware' => ['auth'] // один или несколько посредников | 139 | 'middleware' => ['auth'] // один или несколько посредников |
133 | ], function () { | 140 | ], function () { |
134 | // главная страница | 141 | // главная страница |
135 | Route::get('index', [AdminController::class, 'index'])->name('index'); | 142 | Route::get('index', [AdminController::class, 'index'])->name('index'); |
136 | }); | 143 | }); |
137 | 144 | ||
138 | /* | 145 | /* |
139 | * Панель управления: CRUD-операции над постами, категориями, тегами | 146 | * Панель управления: CRUD-операции над постами, категориями, тегами |
140 | */ | 147 | */ |
141 | Route::group([ | 148 | Route::group([ |
142 | 'as' => 'admin.', // имя маршрута, например admin.index | 149 | 'as' => 'admin.', // имя маршрута, например admin.index |
143 | 'prefix' => 'admin', // префикс маршрута, например admin/index | 150 | 'prefix' => 'admin', // префикс маршрута, например admin/index |
144 | //'namespace' => 'Admin', // пространство имен контроллеров | 151 | //'namespace' => 'Admin', // пространство имен контроллеров |
145 | 'middleware' => ['auth'] // один или несколько посредников | 152 | 'middleware' => ['auth'] // один или несколько посредников |
146 | ], function () { | 153 | ], function () { |
147 | /* | 154 | /* |
148 | * CRUD-операции над постами Жилых комплексов | 155 | * CRUD-операции над постами Жилых комплексов |
149 | */ | 156 | */ |
150 | Route::resource('area', AreaController::class, []); | 157 | Route::resource('area', AreaController::class, []); |
151 | 158 | ||
152 | //дополнительный маршрут для показа картинок объектов недвижимости | 159 | //дополнительный маршрут для показа картинок объектов недвижимости |
153 | Route::get('img/area/{area}', [AreaController::class, 'area_category']) | 160 | Route::get('img/area/{area}', [AreaController::class, 'area_category']) |
154 | ->name('img.area'); | 161 | ->name('img.area'); |
155 | 162 | ||
156 | //дополнительный маршрут для добавления картинок объектов недвижимости | 163 | //дополнительный маршрут для добавления картинок объектов недвижимости |
157 | Route::post('img/area/{area}', [AreaController::class, 'area_add_img']) | 164 | Route::post('img/area/{area}', [AreaController::class, 'area_add_img']) |
158 | ->name('img.add.area'); | 165 | ->name('img.add.area'); |
159 | 166 | ||
160 | //дополнительный маршрут для удаления картинок объектов недвжимости | 167 | //дополнительный маршрут для удаления картинок объектов недвжимости |
161 | Route::get('img/del/{id}/area/{area}', [AreaController::class, 'area_del_img']) | 168 | Route::get('img/del/{id}/area/{area}', [AreaController::class, 'area_del_img']) |
162 | ->name('img.del.area'); | 169 | ->name('img.del.area'); |
163 | 170 | ||
164 | /* | 171 | /* |
165 | * CRUD-операции над постами Новости | 172 | * CRUD-операции над постами Новости |
166 | */ | 173 | */ |
167 | Route::resource('news', NewsController::class, []); | 174 | Route::resource('news', NewsController::class, []); |
168 | 175 | ||
169 | /* | 176 | /* |
170 | * CRUD-операции над настройками Компании | 177 | * CRUD-операции над настройками Компании |
171 | */ | 178 | */ |
172 | Route::resource('company', CompanyAreaController::class, ['except' => ['create', 'store', 'destroy', 'index']]); | 179 | Route::resource('company', CompanyAreaController::class, ['except' => ['create', 'store', 'destroy', 'index']]); |
173 | 180 | ||
174 | //форма добавление партнера | 181 | //форма добавление партнера |
175 | Route::get('add/partner', [CompanyAreaController::class, 'add_partner'])->name('add.partner'); | 182 | Route::get('add/partner', [CompanyAreaController::class, 'add_partner'])->name('add.partner'); |
176 | 183 | ||
177 | //Добавление партнера | 184 | //Добавление партнера |
178 | Route::post('add/partner', [CompanyAreaController::class, 'add_partner_post'])->name('add.partner.post'); | 185 | Route::post('add/partner', [CompanyAreaController::class, 'add_partner_post'])->name('add.partner.post'); |
179 | 186 | ||
180 | //удаление партнера | 187 | //удаление партнера |
181 | Route::get('delete/partner/{partner}', [CompanyAreaController::class, 'delete_partner'])->name('delete.partner'); | 188 | Route::get('delete/partner/{partner}', [CompanyAreaController::class, 'delete_partner'])->name('delete.partner'); |
182 | 189 | ||
183 | 190 | ||
184 | /* | 191 | /* |
185 | * CRUD-операции над типами недвижимостью | 192 | * CRUD-операции над типами недвижимостью |
186 | */ | 193 | */ |
187 | Route::resource('typearea', TypeAreaController::class, ['except' => ['show']]); | 194 | Route::resource('typearea', TypeAreaController::class, ['except' => ['show']]); |
188 | 195 | ||
189 | /* | 196 | /* |
190 | * CRUD-операции над форматами недвижимостью | 197 | * CRUD-операции над форматами недвижимостью |
191 | */ | 198 | */ |
192 | Route::resource('formatarea', FormatAreaController::class, ['except' => ['show']]); | 199 | Route::resource('formatarea', FormatAreaController::class, ['except' => ['show']]); |
193 | 200 | ||
194 | /* | 201 | /* |
195 | * CRUD-операции над сообщениями сайта | 202 | * CRUD-операции над сообщениями сайта |
196 | */ | 203 | */ |
197 | Route::resource('message', MessageAreaController::class, ['except' => ['create', 'store', 'edit', 'update']]); | 204 | Route::resource('message', MessageAreaController::class, ['except' => ['create', 'store', 'edit', 'update']]); |
198 | 205 | ||
199 | /* | 206 | /* |
200 | * CRUD-операции над офисами | 207 | * CRUD-операции над офисами |
201 | */ | 208 | */ |
202 | Route::resource('houses', HousesController::class, ['except' => ['show']]); | 209 | Route::resource('houses', HousesController::class, ['except' => ['show']]); |
203 | 210 | ||
204 | // просмотр дополнительных картинок офиса | 211 | // просмотр дополнительных картинок офиса |
205 | Route::get('houses/{house}/images', [HousesController::class, 'view_images'])->name('view.images.houses'); | 212 | Route::get('houses/{house}/images', [HousesController::class, 'view_images'])->name('view.images.houses'); |
206 | 213 | ||
207 | // форма добавление дополнительной картинки офиса | 214 | // форма добавление дополнительной картинки офиса |
208 | Route::get('houses/{house}/add/images', [HousesController::class, 'add_images'])->name('add.images.houses'); | 215 | Route::get('houses/{house}/add/images', [HousesController::class, 'add_images'])->name('add.images.houses'); |
209 | 216 | ||
210 | // добавление дополнительной картинки офиса | 217 | // добавление дополнительной картинки офиса |
211 | Route::post('houses/{house}/add/images', [HousesController::class, 'add_images_store'])->name('add.image.post.houses'); | 218 | Route::post('houses/{house}/add/images', [HousesController::class, 'add_images_store'])->name('add.image.post.houses'); |
212 | 219 | ||
213 | // удаление дополнительной картинки офиса | 220 | // удаление дополнительной картинки офиса |
214 | Route::get('houses/{house}/del/{id}/images', [HousesController::class, 'del_images'])->name('del.images.houses'); | 221 | Route::get('houses/{house}/del/{id}/images', [HousesController::class, 'del_images'])->name('del.images.houses'); |
215 | 222 | ||
216 | //Форма смены пароля пользователя | 223 | //Форма смены пароля пользователя |
217 | Route::get('user/password', [AdminController::class, 'form_password'])->name('form_password'); | 224 | Route::get('user/password', [AdminController::class, 'form_password'])->name('form_password'); |
218 | 225 | ||
219 | //Смена пароля пользователя | 226 | //Смена пароля пользователя |
220 | Route::post('user/password', [AdminController::class, 'validate_password'])->name('validate_password'); | 227 | Route::post('user/password', [AdminController::class, 'validate_password'])->name('validate_password'); |
221 | }); | 228 | }); |
222 | 229 |