Commit 3646d2a475cf69a5f6e1594c4a864b7a9ff5e6ea

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

Механизм избранные карточки и форма обратной связи

Showing 20 changed files with 1987 additions and 137 deletions Side-by-side Diff

app/Classes/RusDate.php
... ... @@ -44,4 +44,24 @@ class RusDate
44 44 }
45 45 return $m;
46 46 }
  47 +
  48 + public static function selected_item($item) {
  49 + $Str = json_decode($_COOKIE['favorite_house'], true);
  50 + //$Arr = explode(",", $Str);
  51 + if (in_array($item, $Str))
  52 + return " active ";
  53 + else
  54 + return "";
  55 +
  56 + }
  57 +
  58 + public static function count_item_fav() {
  59 + $Arr = json_decode($_COOKIE['favorite_house'], true);
  60 + return count($Arr);
  61 + }
  62 +
  63 + public static function clear_items() {
  64 + unset($_COOKIE['favorite_house']);
  65 + //print_r($_COOKIE['arr']);
  66 + }
47 67 }
app/Http/Controllers/MainController.php
... ... @@ -177,14 +177,58 @@ class MainController extends Controller
177 177 * О компании
178 178 */
179 179 public function About() {
180   - return view('about');
  180 + $news = News::query()->orderByDesc('created_at')->limit(8)->get();
  181 + $partners = Partners::query()->limit(18)->get();
  182 + return view('about', compact('news', 'partners'));
  183 + }
  184 +
  185 + /*
  186 + * Форма обратной связи внизу сайта
  187 + */
  188 + public function main_form(Request $request) {
  189 + return "";
181 190 }
182 191  
183 192 /*
184 193 * Избранное
185 194 */
186   - public function Favorite() {
187   - return view('favorite');
  195 + public function Favorite(Request $request) {
  196 + $Arr = json_decode($_COOKIE['favorite_house'], true);
  197 + if (!empty($Arr) && is_array($Arr)) {
  198 + $houses = House::with('areas')->whereIn('id', $Arr);
  199 +
  200 + if (isset($request->sort_price)) {
  201 + switch ($request->sort_price) {
  202 + case 1: $houses = $houses->orderBy('price');break;
  203 + case 2: $houses = $houses->orderByDesc('price');break;
  204 + }
  205 + switch ($request->sort_new) {
  206 + case 1: $houses = $houses->orderByDesc('created_at');break;
  207 + case 2: $houses = $houses->orderBy('created_at');break;
  208 + }
  209 + switch ($request->sort_area) {
  210 + case 1: $houses = $houses->orderByDesc('area');break;
  211 + case 2: $houses = $houses->orderBy('area');break;
  212 + }
  213 +
  214 + } else {
  215 + $houses = $houses->orderBy('price')->
  216 + orderByDesc('created_at')->
  217 + orderByDesc('area');
  218 + }
  219 +
  220 + $houses = $houses->paginate(4);
  221 +
  222 + if ($request->ajax()) {
  223 + return view('ajax.complex.favorite', compact('houses'));
  224 + }
  225 +
  226 + return view('favorite_data', compact('houses'));
  227 + } else {
  228 + return view('favorite', compact('Arr'));
  229 + }
  230 +
  231 +
188 232 }
189 233  
190 234 /*
app/Providers/ComposerServiceProvider.php
... ... @@ -34,7 +34,7 @@ class ComposerServiceProvider extends ServiceProvider
34 34 }
35 35 );
36 36  
37   - $views = ['layout.site', 'index'];
  37 + $views = ['layout.site', 'index', 'about'];
38 38 View::composer($views, function($view) {
39 39 $view->with(['items_contact' => Contact::limit(1)->get()]);
40 40 });
public/js/jquery.cookie.js
... ... @@ -0,0 +1,96 @@
  1 +/**
  2 + * Cookie plugin
  3 + *
  4 + * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
  5 + * Dual licensed under the MIT and GPL licenses:
  6 + * http://www.opensource.org/licenses/mit-license.php
  7 + * http://www.gnu.org/licenses/gpl.html
  8 + *
  9 + */
  10 +
  11 +/**
  12 + * Create a cookie with the given name and value and other optional parameters.
  13 + *
  14 + * @example $.cookie('the_cookie', 'the_value');
  15 + * @desc Set the value of a cookie.
  16 + * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
  17 + * @desc Create a cookie with all available options.
  18 + * @example $.cookie('the_cookie', 'the_value');
  19 + * @desc Create a session cookie.
  20 + * @example $.cookie('the_cookie', null);
  21 + * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
  22 + * used when the cookie was set.
  23 + *
  24 + * @param String name The name of the cookie.
  25 + * @param String value The value of the cookie.
  26 + * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
  27 + * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
  28 + * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
  29 + * If set to null or omitted, the cookie will be a session cookie and will not be retained
  30 + * when the the browser exits.
  31 + * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
  32 + * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
  33 + * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
  34 + * require a secure protocol (like HTTPS).
  35 + * @type undefined
  36 + *
  37 + * @name $.cookie
  38 + * @cat Plugins/Cookie
  39 + * @author Klaus Hartl/klaus.hartl@stilbuero.de
  40 + */
  41 +
  42 +/**
  43 + * Get the value of a cookie with the given name.
  44 + *
  45 + * @example $.cookie('the_cookie');
  46 + * @desc Get the value of a cookie.
  47 + *
  48 + * @param String name The name of the cookie.
  49 + * @return The value of the cookie.
  50 + * @type String
  51 + *
  52 + * @name $.cookie
  53 + * @cat Plugins/Cookie
  54 + * @author Klaus Hartl/klaus.hartl@stilbuero.de
  55 + */
  56 +jQuery.cookie = function(name, value, options) {
  57 + if (typeof value != 'undefined') { // name and value given, set cookie
  58 + options = options || {};
  59 + if (value === null) {
  60 + value = '';
  61 + options.expires = -1;
  62 + }
  63 + var expires = '';
  64 + if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
  65 + var date;
  66 + if (typeof options.expires == 'number') {
  67 + date = new Date();
  68 + date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
  69 + } else {
  70 + date = options.expires;
  71 + }
  72 + expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
  73 + }
  74 + // CAUTION: Needed to parenthesize options.path and options.domain
  75 + // in the following expressions, otherwise they evaluate to undefined
  76 + // in the packed version for some reason...
  77 + var path = options.path ? '; path=' + (options.path) : '';
  78 + var domain = options.domain ? '; domain=' + (options.domain) : '';
  79 + var secure = options.secure ? '; secure' : '';
  80 + document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
  81 + } else { // only name given, get cookie
  82 + var cookieValue = null;
  83 + if (document.cookie && document.cookie != '') {
  84 + var cookies = document.cookie.split(';');
  85 + for (var i = 0; i < cookies.length; i++) {
  86 + var cookie = jQuery.trim(cookies[i]);
  87 + // Does this cookie string begin with the name we want?
  88 + if (cookie.substring(0, name.length + 1) == (name + '=')) {
  89 + cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
  90 + break;
  91 + }
  92 + }
  93 + }
  94 + return cookieValue;
  95 + }
  96 +};
