templates/pages/akaru/residence/index.html.twig line 1

Open in your IDE?
  1. {#
  2.     page: home
  3. #}
  4. {% extends "layouts/base.html.twig" %}
  5. {% set jsPageId = 'residence-home' %}
  6. {% set pageClass = 'ResidencePage ResidenceHome' %}
  7. {% block content %}
  8.     {# Header #}
  9.     {% include "component/header.html.twig" with {
  10.     props: {
  11.       langs: [{
  12.         value: 'fr',
  13.         to: '/',
  14.         active: (app.request.getLocale() == 'fr') ? true : false
  15.       },{
  16.         value: 'en',
  17.         to: '/en',
  18.         active: (app.request.getLocale() == 'en') ? true : false
  19.       }],
  20.       account:{
  21.         link: path("app_signin", { '_locale': app.request.getLocale() }),
  22.         text: "myaccount.title"|trans
  23.       }
  24.     }
  25.   } only %}
  26.   {# Modal #}
  27.   {% set first_visite = app.session.get("first_visite") %}
  28.   {% if first_visite %}
  29.     {% set cta = null %}
  30.     {% if frontservice.getPopinContent('label_url', lang) and frontservice.getPopinContent('lien_url', lang) %}
  31.       {% set cta = {
  32.         text: frontservice.getPopinContent('label_url', lang),
  33.         to: frontservice.getPopinContent('lien_url', lang),
  34.       } %}
  35.     {% endif %} 
  36.       {% include "component/modal.html.twig" with {
  37.         props: {
  38.           title: frontservice.getPopinContent('titre', lang),
  39.           text: frontservice.getPopinContent('description', lang),
  40.           button: cta,
  41.           image: frontservice.getMediaPublicUrl(frontservice.getPopinContent('image', lang), 'reference',''),
  42.           open: frontservice.getPopinContent('actif')
  43.         }
  44.       } only %}
  45.   {% endif %}
  46.     {# Hero content #}
  47.   {% include "component/hero_content.html.twig" with {
  48.     props: {
  49.       heading: {
  50.         title:  frontservice.getHeaderFields(page, 'header_titre', lang)|nl2br,
  51.         titleAnnex: frontservice.getHeaderFields(page, 'header_sur_titre', lang)|nl2br
  52.       },
  53.       background: frontservice.getMediaPublicUrl(page.headerImage, 'reference', frontservice.getHeaderFields(page, 'alt_header_img', lang)),
  54.       video:(frontservice.getHeaderVideo(page)) ? {
  55.         type:'video/mp4',
  56.         src: asset(frontservice.getHeaderVideo(page))
  57.       } : null
  58.     }
  59.   } only %}
  60.     {# Filter Bar #}
  61.     {% include "component/header/filter_bar.html.twig" with {
  62.     props:{
  63.       bookingtitle:"booking.title"|trans,
  64.     },
  65.     data: {
  66.         selected: [
  67.         {
  68.           label: "Réserver un appartement",
  69.           set: ["calendar","adults","children","duration"]
  70.         }
  71.       ],
  72.       setsitems: [
  73.         {
  74.           item: "calendar",
  75.           label: "Arrivée",
  76.           icon: "calendar",
  77.           value: 0,
  78.         },
  79.         {
  80.           item: "adults",
  81.           label: "Adultes",
  82.           icon: "adult",
  83.           value: "1",
  84.           values: [
  85.             "1 adulte",
  86.             "2 adultes",
  87.             "3 adultes",
  88.             "4 adultes"
  89.           ],
  90.         },
  91.         {
  92.           item: "children",
  93.           label: "Enfants",
  94.           icon: "child",
  95.           value: "0",
  96.           values: [
  97.             "0 enfant",
  98.             "1 enfant",
  99.             "2 enfants",
  100.             "3 enfants",
  101.             "4 enfants"
  102.           ],
  103.         },
  104.         {
  105.           item: "duration",
  106.           label: "Durée du séjour",
  107.           icon: "moon",
  108.           value: "1",
  109.           values: [
  110.             "1 jour",
  111.             "2 jours",
  112.             "3 jours"
  113.           ],
  114.         },
  115.       ]
  116.     }
  117.   } only %}
  118.   {% if composants %}
  119.     {% for composant in composants %}
  120.     {% if frontservice.getContentField(composant, 'masquer', lang) != 1 %}
  121.     
  122.       {% set layout_sens = 1 %}
  123.       {% if composant.sensAffichage == 'gauche' %}
  124.           {% set layout_sens = 1 %}
  125.       {% elseif composant.sensAffichage == 'droite'  %}
  126.           {% set layout_sens = 2 %}    
  127.       {% endif %}
  128.       {% set img_principale =  frontservice.getMediaPublicUrl(composant.imagePrincipal, 'big', frontservice.getContentField(composant, 'alt_p', lang)) %}
  129.       {% set img_secondaire =  frontservice.getMediaPublicUrl(composant.imageSecondaire, 'big', frontservice.getContentField(composant, 'alt_s', lang)) %}
  130.       {% set description = frontservice.getContentField(composant, 'description', lang) %}
  131.       {% set intro_description = frontservice.getContentField(composant, 'intro_description', lang) %}
  132.       {% set titre_principal = frontservice.getContentField(composant, 'titre_principal', lang)|nl2br %}
  133.       {% set titre_principal_riche = frontservice.getContentField(composant, 'titre_principal_rich', lang)|replace({'<p>': '', '</p>': ''}) %}
  134.       {% set surtitre = frontservice.getContentField(composant, 'surtitre', lang) %}
  135.       {% set label_lien_principal = frontservice.getContentField(composant, 'label_lien_principal', lang) %}
  136.       {% set url = '' %} {% set links = null %}
  137.       {% if composant.urlLienPrincipalPage %}
  138.           {% set url = frontservice.getUrlPage(composant.urlLienPrincipalPage, lang) %}
  139.       {% else %}
  140.           {% set url = frontservice.getContentField(composant, 'url_lien_principal', lang) %}
  141.       {% endif %}
  142.       {% if url and label_lien_principal %}
  143.         {% set links = [] %}
  144.         {% set links = links|merge([{
  145.           text: label_lien_principal,
  146.           title: label_lien_principal,
  147.           to: url
  148.         }]) %}
  149.       {% endif %}
  150.       {# Home introduction #}
  151.       {% if composant.cmsComposant.nomTechniqueComposant == "component/home_introduction.html.twig" %}
  152.         {% include "component/home_introduction.html.twig" with {
  153.           props: {
  154.             heading: {
  155.               title: titre_principal_riche,
  156.               titleAnnex: surtitre
  157.             },
  158.             text: description,
  159.             firstImage: img_principale,
  160.             secondImage: img_secondaire,
  161.             shape:{
  162.               src:asset('build/images/01_HOME_01.png'),
  163.               backgroundcolor:true
  164.             }
  165.           }
  166.         } %}
  167.       {% endif %}
  168.       {# Text image #}
  169.       {% if composant.cmsComposant.nomTechniqueComposant == "component/text_image.html.twig" %}
  170.         {% include "component/text_image.html.twig" with {
  171.           props: {
  172.             layout: layout_sens,
  173.             heading: {
  174.               title: titre_principal,
  175.               titleAnnex: surtitre
  176.             },
  177.             text: '<p class="intro">'~ intro_description ~'</p><p>'~ description ~'</p>',
  178.             links: links,
  179.             image: img_principale,
  180.           }
  181.         } %}
  182.       {% endif %}
  183.       {# Image slider #}
  184.       {% if composant.cmsComposant.nomTechniqueComposant == "component/image_slider.html.twig" %}
  185.         {% set image_slider_items = composant.getCmsPageBlockComposantItems() %}
  186.         {% set content = [] %}
  187.         {% if image_slider_items %}
  188.             {% for item in image_slider_items %} 
  189.               {% set masquer = frontservice.getContentItemField(item, 'masquer', lang) %}
  190.               {% if masquer != 1 %}
  191.                 {% set image =  frontservice.getMediaPublicUrl(item.imagePrincipal, 'big', frontservice.getContentItemField(item, 'alt_p', lang)) %}
  192.                 {% set image = image|merge({lazyload:false}) %}
  193.                 {% set content = content|merge([{
  194.                       title: frontservice.getContentItemField(item, 'titre_principal', lang)|replace({"\n": "<br />"})|raw,
  195.                       image: image
  196.                   }]) 
  197.                 %}
  198.               {% endif %}
  199.             {% endfor %} 
  200.         {% endif %}
  201.         {% include "component/image_slider.html.twig" with {
  202.           props: {
  203.             heading:{
  204.               title: titre_principal,
  205.               titleAnnex: surtitre
  206.             },
  207.             items: content
  208.           }
  209.         } %}
  210.       {% endif %}
  211.       {# Accordion content #}
  212.       {% if composant.cmsComposant.nomTechniqueComposant == "component/accordion_content.html.twig" %}
  213.         {% set accordion_content_items = composant.getCmsPageBlockComposantItems() %}
  214.         {% set content = [] %}
  215.         {% if accordion_content_items %}
  216.             {% for item in accordion_content_items %} 
  217.               {% set masquer = frontservice.getContentItemField(item, 'masquer', lang) %}
  218.               {% if masquer != 1 %}
  219.                   {% set all_links = null %}
  220.                   {% set item_url = null %}
  221.                   {% if item.urlLienPrincipalPage %}
  222.                       {% set item_url = frontservice.getUrlPage(item.urlLienPrincipalPage, lang) %}
  223.                   {% else %}
  224.                       {% set item_url = frontservice.getContentItemField(item, 'url_lien_principal', lang) %}
  225.                   {% endif %}
  226.                   {% if item_url and frontservice.getContentItemField(item, 'label_lien_principal', lang) %}
  227.                     {% set all_links = [] %}  
  228.                     {% set all_links = all_links|merge([{
  229.                                 text: frontservice.getContentItemField(item, 'label_lien_principal', lang),
  230.                                 to: item_url
  231.                     }]) %} 
  232.                   {% endif %}
  233.                   {% set image =  frontservice.getMediaPublicUrl(item.imagePrincipal, 'big', frontservice.getContentItemField(item, 'alt_p', lang)) %}
  234.                   {% set content = content|merge([{
  235.                           title: frontservice.getContentItemField(item, 'titre_principal', lang)|replace({"\n": "<br />"})|raw,
  236.                           text: frontservice.getContentItemField(item, 'description', lang) ,
  237.                           image: image,
  238.                           links: all_links
  239.                   }]) %}
  240.               {% endif %}
  241.             {% endfor %} 
  242.         {% endif %}
  243.         {% include "component/accordion_content.html.twig" with {
  244.           props: {
  245.             layout: layout_sens,
  246.             contents: content
  247.           }
  248.         } %}
  249.       {% endif %}
  250.       {# Discover suites #}
  251.       {% if composant.cmsComposant.nomTechniqueComposant == "component/discover_suites.html.twig" %}
  252.             {% include "component/discover_suites.html.twig" with {
  253.               props: {
  254.                 heading: {
  255.                   title: titre_principal,
  256.                   titleAnnex: surtitre
  257.                 },
  258.                 text: '<p style="position:relative; display:block;">'~ description ~'</p>',
  259.                 link: (links) ? links|first : null,
  260.                 image: img_principale,
  261.               }
  262.             } %}
  263.       {% endif %}
  264.       {# Stay informed #}
  265.       {% if composant.cmsComposant.nomTechniqueComposant == "component/stay_informed.html.twig" %}
  266.             {% set stay_informed_items = composant.getCmsPageBlockComposantItems() %}
  267.             {% set content = [] %}
  268.             {% if stay_informed_items %}
  269.                 {% for item in stay_informed_items %}
  270.                   {% set item_url = '#' %}
  271.                   {% if item.urlLienPrincipalPage %}
  272.                       {% set item_url = frontservice.getUrlPage(item.urlLienPrincipalPage, lang) %}
  273.                   {% else %}
  274.                       {% set item_url = frontservice.getContentItemField(item, 'url_lien_principal', lang) %}
  275.                   {% endif %}
  276.                   {% set content = content|merge([{
  277.                             title: frontservice.getContentItemField(item, 'titre_principal', lang)|replace({"\n": "<br />"})|raw,
  278.                             subtitle: frontservice.getContentItemField(item, 'soustitre', lang),
  279.                             to: item_url,
  280.                             image: frontservice.getMediaPublicUrl(item.imagePrincipal, 'big', frontservice.getContentItemField(item, 'alt_p', lang))
  281.                         }]) 
  282.                   %}
  283.                 {% endfor %} 
  284.             {% endif %}
  285.             {% include "component/stay_informed.html.twig" with {
  286.               props: {
  287.                 heading: {
  288.                   title: titre_principal,
  289.                   titleAnnex: surtitre
  290.                 },
  291.                 contents: content
  292.               }
  293.             } %}
  294.       {% endif %}
  295.     {% endif %}
  296.     {% endfor %}
  297.   {% endif %}
  298.     {# Footer #}
  299.     {% include "component/footer.html.twig" %}
  300. {% endblock %}