templates/component/offer_slider.html.twig line 1

Open in your IDE?
  1. {#
  2.     component: offer slider
  3.     heading: [{
  4.         title {string}: Titre 
  5.         titleAnnex {string}: Titre annexe
  6.     }]
  7.     text {string}: Text d'introduction du slider
  8.     items: [{
  9.         name {string}: Nom de l'offre
  10.         text {string}: Texte de l'offre
  11.         type {string}: Type de l'offre
  12.         time {string}: Temps de l'offre
  13.         image {image}: Image de l'offre
  14.             size: {
  15.                 width: "780",
  16.                 height: "430"
  17.             }
  18.         price {string}: Prix final de l'offre
  19.         realPrice {string}: Prix de départ de l'offre
  20.         links: [{
  21.             text {string}: Texte du lien
  22.             to {string}: Lien
  23.         }]
  24.     }]
  25. #}
  26. {% set props = {
  27.   heading: null,
  28.   items: [],
  29.   text:null
  30. }|merge(props|default({}))  %}
  31. <section data-component="offer-slider" class="OfferSlider-component">
  32.     {# Heading #}
  33.     {% include "component/heading.html.twig" with {
  34.         props: props.heading
  35.     } only %}
  36.     <div class="l-container">
  37.         {# Text #}
  38.         {% if props.text %}
  39.             <div class="l-row u-center">
  40.                 <p class="l-column OfferSlider-text">{{ props.text }}</p>
  41.             </div>
  42.         {% endif %}
  43.         <div class="l-row OfferSlider-list" ref="container">
  44.             {% for item in props.items %}
  45.                 <div class="l-column OfferSlider-listItem" ref="items" {% if (item.link.to is not defined or not item.link.to) and  item.indexCalendar is  defined %} data-index="0" data-indexcalendar="{{ item.indexCalendar }}" data-id="{{ item.idCare }}" data-mindays="{{ item.minDays }}" data-maxdays="{{ item.maxDays }}" {% endif %} {% if item.aquao is defined %}data-aquao="{{item.aquao}}"{% endif %}>
  46.                     <div class="OfferSlider-Item">
  47.                         {# Image #}
  48.                         <div class="OfferSlider-listItemImageRatioHelper" ref="images">
  49.                             <div>
  50.                                 {% include "component/image.html.twig" with {
  51.                                     props: item.image
  52.                                 } %}
  53.                                 {# {% include "component/picture.html.twig" with {
  54.                                     props: item.image|merge({
  55.                                         srcWebp: (item.image.src) ? asset(item.image.src | imagine_filter('convert_img_to_webp')) : ''
  56.                                     })
  57.                                 } %} #}
  58.                             </div>
  59.                         </div>
  60.                         {# Content card #}
  61.                         <div class="OfferSlider-listItemCard {% if item.realPrice is defined and item.realPrice  %} discount  {% endif  %} ">
  62.                             {# Heading #}
  63.                             <div
  64.                                 class="OfferSlider-listItemContent">
  65.                                 {# Type #}
  66.                                 {% if item.type is defined %}
  67.                                     <p class="OfferSlider-listItemType">{{ item.type }}</p>
  68.                                 {% endif %}
  69.                                 {# Name #}
  70.                                 <p class="OfferSlider-listItemName">{{ item.name|raw }}</p>
  71.                                 {# Time #}
  72.                                 {% if item.time is defined %}
  73.                                     <div class="OfferSlider-listItemTimeWrapper">
  74.                                         {# Schedule icon #}
  75.                                         {% include "component/svg.html.twig" with {
  76.                                             props: {
  77.                                                 name: 'schedule'
  78.                                             }
  79.                                         } %}
  80.                                         {# Time #}
  81.                                         <p class="OfferSlider-listItemTime">{{ item.time }}</p>
  82.                                     </div>
  83.                                 {% endif %}
  84.                                 {# Text #}
  85.                                 {% if item.text is defined %}
  86.                                     <p class="OfferSlider-listItemText">{{ item.text|raw }}</p>
  87.                                 {% endif %}
  88.                             </div>
  89.                             {# Booking #}
  90.                             <div class="OfferSlider-listItemBooking">
  91.                                 {# Price #}
  92.                                 <div class="OfferSlider-listItemPriceContainer">
  93.                                     <p class="OfferSlider-listItemPriceFrom">{{ item.priceFrom }}</p>
  94.                                     <p class="OfferSlider-listItemPrice">{{ item.price }}</p>
  95.                                     {% if item.realPrice is defined and item.realPrice  %}
  96.                                         <p class="OfferSlider-listItemRealPriceFrom">{{ item.realPriceMention }}</p>
  97.                                         <p class="OfferSlider-listItemRealPrice">{{ item.realPrice }}</p>
  98.                                     {% endif %}
  99.                                 </div>
  100.                                 {# Link #}
  101.                                 {% include "component/button.html.twig" with {
  102.                                     props: item.link
  103.                                 } %}
  104.                             </div>
  105.                         </div>
  106.                     </div>
  107.                 </div>
  108.             {% endfor %}
  109.         </div>
  110.         {% if props.items|length > 1 %}
  111.             {# Nav #}
  112.             <div
  113.                 class="1-row OfferSlider-nav">
  114.                 {# Arrows #}
  115.                 <div
  116.                     class="OfferSlider-navButtons">
  117.                     {# Previous button #}
  118.                     <button ref="previousButton" class="OfferSlider-navButton OfferSlider-navPreviousButton NavPreviousButton">
  119.                         {% include "component/svg.html.twig" with {
  120.                         props: {
  121.                             name: 'arrow-left'
  122.                         }    
  123.                     } %}
  124.                         {% include "component/svg.html.twig" with {
  125.                         props: {
  126.                             name: 'arrow-left'
  127.                         }    
  128.                     } %}
  129.                     </button>
  130.                     {# Next button #}
  131.                     <button ref="nextButton" class="OfferSlider-navButton OfferSlider-navNextButton NavNextButton">
  132.                         {% include "component/svg.html.twig" with {
  133.                         props: {
  134.                             name: 'arrow-right'
  135.                         }
  136.                     } %}
  137.                         {% include "component/svg.html.twig" with {
  138.                         props: {
  139.                             name: 'arrow-right'
  140.                         }
  141.                     } %}
  142.                     </button>
  143.                 </div>
  144.             </div>
  145.         {% endif %}
  146.     </div>
  147. </section>