0 97 \ No newline at end of file
public/js/jquery.cookie.zip
No preview for this file type
... ... @@ -24,7 +24,7 @@ class App {
24 24  
25 25 this.sendForm('.js_popup_feedback_form', 'server.php', '[data-popup="success"]'); // отправка формы в поп-апе обратной связи;
26 26 this.sendForm('.js_popup_viewing_form', 'server.php', '[data-popup="success"]'); // отправка формы в поп-апе 'записаться на просмотр';
27   - this.sendForm('.js_footer_feedback_form', 'server.php', '[data-popup="success"]'); // отправка формы в футере;
  27 + this.sendForm('.js_footer_feedback_form', '', '[data-popup="success"]'); // отправка формы в футере;
28 28 this.sendForm('.js_contacts_form', 'server.php', '.js_contacts_success'); // отправка формы на странице контакты;
29 29 this.sendOffer(); //отправка предложения по e-mail;
30 30  
... ... @@ -1223,7 +1223,8 @@ class App {
1223 1223 '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
1224 1224 );
1225 1225  
1226   - let collection = new ymaps.GeoObjectCollection(null, { // Создаём коллекцию, в которую будемпомещать метки (что-то типа массива);
  1226 + let collection = new ymaps.GeoObjectCollection(null, {
  1227 + // Создаём коллекцию, в которую будемпомещать метки (что-то типа массива);
1227 1228 // preset: 'islands#yellowIcon'
1228 1229 });
1229 1230  
resources/views/about.blade.php
1   -@extends('layout.site', ['title' => 'Избранное RentTorg'])
  1 +@extends('layout.site', ['title' => 'О компании RentTorg'])
2 2  
3 3 @section('content')
4 4 <section class="about" style="background-image:url({{ asset('images/about-bg.jpg') }})">
... ... @@ -6,7 +6,7 @@
6 6 <div class="about__wrap">
7 7 <div class="breadcrumbs">
8 8 <ul class="breadcrumbs__list">
9   - <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="#">Главная</a></li>
  9 + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li>
10 10 <li class="breadcrumbs__item"><span class="breadcrumbs__link">О компании</span></li>
11 11 </ul>
12 12 </div>
... ... @@ -20,7 +20,7 @@
20 20 </section>
21 21 <section class="experience">
22 22 <div class="container">
23   - <h2 class="experience__title"><span>12</span>Лет опыта мы имеем на рынке коммерческой недвижимости в Москве</h2>
  23 + <h2 class="experience__title"><span>{{ $items_contact[0]->year }}</span>Лет опыта мы имеем на рынке коммерческой недвижимости в Москве</h2>
24 24 <div class="experience__inner">
25 25 <div class="experience__cnt">
26 26 <h3 class="experience__subtitle">Гарантия надежности и безупречности сделки !</h3>
... ... @@ -29,7 +29,7 @@
29 29 <p class="experience__text">Продажа и аренда нежилых помещений напрямую от собственника, без посредников — это Ваша возможность выгодно разместить офис, отделение банка, аптеку, салон, магазин, кафе, торговую точку практически в любом районе города. Актуальный формат коммерческой недвижимости — street retail, представленной на нашем сайте — это максимально выгодное использование арендуемых площадей.</p>
30 30 </div>
31 31 </div>
32   - <div class="experience__img"><img src="images/experience-img.svg" alt=""></div>
  32 + <div class="experience__img"><img src="{{ asset('images/experience-img.svg') }}" alt=""></div>
33 33 </div>
34 34 </div>
35 35 </section>
... ... @@ -40,29 +40,32 @@
40 40 <div class="benefits__items">
41 41 <div class="benefits-item">
42 42 <div class="benefits-item__top">
43   - <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-1.svg" alt="Опыт"></div>
44   - <h3 class="benefits-item__title">Опыт работы наших сотрудников более 15 лет</h3>
  43 + <div class="benefits-item__img"><img src="{{ asset('images/benefits/benefits-item-img-1.svg') }}" alt="Опыт"></div>
  44 + <h3 class="benefits-item__title">{{ $items_contact[0]->title1 }}</h3>
45 45 </div>
46   - <p class="benefits-item__descr">Профессиональные риелторы нашего агентства Помогут Вам продать или купить недвижимость в кратчайшие сроки.</p>
  46 + <p class="benefits-item__descr">{{ $items_contact[0]->text1 }}</p>
47 47 </div>
48 48 <div class="benefits-item">
49 49 <div class="benefits-item__top">
50   - <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-2.svg" alt="Агенство"></div>
51   - <h3 class="benefits-item__title">Самое амбициозное агентство на рынке</h3>
  50 + <div class="benefits-item__img"><img src="{{ asset('images/benefits/benefits-item-img-2.svg') }}" alt="Агенство"></div>
  51 + <h3 class="benefits-item__title">{{ $items_contact[0]->title2 }}</h3>
52 52 </div>
53   - <p class="benefits-item__descr">Благодаря огромной базе и множеству довольных клиентов, именно к нам первым делом попадают актуальные предложения.</p>
  53 + <p class="benefits-item__descr">{{ $items_contact[0]->text2 }}</p>
54 54 </div>
55 55 <div class="benefits-item">
56 56 <div class="benefits-item__top">
57   - <div class="benefits-item__img"><img src="images/benefits/benefits-item-img-3.svg" alt="Предложения"></div>
58   - <h3 class="benefits-item__title">Исключительно актуальные предложения</h3>
  57 + <div class="benefits-item__img"><img src="{{ asset('images/benefits/benefits-item-img-3.svg') }}" alt="Предложения"></div>
  58 + <h3 class="benefits-item__title">{{ $items_contact[0]->title3 }}</h3>
59 59 </div>
60   - <p class="benefits-item__descr">Наша база содержит исключительно актуальные предложения, с нами Вам не придется долго ждать освобождения этажа или целого здания.</p>
  60 + <p class="benefits-item__descr">{{ $items_contact[0]->text3 }}</p>
61 61 </div>
62 62 </div>
63 63 </div>
64 64 </div>
65 65 </section>
  66 +
  67 + <!-- ПАРТНЕРЫ -->
  68 + @if ($partners->count())
66 69 <section class="partners">
67 70 <div class="container">
68 71 <h2 class="partners__title title">Партнеры нашей компании</h2>
... ... @@ -70,6 +73,10 @@
70 73 <div class="swiper-wrapper">
71 74 <div class="swiper-slide">
72 75 <div class="partners__inner">
  76 + @foreach ($partners as $partner)
  77 + <div class="partners-item"><img src="{{ $partner->foto }}" alt="{{ $partner->name }}" loading="lazy"></div>
  78 + @endforeach
  79 + <!--<div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
73 80 <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
74 81 <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
75 82 <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
... ... @@ -86,8 +93,7 @@
86 93 <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
87 94 <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
88 95 <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
89   - <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
90   - <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>
  96 + <div class="partners-item"><img src="images/partners/partners-item-img-3.png" alt="Лого партнера" loading="lazy"></div>-->
91 97 </div>
92 98 </div>
93 99 </div>
... ... @@ -95,6 +101,8 @@
95 101 </div>
96 102 </div>
97 103 </section>
  104 + @endif
  105 + <!-- НОВОСТИ -->
98 106 <section class="slider">
99 107 <div class="container">
100 108 <div class="slider__wrap">
... ... @@ -103,19 +111,26 @@
103 111 <div class="slider__control">
104 112 <div class="swiper-button-prev">
105 113 <svg width="10" height="17">
106   - <use xlink:href="images/sprite.svg#slider-arrow"></use>
  114 + <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
107 115 </svg>
108 116 </div>
109 117 <div class="swiper-button-next">
110 118 <svg width="10" height="17">
111   - <use xlink:href="images/sprite.svg#slider-arrow"></use>
  119 + <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
112 120 </svg>
113 121 </div>
114 122 </div>
115 123 </div>
116 124 <div class="slider__swiper swiper">
117 125 <div class="swiper-wrapper">
118   - <div class="swiper-slide">
  126 + @if ($news->count())
  127 + @foreach($news as $new)
  128 + @include('catalogs.new', ['new' => $new])
  129 + @endforeach
  130 + @else
  131 + <h3>Пока здесь нет новостей!</h3>
  132 + @endif
  133 + <!--<div class="swiper-slide">
119 134 <div class="card-news">
120 135 <div class="card-news__top"><img src="images/card/card-img-5.jpg" alt="Превью к новости" loading="lazy">
121 136 <div class="card-news__date"><span>15</span><span>Декабря 2022</span></div>
... ... @@ -218,7 +233,7 @@
218 233 </svg></a>
219 234 </div>
220 235 </div>
221   - </div>
  236 + </div>-->
222 237 </div>
223 238 </div>
224 239 <div class="swiper-pagination"></div>
resources/views/ajax/complex/favorite.blade.php
... ... @@ -0,0 +1,13 @@
  1 +@if ($houses->count())
  2 + @foreach ($houses as $house1)
  3 + @include('catalogs.house_mini', ['house' => $house1])
  4 + @endforeach
  5 +
  6 +@else
  7 + <h3>Здесь пока что нет предложений</h3>
  8 +@endif
  9 +
  10 +<div class="pagination">
  11 + <?=$houses->appends($_GET)->links('catalogs.paginate');?>
  12 +</div>
  13 +
resources/views/catalog.blade.php
... ... @@ -5,59 +5,8 @@
5 5 @endsection
6 6  
7 7 @section('custom_js')
8   - @include('js.filter_value');
  8 + @include('js.filter_value')
9 9 <script>
10   - /*
11   - $(window).load(function() {
12   - var url_str = "<?=url()->full();?>";
13   - var url = new URL(url_str);
14   - var searchParams = new URLSearchParams(url.search.substring(1));
15   -
16   - var area = searchParams.get("area"),
17   - type_area = searchParams.get("type_area"),
18   - format_area= searchParams.get("format_area"),
19   - address= searchParams.get("address");
20   -
21   - var area_name = $('#area_name');
22   - var type_area_name = $('#type_area_name');
23   - var format_area_name = $('#format_area_name');
24   - var address_name = $('#address');
25   -
26   - if ((area !== "") || (type_area !== "") || (format_area !== "") || (address !== ""))
27   - {
28   - $.ajax({
29   - type: "GET",
30   - url: "{{ route('catalog_ajax_filter') }}",
31   - data: "area=" + area + "&type_area=" + type_area + "&format_area=" + format_area + "&address=" + address + "",
32   - success: function (data) {
33   - console.log('Фильтры данных были переданы ');
34   - data = JSON.parse(data);
35   - console.log(data);
36   -
37   - if (area !== "") {
38   - area_name.html(data[0]);
39   - }
40   - if (type_area !== "") {
41   - type_area_name.html(data[1]);
42   - }
43   - if (format_area !== "") {
44   - format_area_name.html(data[2]);
45   - }
46   - if (address !== "") {
47   - address_name.html(data[3]);
48   - }
49   -
50   - },
51   - headers: {
52   - 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
53   - },
54   - error: function (data) {
55   - console.log('Error: ' + data);
56   - }
57   - });
58   - }
59   - });
60   -*/
61 10 $(document).on('click', '.js_sort_group_item', function() {
62 11 var val = $(this).data('val');
63 12 var sort_price_val = '';
resources/views/catalogs/elemhouse.blade.php
... ... @@ -8,13 +8,16 @@
8 8 @endif;
9 9  
10 10 <h3 class="card__title">{{$house->typearea->name_type }}</h3>
11   - <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
12   - <svg width="18" height="18">
13   - <use xlink:href="{{ asset('images/sprite.svg#card-favorites-empty') }}"></use>
14   - </svg>
15   - <svg width="18" height="18">
16   - <use xlink:href="{{ asset('images/sprite.svg#card-favorites') }}"></use>
17   - </svg></span><a class="card__label card__label-messenger" href="#">
  11 + <div class="card__labels">
  12 + <span class="card__label card__label-favorites js_card_favorites <?=\App\Classes\RusDate::selected_item($house->id);?>" data-val="{{$house->id}}" id="card_favorite{{$house->id}}" name="card_favorite{{$house->id}}">
  13 + <svg width="18" height="18">
  14 + <use xlink:href="{{ asset('images/sprite.svg#card-favorites-empty') }}"></use>
  15 + </svg>
  16 + <svg width="18" height="18">
  17 + <use xlink:href="{{ asset('images/sprite.svg#card-favorites') }}"></use>
  18 + </svg>
  19 + </span>
  20 + <a class="card__label card__label-messenger" href="#">
18 21 <svg width="25" height="25">
19 22 <use xlink:href="{{ asset('images/sprite.svg#card-messenger') }}"></use>
20 23 </svg></a></div>
resources/views/catalogs/house_mini.blade.php
... ... @@ -7,7 +7,7 @@
7 7 @endif;
8 8  
9 9 <h3 class="card__title">{{$house->typearea->name_type }}</h3>
10   - <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites">
  10 + <div class="card__labels"><span class="card__label card__label-favorites js_card_favorites <?=\App\Classes\RusDate::selected_item($house->id);?>" data-val="{{$house->id}}" id="card_favorite{{$house->id}}" name="card_favorite{{$house->id}}">
11 11 <svg width="18" height="18">
12 12 <use xlink:href="{{ asset('images/sprite.svg#card-favorites-empty') }}"></use>
13 13 </svg>
resources/views/cookies.blade.php
1   -@extends('layout.site', ['title' => 'Избранное RentTorg'])
  1 +@extends('layout.site', ['title' => 'Мы используем cookies'])
2 2  
3 3 @section('content')
4   - <section class="favorites">
5   - <div class="favorites-top">
  4 + <section class="page-cookies">
  5 + <div class="page-cookies-top">
6 6 <div class="container">
7 7 <div class="breadcrumbs">
8 8 <ul class="breadcrumbs__list">
9   - <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="#">Главная</a></li>
10   - <li class="breadcrumbs__item"><span class="breadcrumbs__link">Избранное </span></li>
  9 + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li>
  10 + <li class="breadcrumbs__item"><span class="breadcrumbs__link">Мы используем cookie файлы</span></li>
11 11 </ul>
12 12 </div>
13   - <h1 class="favorites__title title-main">Тут пока что ничего нет...</h1><a class="favorites-top__link" href="#">Выберите идеальную недвижимость </a>
14   - <p class="favorites__descr">Здесь вы можете ознакомиться с недвижимостью которая вам понравилось</p>
  13 + <h1 class="page-cookies__title title-main">Мы используем cookie файлы</h1>
15 14 </div>
16 15 </div>
17   - <div class="favorites-cnt">
  16 + <div class="page-cookies-cnt">
18 17 <div class="container">
19   - <div class="favorites__items">
20   - <div class="favorites-item">
21   - <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-1.svg" alt=""></div>
22   - <p class="favorites-item__descr"><a href="#">Найдите</a> идеальную планировку на сайте Renttorg</p>
23   - </div>
24   - <div class="favorites-item">
25   - <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-2.svg" alt=""></div>
26   - <p class="favorites-item__descr">Нажмите на <img src="images/favorites-icon-mini.svg" alt=""> для добавления недвижемости в избранное</p>
27   - </div>
28   - <div class="favorites-item">
29   - <div class="favorites-item__img"><img src="images/favorites/favorites-item-img-3.svg" alt=""></div>
30   - <p class="favorites-item__descr">Перейдите в избранное или сравнение для выбора планировки</p>
31   - </div>
32   - </div>
  18 + <div class="page-cookies__inner">
  19 + <p>Когда вы посещаете сайт, Renttorg может использовать общеотраслевую технологию, называемую cookie. Файлы cookie представляют собой небольшие фрагменты данных, которые временно сохраняются на вашем компьютере или мобильном устройстве и обеспечивают более эффективную работу сайта. Renttorg для сбора статистики использует подсистему «Цифровая культура». На основе этих данных мы делаем наш сайт лучше и эффективнее для пользователей. Продолжая пользоваться этим сайтом, вы соглашаетесь на использование cookie и обработку данных в соответствии с Политикой сайта в области обработки и защиты персональных данных. Если вы не хотите использовать cookie, вы можете отключить их в настройках безопасности вашего браузера. Отключение cookie следует выполнить для каждого браузера и устройства, с помощью которого осуществляется вход на сайт. Обратите внимание, что в случае, если использование сайтом cookie-файлов отключено, некоторые возможности и услуги сайта могут быть недоступны. Согласие на обработку персональных данных посетителей сайта Настоящим, свободно, своей волей и в своем интересе выражаю свое согласие [адрес учреждения – собственника сайта] (далее – Оператор) на автоматизированную обработку моих персональных данных в соответствии со следующим перечнем персональных данных:</p>
  20 + <ul>
  21 + <li>Опционально: обучение заказчиков заказчиков.</li>
  22 + <li>Системная информация, данные из моего браузера.</li>
  23 + <li>Системная информация, данные из моего браузера.</li>
  24 + <li>Мой IP-адрес.</li>
  25 + <li>Установленные на моем устройстве операционные системы.</li>
  26 + <li>Установленные на моем устройстве типы браузеров.</li>
  27 + <li>Установленные на моем устройстве расширения и настройки цвета экрана.</li>
  28 + <li>Установленные и используемые на моем устройстве языки.</li>
  29 + <li>Версии Flash и поддержка JavaScript.</li>
  30 + <li>Типы мобильных устройств, используемых мной, если применимо.</li>
  31 + <li>Географическое положение.</li>
  32 + <li>Типы мобильных устройств, используемых мной, если применимо.</li>
  33 + <li>Количество посещений сайта и просмотров страниц.</li>
  34 + <li>Длительность пребывания на сайте.</li>
  35 + <li>Запросы, использованные мной при переходе на сайт.</li>
  36 + <li>Страницы, с которых были совершены переходы.</li>
  37 + </ul>
  38 + <p>Для целей сбора статистики о посетителях сайта Оператор вправе осуществлять обработку моих персональных данных следующими способами: сбор, систематизация, накопление, хранение, обновление, изменение, использование. Оператор может обрабатывать файлы cookie самостоятельно или с привлечением иных сервисов. Настоящее согласие вступает в силу с момента моего перехода на сайт Оператора и действует до момента его отзыва. Согласие действует на период: 1 год. Согласие на обработку персональных данных может быть отозвано мною путем письменного уведомления по указанному адресу об этом не менее чем за один месяц до даты фактического прекращения обработки моих персональных данных Оператором.</p>
  39 + </div><a class="page-cookies__btn btn btn--main" href="#">Принять и продолжить</a>
33 40 </div>
34 41 </div>
35 42 </section>
resources/views/favorite.blade.php
... ... @@ -11,7 +11,8 @@
11 11 </ul>
12 12 </div>
13 13 <h1 class="favorites__title title-main">Тут пока что ничего нет...</h1><a class="favorites-top__link" href=" {{ route('catalog') }}">Выберите идеальную недвижимость </a>
14   - <p class="favorites__descr">Здесь вы можете ознакомиться с недвижимостью которая вам понравилось</p>
  14 + <p class="favorites__descr">Здесь вы можете ознакомиться с недвижимостью которая вам понравилось
  15 + </p>
15 16 </div>
16 17 </div>
17 18 <div class="favorites-cnt">
resources/views/favorite_data.blade.php
... ... @@ -0,0 +1,113 @@
  1 +@extends('layout.site', ['title' => 'Избранное RentTorg'])
  2 +
  3 +@section('custom_js')
  4 + <script>
  5 + $(document).on('click', '.js_sort_group_item', function() {
  6 + var val = $(this).data('val');
  7 + var sort_price_val = '';
  8 + var sort_area_val = '';
  9 + var sort_new_val = '';
  10 +
  11 + $('.sort-price').each(function() {
  12 + var this_ = $(this);
  13 + var v = $(this).data('val');
  14 + if (this_.hasClass('active'))
  15 + sort_price_val = v;
  16 + });
  17 +
  18 + $('.sort-new').each(function() {
  19 + var v = $(this).data('val');
  20 + var this_ = $(this);
  21 + if (this_.hasClass('active'))
  22 + sort_new_val = v;
  23 + });
  24 +
  25 + $('.sort-area').each(function() {
  26 + var v = $(this).data('val');
  27 + var this_ = $(this);
  28 + if (this_.hasClass('active'))
  29 + sort_area_val = v;
  30 +
  31 + });
  32 +
  33 + console.log('-------------------');
  34 + $.ajax({
  35 + type: "GET",
  36 + url: "{{ route('favorite') }}",
  37 + data: "sort_price="+sort_price_val+"&sort_new="+sort_new_val+"&sort_area="+sort_area_val+"",
  38 + success: function(data) {
  39 + console.log('Сортировка данных обновлена '+data);
  40 + $('#house_block').html(data);
  41 + },
  42 + headers: {
  43 + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  44 + },
  45 + error: function(data) {
  46 + console.log('Error: '+ data);
  47 + }
  48 + });
  49 + }
  50 + );
  51 + </script>
  52 +@endsection
  53 +
  54 +@section('content')
  55 + <section class="favorites">
  56 + <div class="favorites-top">
  57 + <div class="container">
  58 + <div class="breadcrumbs">
  59 + <ul class="breadcrumbs__list">
  60 + <li class="breadcrumbs__item"><a class="breadcrumbs__link" href="{{ route('index') }}">Главная</a></li>
  61 + <li class="breadcrumbs__item"><span class="breadcrumbs__link">Избранное </span></li>
  62 + </ul>
  63 + </div>
  64 + <h1 class="favorites__title title-main">Избранное</h1>
  65 + <p class="favorites__descr">Здесь вы можете ознакомиться с недвижимостью которая вам понравилось</p>
  66 + </div>
  67 + </div>
  68 + <div class="favorites-cnt">
  69 + <div class="container">
  70 + <form class="favorites__sorts">
  71 + <div class="favorites__sort-group sort-group js_sort_group">
  72 + <input class="js_sort_group_input" type="hidden">
  73 + <div class="sort-group__current js_sort_group_current">Сначала дешевле</div>
  74 + <ul class="sort-group__list js_sort_group_list">
  75 + <li class="sort-price sort-group__item js_sort_group_item active" data-val="1">Сначала дешевле</li>
  76 + <li class="sort-price sort-group__item js_sort_group_item" data-val="2">Сначала дороже</li>
  77 + </ul>
  78 + </div>
  79 + <div class="favorites__sort-group sort-group js_sort_group">
  80 + <input class="js_sort_group_input" type="hidden">
  81 + <div class="sort-group__current js_sort_group_current">Сначала новые</div>
  82 + <ul class="sort-group__list js_sort_group_list">
  83 + <li class="sort-new sort-group__item js_sort_group_item active" data-val="1">Сначала новые</li>
  84 + <li class="sort-new sort-group__item js_sort_group_item" data-val="2">Сначала старые</li>
  85 + </ul>
  86 + </div>
  87 + <div class="favorites__sort-group sort-group sort-group--wide js_sort_group">
  88 + <input class="js_sort_group_input" type="hidden">
  89 + <div class="sort-group__current js_sort_group_current">Сначала с большей площадью</div>
  90 + <ul class="sort-group__list js_sort_group_list">
  91 + <li class="sort-area sort-group__item js_sort_group_item active" data-val="1">Сначала с большей площадью</li>
  92 + <li class="sort-area sort-group__item js_sort_group_item" data-val="2">Сначала с меньшей площадью</li>
  93 + </ul>
  94 + </div>
  95 + </form>
  96 + <div class="favorites__grid" id="house_block">
  97 + @if ($houses->count())
  98 + @foreach ($houses as $house1)
  99 + @include('catalogs.house_mini', ['house' => $house1])
  100 + @endforeach
  101 + @else
  102 + <h3>Здесь пока что нет предложений</h3>
  103 + @endif
  104 + </div>
  105 + </div>
  106 + </div>
  107 + </section>
  108 +@endsection
  109 +
  110 +@section('form_feedback')
  111 + <!-- Форма обратной связи -->
  112 + @include('form.form_feedback')
  113 +@endsection
resources/views/form/form_feedback.blade.php
... ... @@ -5,7 +5,7 @@
5 5 <h2 class="footer-feedback__title title">Оставьте заявку</h2>
6 6 <p class="footer-feedback__descr">и мы подберем для вас лучшее предложение!</p>
7 7 </div>
8   - <form class="footer-feedback__form js_footer_feedback_form">
  8 + <form class="footer-feedback__form js_footer_feedback_form" action="{{ route('main_form') }}" method="POST">
9 9 <div class="footer-feedback__row">
10 10 <div class="footer-feedback__col">
11 11 <label class="footer-feedback__field field">
resources/views/index.blade.php
... ... @@ -326,12 +326,12 @@
326 326 <div class="slider__control">
327 327 <div class="swiper-button-prev">
328 328 <svg width="10" height="17">
329   - <use xlink:href="images/sprite.svg#slider-arrow"></use>
  329 + <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
330 330 </svg>
331 331 </div>
332 332 <div class="swiper-button-next">
333 333 <svg width="10" height="17">
334   - <use xlink:href="images/sprite.svg#slider-arrow"></use>
  334 + <use xlink:href="{{ asset('images/sprite.svg#slider-arrow') }}"></use>
335 335 </svg>
336 336 </div>
337 337 </div>
resources/views/js/cookies_favorite.blade.php
... ... @@ -0,0 +1,69 @@
  1 +<script>
  2 + $(document).ready(function() {
  3 + $(document).on('click', '.js_card_favorites', function () {
  4 + var _this = $(this);
  5 + var id_house = _this.attr('data-val');
  6 +
  7 + if (_this.hasClass('active')) {
  8 + add_in_array(id_house);
  9 + console.log('Добавлено в избранное id=' + id_house);
  10 + } else {
  11 + delete_in_array(id_house);
  12 + console.log('Удалено из избранных id='+id_house)
  13 + }
  14 +
  15 + var str = $.cookie('favorite_house');
  16 + console.log("Вывод куков "+str);
  17 +
  18 + });
  19 + });
  20 +
  21 + //помеченный элемент
  22 + function selected_item(obj) {
  23 + var arr = read_array();
  24 + var index = arr.indexOf(obj);
  25 +
  26 + if (index > 0)
  27 + return "active";
  28 + else
  29 + return "";
  30 + }
  31 +
  32 + // запись элемента массива в cookie
  33 + function add_in_array(obj){
  34 + var arr = read_array();//получаем текущее состояние массива
  35 + arr[arr.length]=obj; //добавляем элемент в конец
  36 + //var str = JSON.stringify(arr);//конвертируем в строку
  37 + //$.cookie('arr',str);//записываем массив в куки
  38 + $.cookie('favorite_house', JSON.stringify(arr));
  39 + }
  40 +
  41 + // удаление элемента из массива в cookie
  42 + function delete_in_array(obj) {
  43 + var arr = read_array();
  44 + var index = arr.indexOf(obj);
  45 + arr.splice(index, 1);
  46 + //var str = JSON.stringify(arr);//конвертируем в строку
  47 + //$.cookie('arr',str);//записываем массив в куки
  48 + $.cookie('favorite_house', JSON.stringify(arr));
  49 + }
  50 +
  51 + function read_array(){
  52 + var dataArr=$.cookie('favorite_house');//считываем данные из куков
  53 + //если массив не был обнаружен, иницилизируем его
  54 + if(dataArr===null){
  55 + dataArr = init_array(); //возвращаем инициализированный пустой маасив
  56 + }
  57 + //возвращаем полученный массив
  58 + //return JSON.parse(dataArr);
  59 + return JSON.parse(dataArr);
  60 + }
  61 +
  62 + //другими словами создаем пустой массив
  63 + function init_array(){
  64 + //var str = JSON.stringify(new Array());//конвертируем в строку
  65 + var str = JSON.stringify(new Array());
  66 + $.cookie('favorite_house',str);//записываем массив в куки
  67 + return str;
  68 + }
  69 +</script>
resources/views/layout/site.blade.php
... ... @@ -26,7 +26,7 @@
26 26 <li class="nav__item"><a class="nav__link" href="{{ route('catalog') }}">Каталог</a></li>
27 27 <li class="nav__item"><a class="nav__link" href="{{ route('about') }}">О компании</a></li>
28 28 <li class="nav__item"><a class="nav__link" href="{{ route('contact') }}">Контакты</a></li>
29   - <li class="nav__item"><a class="nav__link nav__link-favorites" href="{{ route('favorite') }}">Избранное<span>0</span></a></li>
  29 + <li class="nav__item"><a class="nav__link nav__link-favorites" href="{{ route('favorite') }}">Избранное<span><?=\App\Classes\RusDate::count_item_fav();?></span></a></li>
30 30 </ul>
31 31 </nav>
32 32 <div class="header__buttons"><a class="header__btn-phone" href="#" data-btn="feedback">
... ... @@ -65,7 +65,7 @@
65 65 <div class="menu__contacts"><a class="menu__contact" href="mailto:info@renttorg.ru">E-MAIL<span>info@renttorg.ru</span></a><a class="menu__contact" href="tel:+79290127262">ТЕЛЕФОН<span>+7 (929) 012-72-62</span></a></div>
66 66 <div class="menu__social social">
67 67 <ul class="social__list">
68   - <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="images/tg.svg" alt=""></a></li>
  68 + <li class="social__item"><a class="social__link" href="#" target="_blank"><img src="{{ asset('images/tg.svg') }}" alt=""></a></li>
69 69 <li class="social__item"><a class="social__link" href="#" target="_blank">
70 70 <svg width="40" height="40">
71 71 <use xlink:href="{{ asset('images/sprite.svg#wa')}}"></use>
... ... @@ -164,13 +164,16 @@
164 164 </div>
165 165 </div>
166 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 168 <div class="footer__block js_footer_block">
169 169 <ul class="footer__list">
170   - <li class="footer__item"><a class="footer__link" href="#">Новая Москва</a></li>
  170 + <li class="footer__item"><a class="footer__link" href="{{ route('auth.login') }}">Админка</a></li>
  171 + <li class="footer__item"><a class="footer__link" href="{{ route('cookies') }}">Cookies</a></li>
  172 +
  173 + <!--<li class="footer__item"><a class="footer__link" href="#">Новая Москва</a></li>
171 174 <li class="footer__item"><a class="footer__link" href="#">Подмосковье</a></li>
172 175 <li class="footer__item"><a class="footer__link" href="#">Москва</a></li>
173   - <li class="footer__item"><a class="footer__link" href="#">Тип недвижимости</a></li>
  176 + <li class="footer__item"><a class="footer__link" href="#">Тип недвижимости</a></li>-->
174 177 </ul>
175 178 </div>
176 179 </div>
... ... @@ -209,7 +212,7 @@
209 212 <div class="popup__wrap">
210 213 <button class="popup__close js_popup_close" type="button">
211 214 <svg width="20" height="20">
212   - <use xlink:href="images/sprite.svg#popup-close"></use>
  215 + <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
213 216 </svg>
214 217 </button>
215 218 <form class="popup-feedback__form js_popup_feedback_form">
... ... @@ -231,7 +234,7 @@
231 234 <div class="popup__wrap">
232 235 <button class="popup__close js_popup_close" type="button">
233 236 <svg width="20" height="20">
234   - <use xlink:href="images/sprite.svg#popup-close"></use>
  237 + <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
235 238 </svg>
236 239 </button>
237 240 <form class="popup-feedback__form js_popup_viewing_form">
... ... @@ -253,13 +256,13 @@
253 256 <div class="popup__wrap">
254 257 <button class="popup__close js_popup_close" type="button">
255 258 <svg width="20" height="20">
256   - <use xlink:href="images/sprite.svg#popup-close"></use>
  259 + <use xlink:href="{{ asset('images/sprite.svg#popup-close') }}"></use>
257 260 </svg>
258 261 </button>
259 262 <div class="popup-success__inner">
260 263 <div class="popup-success__logo">
261 264 <svg width="48" height="39">
262   - <use xlink:href="images/sprite.svg#popup-success-logo"></use>
  265 + <use xlink:href="{{ asset('images/sprite.svg#popup-success-logo')}}"></use>
263 266 </svg>
264 267 </div>
265 268 <div class="popup-success__title">Спасибо за заявку</div>
... ... @@ -271,7 +274,7 @@
271 274 <div class="popup__wrap">
272 275 <button class="popup__close js_popup_close" type="button">
273 276 <svg width="20" height="20">
274   - <use xlink:href="images/sprite.svg#popup-close"></use>
  277 + <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
275 278 </svg>
276 279 </button>
277 280 <form class="popup-feedback__form js_popup_sending_form">
... ... @@ -290,7 +293,7 @@
290 293 <div class="contact-us__top">
291 294 <button class="contact-us__close js_contact_us_close" type="button">
292 295 <svg width="20" height="20">
293   - <use xlink:href="images/sprite.svg#popup-close"></use>
  296 + <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
294 297 </svg>
295 298 </button>
296 299 <div class="contact-us__title">Свяжитесь с нами</div>
... ... @@ -299,28 +302,28 @@
299 302 <div class="contact-us__items"><a class="contact-us-item js_contact_us_close" href="#">
300 303 <div class="contact-us-item__icon">
301 304 <svg width="34" height="34">
302   - <use xlink:href="images/sprite.svg#contact-us-phone"></use>
  305 + <use xlink:href="{{ asset('images/sprite.svg#contact-us-phone')}}"></use>
303 306 </svg>
304 307 </div>
305 308 <div class="contact-us-item__name">Позвонить</div></a><a class="contact-us-item js_contact_us_close" href="#">
306 309 <div class="contact-us-item__icon">
307 310 <svg width="44" height="44">
308   - <use xlink:href="images/sprite.svg#contact-us-email"></use>
  311 + <use xlink:href="{{ asset('images/sprite.svg#contact-us-email')}}"></use>
309 312 </svg>
310 313 </div>
311 314 <div class="contact-us-item__name">Написать</div></a><a class="contact-us-item js_contact_us_close" href="#">
312 315 <div class="contact-us-item__icon">
313 316 <svg width="34" height="34">
314   - <use xlink:href="images/sprite.svg#contact-us-chat"></use>
  317 + <use xlink:href="{{ asset('images/sprite.svg#contact-us-chat')}}"></use>
315 318 </svg>
316 319 </div>
317 320 <div class="contact-us-item__name">Онлайн-чат</div></a></div>
318 321 <div class="contact-us__socials"><a class="contact-us-social js_contact_us_close" href="#" target="_blank">
319   - <div class="contact-us-social__icon contact-us-social__icon-tg"><img src="images/contact-us-tg.svg" alt=""></div>
  322 + <div class="contact-us-social__icon contact-us-social__icon-tg"><img src="{{ asset('images/contact-us-tg.svg')}}" alt=""></div>
320 323 <div class="contact-us-social__name">Telegram</div></a><a class="contact-us-social js_contact_us_close" href="#" target="_blank">
321 324 <div class="contact-us-social__icon contact-us-social__icon-wa">
322 325 <svg width="31" height="31">
323   - <use xlink:href="images/sprite.svg#contact-us-wa"></use>
  326 + <use xlink:href="{{ asset('images/sprite.svg#contact-us-wa')}}"></use>
324 327 </svg>
325 328 </div>
326 329 <div class="contact-us-social__name">WhatsApp</div></a></div>
... ... @@ -330,12 +333,12 @@
330 333 <div class="offer-side-popup__wrap">
331 334 <button class="offer-side-popup__close js_popup_close" type="button">
332 335 <svg width="20" height="20">
333   - <use xlink:href="images/sprite.svg#popup-close"></use>
  336 + <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
334 337 </svg>
335 338 </button>
336 339 <div class="offer-side-popup__cnt">
337   - <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>
338   - <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>
  340 + <div class="offer-side-popup__item js_offer_side_popup_item active" data-item="1"><img src="{{ asset('images/offer-side-item-img-1.jpg')}}" alt="План объекта"></div>
  341 + <div class="offer-side-popup__item js_offer_side_popup_item" data-item="2"><img src="{{ asset('images/offer-side-item-img-2.jpg')}}" alt="План этажа"></div>
339 342 </div>
340 343 <div class="offer-side-popup__tabs">
341 344 <button class="offer-side-popup__tab js_offer_side_popup_tab active" type="button" data-tab="1">План объекта</button>
... ... @@ -343,7 +346,7 @@
343 346 </div>
344 347 <button class="offer-side-popup__sizeoff js_popup_close" type="button">
345 348 <svg width="18" height="18">
346   - <use xlink:href="images/sprite.svg#popup-sizeoff"></use>
  349 + <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff')}}"></use>
347 350 </svg>
348 351 </button>
349 352 </div>
... ... @@ -352,7 +355,7 @@
352 355 <div class="img-viewer__wrap">
353 356 <button class="img-viewer__close js_img_viewer_close" type="button">
354 357 <svg width="20" height="20">
355   - <use xlink:href="images/sprite.svg#popup-close"></use>
  358 + <use xlink:href="{{ asset('images/sprite.svg#popup-close')}}"></use>
356 359 </svg>
357 360 </button>
358 361 <div class="img-viewer__thumbs js_img_viewer_thumbs">
... ... @@ -366,19 +369,19 @@
366 369 </div>
367 370 <div class="swiper-button-prev">
368 371 <svg width="10" height="17">
369   - <use xlink:href="images/sprite.svg#slider-arrow"></use>
  372 + <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use>
370 373 </svg>
371 374 </div>
372 375 <div class="swiper-button-next">
373 376 <svg width="10" height="17">
374   - <use xlink:href="images/sprite.svg#slider-arrow"></use>
  377 + <use xlink:href="{{ asset('images/sprite.svg#slider-arrow')}}"></use>
375 378 </svg>
376 379 </div>
377 380 </div>
378 381 <div class="img-viewer__caption js_img_viewer_caption"></div>
379 382 <button class="img-viewer__sizeoff js_img_viewer_close" type="button">
380 383 <svg width="18" height="18">
381   - <use xlink:href="images/sprite.svg#popup-sizeoff"></use>
  384 + <use xlink:href="{{ asset('images/sprite.svg#popup-sizeoff') }}"></use>
382 385 </svg>
383 386 </button>
384 387 </div>
... ... @@ -387,12 +390,12 @@
387 390 <div class="container">
388 391 <div class="cookies__wrap">
389 392 <div class="cookies__top">
390   - <div class="cookies__img"><img src="images/cookies.svg" alt="cookies"></div>
  393 + <div class="cookies__img"><img src="{{ asset('images/cookies.svg') }}" alt="cookies"></div>
391 394 <div class="cookies__title">Cookies</div>
392 395 </div>
393 396 <p class="cookies__descr">Мы используем cookie-файлы для наилучшего представления нашего сайта.<br>Продолжая использовать сайт, вы даете согласие с использованием cookie-файлов.</p>
394 397 <div class="cookies__buttons">
395   - <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="page-cookies.html">Подробнее</a>
  398 + <button class="cookies__btn btn btn--main js_cookies_confirm" type="button">Принять</button><a class="cookies__link" href="{{ route('cookies') }}">Подробнее</a>
396 399 </div>
397 400 </div>
398 401 </div>
... ... @@ -401,6 +404,8 @@
401 404 <script src="{{ asset('js/swiper-bundle.min.js') }}"></script>
402 405 <script src="{{ asset('js/main.js') }}"></script>
403 406 <script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script>
  407 +<script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script>
404 408 @yield('custom_js')
  409 +@include('js.cookies_favorite')
405 410 </body>
406 411 </html>
... ... @@ -61,6 +61,13 @@ Route::get(&#39;category/{cat}&#39;, [MainController::class, &#39;Category&#39;])-&gt;name(&#39;categor
61 61 //Категория ajax
62 62 Route::get('category_ajax/{cat}', [MainController::class, 'category_ajax'])->name('category_ajax');
63 63  
  64 +//Страница куков
  65 +Route::get('cookies', function () {
  66 + return view('cookies');
  67 +})->name('cookies');
  68 +
  69 +//Форма обратной связи в футере
  70 +Route::post('main_form', [MainController::class, 'main_form'])->name('main_form');
64 71  
65 72 Route::group([
66 73 'as' => 'auth.', // имя маршрута, например auth.index