templates/front_v4/mca/blog/single.html.twig line 1

Open in your IDE?
  1. {% extends 'front_v4/base.html.twig' %}
  2. {% block meta_title %}{{ blogPost.metaTitle }}{% endblock meta_title %}
  3. {% block meta_description %}{{ blogPost.metaDescription }}{% endblock meta_description %}
  4. {% block meta_custom %}
  5.     {% include '/front_v4/mca/blog/_balise_schema_org.html.twig' with {'post': blogPost} %}
  6. {% endblock meta_custom %}
  7. {# Add custom text (CTA + form) depend on theme of blogCategory #}
  8. {% set blogCategoryId = blogPost.blogCategory.id %}
  9. {% set isBlogCategoryThemeAudio = false %}
  10. {% if blogCategoryId == 3 or blogCategoryId == 4 or blogCategoryId == 5 %}
  11.     {% set isBlogCategoryThemeAudio = true %}
  12. {% endif %}
  13. {% block content %}
  14.     <main id="content" role="main">
  15.         <!-- Header Img BG -->
  16.         <div class="bg-img-center gradient-y-overlay-sm-gray-900"
  17.              style="background-image: url({% if blogPost.filename %} {{ vich_uploader_asset(blogPost, 'imageFile') | imagine_filter('blog_post_main') }}  {% endif %});">
  18.             <div class="container content-space-2 content-space-lg-3">
  19.                 <div class="w-lg-30 text-center mx-lg-auto">
  20.                     <div class="mb-4">
  21.                         <h1 class="h4 display-4 text-white mb-3">{{ blogPost.title }}</h1>
  22.                     </div>
  23.                 </div>
  24.             </div>
  25.         </div>
  26.         <!-- End Header Img BG -->
  27.         <!-- Content Article -->
  28.         <div class="row justify-content-end">
  29.             <div class="col-lg-9 my-2 my-md-7 mb-md-0">
  30.                 <!-- Article Description -->
  31.                 <div class="container-fluid content-space-t-1 content-space-b-lg-2">
  32.                     <div class="w-lg-85 mx-lg-auto">
  33.                         <div class="row align-items-sm-center mb-5">
  34.                             <div class="col-sm-7 mb-4 mb-sm-0">
  35.                                 <!-- Media -->
  36.                                 <div class="d-flex align-items-center">
  37.                                     <div class="flex-shrink-0">
  38.                                         <img class="avatar avatar-circle"
  39.                                              src="{% if blogPost.blogAuthor.filename %} {{ vich_uploader_asset(blogPost.blogAuthor, 'imageFile') | imagine_filter('author_image_small') }} {% endif %}"
  40.                                              alt="{{ blogPost.blogAuthor.firstname }}">
  41.                                     </div>
  42.                                     <div class="flex-grow-1 ms-3">
  43.                                         <h5 class="mb-0">
  44.                                             <a class="text-dark"
  45.                                                href="{{ path('blog_author_show', {'id': blogPost.blogAuthor.id }) }}">{{ blogPost.blogAuthor.firstname }}</a>
  46.                                         </h5>
  47.                                         <span class="d-block small">{{ blogPost.createdAt|format_date('medium') }}</span>
  48.                                     </div>
  49.                                 </div>
  50.                                 <!-- End Media -->
  51.                             </div>
  52.                             <!-- End Col -->
  53.                         </div>
  54.                         <!-- End Row -->
  55.                     </div>
  56.                     <!-- Body Content Main -->
  57.                     <div class="w-lg-85 mx-lg-auto">
  58.                         {{ blogPost.body|raw() }}
  59.                     </div>
  60.                     <!-- End Body Content Main -->
  61.                     <!-- CTA -->
  62.                     <div class="container py-5 mb-3">
  63.                         <div class="w-lg-75 mx-lg-auto">
  64.                             <div class="card card-sm overflow-hidden">
  65.                                 <!-- Card -->
  66.                                 <div class="card-body">
  67.                                     <div class="row justify-content-md-start align-items-md-center text-center text-md-start">
  68.                                         <div class="col-md offset-md-3 mb-3 mb-md-0">
  69.                                             <h4 class="card-title">
  70.                                                 {% if isBlogCategoryThemeAudio %}
  71.                                                     Testez vos futurs appareils auditifs
  72.                                                 {% else %}
  73.                                                     Réalisez votre bilan auditif<sup class="text-sm"> (1)</sup> gratuit
  74.                                                 {% endif %}
  75.                                             </h4>
  76.                                         </div>
  77.                                         <div class="col-md-auto">
  78.                                             <a class="btn btn-warning btn-transition" href="#bilan-test-gratuit">Réservez un RDV</a>
  79.                                         </div>
  80.                                     </div>
  81.                                     <!-- SVG Shape -->
  82.                                     <figure class="w-25 d-none d-md-block position-absolute top-0 start-0 mt-n2">
  83.                                         <svg viewBox="0 0 451 902" fill="none" xmlns="http://www.w3.org/2000/svg">
  84.                                             <path opacity="0.125" d="M0 82C203.8 82 369 247.2 369 451C369 654.8 203.8 820 0 820" stroke="url(#paint2_linear)" stroke-width="164" stroke-miterlimit="10"/>
  85.                                             <defs>
  86.                                                 <linearGradient id="paint2_linear" x1="323.205" y1="785.242" x2="-97.6164" y2="56.3589" gradientUnits="userSpaceOnUse">
  87.                                                     <stop offset="0" stop-color="white" stop-opacity="0"/>
  88.                                                     <stop offset="1" stop-color="#377dff"/>
  89.                                                 </linearGradient>
  90.                                             </defs>
  91.                                         </svg>
  92.                                     </figure>
  93.                                     <!-- End SVG Shape -->
  94.                                 </div>
  95.                                 <!-- End Card -->
  96.                             </div>
  97.                         </div>
  98.                     </div>
  99.                     <!-- End CTA -->
  100.                     <!-- Body Content Second -->
  101.                     <div class="w-lg-85 mx-lg-auto">
  102.                         {{ blogPost.bodySecond|raw() }}
  103.                     </div>
  104.                     <!-- End Body Content Second -->
  105.                     <div class="w-lg-85 mx-lg-auto">
  106.                         <!-- Card -->
  107.                         <div class="card bg-dark text-center my-4"
  108.                              style="background-image: url({{ asset('build/front_v4/svg/components/wave-pattern-light.svg') }});">
  109.                             <div class="card-body">
  110.                                 <h4 class="text-white">Vous avez aimé cette article ?</h4>
  111.                                 <p class="text-white mb-4">Suivez-nous sur <a class="link"
  112.                                                                               href="https://www.facebook.com/MonCentreAuditif/">Facebook</a>
  113.                                     et <a class="link"
  114.                                           href="https://www.linkedin.com/company/auditif/">Linkedin</a> pour rester
  115.                                     informé.
  116.                                 </p>
  117.                             </div>
  118.                         </div>
  119.                         <!-- End Card -->
  120.                     </div>
  121.                     <!-- Sticky Block End Point -->
  122.                     <div id="stickyBlockEndPoint"></div>
  123.                 </div>
  124.                 <!-- End Article Description -->
  125.             </div>
  126.             <div class="col-lg-3 position-relative zi-2 my-3 my-md-7 mb-md-0 px-4">
  127.                 <!-- Sticky Block Start Point -->
  128.                 <div id="stickyBlockStartPoint"></div>
  129.                 <div class="js-sticky-block"
  130.                      data-hs-sticky-block-options='{
  131.                  "parentSelector": "#stickyBlockStartPoint",
  132.                  "targetSelector": "#header",
  133.                  "breakpoint": "md",
  134.                  "startPoint": "#stickyBlockStartPoint",
  135.                  "endPoint": "#stickyBlockEndPoint",
  136.                  "stickyOffsetTop": 80
  137.                }'>
  138.                     <!-- CTA Card -->
  139.                     <div class="card my-3 my-lg-5">
  140.                         <div class="p-1">
  141.                             <a href="{{ app.request.schemeAndHttpHost ~ '/' ~ blogPost.ctaLinkPath }}">
  142.                                 <!-- Fancybox -->
  143.                                 <div class="bg-img-start text-center rounded-2 py-3 py-md-5 px-5 gradient-y-lg-white"
  144.                                      style="background-image: url({{ asset('build/front_v4/svg/components/card-11.svg') }});">
  145.                                     <span class="d-flex justify-content-center align-items-center"></span>
  146.                                     <span class="h3 text-primary">
  147.                                         {% if isBlogCategoryThemeAudio %}
  148.                                             Testez vos futurs appareils auditifs
  149.                                         {% else %}
  150.                                             Réalisez votre bilan auditif<sup class="text-sm"> (1)</sup>
  151.                                         {% endif %}
  152.                                     </span>
  153.                                     <p class="h2 text-primary fw-bold py-2">
  154.                                         100% gratuit
  155.                                     </p>
  156.                                 </div>
  157.                                 <!-- End Fancybox -->
  158.                             </a>
  159.                         </div>
  160.                         <!-- Card Body -->
  161.                         <div class="card-body">
  162.                             <div class="d-grid mb-2">
  163.                                 <a class="btn btn-warning btn-transition" href="#bilan-test-gratuit">Réservez un RDV</a>
  164.                             </div>
  165.                             <div class="text-center">
  166.                                 <p class="card-text small">Un test sans engagement et non médical.</p>
  167.                             </div>
  168.                         </div>
  169.                         <!-- End CTA Card Body -->
  170.                     </div>
  171.                     <!-- End Card -->
  172.                     {% if relatedCategoryPosts is defined and relatedCategoryPosts is not empty %}
  173.                         <div class="d-none d-lg-block my-5 my-lg-5">
  174.                             <div class="mb-3">
  175.                                 <h3>Articles similaires :</h3>
  176.                             </div>
  177.                             <div class="d-grid gap-2">
  178.                                 {% for post in relatedCategoryPosts %}
  179.                                     <!-- Card -->
  180.                                     <a class="d-block" href="{{ path('blog_post_show', {'slug': post.slug}) }}">
  181.                                         <div class="d-flex align-items-center">
  182.                                             <div class="flex-shrink-0">
  183.                                                 <div class="avatar avatar-lg">
  184.                                                     <img class="avatar-img"
  185.                                                          src="{% if post.filename %} {{ vich_uploader_asset(post, 'imageFile') | imagine_filter('blog_post_small') }} {% endif %}"
  186.                                                          alt="{{ post.title }}">
  187.                                                 </div>
  188.                                             </div>
  189.                                             <div class="flex-grow-1 ms-3">
  190.                                                 <h5 class="text-inherit mb-0">{{ post.title }}</h5>
  191.                                             </div>
  192.                                         </div>
  193.                                     </a>
  194.                                     <!-- End Card -->
  195.                                 {% endfor %}
  196.                             </div>
  197.                         </div>
  198.                     {% endif %}
  199.                 </div>
  200.                 <!-- End Sticky Block -->
  201.             </div>
  202.         </div>
  203.         <!-- Header Content Article -->
  204.         <div id="bilan-test-gratuit" class="bg-dark" style="background-image: url({{ asset('build/front_v4/svg/components/wave-pattern-light.svg') }});">
  205.             <div class="w-85 w-lg-65 w-xl-50 mx-auto py-5 py-lg-10">
  206.                 <div class="card">
  207.                     <div class="card-body">
  208.                         {% if isBlogCategoryThemeAudio %}
  209.                             {% set introText = '
  210.                              <div class="mb-4">
  211.                                 <p class="h2 text-primary fw-semibold text-center">Testez gratuitement vos futurs appareils auditifs</h1>
  212.                                 <p class="lead text-center" style="font-size: 1.125rem;">
  213.                                     Sans engagement, 100% gratuit. Découvrez le confort d’une meilleure audition.
  214.                                     <br>
  215.                                     <strong>Complétez le formulaire</strong> ci-dessous pour réserver votre essai.
  216.                                 </p>
  217.                             </div>
  218.                                 ' %}
  219.                         {% else %}
  220.                             {# respect SEO hn title and add text-center #}
  221.                             {% set introText = '
  222.                              <div class="mb-4">
  223.                                 <p class="h2 text-primary text-center fw-semibold text-center">Demandez votre bilan auditif<sup>(1)</sup> gratuit</h1>
  224.                                 <p class="lead text-center" style="font-size: 1.125rem;">
  225.                                     Un test non médical, 100% gratuit, pour évaluer votre audition près de chez vous.
  226.                                     <br>
  227.                                     <strong>Remplissez le formulaire</strong> ci-dessous pour en bénéficier.
  228.                                 </p>
  229.                             </div>
  230.                                 ' %}
  231.                         {% endif %}
  232.                         {% include 'front_v4/mca/landing_page/form/_wrapper_form_lp_prospect.html.twig' %}
  233.                     </div>
  234.                 </div>
  235.             </div>
  236.         </div>
  237.         <!-- Card Grid -->
  238.         <div class="container">
  239.             <div class="border-top content-space-2 mx-lg-auto">
  240.                 <!-- Heading -->
  241.                 <div class="mb-3 mb-sm-5">
  242.                     <h2>Notre sélection d'articles</h2>
  243.                 </div>
  244.                 <!-- End Heading -->
  245.                 <div class="row">
  246.                     {% for post in pilarPosts %}
  247.                         {% if loop.index is odd %}
  248.                             <div class="col-sm-6 col-lg-4 mb-4">
  249.                                 <a href="{{ path('blog_post_show', {'slug': post.slug}) }}">
  250.                                     <!-- Card -->
  251.                                     <div class="card h-100">
  252.                                         <div class="shape-container">
  253.                                             <img class="card-img-top"
  254.                                                  src="{% if blogPost.filename %}{{ vich_uploader_asset(post, 'imageFile') | imagine_filter('blog_post_medium') }}{% endif %}"
  255.                                                  alt="{{ post.title }}">
  256.                                             <!-- Shape -->
  257.                                             <div class="shape shape-bottom zi-1" style="margin-bottom: -.25rem">
  258.                                                 <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
  259.                                                      viewBox="0 0 1920 100.1">
  260.                                                     <path fill="#fff"
  261.                                                           d="M0,0c0,0,934.4,93.4,1920,0v100.1H0L0,0z"></path>
  262.                                                 </svg>
  263.                                             </div>
  264.                                             <!-- End Shape -->
  265.                                         </div>
  266.                                         <!-- Card Body -->
  267.                                         <div class="card-body p-3">
  268.                                             <h4 class="card-title text-dark">{{ post.title }}</h4>
  269.                                             <p class="card-text">{{ post.body|striptags|truncate(80, true)|raw|nl2br }}</p>
  270.                                         </div>
  271.                                         <!-- End Card Body -->
  272.                                         <!-- Card Footer -->
  273.                                         <div class="card-footer">
  274.                                             <div class="d-flex align-items-center justify-content-between">
  275.                                                     <span class="avatar avatar-circle">
  276.                                                         <img class="avatar-img"
  277.                                                              src="{% if post.blogAuthor.filename %} {{ vich_uploader_asset(post.blogAuthor, 'imageFile') | imagine_filter('author_image_small') }} {% endif %}"
  278.                                                              alt="{{ post.blogAuthor.firstname }}">
  279.                                                     </span>
  280.                                                     <div class="flex-grow-1">
  281.                                                         <div class="d-flex justify-content-end">
  282.                                                             <p class="card-text">{{ post.createdAt|format_date('medium') }}</p>
  283.                                                         </div>
  284.                                                     </div>
  285.                                             </div>
  286.                                         </div>
  287.                                         <!-- End Card Footer -->
  288.                                     </div>
  289.                                     <!-- End Card -->
  290.                                 </a>
  291.                             </div>
  292.                             <!-- End Col -->
  293.                         {% else %}
  294.                             <div class="col-sm-6 col-lg-4 mb-4">
  295.                                 <a href="{{ path('blog_post_show', {'slug': post.slug}) }}">
  296.                                     <!-- Card -->
  297.                                     <div class="card bg-dark h-100"
  298.                                          style="background-image: url({{ asset('build/front_v4/svg/components/wave-pattern-light.svg') }});">
  299.                                         <!-- Card Body -->
  300.                                         <div class="card-body p-3 py-5">
  301.                                             <div class="mb-5">
  302.                                                 <span class="badge bg-primary">Sélection du mois</span>
  303.                                             </div>
  304.                                             <h3 class="card-title text-white">{{ post.title }}</h3>
  305.                                             <p class="text-white-70">{{ post.body|striptags|truncate(180, true)|raw|nl2br }}</p>
  306.                                         </div>
  307.                                         <!-- End Card Body -->
  308.                                         <!-- Card Footer -->
  309.                                         <div class="card-footer">
  310.                                             <div class="d-flex align-items-center">
  311.                                                 <div class="flex-shrink-0">
  312.                                                     <div class="avatar avatar-circle">
  313.                                                         <img class="avatar-img"
  314.                                                              src="{% if post.blogAuthor.filename %} {{ vich_uploader_asset(post.blogAuthor, 'imageFile') | imagine_filter('author_image_small') }} {% endif %}"
  315.                                                              alt="{{ post.blogAuthor.firstname }}">
  316.                                                     </div>
  317.                                                 </div>
  318.                                                 <div class="flex-grow-1">
  319.                                                     <div class="d-flex justify-content-end">
  320.                                                         <p class="card-text text-white-70">{{ post.createdAt|format_date('medium') }}</p>
  321.                                                     </div>
  322.                                                 </div>
  323.                                             </div>
  324.                                         </div>
  325.                                         <!-- End Card Footer -->
  326.                                     </div>
  327.                                     <!-- End Card -->
  328.                                 </a>
  329.                             </div>
  330.                             <!-- End Col -->
  331.                         {% endif %}
  332.                     {% endfor %}
  333.                 </div>
  334.                 <!-- End Row -->
  335.             </div>
  336.             <!-- End Card Grid -->
  337.         </div>
  338.         <!-- End Card Grid -->
  339.     </main>
  340.     <!-- ========== END MAIN CONTENT ========== -->
  341. {% endblock content %}
  342. {% block javascripts %}
  343.     <script
  344.             src="https://code.jquery.com/jquery-3.7.1.min.js"
  345.             integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
  346.             crossorigin="anonymous"></script>
  347.     {{ encore_entry_script_tags('format_form_prospect') }}
  348.     {{ encore_entry_script_tags('blog_single') }}
  349. {% endblock javascripts %}