templates/themes/theme/casestudies/casestudy.html.twig line 1

Open in your IDE?
  1. <script type="application/ld+json">
  2.     {
  3.         "@context": "https://schema.org",
  4.         "@type": "Article",
  5.         "headline": "{{ study.title }}",
  6.         "author": {
  7.             "@type": "Organization",
  8.             "name": "{{ sitename }}"
  9.         },
  10.         "datePublished": "{{ study.createdAt|date('c') }}",
  11.         "dateModified": "{{ study.updatedAt|date('c') }}",
  12.         "image": {
  13.             "@type": "ImageObject",
  14.             "url": "{{ siteurl }}{{ imageCache('/' ~ study.getFullImage2Path, 'zoomCrop', 800, 600) }}",
  15.             "width": 800,
  16.             "height": 600
  17.         },
  18.         "about": {
  19.             "@type": "Project",
  20.             "name": "{{ study.projectName }}",
  21.             "startDate": "{{ study.projectStartDate|date('c') }}",
  22.             "location": {
  23.             "@type": "Place",
  24.             "name": "{{ study.projectLocation }}"
  25.             },
  26.             "description": "{{ study.kicker|raw|nl2br|striptags }}",
  27.         },
  28.         "articleBody": "{{ study.detailContent|html_entity_decode|replace({'\n': ' ', '\r': ' '})|striptags }}"
  29.     }
  30. </script>
  31. <div class="case-study-banner flex items-end pb-12 mb-12 text-white lazyBackgroundImage" data-mobile="{{ imageCache('/' ~ study.getFullImage5Path, 'zoomCrop', 1566, 822) }}" data-desktop="{{ imageCache('/' ~ study.getFullImage5Path, 'zoomCrop', 3200, 1680) }}">
  32.     <div class="container relative z-20">
  33.         <div class="row">
  34.             <div class="xl:col-4 lg:col-6">
  35.                 <h1>{{ allowInlineEditor(study, 'title')|raw }}</h1>
  36.             </div>
  37.         </div>
  38.         <div class="row">
  39.             <div class="xl:col-6 lg:col-8 text-lg">
  40.                 {{ allowInlineEditor(study, 'kicker')|raw }}
  41.             </div>
  42.         </div>
  43.     </div>
  44. </div>
  45. <section class="mb-12">
  46.     <div class="container">
  47.         <div class="row">
  48.             {% if study.image %}
  49.                 <div class="md:col-4 mb-6 md:mb-0">
  50.                     <img class="h-auto max-h-[60px] w-auto max-w-full mb-3" src="{{ imageCache('/'~ study.getFullImagePath, "cropResize", 200, 200) }}" height="100" width="100" alt="{{ study.clientName }}" loading="lazy" />
  51.                 </div>
  52.             {% endif %}
  53.             {% if study.projectName %}
  54.                 <div class="md:col-4 md:border-l md:border-dark md:pl-4 md:flex md:flex-col md:justify-center mb-6 md:mb-0">
  55.                     <p class="text-sm mb-0 text-secondary"><strong>Project</strong></p>
  56.                     <h3 class="capitalize text-dark mt-0 mb-0">{{ allowInlineEditor(study, 'projectName')|raw }}</h3>
  57.                 </div>
  58.             {% endif %}
  59.             {% if study.projectType %}
  60.                 <div class="md:col-4 md:border-l md:border-dark md:pl-4 md:flex md:flex-col md:justify-center">
  61.                     <p class="text-sm mb-0 text-secondary"><strong>Project Type</strong></p>
  62.                     <h3 class="capitalize text-dark mt-0 mb-0">{{ study.projectType }}</h3>
  63.                 </div>
  64.             {% endif %}
  65.         </div>
  66.     </div>
  67. </section>
  68. {% if study.detailContent %}
  69.     <section class="mb-12">
  70.         <div class="container">
  71.             <div class="row">
  72.                 <div class="md:col-6 mb-6 md:mb-0">
  73.                     <img class="max-w-full h-auto" src="{{ imageCache('/' ~ study.getFullImage2Path, 'zoomCrop', 1140, 840) }}" alt="{{ study.detailSubtitle }}" loading="lazy" />
  74.                 </div>
  75.                 <div class="md:col-6 text-lg cms-area">
  76.                     {# THE DETAIL #}
  77.                     {% if study.detailSubtitle %}
  78.                         {# <p class="text-sm mb-0 uppercase text-secondary"><strong>{{ allowInlineEditor(study, 'detailSubtitle')|raw }}</strong></p> #}
  79.                         <h2 class="text-3xl mt-0 mb-8">{{ allowInlineEditor(study, 'detailSubtitle')|raw }}</h2>
  80.                     {% endif %}
  81.                     {{ allowInlineEditor(study, 'detailContent')|raw }}
  82.                 </div>
  83.             </div>
  84.         </div>
  85.     </section>
  86. {% endif %}
  87. {% if study.challengesContent %}
  88.     <section class="bg-primary text-white py-16 mb-12">
  89.         <div class="container">
  90.             <div class="row">
  91.                 <div class="md:col-6 text-lg order-2 md:order-1 cms-area">
  92.                     {% if study.challengesSubtitle %}
  93.                         {# <p class="text-sm mb-0 text-white uppercase"><strong>The Challenges</strong></p> #}
  94.                         <h2 class="text-3xl mt-0 mb-8 text-white">{{ allowInlineEditor(study, 'challengesSubtitle')|raw }}</h2>
  95.                     {% endif %}
  96.                     {{ allowInlineEditor(study, 'challengesContent')|raw }}
  97.                 </div>
  98.                 <div class="md:col-6 order-1 md:order-2 mb-12 md:mb-0">
  99.                     <img class="max-w-full h-auto" src="{{ imageCache('/' ~ study.getFullImage3Path, 'zoomCrop', 1140, 840) }}" alt="{{ study.challengesSubtitle }}" loading="lazy" />
  100.                 </div>
  101.             </div>
  102.         </div>
  103.     </section>
  104. {% endif %}
  105. {% if study.solutionContent %}
  106.     <section class="mb-12">
  107.         <div class="container">
  108.             <div class="row">
  109.                 <div class="md:col-6 mb-6 md:mb-0">
  110.                     <img class="max-w-full h-auto" src="{{ imageCache('/' ~ study.getFullImage4Path, 'zoomCrop', 1140, 840) }}" alt="{{ study.solutionSubtitle }}" loading="lazy" />
  111.                 </div>
  112.                 <div class="md:col-6 text-lg cms-area">
  113.                     {% if study.solutionSubtitle %}
  114.                         {# <p class="text-sm mb-0 uppercase text-secondary"><strong>The Solution</strong></p> #}
  115.                         <h2 class="text-3xl mt-0 mb-8">{{ allowInlineEditor(study, 'solutionSubtitle')|raw }}</h2>
  116.                     {% endif %}
  117.                     {{ allowInlineEditor(study, 'solutionContent')|raw }}
  118.                 </div>
  119.             </div>
  120.         </div>
  121.     </section>
  122. {% endif %}
  123. {% if study.projectStartDate or study.projectDuration or study.projectBudget or study.projectLocation %}
  124.     <section class="bg-dark py-16 mb-12 text-white text-center">
  125.         <div class="container">
  126.             <div class="row">
  127.                 {% if study.projectStartDate %}
  128.                     <div class="md:col-3 sm:col-6 mb-12 md:mb-0">
  129.                         <i class="fa-solid fa-calendar-days text-green text-5xl mb-6"></i>
  130.                         <h5 class="uppercase text-white mb-0">{{ study.projectStartDate|date('M Y') }}</h5>
  131.                     </div>
  132.                 {% endif %}
  133.                 {% if study.projectDuration %}
  134.                     <div class="md:col-3 sm:col-6 mb-12 md:mb-0">
  135.                         <i class="fa-solid fa-clock text-green text-5xl mb-6"></i>
  136.                         <h5 class="uppercase text-white mb-0">{{ allowInlineEditor(study, 'projectDuration')|raw }}</h5>
  137.                     </div>
  138.                 {% endif %}
  139.                 {% if study.projectBudget %}
  140.                     <div class="md:col-3 sm:col-6 mb-12 sm:mb-0">
  141.                         <i class="fa-solid fa-coin text-green text-5xl mb-6"></i>
  142.                         <h5 class="uppercase text-white mb-0">{{ allowInlineEditor(study, 'projectBudget')|raw }}</h5>
  143.                     </div>
  144.                 {% endif %}
  145.                 {% if study.projectLocation %}
  146.                     <div class="md:col-3 sm:col-6">
  147.                         <i class="fa-solid fa-location-crosshairs text-green text-5xl mb-6"></i>
  148.                         <h5 class="uppercase text-white mb-0">{{ allowInlineEditor(study, 'projectLocation')|raw }}</h5>
  149.                     </div>
  150.                 {% endif %}
  151.             </div>
  152.         </div>
  153.     </section>
  154. {% endif %}
  155. {% if study.gallery and study.gallery.galleryImages|length > 0 %}
  156.     <div class="container mb-4">
  157.         <div class="row">
  158.             <div class="col-12 text-center">
  159.                 <h3 class="text-green mb-8 mt-0">Project Gallery</h3>
  160.                 {% if study.gallery.content %}
  161.                     <div class="mb-12">
  162.                         {{ allowInlineEditor(study.gallery, 'content')|raw }}
  163.                     </div>
  164.                 {% endif %}
  165.             </div>
  166.         </div>
  167.         <div class="row">
  168.             {% for image in study.gallery.galleryImages %}
  169.                 {% if image.file %}
  170.                     <div class="lg:col-6 mb-8">
  171.                         <video class="w-full h-auto" src="{{ image.getFileUrl() }}" controls></video>
  172.                     </div>
  173.                 {% else %}
  174.                 <div class="lg:col-6 mb-8">
  175.                     <img class="max-w-full h-auto" src="{{ imageCache('/'~ image.getFullImagePath, 'zoomCrop', 1140, 640) }}" alt="{{ image.title }}" loading="lazy" />
  176.                 </div>
  177.                 {% endif %}
  178.             {% endfor %}
  179.         </div>
  180.     </div>
  181. {% endif %}
  182. {% if study.testimonial and study.testimonial.active and not study.testimonial.deleted %}
  183.     <section class="mb-12">
  184.         <div class="container">
  185.             <div class="row">
  186.                 <div class="col-12">
  187.                     <div class="w-full flex flex-col justify-center items-center text-center">
  188.                         <h3 class="mb-8 mt-0 text-green">What the Client Said</h3>
  189.                         {% if study.testimonial.image %}
  190.                             <img class="h-auto max-h-[60px] w-auto max-w-full mb-3" src="{{ imageCache('/'~ study.testimonial.getFullImagePath, 'cropResize', 150, 150) }}" height="60" alt="{{ study.testimonial.clientName }}" loading="lazy" />
  191.                         {% endif %}
  192.                             <a href="{{ generatePath(app.request, study.testimonial.linkedPageId, { 'testimonial_slug': study.testimonial.slug }) }}" class="text-dark">
  193.                             <p class="text-xl font-light mb-2">{{ allowInlineEditor(study.testimonial, 'content')|nl2br }}</p>
  194.                             <p class="text-sm font-bold mb-0 text-secondary">{{ allowInlineEditor(study.testimonial, 'attestant')|raw }}</p>
  195.                             <p class="text-sm text-secondary">{{ allowInlineEditor(study.testimonial, 'jobTitle')|raw }}</p>
  196.                         </a>
  197.                     </div>
  198.                 </div>
  199.             </div>
  200.         </div>
  201.     </section>
  202. {% endif %}
  203. <div class="bg-secondary mb-12 relative text-white py-7">
  204.     <div class="container">
  205.         {% if prev or next %}
  206.             <div class="row team-pagination">
  207.                 {% if prev %}
  208.                     <div class="{% if next %}col-6{% else %}col-12{% endif %}">
  209.                         <a class="prev" href="{{ generatePath( app.request, prev.linkedPageId, {'caseStudy_slug' : prev.slug } ) }}">
  210.                             Previous <span class="hidden md:inline-block">Case Study</span>
  211.                         </a>
  212.                     </div>
  213.                 {% endif %}
  214.                 {% if next %}
  215.                     <div class="{% if prev %}col-6{% else %}col-12{% endif %} text-right">
  216.                         <a class="next" href="{{ generatePath( app.request, next.linkedPageId, {'caseStudy_slug' : next.slug } ) }}">
  217.                             Next <span class="hidden md:inline-block">Case Study</span>
  218.                         </a>
  219.                     </div>
  220.                 {% endif %}
  221.             </div>
  222.         {% endif %}
  223.     </div>
  224. </div>