{% extends 'base-V3.html.twig' %}
{% block stylesheets %}
<!--
<link rel="stylesheet" href="{#{ asset('assets/v3/css/homepage.css') }#}">
-->
<link rel="stylesheet" href="{{ asset('assets/v3/css/swiper.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/v3/css/theme.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/v3/css/flatpickr.min.css') }}">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Sacramento&display=swap" rel="stylesheet">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<style>
{% set cdn = "/cdn-cgi/image/width=1600" %}
.destination-voyages-en-couple {
/* background-image: url({{ api_base_path ~ cdn ~ "/images/Visuel-encouple-odasie1.png"}} ); */
background-image: url("../../assets/images/thematiques/voyages-en-couple.svg")
background-size: cover;
}
.destination-voyages-en-famille {
background-image: url({{ api_base_path ~ cdn ~ "/images/Visuel-enfamille-odasie.png"}} );
background-size: cover;
}
.destination-voyages-entre-amis {
background-image: url({{ api_base_path ~ cdn ~ "/images/Visuel-entreamis-odasie.png"}} );
background-size: cover;
}
.destination-voyages-en-groupe {
background-image: url({{ api_base_path ~ cdn ~ "/images/Visuel-group2-odasie.png"}} );
background-size: cover;
}
.destination-voyages-de-noces {
background-image: url({{ api_base_path ~ cdn ~ "/images/Visuel-noces-odasie.png"}} );
background-size: cover;
}
.destination-all {
background-image: url({{ api_base_path ~ cdn ~ "/images/destinations.jpg"}} );
background-size: cover;
}
body, html {
overflow-x: hidden;
}
{% set cdn = '/cdn-cgi/image/width=1600' %}
#search-container-wrapper {
/* background-image: url('../../assets/images/thematiques/header-background.png'); */
background-image: url("{{ api_base_path ~ cdn ~ '/images/thematiques/header-background.png' }}");
background-color: #0c629b;
background-blend-mode: multiply;
flex-direction: column;
align-items: center;
justify-content: unset;
position: relative;
overflow: hidden;
height: 1100px;
max-height: unset !important;
}
/* #search-container-wrapper::before {
content: '';
width: 100%;
height: 100%;
position: absolute;
}
.blueLayer {
position: absolute;
width: 100%;
height: 100%;
background-color: rgba(0, 58, 98, 0.7);
} */
.tourtype-title-container {
display: flex;
flex-direction: column;
align-items: center;
z-index: 5;
padding-top: 20px;
}
.voyage {
font-family: 'Roboto', sans-serif;
color: #FFC20E;
font-size: 110px;
font-weight: 700;
text-transform: uppercase;
}
.tour-type-libelle {
font-family: 'Sacramento', cursive;
font-size: 170px;
color: white;
color: white;
line-height: 0;
margin-bottom: 120px;
color: white;
}
.visuelHeader {
margin-bottom: 50px;
position: relative;
/* width: 722px; */
max-width: 722px;
max-height: 500px;
height: 500px;
display: flex;
justify-content: center;
padding: 0 20px;
}
.header-contact-button {
background-color: #FFC20E;
font-family: 'Roboto', sans-serif;
font-size: 16px;
font-weight: 300;
padding: 5px 25px;
border-radius: 25px;
z-index: 5;
text-align: center
}
.toursContainer {
position: relative;
}
.format {
height: 350px;
position: absolute;
top: -250px;
left: 50%;
transform: translateX(-50%);
background-color: white;
z-index: 10;
width: 100%;
clip-path: ellipse(60% 80% at 50% 100%);
}
/*.toursContainer::before {
content: '';
position: absolute;
top: -160px;
left: 50%;
width: 100%;
height: 320px;
background-color: white;
border-radius: 50%;
transform: translateX(-50%);
}
.tourSectionTitleWrapper {
position: absolute;
left: 50%;
top: -100px;
transform: translateX(-50%);
margin: 0 !important;
}*/
.tourSectionTitleWrapper {
position: absolute;
left: 50%;
transform: translateX(-50%);
top: -100px;
z-index: 15;
padding: 0;
margin: 0 !important;
}
.tourSectionTitle {
font-family: 'Roboto', sans-serif;
font-size: 40px;
font-weight: 400;
position: relative;
z-index: 10;
}
#nos-tours {
position: relative;
z-index: 10;
padding-top: 20px;
}
.tour-card-introduction {
overflow-y: hidden !important;
}
.odasiePlus-section {
position: relative;
z-index: 10;
}
/* media queries under 1365px */
/* @media screen and (max-width: 1365px) {
.tour-card-background {
height: auto !important;
margin: -25% auto !important;
}
.tour-card-image {
overflow-y: hidden !important;
}
} */
.loadingSpeed {
filter: blur(10px); /* Appliquer un flou initial */
transition: filter 0.5s ease; /* Ajouter une transition pour l'effet de fondu */
}
.loadingSpeed.loaded {
filter: none; /* Supprimer le filtre une fois l'image chargée */
transition: filter 0.5s ease;
}
.paysVignette{
position: absolute;
right: 0;
border-radius: 0 10px 0 0;
padding: 5px 10px;
background: rgb(253, 29, 29);
background: linear-gradient(90deg, rgb(219, 25, 25) 0%, rgb(255, 98, 36) 100%);
color: #fff;
z-index: 999;
}
.lieuFlex ul{
display: flex;
justify-content: center;
}
.highlights{
background-color: #D9D9D9;
}
#tourCard {
height: 550px !important;
}
.tour-suggestions {
width: 95%;
overflow: hidden;
margin-top: 30px;
margin-bottom: 20px;
padding-bottom: 60px;
z-index: 5;
}
.tour-suggestions h2 {
text-align: center;
color: #FFFFFF;
margin-bottom: 10px;
margin-top: 30px;
}
.subtitle-roboto {
font-size: 40px;
}
.subtitle-sacramento {
font-family: "Sacramento", cursive;
font-size: 64px;
}
.tour-cards-container {
height: 500px;
overflow-x: auto;
display: flex;
justify-content: start;
margin-left: 4%;
}
.tour {
margin-right: 8px;
}
.tour-card {
width: 320px !important;
height: 460px !important;
min-height: 0 !important;
border-radius: 11px;
font-family: "Roboto", sans-serif;
display: flex;
flex-direction: column;
position: relative;
}
.tour-card::after {
content: "";
border-radius: 11px;
position: absolute;
top: 0;
left: 0;
right: 0;
left: 0;
background-color: inherit !important;
}
.tour-card:hover::after {
bottom: -40px;
z-index: -5;
}
.tour-card:hover .tour-card-hover {
opacity: 1;
}
.tour-card-image {
width: 100%;
height: 50%;
position: relative;
}
.tour-card-background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 11px 11px 0 0;
transition: 0.3s ease-in-out;
}
.tour-card:hover .tour-card-background {
filter: brightness(130%);
}
.tour-card .content {
height: 50%;
min-height:50%;
}
.price {
position: absolute;
left: 0;
bottom: 0;
background: none !important;
background-color: #FFC20E !important;
color: black !important;
padding-left: 10px;
padding-right: 10px;
height: 26px;
border-radius: 0 11px 0 0;
text-align: center;
vertical-align: middle;
display: flex;
align-items: center;
}
.price small {
font-size: 12px;
margin-right: 10px;
}
.price strong {
font-size: 14px;
font-weight: 700;
}
.tour-card-title {
font-size: 14px !important;
font-weight: 700;
text-transform: uppercase;
line-height: normal
}
.tour-card-introduction {
font-size: 15px;
line-height: normal;
font-family: 'roboto light' !important;
font-weight: 500;
line-height:normal !important;
height: 100px !important;
max-height: 100px !important;
}
.highlights {
background-color: #D9D9D9;
font-weight: 700;
font-size: 13;
text-align: center;
display: flex;
height: 30px;
width: 100%;
justify-content: space-evenly;
overflow: hidden;
height: 50px;
}
.highlights li {
font-size: 13px;
}
.tour-suggestions-button {
margin: auto;
}
.tour-card-bottom {
font-size: 14px;
font-weight: 700;
}
.tour-card-hover {
display: flex;
width: 100%;
height: 30px;
justify-content: center;
position: absolute;
bottom: -30px;
opacity: 0;
background: none !important;
background-color: transparent;
float: none;
}
.tour-card-hover a {
width: 90% !important;
border-radius: 5px;
background-color: #34DFA1;
font-size: 12px;
float: none;
}
.discover-section {
margin-top: 40px;
margin-bottom: 30px;
width: 90%;
display: flex;
justify-content: space-between;
z-index: 5;
}
.discover-section-subtitle {
width: 50%;
display: flex;
flex-direction: column;
align-items: end;
}
.discover-section-subtitle {
text-align: end;
}
.discover-section-text-wrapper {
width: 40%
}
.discover-subtitle-roboto {
font-size: 60px;
color:#FFFFFF;
font-weight: 300;
text-transform: uppercase;
}
.discover-subtitle-sacramento {
font-family: "Sacramento", cursive;
font-size: 109px;
color:#fd5224;
margin-bottom: 10px;
}
.discover-section-text {
color:#FFFFFF;
font-size: 24px;
text-align: justify;
}
.tour-config-section {
position: relative;
width: 100%;
min-height: 680px;
margin: 0;
padding: 0;
padding-top: 30px;
display: flex;
flex-direction: column;
align-items: center;
overflow: hidden;
}
.tour-config-background {
height: 100%;
position: absolute;
top:0 ;
left: 0;
z-index: -5;
}
.tour-config-section-title {
color:#FFFFFF;
width: 100%;
font-size: 36px;
text-align: center;
margin-bottom: 30px;
}
.config-tour-form-wrapper {
width: 80%;
height: 500px;
display: flex;
justify-content: space-evenly;
}
.celebration-bottom-form {
width: 100%;
}
#form-container {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
height: 300px;
justify-content: space-between;
}
#widget-container {
color:#FFFFFF;
width: 100%;
}
.widget-number-wrapper {
display: flex;
justify-content: space-evenly;
width: 300px;
}
.widget-number-wrapper span:first-child {
font-family: 'Roboto', sans-serif;
font-size: 24px;
font-weight: 700;
}
.widget-wrapper {
display:flex;
flex-direction: column;
border: 0.5px solid white;
border-radius: 5px;
min-width: 250px;
max-width: 300px;
}
.label-wrapper {
margin-left: 10px;
position: relative;
display: flex;
height: 30px;
}
.label-wrapper:hover {
cursor: pointer;
}
.label-wrapper label {
position: absolute;
left: 30px;
top: 5px;
}
.fa-arrow-left {
padding: 0.2em;
border: 2px solid #FFFFFF;
border-radius: 50%;
margin-right: 5px;
width: 10px;
height: 10px;
margin-top: 7px;
position: absolute;
}
.arrow-down {
transform: rotate(-90deg);
}
.label-separator {
width: 90%;
height: 0.3px;
background-color: #ffffff;
margin-top: 10px;
margin-bottom: 10px;
}
.choice-wrapper {
display: flex;
width: 90%;
margin-left: 10px;
align-items: center;
}
.checkbox-input {
display: block;
width: 15px;
height: 15px;
min-width: 15px;
min-height: 15px;
border: 1px solid #ffffff;
position: relative;
display: flex;
align-items: center;
justify-content: center;
margin-right: 10px;
}
.hide-form,
.hide-datepicker {
display: none;
}
.checkbox-input-check {
width: 70%;
height: 70%;
border-radius: 2px;
background-color: #ffffff;
display: none;
}
.show-checked {
display: block;
}
.details-mobile, .price-mobile {
display: none;
}
.tour-config-buttons-wrapper {
display: flex;
flex-direction: column;
align-items: center;
height: 120px;
justify-content: space-evenly;
}
.btn-see-trip, .btn-search-trip {
border-radius: 35px;
width: 170px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
flex-wrap: nowrap;
border: 0;
}
.btn-see-trip {
background-color: #ffffff;
color: black;
font-weight: 300;
font-size: 16px;
transition: 0.5s ease;
}
.btn-see-trip:hover {
background-color:#fd5224;;
color: #ffffff;
}
.btn-search-trip {
background: transparent;
color: #ffffff;
font-size: 14px;
border: 1px solid #ffffff;
}
.btn-search-trip span {
margin-right: 5px;
}
.tour-destinations {
display: none;
}
.odasiePlus-container {
padding-right: 0;
padding-left: 0;
}
#actus-et-avis {
color: white;
/* background-color: #232323; */
background-image: url('/assets/images/pays-footer-background.png');
background-size: cover;
background-color: #002042e5;
background-blend-mode: soft-light;
position: relative;
}
.temoignage {
width: 400px;
height: 110px;
font-family: 'Roboto', sans-serif;
font-size: 12px;
font-weight 300;
padding-bottom: 10px;
margin-top: 10px;
border-bottom: 1px solid #ffffff
}
.temoignageImage {
justify-content: space-between;
align-items: center;}
.temoignageImage img {
width: 75px !important;
height: 75px !important;
border-radius: 50% !important;
}
.temoignage-auteur {
padding-left: 0 !important;
}
.temoignageContent {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.temoignageContent p {
margin: 0;
}
.temoignage-separator {
display: none;
}
.temoignages-button:hover,
.actus-button:hover {
background-color: red;
color: white !important;
justify-content: start;
transition: 0.3S ease;
}
@media screen and (max-width: 1365px) {
.separator, .separator-bottom {
display: none;
}
.tour-suggestions h2 {
display: flex;
flex-direction: column;
width: 100%;
align-items: start;
justify-content: space-between;
margin-top: 0;
}
.subtitle-roboto {
font-size: 20px
}
/* .tour-card-title {
height: unset;
min-height: none !important;
}
.subtitle-sacramento {
font-size: 40px;
}
.subtitle-optional {
display: none;
}
.tour-suggestions {
height: 310px;
width: 95%;
}
.tour-suggestions h2 {
margin-left: 10px;
}
.tour-card-container {
overflow-x: scroll;
overflow-y: hidden;
width: 100%;
height: 250px;
display: flex;
}
.tour-card-wrapper {
width: 290px;
height: 226px;
margin-right: 15px;
}
.swiper-wrapper {
height: 250px;
}
#right-sibling {
height: unset !important;
}
.tour-card {
width: 290px !important;
height: 226px !important;
border-radius: 11px;
}
.tour-card:hover .tour-card-hover,
.tour-card:hover::after {
display: none;
}
.tour-card-title {
font-weight: 400
}
.tour-card-background {
border-radius: 11px 11px 0 0
}
.tour-card-image {
width: 100%;
height: 138px;
border-radius: 11px 11px 0 0;
}
.highlights,
.voyage-duree-desktop,
.tour-card-introduction,
.price,
.tour-card-button {
display: none;
}
.tour-card-title {
width: 100%;
text-align: start;
font-size: 14px
}
.details-mobile {
display: flex;
width: 100%;
font-size: 10px;
font-family: 'Roboto', sans-serif;
color: 969696
}
.price-mobile {
display: flex;
font-size: 12px;
text-transform: lowercase;
}
.price-mobile-price {
color: #FF4601;
}
.price-mobile-person {
color: #969696;
} */
.tour-config-section-title {
width: 80%;
font-size:22px;
}
#form-container {
height: 400px;
}
#widget-container {
align-items: center;
display: flex;
flex-direction: column;
}
.widget-wrapper {
margin-bottom: 20px;
min-width: auto;
padding-right: 20px;
padding-left: 10px;
padding-top: 2px;
padding-bottom: 2px;
align-items: center;
justify-content: center;
}
.widget-number-wrapper {
margin-bottom: 0 !important;
}
.widget-number-wrapper>span {
display: none;
}
.label-wrapper {
align-items: center;
}
.label-wrapper label {
position: static;
}
.fa-arrow-left {
margin-top: 0;
position: relative;
}
.widget-label {
position: static !important;
margin-bottom: 0;
}
}
@media screen and (min-width:1366px)
and (max-width: 1700px) {
.tour-card-container {
overflow-x: scroll;
overflow-y: hidden;
width: 100%;
display: flex;
}
}
@media screen and (max-width: 600px) {
.voyage {
font-size: 80px
}
.tour-type-libelle {
font-size: 100px;
margin-bottom: unset;
}
#search-container-wrapper {
/* min-height: 900px; */
padding-bottom: 200px;
height: unset
}
.tourSectionTitle {
font-size: 30px;
}
.visuelHeader {
margin-top: 50px;
/* min-height: 535px; */
height: unset;
}
.format {
top: -220px;
}
}
@media screen and (max-width: 450px) {
.subtitle-sacramento {
font-size: 5px;
}
.discover-subtitle-roboto {
font-size: 28px
}
.discover-subtitle-sacramento {
font-size: 50px
}
.separator {
display: none;
}
.label-separator {
margin-left: 10px;
}
.choice-wrapper {
width: auto;
}
.flatpickr-mobile {
margin-left: 10px;
}
.tourSectionTitle {
font-size: 24px
}
.format {
display: none
}
.tourSectionTitleWrapper {
position: static;
transform: unset
}
#search-container-wrapper {
padding-bottom: 50px;
}
.tour-type-libelle {
font-size: 80px;
}
}
@media screen and (min-width: 1921px) {
.tour-cards-container {
justify-content: center;
}
}
</style>
{% endblock %}
{% block keywords %} {{ seo.meta_keywords is defined ? meta_keywords : parent() }} {% endblock %}
{% block description %} {{ seo.meta_description is defined ? seo.meta_description|striptags|e : parent() }} {% endblock %}
{% set firstPartTitle = 'Voyages à thèmes'|trans %}
{% block title %} {{ seo.meta_title is defined ? firstPartTitle ~ ' - ' ~ seo.meta_title ~ " - " ~ parent() : parent() }} {% endblock %}
{% block layout %}option-com_woa_tour view-category layout-default{% endblock %}
{% block bodyClass %}class="p-topbar"{% endblock %}
{% block body %}
<section class="container-fluid p-0 justify-content-center">
<div id="search-container-wrapper" {# class="destination-{{ slug }}" #}>
<div class="blueLayer"></div>
<div class="tourtype-title-container">
<span class='voyage'>voyage</span>
<span class="tour-type-libelle">{{ typeLibelle }}</span>
</div>
<div class="visuelHeader">
{% set cdn = "/cdn-cgi/image/width=700" %}
{# <img class="img-fluid" src="../../assets/images/thematiques/{{ slug }}.svg" alt=""> #}
<img class='img-fluid' src="{{ api_base_path ~ cdn ~ '/images/thematiques/' ~ slug ~ '.svg' }}" alt="">
</div>
<div class="row d-flex justify-content-center container-fluid">
<a href="{{ path('contact_sur_mesure_1')}}" class="header-contact-button">
Nous contacter pour un voyage sur-mesure
</a>
</div>
<div id="search-container" class='d-none'>
<div class="container mb-3 d-none d-md-block">
{#% include 'destination/_index_search.html.twig' %#}
{# barre de recherche #}
<form class="search-container-inner d-none" action="" method="GET">
<div class="d-md-flex justify-content-md-center align-items-md-center no-gutters">
<div class="form-group mr-md-2 mr-lg-1">
<label for="arrival">{% trans %}Arrivée{% endtrans %}</label>
<input value="{% if arrival is defined and arrival is not null %}{{ arrival }}{% else %}{{ "now"|date("d/m/Y") }}{% endif %}" class="form-control datepicker-start" id="arrival" name="arrival" type="text" placeholder="{% if app.request.getLocale() == "fr" %}jj-mm-aaaa{% else %}dd-mm-yyyy{% endif %}" required >
</div>
<div class="form-group mr-md-2 mr-lg-1">
<label for="duration_range">{% trans %}Durée du séjour{% endtrans %}</label>
<select class="form-control" id="duration_range" name="duration_range">
<option {% if duration_range is defined and duration_range not in [1,2,3] %}selected{% endif %} value="">{% trans %}Toutes{% endtrans %}</option>
<option {% if duration_range is defined and duration_range == 1 %}selected{% endif %} value="1">{% trans %}Moins de 14 jours{% endtrans %}</option>.
<option {% if duration_range is defined and duration_range == 2 %}selected{% endif %} value="2">{% trans %}14 à 20 jours{% endtrans %}</option>
<option {% if duration_range is defined and duration_range == 3 %}selected{% endif %} value="3">{% trans %}21 jours ou plus{% endtrans %}</option>
</select>
</div>
<div class="form-group mr-md-2 mr-lg-1">
<label for="category">{% trans %}Thème{% endtrans %}</label>
<select class="form-control w-lg-75" id="category" name="category">
<option selected hidden value="#">{% trans %}Choisir un thème{% endtrans %}</option>
{# {{ render(url('render_theme_collection', {
'template': 'theme_input',
'sort': 't.ordre',
'direction': 'ASC',
'value': category|default(null)
}
)) }} #}
{% if navigation.themes.children is defined %}
{% for voyage_theme in navigation.themes.children %}
{% if voyage_theme.path|replace({'/' : ""}) != "contact-sur-mesure" %}
<option value="{{ voyage_theme.path|replace({'/' : ""}) }}">
{{ voyage_theme.label }}
</option>
{% endif %}
{% endfor %}
{% endif %}
</select>
</div>
<div class="align-self-end mb-3">
<button type="submit"
class="btn btn-block bgRedGradient text-white"
style="background: none; background-color: #FFC20E; color: black !important">{% trans %}Départ{% endtrans %}
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<!-- Mobile -->
<section class="d-block d-md-none">
{#% include 'destination/_index_search.html.twig' %#}
</section>
<!-- FIN Mobile -->
<div class="toursContainer">
<div class="format"></div>
<section class="mainSection tourSectionTitleWrapper">
<div class="row">
<div class="col ml-10 mt-4 text-center tourSectionTitle">
Nos voyages {{ typeLibelle }}
{# {{ render(url('render_theme', {
'template': 'theme_informations',
'titleTagName': 'h1',
'slug': slug
}
)) }} #}
</div>
</div>
</section>
<section id='nos-tours' class="mainSection">
<div class="container-fluid text-center pb-4">
{{ render(url('render_voyage_collection', {
'template': 'pays_voyages_v3',
'perPage': 6,
'theme': slug,
'page': page,
'duree' : duration_range
}
)) }}
</div>
</section>
</div>
<section id="visiteAutrePays" class="mainSection my-3 py-md-5 d-none">
<div class="row justify-content-center mx-0">
<div class="col-md-6 col-12 px-0 ">
<p class="text-uppercase font-weight-bold">{% trans %}Vous voulez visiter un autre pays avec Ôdasie ?{% endtrans %}</p>
</div>
</div>
<div class="row justify-content-center mx-0">
<div class="col-md-6 col-12 px-0">
<div class="row mx-0">
<div class="col-10 col-md-10 pl-0 pr-1">
<select class="w-100 h-100 dropdown-dark" name="goToCountry" id="goToCountry">
<option selected disabled hidden value="#">{% trans %}Choisir une destination{% endtrans %}</option>
{% for country in countries %}
{% if country.libelle != "Birmanie - Myanmar" %}
<option value="{{country.slug}}">{{country.libelle}}</option>
{% endif %}
{% endfor %}
</select>
</div>
<div class="col col-md px-0">
<button id="btnGoToCountry" type="button" class="btn btn-block btn-dark">GO!</button>
</div>
</div>
</div>
</div>
</section>
<section>
<div class="container-fluid odasiePlus-container">
<div class="row footerVoyageList d-none">
<div class="col order-2 order-md-1">
<div class="row mx-0 justify-content-center">
<div id="odasiePlusContainer" class="col-6 px-0 text-white">
<div class="odasiePlusTitle"><p class="text-uppercase mb-0 mx-auto mx-md">{% trans %}NOUVEAU{% endtrans %}</p></div>
<div class="odasiePlusSubtitle h2 mb-0 text-uppercase ">{% trans %}L'application Ôdasie+{% endtrans %}</div>
<hr>
<div class="h6 odasiePlusSubSubtitle">{% trans %}Votre compagnon de voyage sur-mesure{% endtrans %}</div>
<!-- location icons and dotted line -->
<div id="cursors" class="row mt-4 mx-md-4" >
<div class="col px-0">
<svg height="48" viewBox="0 0 17 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.50008 10.5C9.073 10.5 9.56362 10.2959 9.97196 9.88754C10.3803 9.47921 10.5841 8.98893 10.5834 8.41671C10.5834 7.84379 10.3792 7.35317 9.97091 6.94483C9.56258 6.5365 9.0723 6.33268 8.50008 6.33337C7.92716 6.33337 7.43654 6.53754 7.02821 6.94587C6.61987 7.35421 6.41605 7.84449 6.41675 8.41671C6.41675 8.98962 6.62091 9.48025 7.02925 9.88858C7.43758 10.2969 7.92786 10.5007 8.50008 10.5ZM8.50008 18.1563C10.6181 16.2118 12.1893 14.4452 13.2136 12.8563C14.2379 11.2674 14.7501 9.85699 14.7501 8.62504C14.7501 6.73268 14.1466 5.18337 12.9397 3.97712C11.7327 2.77087 10.2529 2.1674 8.50008 2.16671C6.74661 2.16671 5.2664 2.77018 4.05946 3.97712C2.85251 5.18407 2.24939 6.73337 2.25008 8.62504C2.25008 9.85768 2.76223 11.2684 3.78654 12.8573C4.81084 14.4462 6.38203 16.2125 8.50008 18.1563ZM8.50008 20.9167C5.70494 18.5382 3.61744 16.3292 2.23758 14.2896C0.85772 12.25 0.167442 10.3618 0.166748 8.62504C0.166748 6.02087 1.0046 3.94622 2.68029 2.40108C4.35598 0.855943 6.29591 0.083374 8.50008 0.083374C10.7049 0.083374 12.6452 0.855943 14.3209 2.40108C15.9966 3.94622 16.8341 6.02087 16.8334 8.62504C16.8334 10.3612 16.1431 12.2493 14.7626 14.2896C13.382 16.3299 11.2945 18.5389 8.50008 20.9167Z" fill="white"/>
</svg>
<p>{% trans %}Jour{% endtrans %} 1</p>
</div>
<div class="col px-0">
<svg height="48" viewBox="0 0 17 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.50008 10.5C9.073 10.5 9.56362 10.2959 9.97196 9.88754C10.3803 9.47921 10.5841 8.98893 10.5834 8.41671C10.5834 7.84379 10.3792 7.35317 9.97091 6.94483C9.56258 6.5365 9.0723 6.33268 8.50008 6.33337C7.92716 6.33337 7.43654 6.53754 7.02821 6.94587C6.61987 7.35421 6.41605 7.84449 6.41675 8.41671C6.41675 8.98962 6.62091 9.48025 7.02925 9.88858C7.43758 10.2969 7.92786 10.5007 8.50008 10.5ZM8.50008 18.1563C10.6181 16.2118 12.1893 14.4452 13.2136 12.8563C14.2379 11.2674 14.7501 9.85699 14.7501 8.62504C14.7501 6.73268 14.1466 5.18337 12.9397 3.97712C11.7327 2.77087 10.2529 2.1674 8.50008 2.16671C6.74661 2.16671 5.2664 2.77018 4.05946 3.97712C2.85251 5.18407 2.24939 6.73337 2.25008 8.62504C2.25008 9.85768 2.76223 11.2684 3.78654 12.8573C4.81084 14.4462 6.38203 16.2125 8.50008 18.1563ZM8.50008 20.9167C5.70494 18.5382 3.61744 16.3292 2.23758 14.2896C0.85772 12.25 0.167442 10.3618 0.166748 8.62504C0.166748 6.02087 1.0046 3.94622 2.68029 2.40108C4.35598 0.855943 6.29591 0.083374 8.50008 0.083374C10.7049 0.083374 12.6452 0.855943 14.3209 2.40108C15.9966 3.94622 16.8341 6.02087 16.8334 8.62504C16.8334 10.3612 16.1431 12.2493 14.7626 14.2896C13.382 16.3299 11.2945 18.5389 8.50008 20.9167Z" fill="white"/>
</svg>
<p>{% trans %}Jour{% endtrans %} 2</p>
</div>
<div class="col px-0">
<svg height="48" viewBox="0 0 17 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.50008 10.5C9.073 10.5 9.56362 10.2959 9.97196 9.88754C10.3803 9.47921 10.5841 8.98893 10.5834 8.41671C10.5834 7.84379 10.3792 7.35317 9.97091 6.94483C9.56258 6.5365 9.0723 6.33268 8.50008 6.33337C7.92716 6.33337 7.43654 6.53754 7.02821 6.94587C6.61987 7.35421 6.41605 7.84449 6.41675 8.41671C6.41675 8.98962 6.62091 9.48025 7.02925 9.88858C7.43758 10.2969 7.92786 10.5007 8.50008 10.5ZM8.50008 18.1563C10.6181 16.2118 12.1893 14.4452 13.2136 12.8563C14.2379 11.2674 14.7501 9.85699 14.7501 8.62504C14.7501 6.73268 14.1466 5.18337 12.9397 3.97712C11.7327 2.77087 10.2529 2.1674 8.50008 2.16671C6.74661 2.16671 5.2664 2.77018 4.05946 3.97712C2.85251 5.18407 2.24939 6.73337 2.25008 8.62504C2.25008 9.85768 2.76223 11.2684 3.78654 12.8573C4.81084 14.4462 6.38203 16.2125 8.50008 18.1563ZM8.50008 20.9167C5.70494 18.5382 3.61744 16.3292 2.23758 14.2896C0.85772 12.25 0.167442 10.3618 0.166748 8.62504C0.166748 6.02087 1.0046 3.94622 2.68029 2.40108C4.35598 0.855943 6.29591 0.083374 8.50008 0.083374C10.7049 0.083374 12.6452 0.855943 14.3209 2.40108C15.9966 3.94622 16.8341 6.02087 16.8334 8.62504C16.8334 10.3612 16.1431 12.2493 14.7626 14.2896C13.382 16.3299 11.2945 18.5389 8.50008 20.9167Z" fill="white"/>
</svg>
<p>{% trans %}Jour{% endtrans %} 3</p>
</div>
<div class="col px-0">
<svg height="48" viewBox="0 0 17 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.50008 10.5C9.073 10.5 9.56362 10.2959 9.97196 9.88754C10.3803 9.47921 10.5841 8.98893 10.5834 8.41671C10.5834 7.84379 10.3792 7.35317 9.97091 6.94483C9.56258 6.5365 9.0723 6.33268 8.50008 6.33337C7.92716 6.33337 7.43654 6.53754 7.02821 6.94587C6.61987 7.35421 6.41605 7.84449 6.41675 8.41671C6.41675 8.98962 6.62091 9.48025 7.02925 9.88858C7.43758 10.2969 7.92786 10.5007 8.50008 10.5ZM8.50008 18.1563C10.6181 16.2118 12.1893 14.4452 13.2136 12.8563C14.2379 11.2674 14.7501 9.85699 14.7501 8.62504C14.7501 6.73268 14.1466 5.18337 12.9397 3.97712C11.7327 2.77087 10.2529 2.1674 8.50008 2.16671C6.74661 2.16671 5.2664 2.77018 4.05946 3.97712C2.85251 5.18407 2.24939 6.73337 2.25008 8.62504C2.25008 9.85768 2.76223 11.2684 3.78654 12.8573C4.81084 14.4462 6.38203 16.2125 8.50008 18.1563ZM8.50008 20.9167C5.70494 18.5382 3.61744 16.3292 2.23758 14.2896C0.85772 12.25 0.167442 10.3618 0.166748 8.62504C0.166748 6.02087 1.0046 3.94622 2.68029 2.40108C4.35598 0.855943 6.29591 0.083374 8.50008 0.083374C10.7049 0.083374 12.6452 0.855943 14.3209 2.40108C15.9966 3.94622 16.8341 6.02087 16.8334 8.62504C16.8334 10.3612 16.1431 12.2493 14.7626 14.2896C13.382 16.3299 11.2945 18.5389 8.50008 20.9167Z" fill="white"/>
</svg>
<p>{% trans %}Jour{% endtrans %} 4</p>
</div>
<div class="col px-0">
</div>
</div>
<div id="cursorsLine" class="row mx-md-4">
<ul class="odasiePlusDayByDayFooter w-100">
<li>
</li>
<li>
</li>
<li>
</li>
<li>
</li>
<li><div>▶</div></li>
</ul>
</div>
<!-- END location icons and dotted line -->
<div id="odasiePlusImage" class="w-100 text-center mt-3">
<img class="loadingSpeed" data-link="{{ asset('assets/v3/images/appInt.png')}}" src="{{ asset('assets/v3/images/appInt.png')}}" alt="">
</div>
<div class="row justify-content-center mt-5 mb-3 mb-md mx-0">
<div class="col-8 text-center">
<a href="#" class="btn btn-block btn-light odasiePlusLink">{% trans %}En savoir plus sur ÔDASIE+{% endtrans %}</a>
</div>
</div>
</div>
</div>
</div>
<div class="col order-1 order-md-2">
<div id="avisContainer" class="overflow-hidden h-100 container-fluid">
{% set avisSurLesVoyagesEn = {
1 : "Les avis sur les voyages en Thaïlande" | trans,
2 : "Les avis sur les voyages en Indonésie" | trans,
3 : "Les avis sur les voyages au Cambodge" | trans,
4 : "Les avis sur les voyages au Sri Lanka" | trans,
5 : "Les avis sur les voyages au Vietnam" | trans,
6 : "Les avis sur les voyages aux Philippines" | trans,
7 : "Les avis sur les voyages en Malaisie" | trans,
8 : "Les avis sur les voyages au Laos" | trans,
9 : "Les avis sur les voyages en Chine" | trans,
10 : "Les avis sur les voyages en Birmanie - Myanmar" | trans,
12 : "Les avis sur les voyages au Népal" | trans
} %}
<div class="row mx-0 justify-content-center">
<div class="col-md-9 col-12">
<div class="avisContainerTitle text-uppercase font-weight-bold text-white pt-5">{{ "Les avis sur les voyages"| trans }}</div>
<div class="d-flex flex-column mt-3 scroller">
{% for temoignage in temoignages %}
<div class="d-flex temoignage" style="">
<div class="d-flex temoignageImage">
<a href="{#{{ path('tour_show', {'slug': temoignage.voyage_slug })}}#}" title="{{ temoignage.voyage_libelle}}">
{#% set urlImage = "https://picsum.photos/seed/picsum/200/300" %#}
{% set urlImage = api_base_path ~ '/uploads/' ~ temoignage.image_entite ~ '/' ~ temoignage.image_path %}
<img class="loadingSpeed" data-link="{{ urlImage }}" style="width:100px;height:100px; object-fit:cover;border-radius:60px !important;" alt="{#{{ temoignage.voyage_libelle}}#}" src="{{ urlImage }}"/>
</a>
<span class="text-white lineHnormal"><small>{{ temoignage.temoignage_auteur }}</small></span>
</div>
<div class="text-white temoignageContent">
<p class="lineHnormal"><small>{{ temoignage.pays_libelle|striptags|truncate(130, true)|raw }}</small></p>
<p class="lineHnormal"><small>{{ temoignage.voyage_libelle|striptags|truncate(130, true)|raw }}</small></p>
<p class="lineHnormal"><small>{{ temoignage.temoignage_date|date('d/m/Y')}} Par Odasie</small></p>
<p class="lineHnormal"><small>{{ temoignage.temoignage_contenu|striptags|truncate(130, true)|raw }}.</small></p>
<p class="lineHnormal"><small>{{ temoignage.temoignage_points_forts|striptags|truncate(130, true)|raw }}</small></p>
</div>
</div>
<hr>
{% endfor %}
{# <div class="d-flex" style="width: 70%;">
<div class="d-flex flex-column">
<img src="{{ asset('assets/v3/images/Ellipse2.png') }}" alt="" srcset="">
<p class="text-center lineHnormal"><small>Phil - 28 ans</small></p>
</div>
<div class="ml-3 mr-2">
<p class="titleActu"><b>Parcs nationaux et randonnées à Chiang Mai : 3 lieux à visiter.</b></p>
<p class="lineHnormal"><small>11/04/2023 Par Odasie</small></p>
<p class="lineHnormal"><small>Si vous souhaitez profiter de votre voyage en Thaïlande pour admirer les paysages verdoyants du nord, un trek en pleine nature est l’idéal. Entre parcs nationaux, temples, cascades, éléphants sauvages et autres surprises, votre balade sur les sentiers…</small></p>
<p class="lineHnormal"><small>Lire la suite</small></p>
</div>
</div> #}
</div>
</div>
</div>
<div class="row mx-0 justify-content-center">
<div class="col-md-9 col-12">
{% if temoignages|length > 0 %}
<div class="row">
<div class="col-11 mb-4">
<a href="{{ path("blog_index")}}" id="btnSeeAllTestimonies" class="btn btn-block btn-dark">{% trans %}Voir tous les avis{% endtrans %}</a>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% include "_footer-app.html.twig" %}
</div>
</section>
<section id="actus-et-avis" class='pb-5'>
<div class="d-none d-md-block {# mt-5 #} text-light pt-5">
<div class="container-fluid">
<div class="row justify-content-center">
<div class="text-center">
<span class="h1">Actus & Avis</span>
</div>
</div>
</div>
</div>
<div class="d-none d-md-block ">
<div class="container-fluid">
<div class="row mt-5">
<div class="col-1"></div>
<div class="col-7" style="min-height:400px;">
<span class="h2 ml-3">ACTUS</span>
<div class="mod_articles_latest-latestnews d-flex flex-wrap">
{{ render(url('render_content_collection', {
'template': 'home_news',
'zone': 'blog',
'limit' : 4,
'sort' : 'c.date_crea',
'direction' : 'DESC',
'agentTours': false,
}
)) }}
</div>
</div>
<div class="temoignages-section col-4">
<div class="h-100 pb-5" style="margin-left: 25px;">
<span class="h2">DERNIERS AVIS</span>
<div class="mt-4 scroller" style="overflow-y:scroll; height:inherit;">
{% for temoignage in temoignages|slice(0, 5) %}
{% include "_temoignage_apercu.html.twig" %}
{% endfor %}
</div>
</div>
<div>
{# <div class="d-flex justify-content-center mt-2">
<a class="linkNormal" href="#">Voir tout les avis</a>
</div> #}
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-1"></div>
<div class="col-7 mt-4">
<div>
<div class="d-flex justify-content-center text-dark">
<a class="linkNormal default-button white-button actus-button" href="{{ path("blog_index")}}">Voir toutes nos actus</a>
</div>
</div>
</div>
<div class="col-4 mt-4 d-flex justify-content-center text-dark">
<a href="{{ path('review_index') }}" class="default-button white-button temoignages-button">Voir tous les avis</a>
</div>
</div>
<div class="row">
<div class="col-12 d-none d-md-block">
<div class="d-flex justify-content-center mt-5" style="width:100%">
<span class="mr-3" style="width: 20%;text-align:end">
<b>Vous disposez d’un petit budget ?</b>
<p class="lineHnormal mt-2">Voyages en petit groupe, promotions du moment, gardez un oeil sur cet espace où nous mettrons en avant nos offres les plus avantageuses!</p>
</span>
<img class="logoTravel" src="{{ asset('assets/v3/images/iconTravel.png') }}" alt="" srcset="">
</div>
</div>
</div>
</div>
</div>
<div>
{# <div class="d-block d-md-none mt-5 backgroundDarkGray text-light">
<div class="row justify-content-center">
<div class="text-center">
<span class="h1">Actus & Avis</span>
</div>
</div>
</div> #}
<div class="d-block d-md-none row pt-5">
<span class="h2 ml-4">ACTUS</span>
<div class="mod_articles_latest-latestnews d-flex justify-content-center flex-wrap mt-3">
{{ render(url('render_content_collection', {
'template': 'home_news',
'zone': 'blog',
'limit' : 3,
'sort' : 'c.date_crea',
'direction' : 'DESC',
'agentTours': false,
}
)) }}
</div>
</div>
<div class="d-block d-md-none mt-5">
<span class="h2 ml-2">DERNIERS AVIS</span>
<div class="d-flex flex-column align-items-center mt-3 scroller">
{% for temoignage in temoignages|slice(0, 5) %}
<div class="d-flex" style="width: 95%;">
<div class="d-flex flex-column">
<a href="{#{{ path('tour_show', {'slug': temoignage.voyage_slug })}}#}" title="{{ temoignage.voyage_libelle}}">
{% set urlImage = api_base_path ~ '/uploads/' ~ temoignage.image_entite ~ '/' ~ temoignage.image_path %}
{# {% set urlImage = "https://picsum.photos/200/300?random=" ~ random(1, 10) %} #}
{# {{ asset('assets/v3/images/review/' ~ temoignage.image_path ~ '') }} #}
<img class="loadingSpeed avisMobile" src="" data-link="{{ urlImage }}" style="width:100px;height:100px; object-fit:cover;border-radius:50% !important;" alt="{#{{ temoignage.voyage_libelle}}#}"/>
</a>
<p class="text-center lineHnormal pl-3"><small>{{ temoignage.temoignage_auteur }}</small></p>
</div>
<div class="ml-3 mr-2">
<p class="lineHnormal"><small>{{ temoignage.pays_libelle|striptags|truncate(130, true)|raw }}</small></p>
<p class="lineHnormal"><small>{{ temoignage.voyage_libelle|striptags|truncate(130, true)|raw }}</small></p>
{# <p class="lineHnormal"><small>{{ temoignage.temoignage_date|date('d/m/Y')}} Par Odasie</small></p> #}
{# <p class="lineHnormal"><small>{{ temoignage.temoignage_contenu|striptags|truncate(130, true)|raw }}.</small></p> #}
{# <p class="lineHnormal"><small>{{ temoignage.temoignage_points_forts|striptags|truncate(130, true)|raw }}</small></p> #}
<p class="lineHnormal">
<small>{{ temoignage.temoignage_contenu|striptags|truncate(130, true)|raw }}.</small>
<a href="{{ path('review_index', {'reviewId': temoignage.temoignage_id}) }}">Lire la suite</a>
</p>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</section>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script>var currentLocale='fr';</script>
<script>
var formValid = false;
$('form.search-container-inner').on('submit', function(e) {
//TODO :
//1 - obtenir le thème recherché par l'utilisateur
//2 - modifier la propriété 'action' du formulaire
let category = $("#category").val();
if(category == "#"){
//impossible de valider le formulaire
}else{
//Definir l'action
let path = "/" + currentLocale + "/" + category;
$('form.search-container-inner').attr("action",path);
}
//var arrival = $('#arrival').val();
//if (!formValid) {
//
// if (arrival.match(/^[0-9]{2}-[0-9]{2}-[0-9]{4}$/) == null) {
// e.preventDefault();
// //alert('Veuillez vérifier le format de date.');
// return;
// }
// else {
// formValid = true;
// }
//}
$(this).submit();
})
</script>
<script src="{{ asset('assets/v2/js/flatpickr.min.js') }}"></script>
<script src="{{ asset('assets/v2/js/flatpickr.fr.min.js') }}"></script>
<script src="{{ asset('assets/v2/js/destination.min.js') }}"></script>
<script src="{{ asset('assets/v2/js/swiper.min.js') }}"></script>
<script src="{{ asset('assets/v2/js/home.min.js') }}"></script>
<script>
var boolIsMobile = false;
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ){
boolIsMobile = true;
}
console.log('boolIsMobile',boolIsMobile);
</script>
<script>
let baseUrl = "{{ app.request.getSchemeAndHttpHost()}}";
let locale = "{{ app.request.getLocale()}}";
$("#btnGoToCountry").on("click",function(){
let val = $('#goToCountry').find(":selected").val();
if(val != "#"){
document.location.href= baseUrl + "/"+ locale +"/" + val;
}
});
if(boolIsMobile){
var coupDeCoeurSlider = new Swiper(".swiper",{
// Optional parameters
slidesPerView :1,
allowTouchMove : false,
// Navigation arrows
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
// And if we need scrollbar
scrollbar: {
el: '.swiper-scrollbar',
},
breakpoints: {
/* 550 */320: {
slidesPerView: /* 2 */ 1,
spaceBetween: 20
},
/* 768 */ 720: {
slidesPerView: 2,
spaceBetween: 20
},
1200: {
slidesPerView: 3,
spaceBetween: 20
},
2650: {
slidesPerView: 7,
spaceBetween: 10
},
2250: {
slidesPerView: 6,
spaceBetween: 10
},
1850: {
slidesPerView: 5,
spaceBetween: 10
},
// when window width is >= 480px
1450: {
slidesPerView: 4,
spaceBetween: 10
},
1000: {
slidesPerView: 3,
spaceBetween: 10
},
// when window width is >= 640px
800: {
slidesPerView: 2,
spaceBetween: 10
}
},
});
}else{
var coupDeCoeurSlider = new Swiper(".swiper",{
// Optional parameters
slidesPerView :4,
spaceBetween: 30,
allowTouchMove : false,
breakpoints: {
320: {
slidesPerView: 1,
spaceBetween: 20
},
860: {
slidesPerView: 2,
spaceBetween: 5
},
1200: {
slidesPerView: 3,
spaceBetween: 5
},
1530: {
slidesPerView: 4,
spaceBetween: 5
},
2650: {
slidesPerView: 7,
spaceBetween: 10
},
2250: {
slidesPerView: 6,
spaceBetween: 10
},
1890: {
slidesPerView: 5,
spaceBetween: 10
},
// when window width is >= 480px
/* 1450: {
slidesPerView: 4,
spaceBetween: 10
}, */
/* 1000: {
slidesPerView: 3,
spaceBetween: 10
}, */
// when window width is >= 640px
/* 800: {
slidesPerView: 2,
spaceBetween: 10
} */
},
// Navigation arrows
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
// And if we need scrollbar
scrollbar: {
el: '.swiper-scrollbar',
},
});
}
// Fonction à exécuter lorsque l'élément devient visible
function gestionIntersection(entries, observer) {
entries.forEach((entry) => {
if (entry.isIntersecting) {
// L'élément est visible à l'écran
if(entry.target.localName == "img"){
if(entry.target.dataset.link != ""){
entry.target.src = `${entry.target.dataset.link}`
entry.target.classList.add("loaded");
entry.target.dataset.link = "";
}
} else {
if(entry.target.dataset.link != ""){
entry.target.style.backgroundImage = `url('${entry.target.dataset.link}')`
entry.target.classList.add("loaded");
entry.target.dataset.link = "";
}
}
// Vous pouvez exécuter ici le code que vous souhaitez lorsque l'élément devient visible.
// Par exemple, lancer une animation ou charger du contenu supplémentaire.
}
});
}
// Options pour l'observateur Intersection Observer
const options = {
root: null, // Le viewport est la racine par défaut
rootMargin: "0px", // Aucune marge supplémentaire
threshold: 0.1, // Détecter lorsque 50% de l'élément est visible
};
// Créer l'observateur Intersection Observer
const observer = new IntersectionObserver(gestionIntersection, options);
// Sélectionnez l'élément que vous souhaitez observer
const elementToObserve = document.querySelectorAll(".loadingSpeed");
// Commencez à observer l'élément
elementToObserve.forEach((element) => {
observer.observe(element);
});
</script>
<script>
// récupérer le nombre de destinations
$(document).ready(function() {
let detailsMobile = document.querySelectorAll('.details-mobile');
$(detailsMobile).each(function() {
let destinationsNumber = $(this).find('li').length;
$(this).find('.destinations-mobile').html(destinationsNumber + ' destinations')
})
})
</script>
{% endblock %}