{#
page: home
#}
{% extends "layouts/base.html.twig" %}
{% set jsPageId = 'residence-home' %}
{% set pageClass = 'ResidencePage ResidenceHome' %}
{% block content %}
{# Header #}
{% include "component/header.html.twig" with {
props: {
langs: [{
value: 'fr',
to: '/',
active: (app.request.getLocale() == 'fr') ? true : false
},{
value: 'en',
to: '/en',
active: (app.request.getLocale() == 'en') ? true : false
}],
account:{
link: path("app_signin", { '_locale': app.request.getLocale() }),
text: "myaccount.title"|trans
}
}
} only %}
{# Modal #}
{% set first_visite = app.session.get("first_visite") %}
{% if first_visite %}
{% set cta = null %}
{% if frontservice.getPopinContent('label_url', lang) and frontservice.getPopinContent('lien_url', lang) %}
{% set cta = {
text: frontservice.getPopinContent('label_url', lang),
to: frontservice.getPopinContent('lien_url', lang),
} %}
{% endif %}
{% include "component/modal.html.twig" with {
props: {
title: frontservice.getPopinContent('titre', lang),
text: frontservice.getPopinContent('description', lang),
button: cta,
image: frontservice.getMediaPublicUrl(frontservice.getPopinContent('image', lang), 'reference',''),
open: frontservice.getPopinContent('actif')
}
} only %}
{% endif %}
{# Hero content #}
{% include "component/hero_content.html.twig" with {
props: {
heading: {
title: frontservice.getHeaderFields(page, 'header_titre', lang)|nl2br,
titleAnnex: frontservice.getHeaderFields(page, 'header_sur_titre', lang)|nl2br
},
background: frontservice.getMediaPublicUrl(page.headerImage, 'reference', frontservice.getHeaderFields(page, 'alt_header_img', lang)),
video:(frontservice.getHeaderVideo(page)) ? {
type:'video/mp4',
src: asset(frontservice.getHeaderVideo(page))
} : null
}
} only %}
{# Filter Bar #}
{% include "component/header/filter_bar.html.twig" with {
props:{
bookingtitle:"booking.title"|trans,
},
data: {
selected: [
{
label: "Réserver un appartement",
set: ["calendar","adults","children","duration"]
}
],
setsitems: [
{
item: "calendar",
label: "Arrivée",
icon: "calendar",
value: 0,
},
{
item: "adults",
label: "Adultes",
icon: "adult",
value: "1",
values: [
"1 adulte",
"2 adultes",
"3 adultes",
"4 adultes"
],
},
{
item: "children",
label: "Enfants",
icon: "child",
value: "0",
values: [
"0 enfant",
"1 enfant",
"2 enfants",
"3 enfants",
"4 enfants"
],
},
{
item: "duration",
label: "Durée du séjour",
icon: "moon",
value: "1",
values: [
"1 jour",
"2 jours",
"3 jours"
],
},
]
}
} only %}
{% if composants %}
{% for composant in composants %}
{% if frontservice.getContentField(composant, 'masquer', lang) != 1 %}
{% set layout_sens = 1 %}
{% if composant.sensAffichage == 'gauche' %}
{% set layout_sens = 1 %}
{% elseif composant.sensAffichage == 'droite' %}
{% set layout_sens = 2 %}
{% endif %}
{% set img_principale = frontservice.getMediaPublicUrl(composant.imagePrincipal, 'big', frontservice.getContentField(composant, 'alt_p', lang)) %}
{% set img_secondaire = frontservice.getMediaPublicUrl(composant.imageSecondaire, 'big', frontservice.getContentField(composant, 'alt_s', lang)) %}
{% set description = frontservice.getContentField(composant, 'description', lang) %}
{% set intro_description = frontservice.getContentField(composant, 'intro_description', lang) %}
{% set titre_principal = frontservice.getContentField(composant, 'titre_principal', lang)|nl2br %}
{% set titre_principal_riche = frontservice.getContentField(composant, 'titre_principal_rich', lang)|replace({'<p>': '', '</p>': ''}) %}
{% set surtitre = frontservice.getContentField(composant, 'surtitre', lang) %}
{% set label_lien_principal = frontservice.getContentField(composant, 'label_lien_principal', lang) %}
{% set url = '' %} {% set links = null %}
{% if composant.urlLienPrincipalPage %}
{% set url = frontservice.getUrlPage(composant.urlLienPrincipalPage, lang) %}
{% else %}
{% set url = frontservice.getContentField(composant, 'url_lien_principal', lang) %}
{% endif %}
{% if url and label_lien_principal %}
{% set links = [] %}
{% set links = links|merge([{
text: label_lien_principal,
title: label_lien_principal,
to: url
}]) %}
{% endif %}
{# Home introduction #}
{% if composant.cmsComposant.nomTechniqueComposant == "component/home_introduction.html.twig" %}
{% include "component/home_introduction.html.twig" with {
props: {
heading: {
title: titre_principal_riche,
titleAnnex: surtitre
},
text: description,
firstImage: img_principale,
secondImage: img_secondaire,
shape:{
src:asset('build/images/01_HOME_01.png'),
backgroundcolor:true
}
}
} %}
{% endif %}
{# Text image #}
{% if composant.cmsComposant.nomTechniqueComposant == "component/text_image.html.twig" %}
{% include "component/text_image.html.twig" with {
props: {
layout: layout_sens,
heading: {
title: titre_principal,
titleAnnex: surtitre
},
text: '<p class="intro">'~ intro_description ~'</p><p>'~ description ~'</p>',
links: links,
image: img_principale,
}
} %}
{% endif %}
{# Image slider #}
{% if composant.cmsComposant.nomTechniqueComposant == "component/image_slider.html.twig" %}
{% set image_slider_items = composant.getCmsPageBlockComposantItems() %}
{% set content = [] %}
{% if image_slider_items %}
{% for item in image_slider_items %}
{% set masquer = frontservice.getContentItemField(item, 'masquer', lang) %}
{% if masquer != 1 %}
{% set image = frontservice.getMediaPublicUrl(item.imagePrincipal, 'big', frontservice.getContentItemField(item, 'alt_p', lang)) %}
{% set image = image|merge({lazyload:false}) %}
{% set content = content|merge([{
title: frontservice.getContentItemField(item, 'titre_principal', lang)|replace({"\n": "<br />"})|raw,
image: image
}])
%}
{% endif %}
{% endfor %}
{% endif %}
{% include "component/image_slider.html.twig" with {
props: {
heading:{
title: titre_principal,
titleAnnex: surtitre
},
items: content
}
} %}
{% endif %}
{# Accordion content #}
{% if composant.cmsComposant.nomTechniqueComposant == "component/accordion_content.html.twig" %}
{% set accordion_content_items = composant.getCmsPageBlockComposantItems() %}
{% set content = [] %}
{% if accordion_content_items %}
{% for item in accordion_content_items %}
{% set masquer = frontservice.getContentItemField(item, 'masquer', lang) %}
{% if masquer != 1 %}
{% set all_links = null %}
{% set item_url = null %}
{% if item.urlLienPrincipalPage %}
{% set item_url = frontservice.getUrlPage(item.urlLienPrincipalPage, lang) %}
{% else %}
{% set item_url = frontservice.getContentItemField(item, 'url_lien_principal', lang) %}
{% endif %}
{% if item_url and frontservice.getContentItemField(item, 'label_lien_principal', lang) %}
{% set all_links = [] %}
{% set all_links = all_links|merge([{
text: frontservice.getContentItemField(item, 'label_lien_principal', lang),
to: item_url
}]) %}
{% endif %}
{% set image = frontservice.getMediaPublicUrl(item.imagePrincipal, 'big', frontservice.getContentItemField(item, 'alt_p', lang)) %}
{% set content = content|merge([{
title: frontservice.getContentItemField(item, 'titre_principal', lang)|replace({"\n": "<br />"})|raw,
text: frontservice.getContentItemField(item, 'description', lang) ,
image: image,
links: all_links
}]) %}
{% endif %}
{% endfor %}
{% endif %}
{% include "component/accordion_content.html.twig" with {
props: {
layout: layout_sens,
contents: content
}
} %}
{% endif %}
{# Discover suites #}
{% if composant.cmsComposant.nomTechniqueComposant == "component/discover_suites.html.twig" %}
{% include "component/discover_suites.html.twig" with {
props: {
heading: {
title: titre_principal,
titleAnnex: surtitre
},
text: '<p style="position:relative; display:block;">'~ description ~'</p>',
link: (links) ? links|first : null,
image: img_principale,
}
} %}
{% endif %}
{# Stay informed #}
{% if composant.cmsComposant.nomTechniqueComposant == "component/stay_informed.html.twig" %}
{% set stay_informed_items = composant.getCmsPageBlockComposantItems() %}
{% set content = [] %}
{% if stay_informed_items %}
{% for item in stay_informed_items %}
{% set item_url = '#' %}
{% if item.urlLienPrincipalPage %}
{% set item_url = frontservice.getUrlPage(item.urlLienPrincipalPage, lang) %}
{% else %}
{% set item_url = frontservice.getContentItemField(item, 'url_lien_principal', lang) %}
{% endif %}
{% set content = content|merge([{
title: frontservice.getContentItemField(item, 'titre_principal', lang)|replace({"\n": "<br />"})|raw,
subtitle: frontservice.getContentItemField(item, 'soustitre', lang),
to: item_url,
image: frontservice.getMediaPublicUrl(item.imagePrincipal, 'big', frontservice.getContentItemField(item, 'alt_p', lang))
}])
%}
{% endfor %}
{% endif %}
{% include "component/stay_informed.html.twig" with {
props: {
heading: {
title: titre_principal,
titleAnnex: surtitre
},
contents: content
}
} %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{# Footer #}
{% include "component/footer.html.twig" %}
{% endblock %}