templates/areas/hero-projects-big-and-small-brick/view.html.twig line 1

Open in your IDE?
  1. {% embed 'app/area-brick-layout.html.twig' %}
  2.     {% block content %}
  3.         <!-- Cards masonry -->
  4.         <section class="bg-gray-200">
  5.             <div class="md:container mx-auto">
  6.                 {% if editmode %}
  7.                     {{ pimcore_relations('references', {
  8.                         classes: ['Project'],
  9.                         title: 'References',
  10.                     }) }}
  11.                 {% endif %}
  12.                 {% if editmode and projectObjects is not defined %}
  13.                     <div>
  14.                         {{ pimcore_relations('projects', {
  15.                             classes: ['Project'],
  16.                             title: 'Projecten',
  17.                         }) }}
  18.                     </div>
  19.                 {% else %}
  20.                     {% if projectObjects is defined %}
  21.                         <div class="flex md:items-end justify-between flex-col md:flex-row">
  22.                             {# Tabs as links #}
  23.                             {% set projectsPage = document.getProperty('projectsPage') %}
  24.                             {% set insightsPage = document.getProperty('insightsPage') %}
  25.                             <div class="flex gap-8 js-tabs filter-tabs pb-6 px-5 md:px-0 md:mb-0">
  26.                                 {% if insightsPage %}
  27.                                     <a href="{{ insightsPage.url }}">{{ 'Insights' | trans }}</a>
  28.                                 {% endif %}
  29.                                 {% if projectsPage is not empty %}
  30.                                     <a href="{{ projectsPage.url }}">{{ 'Projects' | trans }}</a>
  31.                                 {% endif %}
  32.                             </div>
  33.                             {# Filters #}
  34.                             <form
  35.                                 method="get"
  36.                                 class="flex flex-col items-center justify-between md:flex-row">
  37.                                 <div
  38.                                     class="flex flex-col justify-end w-full gap-3 px-5 pt-6 md:py-6 bg-blue-200 md:bg-white md:gap-6 md:flex-row md:bg-opacity-0 md:px-0">
  39.                                     <div data-filter="product_category" class="filter-dropdown js-filter">
  40.                                         <div class="flex flex-row gap-8 items-center justify-between sm:justify-start">
  41.                                             <label data-base-label="{{ 'Products' | trans }}" class="js-filter-label" for="product_category">{{ 'Products' | trans }}</label>
  42.                                             <div class="flex flex-row gap-4 pointer-events-none items-center">
  43.                                                 <svg class="pointer-events-none select-open-arrow" xmlns="http://www.w3.org/2000/svg" width="16" height="9.42468697"><path fill="#323E48" fill-rule="evenodd" d="M15.65624442 7.3520215 8.9247854.38881541C8.68558505.14026701 8.3504987-4.8e-7 7.99960082-4.8e-7c-.34971019 0-.68446606.14012915-.92503804.38866442L.3428726 7.352109C.12004 7.5819731 0 7.8825387 0 8.1937897c0 .3429687.1462408.6715199.4108179.9068985l.11367.0902432c.509531.3590258 1.2271427.3021077 1.6687114-.1543865l5.80789478-6.00860086 5.80601078 6.00749926c.47506145.4925072 1.27101644.5211493 1.78259099.0650323.51947241-.4630657.5501348-1.2485897.06654857-1.7484541Z"/></svg>
  44.                                                 <button class="js-filter-clear pointer-events-auto">
  45.                                                     <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#323E48" fill-rule="evenodd" d="M1.7859559.30642159 8 6.521 14.2140441.30642159c.4085621-.40856212 1.0709722-.40856212 1.4795343 0 .4085621.40856212.4085621 1.07097219 0 1.47953431L9.479 8l6.2145784 6.2140441c.4085621.4085621.4085621 1.0709722 0 1.4795343-.4085621.4085621-1.0709722.4085621-1.4795343 0L8 9.479l-6.2140441 6.2145784c-.40856212.4085621-1.0709722.4085621-1.47953431 0-.40856212-.4085621-.40856212-1.0709722 0-1.4795343L6.521 8 .30642159 1.7859559c-.40856212-.40856212-.40856212-1.0709722 0-1.47953431.40856212-.40856212 1.07097219-.40856212 1.47953431 0Z"/></svg>
  46.                                                 </button>
  47.                                             </div>
  48.                                         </div>
  49.                                         <input
  50.                                             name="product_category"
  51.                                         >
  52.                                         <div class="flex flex-col filter-dropdown__list js-filter-list drop-shadow-xl">
  53.                                         {% for id, name in productCategoryFilter %}
  54.                                             {% set itemName = name ~ '-product-filter' %}
  55.                                             {% set translated = itemName | slug | lower | trans %}
  56.                                             {% if '-filter' in translated %}
  57.                                                 {% set showTranslated = false %}
  58.                                             {% else %}
  59.                                                 {% set showTranslated = true %}
  60.                                             {% endif %}
  61.                                             <button class="filter-dropdown__option js-filter-option text-left" value="{{ id }}" data-translated-slug="{{ translated }}" {{ app.request.query.get('product_category') == id ? 'selected' : '' }}>
  62.                                                 {% if showTranslated %}
  63.                                                     {{ translated }}
  64.                                                 {% else %}
  65.                                                     {{ name }}
  66.                                                 {% endif %}
  67.                                             </button>
  68.                                         {% endfor %}
  69.                                         </div>
  70.                                     </div>
  71.                                     <div data-filter="branch" class="filter-dropdown js-filter">
  72.                                         <div class="flex flex-row gap-8 items-center justify-between sm:justify-start">
  73.                                             <label data-base-label="{{ 'Branches' | trans }}" class="js-filter-label" for="branch">{{ 'Branches' | trans }}</label>
  74.                                             <div class="flex flex-row gap-4 pointer-events-none items-center">
  75.                                                 <svg class="pointer-events-none select-open-arrow" xmlns="http://www.w3.org/2000/svg" width="16" height="9.42468697"><path fill="#323E48" fill-rule="evenodd" d="M15.65624442 7.3520215 8.9247854.38881541C8.68558505.14026701 8.3504987-4.8e-7 7.99960082-4.8e-7c-.34971019 0-.68446606.14012915-.92503804.38866442L.3428726 7.352109C.12004 7.5819731 0 7.8825387 0 8.1937897c0 .3429687.1462408.6715199.4108179.9068985l.11367.0902432c.509531.3590258 1.2271427.3021077 1.6687114-.1543865l5.80789478-6.00860086 5.80601078 6.00749926c.47506145.4925072 1.27101644.5211493 1.78259099.0650323.51947241-.4630657.5501348-1.2485897.06654857-1.7484541Z"/></svg>
  76.                                                 <button class="js-filter-clear pointer-events-auto">
  77.                                                     <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#323E48" fill-rule="evenodd" d="M1.7859559.30642159 8 6.521 14.2140441.30642159c.4085621-.40856212 1.0709722-.40856212 1.4795343 0 .4085621.40856212.4085621 1.07097219 0 1.47953431L9.479 8l6.2145784 6.2140441c.4085621.4085621.4085621 1.0709722 0 1.4795343-.4085621.4085621-1.0709722.4085621-1.4795343 0L8 9.479l-6.2140441 6.2145784c-.40856212.4085621-1.0709722.4085621-1.47953431 0-.40856212-.4085621-.40856212-1.0709722 0-1.4795343L6.521 8 .30642159 1.7859559c-.40856212-.40856212-.40856212-1.0709722 0-1.47953431.40856212-.40856212 1.07097219-.40856212 1.47953431 0Z"/></svg>
  78.                                                 </button>
  79.                                             </div>
  80.                                         </div>
  81.                                         <input
  82.                                             name="branch"
  83.                                         >
  84.                                         <div class="flex flex-col filter-dropdown__list js-filter-list drop-shadow-xl">
  85.                                             {% for id, name in branchFilter %}
  86.                                                 {% set itemName = name ~ '-branch-filter' %}
  87.                                                 {% set translated = itemName | slug | lower | trans %}
  88.                                                 {% if '-filter' in translated %}
  89.                                                     {% set showTranslated = false %}
  90.                                                 {% else %}
  91.                                                     {% set showTranslated = true %}
  92.                                                 {% endif %}
  93.                                                 <button class="filter-dropdown__option js-filter-option text-left" data-translated-slug="{{ translated }}" value="{{ id }}" {{ app.request.query.get('branch') == id ? 'selected' : '' }}>
  94.                                                     {% if showTranslated %}
  95.                                                         {{ translated }}
  96.                                                     {% else %}
  97.                                                         {{ name }}
  98.                                                     {% endif %}
  99.                                                 </button>
  100.                                             {% endfor %}
  101.                                         </div>
  102.                                     </div>
  103.                                 </div>
  104.                             </form>
  105.                         </div>
  106.                     {% endif %}
  107.                 {% endif %}
  108.             </div>
  109.         </section>
  110.         <section class="bg-blue-200">
  111.         {% set projects = projectObjects ?? pimcore_relations('projects') %}
  112.         {% set referenceProjects = pimcore_relations('references') %}
  113.         {% set pageNumber = pagination.currentPageNumber %}
  114.         {% if projects|length > 0 %}
  115.             {% set iterationCount = (pageNumber - 1) * 3 %}
  116.             <div class="sm:container py-10 mx-auto md:py-20 ">
  117.                 <div class="grid grid-cols-12 gap-8 mb-20 lg:gap-y-16">
  118.                 {% for project in projects | slice(0,9) %}
  119.                     {% if project.title is not empty and project.webdesq_content is not empty %}
  120.                     {% include 'includes/cards/default.html.twig' with {
  121.                         project: project,
  122.                         class: "col-span-12 md:col-span-4 mx-5 sm:mx-0",
  123.                     } %}
  124.                     {% if loop.index % 3 == 0 %}
  125.                         {% if (referenceProjects.getElements() | length - 1) >= iterationCount %}
  126.                             {% set refProject = referenceProjects.getElements[iterationCount] %}
  127.                             {% set isMirrored = iterationCount % 2 == 1 %}
  128.                             <div class="col-span-12">
  129.                                 {% include 'includes/cards/reference.html.twig' with {
  130.                                     project: refProject,
  131.                                     mirrored: isMirrored
  132.                                 } %}
  133.                             </div>
  134.                             {% set iterationCount =  iterationCount + 1 %}
  135.                         {% endif %}
  136.                     {% endif %}
  137.                     {% endif %}
  138.                 {% endfor %}
  139.                 </div>
  140.                 {% if pagination is defined %}
  141.                     {% include 'includes/pagination.html.twig' %}
  142.                 {% endif %}
  143.             </div>
  144.         {% else %}
  145.             <div>
  146.                 <p>{{ "Binnen de gekozen filters zijn helaas geen projecten gevonden. Probeer het opnieuw."|trans }}</p>
  147.             </div>
  148.             </section>
  149.         {% endif %}
  150.     {% endblock %}
  151. {% endembed %}