var/cache/dev/twig/85/856fd67d27ed2d0e2759a1b0722f20d5.php line 51

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. /* default/croisiere-destination.html.twig */
  15. class __TwigTemplate_3e33220533a053d22ec887175cc525f8 extends Template
  16. {
  17.     private $source;
  18.     private $macros = [];
  19.     public function __construct(Environment $env)
  20.     {
  21.         parent::__construct($env);
  22.         $this->source $this->getSourceContext();
  23.         $this->blocks = [
  24.             'title' => [$this'block_title'],
  25.             'seo' => [$this'block_seo'],
  26.             'body' => [$this'block_body'],
  27.         ];
  28.     }
  29.     protected function doGetParent(array $context)
  30.     {
  31.         // line 2
  32.         return "base.html.twig";
  33.     }
  34.     protected function doDisplay(array $context, array $blocks = [])
  35.     {
  36.         $macros $this->macros;
  37.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  38.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""default/croisiere-destination.html.twig"));
  39.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  40.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""default/croisiere-destination.html.twig"));
  41.         $this->parent $this->loadTemplate("base.html.twig""default/croisiere-destination.html.twig"2);
  42.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  43.         
  44.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  45.         
  46.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  47.     }
  48.     // line 3
  49.     public function block_title($context, array $blocks = [])
  50.     {
  51.         $macros $this->macros;
  52.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  53.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  54.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  55.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  56.         yield "O’Croisière - ";
  57.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'3$this->source); })()), "title", [], "any"falsefalsefalse3), "html"nulltrue);
  58.         yield " | O Tropik – Agence de voyage en Guadeloupe";
  59.         
  60.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  61.         
  62.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  63.         return; yield '';
  64.     }
  65.     // line 4
  66.     public function block_seo($context, array $blocks = [])
  67.     {
  68.         $macros $this->macros;
  69.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  70.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""seo"));
  71.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  72.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""seo"));
  73.         // line 5
  74.         yield " <meta name=\"description\" content=\"";
  75.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'5$this->source); })()), "description", [], "any"falsefalsefalse5), "html"nulltrue);
  76.         yield "\" >
  77. \t<meta property=\"og:title\" content=\"";
  78.         // line 7
  79.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'7$this->source); })()), "metaTitle", [], "any"falsefalsefalse7), "html"nulltrue);
  80.         yield "\" />
  81. \t<meta property=\"og:type\" content=\"Website\" />
  82. \t<meta property=\"og:description\" content=\"";
  83.         // line 9
  84.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'9$this->source); })()), "metaDescription", [], "any"falsefalsefalse9), "html"nulltrue);
  85.         yield "\" />
  86. \t<meta property=\"og:url\" content=\"";
  87.         // line 10
  88.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\HttpFoundationExtension']->generateAbsoluteUrl(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'10$this->source); })()), "request", [], "any"falsefalsefalse10), "uri", [], "any"falsefalsefalse10)), "html"nulltrue);
  89.         yield "\" />
  90. \t<meta property=\"og:image\" content=\"";
  91.         // line 11
  92.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/asset/cardimg-fb.jpg"), "html"nulltrue);
  93.         yield "\" />
  94. \t<meta name =\"twitter:card\" content=\"summary_large_image\" />
  95. \t<meta name=\"twitter:title\" content=\"";
  96.         // line 14
  97.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'14$this->source); })()), "metaTitle", [], "any"falsefalsefalse14), "html"nulltrue);
  98.         yield "\">
  99. \t<meta name=\"twitter:description\" content=\"";
  100.         // line 15
  101.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'15$this->source); })()), "metaDescription", [], "any"falsefalsefalse15), "html"nulltrue);
  102.         yield "\">
  103. \t<meta name=\"twitter:image\" content=\"";
  104.         // line 16
  105.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/asset/cardimg-fb.jpg"), "html"nulltrue);
  106.         yield "\">
  107. ";
  108.         
  109.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  110.         
  111.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  112.         return; yield '';
  113.     }
  114.     // line 18
  115.     public function block_body($context, array $blocks = [])
  116.     {
  117.         $macros $this->macros;
  118.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  119.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  120.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  121.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  122.         // line 20
  123.         yield "<section class=\"hero hero--offer hero--cruise is-animated position-relative text-white\">
  124.   <div class=\"hero__media ratio ratio-21x9\">
  125.     <img src=\"";
  126.         // line 22
  127.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((((("img/offer/" CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'22$this->source); })()), "file", [], "any"falsefalsefalse22)) . "/") . CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'22$this->source); })()), "slug", [], "any"falsefalsefalse22)) . "/") . CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'22$this->source); })()), "img", [], "any"falsefalsefalse22))), "html"nulltrue);
  128.         yield "\"
  129.          alt=\"";
  130.         // line 23
  131.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'23$this->source); })()), "title", [], "any"falsefalsefalse23), "html"nulltrue);
  132.         yield "\"
  133.          class=\"hero__img w-100 h-100 object-fit-cover\">
  134.   </div>
  135.   <div class=\"hero__overlay\">
  136.     <div class=\"hero__card\">
  137.       <h1 class=\"hero__title display-5 fw-bold mb-2\">
  138.         ";
  139.         // line 30
  140.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'30$this->source); })()), "title", [], "any"falsefalsefalse30), "html"nulltrue);
  141.         yield "
  142.       </h1>
  143.       <p class=\"hero__subtitle lead mb-0\">
  144.         ";
  145.         // line 33
  146.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'33$this->source); })()), "subtitle", [], "any"falsefalsefalse33), "html"nulltrue);
  147.         yield "
  148.       </p>
  149.     </div>
  150.   </div>
  151. </section>
  152. <section class=\"container py-5\">
  153.   <div class=\"row g-4\">
  154.     ";
  155.         // line 42
  156.         yield "    <div class=\"col-12 col-lg-5\">
  157.       <div class=\"card border-0 shadow-sm rounded-4\">
  158.         <div class=\"ratio ratio-4x3 rounded-top-4 overflow-hidden\">
  159.           <div id=\"circuitCarousel\"
  160.                class=\"carousel slide rounded-4 overflow-hidden shadow-sm w-100\"
  161.                data-bs-ride=\"carousel\"
  162.                data-bs-interval=\"5000\"
  163.                data-bs-pause=\"hover\"
  164.                data-bs-touch=\"true\"
  165.                aria-label=\"Galerie circuit\">
  166.             <div class=\"carousel-inner\">
  167.               ";
  168.         // line 54
  169.         $context['_parent'] = $context;
  170.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["photoItinerary"]) || array_key_exists("photoItinerary"$context) ? $context["photoItinerary"] : (function () { throw new RuntimeError('Variable "photoItinerary" does not exist.'54$this->source); })()));
  171.         $context['loop'] = [
  172.           'parent' => $context['_parent'],
  173.           'index0' => 0,
  174.           'index'  => 1,
  175.           'first'  => true,
  176.         ];
  177.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  178.             $length count($context['_seq']);
  179.             $context['loop']['revindex0'] = $length 1;
  180.             $context['loop']['revindex'] = $length;
  181.             $context['loop']['length'] = $length;
  182.             $context['loop']['last'] = === $length;
  183.         }
  184.         foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
  185.             // line 55
  186.             yield "                <div class=\"carousel-item ";
  187.             if (CoreExtension::getAttribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse55)) {
  188.                 yield "active";
  189.             }
  190.             yield "\">
  191.                   <div class=\"ratio ratio-4x3\">
  192.                     <img src=\"";
  193.             // line 57
  194.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((((("img/" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["p"], "offer", [], "any"falsefalsefalse57), "file", [], "any"falsefalsefalse57)) . "/") . CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["p"], "offer", [], "any"falsefalsefalse57), "slug", [], "any"falsefalsefalse57)) . "/itinerary/") . CoreExtension::getAttribute($this->env$this->source$context["p"], "img", [], "any"falsefalsefalse57))), "html"nulltrue);
  195.             yield "\" class=\"d-block w-100 h-100 object-fit-cover\" alt=\"Photo circuit ";
  196.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse57), "html"nulltrue);
  197.             yield "\">
  198.                   </div>
  199.                 </div>
  200.               ";
  201.             ++$context['loop']['index0'];
  202.             ++$context['loop']['index'];
  203.             $context['loop']['first'] = false;
  204.             if (isset($context['loop']['length'])) {
  205.                 --$context['loop']['revindex0'];
  206.                 --$context['loop']['revindex'];
  207.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  208.             }
  209.         }
  210.         $_parent $context['_parent'];
  211.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['p'], $context['_parent'], $context['loop']);
  212.         $context array_intersect_key($context$_parent) + $_parent;
  213.         // line 61
  214.         yield "            </div>
  215.              <button class=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"prev\">
  216.               <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
  217.               <span class=\"visually-hidden\">Précédent</span>
  218.             </button>
  219.             <button class=\"carousel-control-next\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"next\">
  220.               <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
  221.               <span class=\"visually-hidden\">Suivant</span>
  222.             </button>
  223.             <div class=\"carousel-indicators\">
  224.               ";
  225.         // line 72
  226.         $context['_parent'] = $context;
  227.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["photoItinerary"]) || array_key_exists("photoItinerary"$context) ? $context["photoItinerary"] : (function () { throw new RuntimeError('Variable "photoItinerary" does not exist.'72$this->source); })()));
  228.         $context['loop'] = [
  229.           'parent' => $context['_parent'],
  230.           'index0' => 0,
  231.           'index'  => 1,
  232.           'first'  => true,
  233.         ];
  234.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  235.             $length count($context['_seq']);
  236.             $context['loop']['revindex0'] = $length 1;
  237.             $context['loop']['revindex'] = $length;
  238.             $context['loop']['length'] = $length;
  239.             $context['loop']['last'] = === $length;
  240.         }
  241.         foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
  242.             // line 73
  243.             yield "                <button type=\"button\"
  244.                         data-bs-target=\"#circuitCarousel\"
  245.                         data-bs-slide-to=\"";
  246.             // line 75
  247.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse75), "html"nulltrue);
  248.             yield "\"
  249.                         class=\"";
  250.             // line 76
  251.             if (CoreExtension::getAttribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse76)) {
  252.                 yield "active";
  253.             }
  254.             yield "\"
  255.                         aria-current=\"";
  256.             // line 77
  257.             yield ((CoreExtension::getAttribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse77)) ? ("true") : ("false"));
  258.             yield "\"
  259.                         aria-label=\"Slide ";
  260.             // line 78
  261.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse78), "html"nulltrue);
  262.             yield "\"></button>
  263.               ";
  264.             ++$context['loop']['index0'];
  265.             ++$context['loop']['index'];
  266.             $context['loop']['first'] = false;
  267.             if (isset($context['loop']['length'])) {
  268.                 --$context['loop']['revindex0'];
  269.                 --$context['loop']['revindex'];
  270.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  271.             }
  272.         }
  273.         $_parent $context['_parent'];
  274.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['p'], $context['_parent'], $context['loop']);
  275.         $context array_intersect_key($context$_parent) + $_parent;
  276.         // line 80
  277.         yield "            </div>
  278.           </div>
  279.         </div>
  280.         <div class=\"card-body\">
  281.           <h2 class=\"h4 txt-ot-blue fw-bold mb-1\">Les atouts de la croisiere</h2>
  282.           <div class=\"d-flex flex-wrap gap-2 mb-2\">
  283.           ";
  284.         // line 87
  285.         $context['_parent'] = $context;
  286.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["highlight"]) || array_key_exists("highlight"$context) ? $context["highlight"] : (function () { throw new RuntimeError('Variable "highlight" does not exist.'87$this->source); })()));
  287.         foreach ($context['_seq'] as $context["_key"] => $context["h"]) {
  288.             yield "<span class=\"badge rounded-pill bg-success-subtle text-success-emphasis\">";
  289.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["h"], "title", [], "any"falsefalsefalse87), "html"nulltrue);
  290.             yield "</span>";
  291.         }
  292.         $_parent $context['_parent'];
  293.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['h'], $context['_parent'], $context['loop']);
  294.         $context array_intersect_key($context$_parent) + $_parent;
  295.         yield 
  296.           </div>
  297.          ";
  298.         // line 95
  299.         yield "        </div>
  300.       </div>
  301.       <div class=\"card border-0 shadow-sm rounded-4 mt-4\">
  302.         <div class=\"card-body\">
  303.           <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Inclus</h3>
  304.           <ul class=\"list-unstyled small m-0\">
  305.           ";
  306.         // line 102
  307.         $context['_parent'] = $context;
  308.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'102$this->source); })()), "included", [], "any"falsefalsefalse102), "
  309. "));
  310.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  311.             // line 103
  312.             yield "              <li class=\"mb-1\">✔️ ";
  313.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  314.             yield "</li>
  315.             ";
  316.         }
  317.         $_parent $context['_parent'];
  318.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  319.         $context array_intersect_key($context$_parent) + $_parent;
  320.         // line 105
  321.         yield "          </ul>
  322.           <hr>
  323.           <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Non inclus</h3>
  324.           <ul class=\"list-unstyled m-0\">
  325.            ";
  326.         // line 109
  327.         $context['_parent'] = $context;
  328.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'109$this->source); })()), "notIncluded", [], "any"falsefalsefalse109), "
  329. "));
  330.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  331.             // line 110
  332.             yield "              <li class=\"mb-1\">- ";
  333.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  334.             yield "</li>
  335.             ";
  336.         }
  337.         $_parent $context['_parent'];
  338.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  339.         $context array_intersect_key($context$_parent) + $_parent;
  340.         // line 112
  341.         yield "          </ul>
  342.         </div>
  343.       </div>
  344.       <div class=\"card border-0 shadow-sm rounded-4 mt-4\">
  345.         <div class=\"card-body small\">
  346.          <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Formalités</h3>
  347.            <ul class=\"list-unstyled m-0\">
  348.            ";
  349.         // line 120
  350.         $context['_parent'] = $context;
  351.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'120$this->source); })()), "formalities", [], "any"falsefalsefalse120), "
  352. "));
  353.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  354.             // line 121
  355.             yield "              <li class=\"mb-1\">✔️ ";
  356.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  357.             yield "</li>
  358.             ";
  359.         }
  360.         $_parent $context['_parent'];
  361.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  362.         $context array_intersect_key($context$_parent) + $_parent;
  363.         // line 123
  364.         yield "          </ul>
  365.           <hr>
  366.            <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Modalités de paiement</h3>
  367.             <ul class=\"list-unstyled m-0\">
  368.          ";
  369.         // line 127
  370.         $context['_parent'] = $context;
  371.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'127$this->source); })()), "paymentMethod", [], "any"falsefalsefalse127), "
  372. "));
  373.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  374.             // line 128
  375.             yield "              <li class=\"mb-1\">✔️ ";
  376.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  377.             yield "</li>
  378.             ";
  379.         }
  380.         $_parent $context['_parent'];
  381.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  382.         $context array_intersect_key($context$_parent) + $_parent;
  383.         // line 130
  384.         yield "          </ul>
  385.         </div>
  386.       </div>
  387.     </div>
  388.     ";
  389.         // line 136
  390.         yield "    <div class=\"col-12 col-lg-7\">
  391.   <!-- Ligne 1 : Durée / Vols / Tarif -->
  392.   <div class=\"row g-3 mb-4\">
  393.     <!-- Durée -->
  394.     <div class=\"col-12 col-md-4\">
  395.       <div class=\"card rounded-4 shadow-sm h-100\">
  396.         <div class=\"card-body\">
  397.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Durée</h6>
  398.           <p class=\"mb-0 text-muted\">";
  399.         // line 146
  400.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'146$this->source); })()), "summaryDuration", [], "any"falsefalsefalse146), "html"nulltrue);
  401.         yield "</p>
  402.         </div>
  403.       </div>
  404.     </div>
  405.     <!-- Vols -->
  406.     <div class=\"col-12 col-md-4\">
  407.       <div class=\"card rounded-4 shadow-sm h-100\">
  408.         <div class=\"card-body\">
  409.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Vols</h6>
  410.           <ul class=\"mb-0 ps-3\">
  411.             ";
  412.         // line 157
  413.         $context['_parent'] = $context;
  414.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'157$this->source); })()), "summaryFlights", [], "any"falsefalsefalse157), "
  415. "));
  416.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  417.             // line 158
  418.             yield "              ";
  419.             if ((Twig\Extension\CoreExtension::trim($context["line"]) != "")) {
  420.                 // line 159
  421.                 yield "                <li>";
  422.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  423.                 yield "</li>
  424.               ";
  425.             }
  426.             // line 161
  427.             yield "            ";
  428.         }
  429.         $_parent $context['_parent'];
  430.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  431.         $context array_intersect_key($context$_parent) + $_parent;
  432.         // line 162
  433.         yield "          </ul>
  434.         </div>
  435.       </div>
  436.     </div>
  437.     <!-- Tarif -->
  438.     <div class=\"col-12 col-md-4\">
  439.       <div class=\"card rounded-4 shadow-sm h-100\">
  440.         <div class=\"card-body\">
  441.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Tarif à partir de</h6>
  442.           <p class=\"mb-0 text-muted\">";
  443.         // line 172
  444.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'172$this->source); })()), "priceFrom", [], "any"falsefalsefalse172), "html"nulltrue);
  445.         yield " €</p>
  446.         </div>
  447.       </div>
  448.     </div>
  449.   </div>
  450.   <!-- Ligne 2 : Rythme -->
  451.   <div class=\"row g-3 mb-4\">
  452.     <div class=\"col-12\">
  453.       <div class=\"card rounded-4 shadow-sm h-100\">
  454.         <div class=\"card-body\">
  455.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Rythme</h6>
  456.           <ul class=\"mb-0 ps-3\">
  457.             ";
  458.         // line 186
  459.         $context['_parent'] = $context;
  460.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'186$this->source); })()), "summaryPaceMeals", [], "any"falsefalsefalse186), "
  461. "));
  462.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  463.             // line 187
  464.             yield "              ";
  465.             if ((Twig\Extension\CoreExtension::trim($context["line"]) != "")) {
  466.                 // line 188
  467.                 yield "                <li>";
  468.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  469.                 yield "</li>
  470.               ";
  471.             }
  472.             // line 190
  473.             yield "            ";
  474.         }
  475.         $_parent $context['_parent'];
  476.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  477.         $context array_intersect_key($context$_parent) + $_parent;
  478.         // line 191
  479.         yield "          </ul>
  480.         </div>
  481.       </div>
  482.     </div>
  483. </div>
  484.       <div class=\"card border-0 shadow-sm rounded-4 mb-4\">
  485.         <div class=\"card-body\">
  486.          <h2 class=\"h5 txt-ot-blue fw-bold mb-3\">Itinéraire — jour par jour</h2>
  487.           <div class=\"list-group list-group-flush\">
  488.             ";
  489.         // line 202
  490.         $context['_parent'] = $context;
  491.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["itinerary"]) || array_key_exists("itinerary"$context) ? $context["itinerary"] : (function () { throw new RuntimeError('Variable "itinerary" does not exist.'202$this->source); })()));
  492.         $context['loop'] = [
  493.           'parent' => $context['_parent'],
  494.           'index0' => 0,
  495.           'index'  => 1,
  496.           'first'  => true,
  497.         ];
  498.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  499.             $length count($context['_seq']);
  500.             $context['loop']['revindex0'] = $length 1;
  501.             $context['loop']['revindex'] = $length;
  502.             $context['loop']['length'] = $length;
  503.             $context['loop']['last'] = === $length;
  504.         }
  505.         foreach ($context['_seq'] as $context["_key"] => $context["it"]) {
  506.             // line 203
  507.             yield "              <div class=\"list-group-item px-0\">
  508.                 <button class=\"btn w-100 d-flex justify-content-between align-items-center text-start\" data-bs-toggle=\"collapse\" data-bs-target=\"#day";
  509.             // line 204
  510.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse204), "html"nulltrue);
  511.             yield "\" aria-expanded=\"false\">
  512.                   <span class=\"fw-bold\">Jour ";
  513.             // line 205
  514.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse205), "html"nulltrue);
  515.             yield " - ";
  516.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["it"], "title", [], "any"falsefalsefalse205), "html"nulltrue);
  517.             if (CoreExtension::getAttribute($this->env$this->source$context["it"], "kmLabel", [], "any"falsefalsefalse205)) {
  518.                 yield " <span class=\"text-muted fw-normal\"> (";
  519.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["it"], "kmLabel", [], "any"falsefalsefalse205), "html"nulltrue);
  520.                 yield ") km</span>";
  521.             }
  522.             yield "</span>
  523.                   <i class=\"bi bi-chevron-down\"></i>
  524.                 </button>
  525.                 <div id=\"day";
  526.             // line 208
  527.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse208), "html"nulltrue);
  528.             yield "\" class=\"collapse mt-2\">
  529.                   <p class=\"small text-muted mb-0\">";
  530.             // line 209
  531.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["it"], "details", [], "any"falsefalsefalse209), "html"nulltrue);
  532.             yield "</p>
  533.                 </div>
  534.               </div>
  535.             ";
  536.             ++$context['loop']['index0'];
  537.             ++$context['loop']['index'];
  538.             $context['loop']['first'] = false;
  539.             if (isset($context['loop']['length'])) {
  540.                 --$context['loop']['revindex0'];
  541.                 --$context['loop']['revindex'];
  542.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  543.             }
  544.         }
  545.         $_parent $context['_parent'];
  546.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['it'], $context['_parent'], $context['loop']);
  547.         $context array_intersect_key($context$_parent) + $_parent;
  548.         // line 213
  549.         yield "          </div>
  550.          ";
  551.         // line 217
  552.         yield "        </div>
  553.       </div>
  554.   ";
  555.         // line 219
  556.         if ((isset($context["hebergementOffer"]) || array_key_exists("hebergementOffer"$context) ? $context["hebergementOffer"] : (function () { throw new RuntimeError('Variable "hebergementOffer" does not exist.'219$this->source); })())) {
  557.             // line 223
  558.             yield "    <h3 class=\"h5 txt-ot-blue fw-bold mt-3 mb-3\">Hébergements prévus (ou similaires)</h3>
  559.     <ul class=\"list-group\">
  560.       ";
  561.             // line 225
  562.             $context['_parent'] = $context;
  563.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["hebergementOffer"]) || array_key_exists("hebergementOffer"$context) ? $context["hebergementOffer"] : (function () { throw new RuntimeError('Variable "hebergementOffer" does not exist.'225$this->source); })()));
  564.             foreach ($context['_seq'] as $context["_key"] => $context["h"]) {
  565.                 yield "<li class=\"list-group-item\">";
  566.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["h"], "name", [], "any"falsefalsefalse225), "html"nulltrue);
  567.                 yield "</li>";
  568.             }
  569.             $_parent $context['_parent'];
  570.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['h'], $context['_parent'], $context['loop']);
  571.             $context array_intersect_key($context$_parent) + $_parent;
  572.             // line 226
  573.             yield "    </ul>
  574. ";
  575.         }
  576.         // line 228
  577.         yield "
  578. ";
  579.         // line 229
  580.         if ((isset($context["flight"]) || array_key_exists("flight"$context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.'229$this->source); })())) {
  581.             // line 233
  582.             yield "    <h3 class=\"h5 txt-ot-blue fw-bold mt-3 mb-3\">Vols & horaires (indicatifs)</h2>
  583.     <div class=\"row g-4\">
  584.       <div class=\"col-12 col-lg-6\">
  585.         <div class=\"card border-0 shadow-sm rounded-4 h-100\">
  586.           <div class=\"card-body\">
  587.             <h3 class=\"h6 fw-bold mb-2\">Aller</h3>
  588.             <ul class=\"small mb-0\">
  589.             ";
  590.             // line 240
  591.             $context['_parent'] = $context;
  592.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["flight"]) || array_key_exists("flight"$context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.'240$this->source); })()));
  593.             foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
  594.                 // line 241
  595.                 yield "              ";
  596.                 if ((CoreExtension::getAttribute($this->env$this->source$context["f"], "type", [], "any"falsefalsefalse241) == "1")) {
  597.                     // line 242
  598.                     yield "                <li>";
  599.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureCity", [], "any"falsefalsefalse242), "html"nulltrue);
  600.                     yield " → ";
  601.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureCity", [], "any"falsefalsefalse242), "html"nulltrue);
  602.                     yield "  ";
  603.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureTime", [], "any"falsefalsefalse242), "html"nulltrue);
  604.                     yield " / ";
  605.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "arrivalTime", [], "any"falsefalsefalse242), "html"nulltrue);
  606.                     yield " </li>
  607.               ";
  608.                 }
  609.                 // line 244
  610.                 yield "            ";
  611.             }
  612.             $_parent $context['_parent'];
  613.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
  614.             $context array_intersect_key($context$_parent) + $_parent;
  615.             // line 245
  616.             yield "            </ul>
  617.           </div>
  618.         </div>
  619.       </div>
  620.       <div class=\"col-12 col-lg-6\">
  621.         <div class=\"card border-0 shadow-sm rounded-4 h-100\">
  622.           <div class=\"card-body\">
  623.             <h3 class=\"h6 fw-bold mb-2\">Retour</h3>
  624.             <ul class=\"small mb-0\">
  625.             ";
  626.             // line 254
  627.             $context['_parent'] = $context;
  628.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["flight"]) || array_key_exists("flight"$context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.'254$this->source); })()));
  629.             foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
  630.                 // line 255
  631.                 yield "              ";
  632.                 if ((CoreExtension::getAttribute($this->env$this->source$context["f"], "type", [], "any"falsefalsefalse255) == "2")) {
  633.                     // line 256
  634.                     yield "                <li>";
  635.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureCity", [], "any"falsefalsefalse256), "html"nulltrue);
  636.                     yield " → ";
  637.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureCity", [], "any"falsefalsefalse256), "html"nulltrue);
  638.                     yield "  ";
  639.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureTime", [], "any"falsefalsefalse256), "html"nulltrue);
  640.                     yield " / ";
  641.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "arrivalTime", [], "any"falsefalsefalse256), "html"nulltrue);
  642.                     yield " </li>
  643.               ";
  644.                 }
  645.                 // line 258
  646.                 yield "            ";
  647.             }
  648.             $_parent $context['_parent'];
  649.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
  650.             $context array_intersect_key($context$_parent) + $_parent;
  651.             // line 259
  652.             yield "            </ul>
  653.           </div>
  654.         </div>
  655.       </div>
  656.     </div>
  657.     <p class=\"small text-muted mt-3 mb-0\">Horaires et compagnies susceptibles d’évolution. À confirmer à l’émission des billets.</p>
  658. ";
  659.         }
  660.         // line 266
  661.         yield "    ";
  662.         // line 294
  663.         yield "    </div>
  664.   </div>
  665. </section>
  666. ";
  667.         
  668.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  669.         
  670.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  671.         return; yield '';
  672.     }
  673.     /**
  674.      * @codeCoverageIgnore
  675.      */
  676.     public function getTemplateName()
  677.     {
  678.         return "default/croisiere-destination.html.twig";
  679.     }
  680.     /**
  681.      * @codeCoverageIgnore
  682.      */
  683.     public function isTraitable()
  684.     {
  685.         return false;
  686.     }
  687.     /**
  688.      * @codeCoverageIgnore
  689.      */
  690.     public function getDebugInfo()
  691.     {
  692.         return array (  705 => 294,  703 => 266,  694 => 259,  688 => 258,  676 => 256,  673 => 255,  669 => 254,  658 => 245,  652 => 244,  640 => 242,  637 => 241,  633 => 240,  624 => 233,  622 => 229,  619 => 228,  615 => 226,  604 => 225,  600 => 223,  598 => 219,  594 => 217,  591 => 213,  573 => 209,  569 => 208,  556 => 205,  552 => 204,  549 => 203,  532 => 202,  519 => 191,  513 => 190,  507 => 188,  504 => 187,  499 => 186,  482 => 172,  470 => 162,  464 => 161,  458 => 159,  455 => 158,  450 => 157,  436 => 146,  424 => 136,  417 => 130,  408 => 128,  403 => 127,  397 => 123,  388 => 121,  383 => 120,  373 => 112,  364 => 110,  359 => 109,  353 => 105,  344 => 103,  339 => 102,  330 => 95,  316 => 87,  307 => 80,  291 => 78,  287 => 77,  281 => 76,  277 => 75,  273 => 73,  256 => 72,  243 => 61,  223 => 57,  215 => 55,  198 => 54,  184 => 42,  173 => 33,  167 => 30,  157 => 23,  153 => 22,  149 => 20,  139 => 18,  126 => 16,  122 => 15,  118 => 14,  112 => 11,  108 => 10,  104 => 9,  99 => 7,  93 => 5,  83 => 4,  61 => 3,  38 => 2,);
  693.     }
  694.     public function getSourceContext()
  695.     {
  696.         return new Source("{# templates/croisiere/show.html.twig #}
  697. {% extends 'base.html.twig' %}
  698. {% block title %}O’Croisière - {{offer.title}} | O Tropik – Agence de voyage en Guadeloupe{% endblock %}
  699. {% block seo %}
  700.  <meta name=\"description\" content=\"{{offer.description}}\" >
  701. \t<meta property=\"og:title\" content=\"{{offer.metaTitle}}\" />
  702. \t<meta property=\"og:type\" content=\"Website\" />
  703. \t<meta property=\"og:description\" content=\"{{offer.metaDescription}}\" />
  704. \t<meta property=\"og:url\" content=\"{{absolute_url( app.request.uri)}}\" />
  705. \t<meta property=\"og:image\" content=\"{{asset('img/asset/cardimg-fb.jpg')}}\" />
  706. \t<meta name =\"twitter:card\" content=\"summary_large_image\" />
  707. \t<meta name=\"twitter:title\" content=\"{{offer.metaTitle}}\">
  708. \t<meta name=\"twitter:description\" content=\"{{offer.metaDescription}}\">
  709. \t<meta name=\"twitter:image\" content=\"{{asset('img/asset/cardimg-fb.jpg')}}\">
  710. {% endblock %}
  711. {% block body %}
  712. {# HERO #}
  713. <section class=\"hero hero--offer hero--cruise is-animated position-relative text-white\">
  714.   <div class=\"hero__media ratio ratio-21x9\">
  715.     <img src=\"{{ asset('img/offer/' ~ offer.file ~ '/' ~ offer.slug ~ '/' ~ offer.img) }}\"
  716.          alt=\"{{ offer.title }}\"
  717.          class=\"hero__img w-100 h-100 object-fit-cover\">
  718.   </div>
  719.   <div class=\"hero__overlay\">
  720.     <div class=\"hero__card\">
  721.       <h1 class=\"hero__title display-5 fw-bold mb-2\">
  722.         {{ offer.title }}
  723.       </h1>
  724.       <p class=\"hero__subtitle lead mb-0\">
  725.         {{ offer.subtitle }}
  726.       </p>
  727.     </div>
  728.   </div>
  729. </section>
  730. <section class=\"container py-5\">
  731.   <div class=\"row g-4\">
  732.     {# NAVIRE + META + BLOCS TEXTE #}
  733.     <div class=\"col-12 col-lg-5\">
  734.       <div class=\"card border-0 shadow-sm rounded-4\">
  735.         <div class=\"ratio ratio-4x3 rounded-top-4 overflow-hidden\">
  736.           <div id=\"circuitCarousel\"
  737.                class=\"carousel slide rounded-4 overflow-hidden shadow-sm w-100\"
  738.                data-bs-ride=\"carousel\"
  739.                data-bs-interval=\"5000\"
  740.                data-bs-pause=\"hover\"
  741.                data-bs-touch=\"true\"
  742.                aria-label=\"Galerie circuit\">
  743.             <div class=\"carousel-inner\">
  744.               {% for p in photoItinerary %}
  745.                 <div class=\"carousel-item {% if loop.first %}active{% endif %}\">
  746.                   <div class=\"ratio ratio-4x3\">
  747.                     <img src=\"{{asset('img/' ~ p.offer.file  ~ '/' ~ p.offer.slug  ~ '/itinerary/' ~ p.img)}}\" class=\"d-block w-100 h-100 object-fit-cover\" alt=\"Photo circuit {{ loop.index }}\">
  748.                   </div>
  749.                 </div>
  750.               {% endfor %}
  751.             </div>
  752.              <button class=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"prev\">
  753.               <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
  754.               <span class=\"visually-hidden\">Précédent</span>
  755.             </button>
  756.             <button class=\"carousel-control-next\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"next\">
  757.               <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
  758.               <span class=\"visually-hidden\">Suivant</span>
  759.             </button>
  760.             <div class=\"carousel-indicators\">
  761.               {% for p in photoItinerary %}
  762.                 <button type=\"button\"
  763.                         data-bs-target=\"#circuitCarousel\"
  764.                         data-bs-slide-to=\"{{ loop.index0 }}\"
  765.                         class=\"{% if loop.first %}active{% endif %}\"
  766.                         aria-current=\"{{ loop.first ? 'true' : 'false' }}\"
  767.                         aria-label=\"Slide {{ loop.index }}\"></button>
  768.               {% endfor %}
  769.             </div>
  770.           </div>
  771.         </div>
  772.         <div class=\"card-body\">
  773.           <h2 class=\"h4 txt-ot-blue fw-bold mb-1\">Les atouts de la croisiere</h2>
  774.           <div class=\"d-flex flex-wrap gap-2 mb-2\">
  775.           {% for h in highlight %}<span class=\"badge rounded-pill bg-success-subtle text-success-emphasis\">{{ h.title }}</span>{% endfor %} 
  776.           </div>
  777.          {# <ul class=\"small text-muted list-unstyled mb-0\">
  778.            <li><strong>Opérateur :</strong> {{ program.operator }} fly</li>
  779.             <li><strong>Embarquement :</strong> {{ program.embark_port }} aéoport</li>
  780.             <li><strong>Débarquement :</strong> {{ program.disembark_port }} wesh</li>
  781.             <li><strong>Départ aéroport :</strong> {{ program.home_airport }} aeoport</li> 
  782.           </ul> #}
  783.         </div>
  784.       </div>
  785.       <div class=\"card border-0 shadow-sm rounded-4 mt-4\">
  786.         <div class=\"card-body\">
  787.           <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Inclus</h3>
  788.           <ul class=\"list-unstyled small m-0\">
  789.           {% for line in offer.included|split(\"\\n\") %}
  790.               <li class=\"mb-1\">✔️ {{ line }}</li>
  791.             {% endfor %}
  792.           </ul>
  793.           <hr>
  794.           <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Non inclus</h3>
  795.           <ul class=\"list-unstyled m-0\">
  796.            {% for line in offer.notIncluded|split(\"\\n\") %}
  797.               <li class=\"mb-1\">- {{ line }}</li>
  798.             {% endfor %}
  799.           </ul>
  800.         </div>
  801.       </div>
  802.       <div class=\"card border-0 shadow-sm rounded-4 mt-4\">
  803.         <div class=\"card-body small\">
  804.          <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Formalités</h3>
  805.            <ul class=\"list-unstyled m-0\">
  806.            {% for line in offer.formalities|split(\"\\n\") %}
  807.               <li class=\"mb-1\">✔️ {{ line }}</li>
  808.             {% endfor %}
  809.           </ul>
  810.           <hr>
  811.            <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Modalités de paiement</h3>
  812.             <ul class=\"list-unstyled m-0\">
  813.          {% for line in offer.paymentMethod|split(\"\\n\") %}
  814.               <li class=\"mb-1\">✔️ {{ line }}</li>
  815.             {% endfor %}
  816.           </ul>
  817.         </div>
  818.       </div>
  819.     </div>
  820.     {# ITINÉRAIRE + DATES/PRIX #}
  821.     <div class=\"col-12 col-lg-7\">
  822.   <!-- Ligne 1 : Durée / Vols / Tarif -->
  823.   <div class=\"row g-3 mb-4\">
  824.     <!-- Durée -->
  825.     <div class=\"col-12 col-md-4\">
  826.       <div class=\"card rounded-4 shadow-sm h-100\">
  827.         <div class=\"card-body\">
  828.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Durée</h6>
  829.           <p class=\"mb-0 text-muted\">{{ offer.summaryDuration }}</p>
  830.         </div>
  831.       </div>
  832.     </div>
  833.     <!-- Vols -->
  834.     <div class=\"col-12 col-md-4\">
  835.       <div class=\"card rounded-4 shadow-sm h-100\">
  836.         <div class=\"card-body\">
  837.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Vols</h6>
  838.           <ul class=\"mb-0 ps-3\">
  839.             {% for line in offer.summaryFlights|split(\"\\n\") %}
  840.               {% if line|trim != '' %}
  841.                 <li>{{ line }}</li>
  842.               {% endif %}
  843.             {% endfor %}
  844.           </ul>
  845.         </div>
  846.       </div>
  847.     </div>
  848.     <!-- Tarif -->
  849.     <div class=\"col-12 col-md-4\">
  850.       <div class=\"card rounded-4 shadow-sm h-100\">
  851.         <div class=\"card-body\">
  852.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Tarif à partir de</h6>
  853.           <p class=\"mb-0 text-muted\">{{ offer.priceFrom }} €</p>
  854.         </div>
  855.       </div>
  856.     </div>
  857.   </div>
  858.   <!-- Ligne 2 : Rythme -->
  859.   <div class=\"row g-3 mb-4\">
  860.     <div class=\"col-12\">
  861.       <div class=\"card rounded-4 shadow-sm h-100\">
  862.         <div class=\"card-body\">
  863.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Rythme</h6>
  864.           <ul class=\"mb-0 ps-3\">
  865.             {% for line in offer.summaryPaceMeals|split(\"\\n\") %}
  866.               {% if line|trim != '' %}
  867.                 <li>{{ line }}</li>
  868.               {% endif %}
  869.             {% endfor %}
  870.           </ul>
  871.         </div>
  872.       </div>
  873.     </div>
  874. </div>
  875.       <div class=\"card border-0 shadow-sm rounded-4 mb-4\">
  876.         <div class=\"card-body\">
  877.          <h2 class=\"h5 txt-ot-blue fw-bold mb-3\">Itinéraire — jour par jour</h2>
  878.           <div class=\"list-group list-group-flush\">
  879.             {% for it in itinerary %}
  880.               <div class=\"list-group-item px-0\">
  881.                 <button class=\"btn w-100 d-flex justify-content-between align-items-center text-start\" data-bs-toggle=\"collapse\" data-bs-target=\"#day{{ loop.index }}\" aria-expanded=\"false\">
  882.                   <span class=\"fw-bold\">Jour {{loop.index}} - {{it.title }}{% if it.kmLabel %} <span class=\"text-muted fw-normal\"> ({{ it.kmLabel }}) km</span>{% endif %}</span>
  883.                   <i class=\"bi bi-chevron-down\"></i>
  884.                 </button>
  885.                 <div id=\"day{{ loop.index }}\" class=\"collapse mt-2\">
  886.                   <p class=\"small text-muted mb-0\">{{ it.details }}</p>
  887.                 </div>
  888.               </div>
  889.             {% endfor %}
  890.           </div>
  891.          {# {% if program.map_image %}
  892.             <img src=\"{{ asset(program.map_image) }}\" class=\"img-fluid rounded-3 mt-3\" alt=\"Carte\">
  893.           {% endif %} #}
  894.         </div>
  895.       </div>
  896.   {% if hebergementOffer %}
  897. {# =====================================================
  898.    5) HÔTELS — liste ou tableau simple
  899. ===================================================== #}
  900.     <h3 class=\"h5 txt-ot-blue fw-bold mt-3 mb-3\">Hébergements prévus (ou similaires)</h3>
  901.     <ul class=\"list-group\">
  902.       {% for h in hebergementOffer %}<li class=\"list-group-item\">{{ h.name }}</li>{% endfor %}
  903.     </ul>
  904. {% endif %}
  905. {% if flight %}
  906. {# =====================================================
  907.    7) VOLS & HORAIRES — bloc détaillé
  908. ===================================================== #}
  909.     <h3 class=\"h5 txt-ot-blue fw-bold mt-3 mb-3\">Vols & horaires (indicatifs)</h2>
  910.     <div class=\"row g-4\">
  911.       <div class=\"col-12 col-lg-6\">
  912.         <div class=\"card border-0 shadow-sm rounded-4 h-100\">
  913.           <div class=\"card-body\">
  914.             <h3 class=\"h6 fw-bold mb-2\">Aller</h3>
  915.             <ul class=\"small mb-0\">
  916.             {% for f in flight %}
  917.               {% if f.type == '1' %}
  918.                 <li>{{ f.departureCity }} → {{ f.departureCity }}  {{f.departureTime}} / {{f.arrivalTime}} </li>
  919.               {% endif %}
  920.             {% endfor %}
  921.             </ul>
  922.           </div>
  923.         </div>
  924.       </div>
  925.       <div class=\"col-12 col-lg-6\">
  926.         <div class=\"card border-0 shadow-sm rounded-4 h-100\">
  927.           <div class=\"card-body\">
  928.             <h3 class=\"h6 fw-bold mb-2\">Retour</h3>
  929.             <ul class=\"small mb-0\">
  930.             {% for f in flight %}
  931.               {% if f.type == '2' %}
  932.                 <li>{{ f.departureCity }} → {{ f.departureCity }}  {{f.departureTime}} / {{f.arrivalTime}} </li>
  933.               {% endif %}
  934.             {% endfor %}
  935.             </ul>
  936.           </div>
  937.         </div>
  938.       </div>
  939.     </div>
  940.     <p class=\"small text-muted mt-3 mb-0\">Horaires et compagnies susceptibles d’évolution. À confirmer à l’émission des billets.</p>
  941. {% endif %}
  942.     {#  <div class=\"card border-0 shadow-sm rounded-4\">
  943.         <div class=\"card-body\">
  944.           <h3 class=\"h5 fw-bold mb-3\">Dates </h3>
  945.           <div class=\"table-responsive\">
  946.             <table class=\"table table-striped table-sm\">
  947.               <thead class=\"table-light\">
  948.                 <tr><th>Période</th></tr>
  949.               </thead>
  950.               <tbody>
  951.                 {% for p in program.prices %}
  952.                   <tr>
  953.                     <td>{{ p.period_label }}</td>
  954.                     <td>{{ p.price_inside }}€</td>
  955.                     <td>{{ p.price_oceanview }}€</td>
  956.                     <td>{{ p.price_balcony }}€</td>
  957.                     <td>{{ p.price_3rd4th_adult ?? '—' }}</td>
  958.                     <td>{{ p.price_3rd4th_child ?? '—' }}</td>
  959.                   </tr>
  960.                 {% endfor %}
  961.               </tbody>
  962.             </table>
  963.           </div>
  964.         </div>
  965.       </div>
  966.       <div class=\"d-flex justify-content-end mt-4\">
  967.         <a href=\"{{ path('app_demander_devis') }}\" class=\"btn btn-primary rounded-pill px-4\">Demander un devis</a>
  968.       </div>#}
  969.     </div>
  970.   </div>
  971. </section>
  972. {% endblock %}
  973. ""default/croisiere-destination.html.twig""/home/ladomitiyc/otropik/templates/default/croisiere-destination.html.twig");
  974.     }
  975. }