templates/front/property/list.html.twig line 1

Open in your IDE?
  1. {% extends 'base_front.html.twig' %}
  2. {% block meta %}
  3.     <title>Floor | {% if contentHeader.preTitle is defined %}{{ contentHeader.preTitle }}{% endif %}</title>
  4.     {% if contentHeader.title is defined %}
  5.         <meta name="description"
  6.               content="{% if contentHeader.preTitle is defined %}{{ contentHeader.preTitle ~ ' | ' }}{% endif %}{{ contentHeader.title|striptags }}">
  7.     {% endif %}
  8. {% endblock %}
  9. {% block body %}
  10.     <section class="slide-header list">
  11.         <div class="main-slide">
  12.             <div class="img-main-slide position-relative"
  13.                  style="background:url({{ asset(constant('App\\Services\\UploadFileService::POST_IMAGE_DIR') ~ slider.image1) }})no-repeat center;background-size:cover;"
  14.                  id="mainImg">
  15.                 <div class="title-page bg-blue d-flex gold justify-content-end position-absolute">
  16.                     <img src="{{ asset('img/icons/chevrons-right.svg') }}" alt="chevrons droite">
  17.                     <span class="ml-3">{{ contentHeader.preTitle|capitalize }}</span>
  18.                 </div>
  19.             </div>
  20.         </div>
  21.         {% set titleSplited = contentHeader.title|split(' ') %}
  22.         <div class="slides-title page d-flex align-items-center justify-content-end col-md-11 p-0 float-right position-relative">
  23.             <h1 class="title-left-right mr-5">
  24.                 {% if titleSplited|length > 1 %}
  25.                     <span>{{ titleSplited.0 }} {{ titleSplited.1 }}</span><br>
  26.                     <span class="gold">
  27.                         {% for word in titleSplited|slice(2) %}
  28.                             {{ ' ' ~ word }}
  29.                         {% endfor %}
  30.                     </span>
  31.                 {% else %}
  32.                     <span>{{ contentHeader.title }}</span>
  33.                 {% endif %}
  34.                 {% if app.user %}
  35.                     <a href="{{ path('back_content_edit', {'id': contentHeader.id}) }}"><i class="fas fa-pencil-alt"
  36.                                                                                            style="color:red"></i></a>
  37.                 {% endif %}
  38.             </h1>
  39.             <a href="#" class="position-absolute arrow-slide-single" id="arrowSlideMove"
  40.                onclick="javascript: return false;">
  41.                 <img src="{{ asset('img/icons/arrow-right.svg') }}">
  42.             </a>
  43.             <div class="slide-miniatures d-flex align-self-baseline" id="containerMiniatures">
  44.                 {% if slider.image2 %}
  45.                     <div class="slide position-relative float-left">
  46.                         <img src="{{ asset(constant('App\\Services\\UploadFileService::POST_IMAGE_DIR') ~ slider.image2) }}">
  47.                     </div>
  48.                 {% endif %}
  49.                 {% if slider.image3 %}
  50.                     <div class="slide position-relative float-left">
  51.                         <img src="{{ asset(constant('App\\Services\\UploadFileService::POST_IMAGE_DIR') ~ slider.image3) }}">
  52.                     </div>
  53.                 {% endif %}
  54.                 {% if slider.image4 %}
  55.                     <div class="slide position-relative float-left">
  56.                         <img src="{{ asset(constant('App\\Services\\UploadFileService::POST_IMAGE_DIR') ~ slider.image4) }}">
  57.                     </div>
  58.                 {% endif %}
  59.             </div>
  60.         </div>
  61.         <a href="#targetSeeMore"
  62.            class="btn-see-more position-absolute d-flex flex-column align-items-center gold text-center">
  63.             <img src="{{ asset('img/icons/arrow-bottom-gold.svg') }}" alt="En savoir plus" class="mb-2">
  64.             <span>En savoir plus</span>
  65.         </a>
  66.     </section>
  67.     <section class="form-filter" id="targetSeeMore">
  68.         <div class="container">
  69.             <div class="title-page bg-blue d-flex gold pl-0">
  70.                 <img src="{{ asset('img/icons/chevrons-right.svg') }}" alt="chevrons droite">
  71.                 <span class="ml-3">Vos critères</span>
  72.             </div>
  73.             <form class="mt-3" id="formFilter">
  74.                 <input name="advert-type" id="advertTypeFilter" type="hidden" value="{{ type }}">
  75.                 <div class="row">
  76.                     <div class="col-md-2">
  77.                         <select class="w-100" name="type">
  78.                             <option value="">Type</option>
  79.                             <option value="Maison">Maison</option>
  80.                             <option value="Appartement">Appartement</option>
  81.                             <option value="Commerce">Commerce</option>
  82.                             <option value="Garage">Garage</option>
  83.                             <option value="Parking">Parking</option>
  84.                             <option value="Terrain">Terrain</option>
  85.                         </select>
  86.                     </div>
  87.                     <div class="col-md-2">
  88.                         <select class="w-100" name="rent">
  89.                             <option value="">Vente / Location</option>
  90.                             <option value="vente" {% if type == 'vente' %}selected{% endif %}>Vente</option>
  91.                             <option value="location" {% if type == 'location' %}selected{% endif %}>Location</option>
  92.                         </select>
  93.                     </div>
  94.                     <div class="col-md-2">
  95.                         <select class="w-100" name="location">
  96.                             <option value="">Localisation</option>
  97.                             {% for city in advertCities %}
  98.                                 <option value="{{ city }}">{{ city }}</option>
  99.                             {% endfor %}
  100.                         </select>
  101.                     </div>
  102.                     <div class="col-md-2">
  103.                         {% if type == 'vente' %}
  104.                             <select class="w-100" name="max_price">
  105.                                 <option value="">Budget Max.</option>
  106.                                 <option value="500000">500 000€</option>
  107.                                 <option value="600000">600 000€</option>
  108.                                 <option value="700000">700 000€</option>
  109.                                 <option value="800000">800 000€</option>
  110.                                 <option value="900000">900 000€</option>
  111.                                 <option value="1000000">1 000 000€</option>
  112.                                 <option value="1500000">1 500 000€</option>
  113.                                 <option value="2000000">2 000 000€</option>
  114.                             </select>
  115.                         {% else %}
  116.                             <select class="w-100" name="max_price">
  117.                                 <option value="">Budget Max.</option>
  118.                                 <option value="600">300€</option>
  119.                                 <option value="400">400€</option>
  120.                                 <option value="500">500€</option>
  121.                                 <option value="600">600€</option>
  122.                                 <option value="700">700€</option>
  123.                                 <option value="800">800€</option>
  124.                                 <option value="900">900€</option>
  125.                                 <option value="1000">1000€</option>
  126.                                 <option value="1500">1 500€</option>
  127.                                 <option value="2000">2 000€</option>
  128.                                 <option value="2500">2 500€</option>
  129.                             </select>
  130.                         {% endif %}
  131.                     </div>
  132.                     <div class="col-md-2">
  133.                         <select class="w-100" name="min_room">
  134.                             <option value="">Chambres(s) min.</option>
  135.                             <option value="1">1</option>
  136.                             <option value="2">2</option>
  137.                             <option value="3">3</option>
  138.                             <option value="4">4</option>
  139.                         </select>
  140.                     </div>
  141.                 </div>
  142.             </form>
  143.         </div>
  144.     </section>
  145.     <section class="result-properties">
  146.         <div class="container">
  147.             <div class="text-center mt-5 mb-5">
  148.                 <h3 class="white">{{ contentHeader.preTitle|capitalize }}</h3>
  149.                 <h2 class="white" id="nbAdvertResult"><span
  150.                             class="gold">{{ countAdverts }}</span> {% if countAdverts > 1 %}annonces trouvées{% else %}annonce trouvée{% endif %}
  151.                 </h2>
  152.             </div>
  153.             <div class="position-relative col-md-12">
  154.                 <div id="loader" class="ml-3"></div>
  155.             </div>
  156.             <ul class="pl-0" id="containerAdvertList">
  157.                 {% for advert in adverts %}
  158.                     <li class="col-12 col-md-12 position-relative slide-1 slide-single h-100 p-0 {% if not loop.first %}mt-5{% endif %}">
  159.                         <div class="d-flex h-100 link-slide-1">
  160.                             <div class="col-md-6 img-slide img-slide-1 position-relative">
  161.                                 {% for photo in advert.photos %}
  162.                                     {% set async = loop.first ? '' : "loading=lazy async" %}
  163.                                     <img {{ async }} src="{{ asset('upload/photo/' ~ photo.name) }}"
  164.                                                      alt="{{ advert.info.nature }} • {{ advert.info.surface }}m²"
  165.                                                      onclick="location.href='{{ path('front_property_single', {'id': advert.info.id, 'type': real_estate.toSlug(advert.info.nature), 'city': real_estate.toSlug(advert.localisation.ville)}) }}';">
  166.                                 {% endfor %}
  167.                             </div>
  168.                             <div class="col-md-6 bg-red white p-5 d-flex flex-column justify-content-center position-relative info-slide info-slide-1"
  169.                                  onclick="location.href='{{ path('front_property_single', {'id': advert.info.id, 'type': real_estate.toSlug(advert.info.nature), 'city': real_estate.toSlug(advert.localisation.ville)}) }}';">
  170.                                 <div class="title-page bg-blue d-flex gold pl-0 pt-0">
  171.                                     <img src="{{ asset('img/icons/chevrons-right.svg') }}" alt="chevrons droite">
  172.                                     <span class="ml-3">{{ advert.info.nature }} • {{ advert.info.surface }}m²</span>
  173.                                 </div>
  174.                                 <h1 class="mb-3">{{ advert.localisation.ville }}</h1>
  175.                                 {% set price = advert.prix.budget|number_format(0, ' ', ' ') %}
  176.                                 <h4>
  177.                                     {% if advert.info.vente_location == 'location' %}
  178.                                         {{ price }}€<sup>/mois</sup>
  179.                                     {% else %}
  180.                                         {{ price }}€
  181.                                     {% endif %}
  182.                                 </h4>
  183.                                 {% if advert.info.disponibilite %}
  184.                                     {% if advert.info.disponibilite == 'immédiate' %}
  185.                                         <p>Disponibilité {{ advert.info.disponibilite }}</p>
  186.                                     {% else %}
  187.                                         <p>Disponible à p. d. {{ advert.info.disponibilite }}</p>
  188.                                     {% endif %}
  189.                                 {% endif %}
  190.                                 {% set parkingOuvert = advert.parking.parking_ouvert ?? 0 %}
  191.                                 {% set parkingsouterrain = advert.parking.parking_souterrain ?? 0 %}
  192.                                 {% set parkingCollectif = advert.parking.collectif ?? 0 %}
  193.                                 {% set parkings = parkingOuvert + parkingsouterrain + parkingCollectif %}
  194.                                 {% set parkingsExt = parkingOuvert + parkingCollectif %}
  195.                                 <div class="description pt-3 pb-5">
  196.                                     {% if advert.info.surface and advert.info.surface > 0 %}
  197.                                         <p>
  198.                                             <img src="{{ asset('img/icons/surface.svg') }}" class="mr-3">
  199.                                             <span class="gold">{{ advert.info.surface }} m²</span>
  200.                                             <span class="white">surface d’habitation</span>
  201.                                         </p>
  202.                                     {% endif %}
  203.                                     {% if advert.info.nombre_chambres and advert.info.nombre_chambres > 0 %}
  204.                                         <p>
  205.                                             <img src="{{ asset('img/icons/chambres.svg') }}" class="mr-3">
  206.                                             <span class="gold">{{ advert.info.nombre_chambres }}</span>
  207.                                             <span class="white">chambre{% if advert.info.nombre_chambres > 1 %}s{% endif %} à coucher</span>
  208.                                         </p>
  209.                                     {% endif %}
  210.                                     {% if advert.pieces.salles_de_bain and advert.pieces.salles_de_bain > 0 %}
  211.                                         <p>
  212.                                             <img src="{{ asset('img/icons/salles-bain.svg') }}" class="mr-3">
  213.                                             <span class="gold">{{ advert.pieces.salles_de_bain }}</span>
  214.                                             <span class="white">salle{% if advert.pieces.salles_de_bain > 1 %}s{% endif %} de bain</span>
  215.                                         </p>
  216.                                     {% endif %}
  217.                                     {% if advert.parking.garages and advert.parking.garages > 0 %}
  218.                                         <p>
  219.                                             <img src="{{ asset('img/icons/garage.svg') }}" class="mr-3">
  220.                                             <span class="gold">{{ advert.parking.garages }}</span>
  221.                                             <span class="white">garage{% if advert.parking.garages > 1 %}s{% endif %}</span>
  222.                                         </p>
  223.                                     {% endif %}
  224.                                     {% if parkings > 0 %}
  225.                                         <p>
  226.                                             <img src="{{ asset('img/icons/parking.svg') }}" class="mr-3">
  227.                                             {% if parkingsExt > 0 %}
  228.                                                 <span class="gold">{{ parkingsExt }}</span>
  229.                                                 <span class="white">parking{% if parkingsExt > 1 %}s{% endif %} extérieur{% if parkingsExt > 1 %}s{% endif %}</span>
  230.                                             {% endif %}
  231.                                             {% if parkingsouterrain > 0 %}
  232.                                                 {% if parkingsExt > 0 %}
  233.                                                     <span class="white">et</span>
  234.                                                 {% endif %}
  235.                                                 <span class="gold">{{ parkingsouterrain }}</span>
  236.                                                 <span class="white">parking{% if parkingsouterrain > 1 %}s{% endif %} intérieur{% if parkingsouterrain > 1 %}s{% endif %}</span>
  237.                                             {% endif %}
  238.                                         </p>
  239.                                     {% endif %}
  240.                                 </div>
  241.                                 <a href="{{ path('front_property_single', {'id': advert.info.id, 'type': real_estate.toSlug(advert.info.nature), 'city': real_estate.toSlug(advert.localisation.ville)}) }}"
  242.                                    class="btn-gold bg-gold white">Plus</a>
  243.                                 <img src="{{ asset('img/icons/chevrons-left.svg') }}"
  244.                                      class="chevrons-left position-absolute">
  245.                             </div>
  246.                         </div>
  247.                     </li>
  248.                 {% endfor %}
  249.             </ul>
  250.             <div class="navigation">
  251.                 {{ knp_pagination_render(adverts) }}
  252.             </div>
  253.         </div>
  254.     </section>
  255. {% endblock %}
  256. {% block javascript %}
  257. <script>
  258.     $(document).ready(function(){
  259.     $('.img-slide').slick({
  260.         'prevArrow': '<button class="slick-prev slick-arrow" aria-label="Previous" type="button" style=""><i class="fas fa-arrow-left fa-2x"></i></button>',
  261.         'nextArrow': '<button class="slick-next slick-arrow" aria-label="Next" type="button" style=""><i class="fas fa-arrow-right fa-2x"></i></button>',
  262.     });
  263. });
  264. </script>
  265. {% endblock %}