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">
  76.                     <p class="text-sm mb-0 uppercase text-secondary"><strong>The Detail</strong></p>
  77.                     {% if study.detailSubtitle %}
  78.                         <h2 class="text-3xl mt-0 mb-8">{{ allowInlineEditor(study, 'detailSubtitle')|raw }}</h2>
  79.                     {% endif %}
  80.                     {{ allowInlineEditor(study, 'detailContent')|raw }}
  81.                 </div>
  82.             </div>
  83.         </div>
  84.     </section>
  85. {% endif %}
  86. {% if study.challengesContent %}
  87.     <section class="bg-primary text-white py-16 mb-12">
  88.         <div class="container">
  89.             <div class="row">
  90.                 <div class="md:col-6 text-lg order-2 md:order-1">
  91.                     <p class="text-sm mb-0 text-white uppercase"><strong>The Challenges</strong></p>
  92.                     {% if study.challengesSubtitle %}
  93.                         <h2 class="text-3xl mt-0 mb-8 text-white">{{ allowInlineEditor(study, 'challengesSubtitle')|raw }}</h2>
  94.                     {% endif %}
  95.                     {{ allowInlineEditor(study, 'challengesContent')|raw }}
  96.                 </div>
  97.                 <div class="md:col-6 order-1 md:order-2 mb-12 md:mb-0">
  98.                     <img class="max-w-full h-auto" src="{{ imageCache('/' ~ study.getFullImage3Path, 'zoomCrop', 1140, 840) }}" alt="{{ study.challengesSubtitle }}" loading="lazy" />
  99.                 </div>
  100.             </div>
  101.         </div>
  102.     </section>
  103. {% endif %}
  104. {% if study.solutionContent %}
  105.     <section class="mb-12">
  106.         <div class="container">
  107.             <div class="row">
  108.                 <div class="md:col-6 mb-6 md:mb-0">
  109.                     <img class="max-w-full h-auto" src="{{ imageCache('/' ~ study.getFullImage4Path, 'zoomCrop', 1140, 840) }}" alt="{{ study.solutionSubtitle }}" loading="lazy" />
  110.                 </div>
  111.                 <div class="md:col-6 text-lg">
  112.                     <p class="text-sm mb-0 uppercase text-secondary"><strong>The Solution</strong></p>
  113.                     {% if study.solutionSubtitle %}
  114.                         <h2 class="text-3xl mt-0 mb-8">{{ allowInlineEditor(study, 'solutionSubtitle')|raw }}</h2>
  115.                     {% endif %}
  116.                     {{ allowInlineEditor(study, 'solutionContent')|raw }}
  117.                 </div>
  118.             </div>
  119.         </div>
  120.     </section>
  121. {% endif %}
  122. {% if study.projectStartDate or study.projectDuration or study.projectBudget or study.projectLocation %}
  123.     <section class="bg-dark py-16 mb-12 text-white text-center">
  124.         <div class="container">
  125.             <div class="row">
  126.                 {% if study.projectStartDate %}
  127.                     <div class="md:col-3 sm:col-6 mb-12 md:mb-0">
  128.                         <i class="fa-solid fa-calendar-days text-green text-5xl mb-6"></i>
  129.                         <h5 class="uppercase text-white mb-0">{{ study.projectStartDate|date('M Y') }}</h5>
  130.                     </div>
  131.                 {% endif %}
  132.                 {% if study.projectDuration %}
  133.                     <div class="md:col-3 sm:col-6 mb-12 md:mb-0">
  134.                         <i class="fa-solid fa-clock text-green text-5xl mb-6"></i>
  135.                         <h5 class="uppercase text-white mb-0">{{ allowInlineEditor(study, 'projectDuration')|raw }}</h5>
  136.                     </div>
  137.                 {% endif %}
  138.                 {% if study.projectBudget %}
  139.                     <div class="md:col-3 sm:col-6 mb-12 sm:mb-0">
  140.                         <i class="fa-solid fa-coin text-green text-5xl mb-6"></i>
  141.                         <h5 class="uppercase text-white mb-0">{{ allowInlineEditor(study, 'projectBudget')|raw }}</h5>
  142.                     </div>
  143.                 {% endif %}
  144.                 {% if study.projectLocation %}
  145.                     <div class="md:col-3 sm:col-6">
  146.                         <i class="fa-solid fa-location-crosshairs text-green text-5xl mb-6"></i>
  147.                         <h5 class="uppercase text-white mb-0">{{ allowInlineEditor(study, 'projectLocation')|raw }}</h5>
  148.                     </div>
  149.                 {% endif %}
  150.             </div>
  151.         </div>
  152.     </section>
  153. {% endif %}
  154. {% if study.gallery and study.gallery.galleryImages|length > 0 %}
  155.     <div class="container mb-4">
  156.         <div class="row">
  157.             <div class="col-12 text-center">
  158.                 <h3 class="text-green mb-8 mt-0">Project Gallery</h3>
  159.                 {% if study.gallery.content %}
  160.                     <div class="mb-12">
  161.                         {{ allowInlineEditor(study.gallery, 'content')|raw }}
  162.                     </div>
  163.                 {% endif %}
  164.             </div>
  165.         </div>
  166.         <div class="row">
  167.             {% for image in study.gallery.galleryImages %}
  168.                 {% if image.file %}
  169.                     <div class="lg:col-6 mb-8">
  170.                         <video class="w-full h-auto" src="{{ image.getFileUrl() }}" controls></video>
  171.                     </div>
  172.                 {% else %}
  173.                 <div class="lg:col-6 mb-8">
  174.                     <img class="max-w-full h-auto" src="{{ imageCache('/'~ image.getFullImagePath, 'zoomCrop', 1140, 640) }}" alt="{{ image.title }}" loading="lazy" />
  175.                 </div>
  176.                 {% endif %}
  177.             {% endfor %}
  178.         </div>
  179.     </div>
  180. {% endif %}
  181. {% if study.testimonial and study.testimonial.active and not study.testimonial.deleted %}
  182.     <section class="mb-12">
  183.         <div class="container">
  184.             <div class="row">
  185.                 <div class="col-12">
  186.                     <div class="w-full flex flex-col justify-center items-center text-center">
  187.                         <h3 class="mb-8 mt-0 text-green">What the Client Said</h3>
  188.                         <img class="h-auto max-h-[60px] w-auto max-w-full mb-3" src="{{ asset('/'~ study.getFullImagePath) }}" height="60" alt="{{ study.clientName }}" loading="lazy" />
  189.                         <p class="text-xl font-light mb-2">{{ allowInlineEditor(study.testimonial, 'content')|raw }}</p>
  190.                         <p class="text-sm font-bold mb-0 text-secondary">{{ allowInlineEditor(study.testimonial, 'attestant')|raw }}</p>
  191.                         <p class="text-sm text-secondary">{{ allowInlineEditor(study.testimonial, 'jobTitle')|raw }}</p>
  192.                     </div>
  193.                 </div>
  194.             </div>
  195.         </div>
  196.     </section>
  197. {% endif %}
  198. <div class="bg-secondary mb-12 relative text-white py-7">
  199.     <div class="container">
  200.         {% if prev or next %}
  201.             <div class="row team-pagination">
  202.                 {% if prev %}
  203.                     <div class="{% if next %}col-6{% else %}col-12{% endif %}">
  204.                         <a class="prev" href="{{ generatePath( app.request, prev.linkedPageId, {'caseStudy_slug' : prev.slug } ) }}">
  205.                             Previous <span class="hidden md:inline-block">Case Study</span>
  206.                         </a>
  207.                     </div>
  208.                 {% endif %}
  209.                 {% if next %}
  210.                     <div class="{% if prev %}col-6{% else %}col-12{% endif %} text-right">
  211.                         <a class="next" href="{{ generatePath( app.request, next.linkedPageId, {'caseStudy_slug' : next.slug } ) }}">
  212.                             Next <span class="hidden md:inline-block">Case Study</span>
  213.                         </a>
  214.                     </div>
  215.                 {% endif %}
  216.             </div>
  217.         {% endif %}
  218.     </div>
  219. </div>