src/Trinity/WebshopBundle/Resources/views/elements/productCardSimple.html.twig line 1

Open in your IDE?
  1. {% trans_default_domain 'webshop' %}
  2. {% if config is defined %}
  3.   {% set allow_cart = config.allow_cart ?? false %}
  4.   {% set show_image = config.show_image ?? false %}
  5.   {% set allow_list = config.allow_list ?? false %}
  6.   {% set show_price = config.show_price ?? false %}
  7. {% else %}
  8.   {% set allow_cart = true %}
  9.   {% set show_image = true %}
  10.   {% set allow_list = true %}
  11.   {% set show_price = true %}
  12. {% endif %}
  13. {% if WebshopSettings is defined %}
  14.   {% if WebshopSettings.getB2b and WebshopSettings.hidePricesGuest %}
  15.     {% set show_price = false %}
  16.   {% endif %}
  17. {% endif %}
  18. {% if OriginalProduct is not defined %}
  19.   {% set OriginalProduct = Product %}
  20. {% endif %}
  21. {# {% if (OriginalProduct.type != 1 and OriginalProduct.type != 2) or OriginalProduct.linkedProducts.count > 0 %} #}
  22. {% set productCardImageAlt = OriginalProduct.label %}
  23. {% if file_exists('../templates/override/webshop/productCardSimple.html.twig') %}
  24.   {% include 'override/webshop/productCardSimple.html.twig' %}
  25. {% else %}
  26.   <div class="card productCard Simple">
  27.   <a href="{{Product.uri}}">
  28.     {% if show_image %}
  29.       <span class="badge-wrapper">
  30.         {% if OriginalProduct.hasPromotion or (OriginalProduct.priceSale is not empty and OriginalProduct.priceSale > 0) %}
  31.           <span class="sale-badge">{{'Sale'|trans}}</span>
  32.         {% endif %}
  33.         {% if OriginalProduct.hasCombi %}
  34.           <span class="combi-badge">{{'Combideal!'|trans({}, 'webshop', app.request.locale)}}</span>
  35.         {% endif %}
  36.         {% if OriginalProduct.exclusive is defined and OriginalProduct.exclusive %}
  37.           <span class="exclusive-badge">{{'Exclusief'|trans({}, 'webshop', app.request.locale)}}</span>
  38.         {% endif %}
  39.         
  40.             {% if OriginalProduct.hasCombi %}
  41.               <span class="combi-badge">{{'Combideal!'|trans({}, 'webshop', app.request.locale)}}</span>
  42.             {% endif %}
  43.           </span>
  44.           <div class="card-image {{ (OriginalProduct.media2 is defined and OriginalProduct.media2 is not empty and WebshopSettings.imageSwap) ? 'multi-image' : '' }}">
  45.             <div class="img-first">
  46.                 <div class="lcp">
  47.             <picture>
  48.               {% if OriginalProduct.mediaWebp is not empty %}
  49.                 <source srcset="{{OriginalProduct.mediaWebp}}" type="image/webp">
  50.               {% endif %}
  51.             <source srcset="{{OriginalProduct.media}}" type="{{OriginalProduct.mediaMime}}">
  52.             <img src="{{OriginalProduct.media}}" width="255" height="190" data-alt="{{productCardImageAlt}}" loading="lazy">
  53.             </picture>
  54.               </div>
  55. {# dit werkt niet omdat OriginalProduct niet een entity is. Mischien oplossen door images als html te bouwen en die aan te leveren.
  56.               <div class="lcp">
  57.                 {% if OriginalProduct.media is defined and OriginalProduct.media is not empty %}
  58.         {% if OriginalProduct.new and OriginalProduct.newFrom <= date() and (OriginalProduct.newTill >= date() or OriginalProduct.newTill is empty) %}
  59.           <span class="new-badge">{{'Nieuw'|trans}}</span>
  60.           <br/>
  61.         {% endif %}
  62.       </span>
  63.       <div class="card-image {{ (OriginalProduct.media2 is defined and OriginalProduct.media2 is not empty and WebshopSettings.imageSwap) ? 'multi-image' : '' }}">
  64.         <div class="img-first">
  65.           <div class="lcp">
  66.           <picture>
  67.           {% if OriginalProduct.mediaWebp is not empty %}
  68.               <source srcset="{{OriginalProduct.mediaWebp}}" type="image/webp">
  69.           {% endif %}
  70.             <source srcset="{{OriginalProduct.media}}" type="{{OriginalProduct.mediaMime}}">
  71.             <img src="{{OriginalProduct.media}}" width="255" height="190" data-alt="{{productCardImageAlt}}" loading="lazy">
  72.           </picture>
  73.       </div>
  74.       {# dit werkt niet omdat OriginalProduct niet een entity is. Mischien oplossen door images als html te bouwen en die aan te leveren.
  75.           <div class="lcp">
  76.             {% if OriginalProduct.media is defined and OriginalProduct.media is not empty %}
  77.               {% if OriginalProduct.media.hasBlurred %}
  78.                 <picture>
  79.                   {% if OriginalProduct.media.hasWebp() %}
  80.                   <source srcset="{{OriginalProduct.media.getBlurredWebpPath('small')}}" type="image/webp">
  81.                   {% endif %}
  82.                   <source srcset="{{OriginalProduct.media.getBlurredWebPath('small')}}" type="{{OriginalProduct.media.mime}}">
  83.                   <img class="lq" alt="{{OriginalProduct.media.description_alt}}" src="{{OriginalProduct.media.getBlurredWebPath('small')}}" type="{{OriginalProduct.media.mime}}" loading="lazy" width="{{OriginalProduct.media.width}}" height="{{OriginalProduct.media.height}}" style="opacity: 1;">
  84.                 </picture>
  85.               {% endif %}
  86.               <picture>
  87.                 {% if OriginalProduct.media.hasWebp() %}
  88.                   <source srcset="{{OriginalProduct.media.getWebpPath('medium')}}" type="image/webp">
  89.                 {% endif %}
  90.                 <source srcset="{{OriginalProduct.media.getWebPath('medium')}}" type="{{ OriginalProduct.media.mime }}">
  91.                 <img class="hq" alt="{{OriginalProduct.media.description_alt}}" src="{{OriginalProduct.media.getWebPath('medium')}}" type="{{OriginalProduct.media.mime}}" loading="lazy" width="{{OriginalProduct.media.width}}" height="{{OriginalProduct.media.height}}" onload="this.style.opacity=1; {% if OriginalProduct.media.hasBlurred %}this.closest('.lcp').getElementsByClassName('lq')[0].style.opacity=0;{% endif %}" style="opacity: 0;">
  92.               </picture>
  93.             {% else %}
  94.               <picture>
  95.                 <img class="hq" src="{{(WebshopSettings.getDefaultProductImage is not empty ? WebshopSettings.getDefaultProductImage : '/bundles/trinitywebshop/img/no-product-image.png')}}" loading="lazy" onload="this.style.opacity=1" style="opacity: 0;">
  96.               </picture>
  97.             {% endif %}
  98.           </div>
  99.         #}
  100.         </div>
  101.         {% if WebshopSettings.imageSwap and (OriginalProduct.media2 is defined and OriginalProduct.media2 is not empty) %}
  102.         <div class="img-second">
  103.               <div class="lcp">
  104.                     <picture>
  105.                     {% if OriginalProduct.mediaWebp2 is not empty %}
  106.                         <source srcset="{{OriginalProduct.mediaWebp2}}" type="image/webp">
  107.                     {% endif %}
  108.                       <source srcset="{{OriginalProduct.media2}}" type="{{OriginalProduct.mediaMime2}}">
  109.                         <img src="{{OriginalProduct.media2}}" width="255" height="190" data-alt="{{productCardImageAlt}}" loading="lazy">
  110.                     </picture>
  111.               </div>
  112.             {# dit werkt niet omdat OriginalProduct niet een entity is
  113.                 <div class="lcp">
  114.                 {% if OriginalProduct.media2 is defined and OriginalProduct.media2 is not empty %}
  115.                   {% if OriginalProduct.media2.hasBlurred %}
  116.                     <picture>
  117.                       {% if OriginalProduct.media2.hasWebp() %}
  118.                       <source srcset="{{OriginalProduct.media2.getBlurredWebpPath}}" type="image/webp">
  119.                       {% endif %}
  120.                       <source srcset="{{OriginalProduct.media2.getBlurredWebPath}}" type="{{OriginalProduct.media2.mime}}">
  121.                       <img class="lq" alt="{{OriginalProduct.media2.description_alt}}" src="{{OriginalProduct.media2.getBlurredWebPath}}" type="{{OriginalProduct.media2.mime}}" loading="lazy" width="{{OriginalProduct.media2.width}}" height="{{OriginalProduct.media2.height}}" style="opacity: 1;">
  122.                     </picture>
  123.                   {% endif %}
  124.                   <picture>
  125.                     {% if OriginalProduct.media2.hasWebp() %}
  126.                       <source srcset="{{OriginalProduct.media2.getWebpPath}}" type="image/webp">
  127.                     {% endif %}
  128.                     <source srcset="{{OriginalProduct.media2}}" type="{{ OriginalProduct.media2.mime }}">
  129.                     <img class="hq" alt="{{OriginalProduct.media2.description_alt}}" src="{{OriginalProduct.media2}}" type="{{OriginalProduct.media2.mime}}" loading="lazy" width="{{OriginalProduct.media2.width}}" height="{{OriginalProduct.media2.height}}" onload="this.style.opacity=1; {% if OriginalProduct.media2.hasBlurred %}this.closest('.lcp').getElementsByClassName('lq')[0].style.opacity=0;{% endif %}" style="opacity: 0;">
  130.                   </picture>
  131.                 {% else %}
  132.                   <picture>
  133.                     <img class="hq" src="{{(WebshopSettings.getDefaultProductImage is not empty ? WebshopSettings.getDefaultProductImage : '/bundles/trinitywebshop/img/no-product-image.png')}}" loading="lazy" onload="this.style.opacity=1" style="opacity: 0;">
  134.                   </picture>
  135.                 {% endif %}
  136.                     </div>
  137.               #}
  138.             </div>
  139.           {% endif %}
  140.         </div>
  141.         {% endif %}
  142.         <div class="card-body">
  143.           <div class="card-content">
  144.             <h5 class="card-title">
  145.               {{(OriginalProduct.brand ? OriginalProduct.brand.label ~ ' ' : '') ~ (OriginalProduct.label|raw)}}
  146.             </h5>
  147.             {% if hide_intro is not defined %}
  148.               <div class="intro-wrapper">
  149.                 {# <div class="intro">{{OriginalProduct.intro|striptags}}</div> #}
  150.                 <div class="intro">{{OriginalProduct.intro|raw}}</div>
  151.               </div>
  152.             {% endif %}
  153.           </div>
  154.           <div class="card-bottom">
  155.             <div class="card-col">
  156.               {# {{dump(OriginalProduct.label)}} #}
  157.               {% if show_price %}
  158.                 <div class="pricing">
  159.                   {{Product.price|raw}}
  160.                 </div>
  161.               {% endif %}
  162.             </div>
  163.             <div class="card-col">
  164.               {% if WebshopSettings.getB2b and WebshopSettings.hidePricesGuest %}
  165.               {% else %}
  166.                 {% if allow_cart or allow_list %}
  167.                   {% if allow_cart and OriginalProduct.type != 1 and OriginalProduct.type != 2 %}
  168.                     {% if OriginalProduct.canOrder %}
  169.                       <button type="button" data-id="{{OriginalProduct.id}}" class="btn order" data-catid="{{Product.category.id}}" title="Toevoegen aan winkelwagen">
  170.                         <i class="fa fa-shopping-cart"></i>
  171.                         <i class="fa fa-plus"></i>
  172.                       </button>
  173.                     {% else %}
  174.                       <button type="button" disabled="disabled" data-id="{{OriginalProduct.id}}" class="btn btn-disabled" data-catid="{{Product.category.id}}" title="Niet op voorraad">
  175.                         <i class="fa fa-shopping-cart"></i>
  176.                       </button>
  177.                     {% endif %}
  178.                   {% endif %}
  179.                 {% endif %}
  180.               {% endif %}
  181.             </div>
  182.           </div>
  183.           {#
  184.           {% if OriginalProduct is defined and OriginalProduct.type == 1 %}
  185.             <div id="multiple-options-available">
  186.               {{'Meerdere varianten beschikbaar.'|trans}}
  187.             </div>
  188.           {% endif %}
  189.           #}
  190.         </div>
  191.       </a>
  192.     </div>
  193. {% endif %}
  194. {# {% endif %} #}