custom/plugins/KkTheme/src/Resources/views/storefront/component/product/card/merkmale.html.twig line 1

Open in your IDE?
  1. {% block product_listing_merkmale_spezial %}
  2.     {# gewaehlte Variante anzeigen - INAKTIV #}
  3.     {# Code ist nur Backup fuer allgemeine Logik #}
  4.     {% if product.options is defined and product.options|length > 0 and 0 == 1 %}
  5.         {# { opt.group.translated.name } #}
  6.         {% apply spaceless %}
  7.           <li>{{ "detail.chosenVariant"|trans|sw_sanitize }}: 
  8.               {% for opt in product.options %}                                        
  9.                 {{ opt.translated.name }}{% if loop.length > 1 and loop.index != loop.last %},{% endif %}
  10.               {% endfor %}
  11.           </li>
  12.         {% endapply %}
  13.     {% endif %}
  14.     {# Arrays und Variablen initialisieren - erspart spaeter unnoetige "is defined" Pruefung #}
  15.     {% set merkmale = [] %}
  16.     {% set features = [] %}
  17.     {% set specials = [] %}
  18.     {% set myDescArr = [] %}
  19.     {% set pData = [] %}
  20.     {% set bulletPoint = false %}
  21.     {# Kurzbeschreibung laut Wawi: FALLBACK, falls echte Merkmale nicht verfuegbar #}
  22.     {% if product.customFields["short_description"]|trim|length > 0 %}
  23.         {% set myDesc = product.customFields["short_description"]|trim|replace( { '\r':'', '\\r':'', '\\n':'\n', '\n\n':'\n'  } )|raw %}
  24.         {% set myDescArr = myDesc|split('\n') %}
  25.     {% endif %}
  26.     {# DISABLED ... wir sind zur Standard-Kurzbeschreibung zurueckgekehrt :-( #}
  27.     {% if 0 == 1 %}
  28.         {# Merkmale mit Sortierung laut Backend holen #}
  29.         {% if product.properties|length > 0 %}
  30.             {% for prop in product.properties %}
  31.                 {% set pData = pData|merge({ (loop.index): { 'groupName': prop.group.translated.name, 'groupValue': prop.translated.name,'groupSorting': prop.group.position } } ) %}
  32.             {% endfor %}
  33.         {% endif %}
  34.         {# Merkmale in Besonderheiten (features) und Standard-Merkmale (merkmale) aufteilen #}
  35.         {% if pData is not empty %}
  36.             {% for pDat in pData|sort( (a,b) => a.groupSorting <=> b.groupSorting) %}
  37.                 {% set name = pDat.groupName %}
  38.                 {% set value = pDat.groupValue %}
  39.             
  40.                 {% if name == "Besonderheiten" or name == "Features" %}
  41.                     {% set features = features|merge([value]) %}
  42.                 {% else %}
  43.                     {% if merkmale[name] is defined %}
  44.                     {% set value = merkmale[name] ~ ", " ~ value %}
  45.                     {% endif %}
  46.                     {% set merkmale = merkmale|merge( { (name): value } ) %}
  47.                 {% endif %}
  48.             {% endfor %}
  49.         {% endif %}
  50.     {% endif %}
  51.     {# vpe paket, palette, dropshipping #}
  52.     {% if attribut.vpe_paket and attribut.vpe_paket != "0" %}
  53.         {% set value = "detail.parcelMax"|trans|sw_sanitize ~ ": " ~ attribut.vpe_paket %}
  54.         {% set specials = specials|merge([value]) %}
  55.     {% endif %}
  56.     {% if attribut.vpe_palette and attribut.vpe_palette != "0" %}
  57.         {% set value = "detail.palletMax"|trans|sw_sanitize ~ ": " ~ attribut.vpe_palette %}
  58.         {% set specials = specials|merge([value]) %}
  59.     {% endif %}
  60.     {% if attribut.dropshipping and attribut.dropshipping == 1 %}
  61.         {% set value = "detail.isDropshipping"|trans|sw_sanitize %}
  62.         {% set specials = specials|merge([value]) %}
  63.     {% endif %}
  64.     {# mind. ein Array hat Laenge > 0 ? Bullet-List starten! #}
  65.     {% if myDescArr|length > 0 or features|length > 0 or merkmale|length > 0 or specials|length > 0 %}
  66.         <ul>
  67.         {% set bulletPoint = true %}
  68.     {% endif %}
  69.     {# Besonderheiten als erstes ausgeben #}
  70.     {% if features|length > 0 %}
  71.         {% for feat in features %}
  72.            <li class="text-wide">{{ feat|trim }}</li> 
  73.         {% endfor %}
  74.     {% endif %}
  75.     {# wenn Merkmale vorhanden, ausgeben; sonst Kurzbeschreibung (FALLBACK) #}
  76.     {% if merkmale|length > 0 %}
  77.         {% for key,value in merkmale %}
  78.             <li>{{ key }}: {{ value }}</li>
  79.         {% endfor %}
  80.     {% elseif myDescArr|length > 0 %}
  81.         {% for key,value in myDescArr %}
  82.             {% set value = value|trim %}
  83.             {% if value|length > 0 %}
  84.                 {% if value|first == "#" %}
  85.                     {% set value = value|replace({'#':''}) %}
  86.                     <li class="text-wide">{{ value|raw }}</li>
  87.                 {% else %}
  88.                     <li>{{ value|raw }}</li>
  89.                 {% endif %}
  90.             {% endif %}
  91.         {% endfor %}
  92.     {% endif %}
  93.     {# Specials als letzte #}
  94.     {% if specials|length > 0 %}    
  95.         {% for spec in specials %}
  96.             <li>{{ spec }}</li>
  97.         {% endfor %}
  98.     {% endif %}
  99.         
  100.     {# wenn keine Arrays vorhanden aka kein Bulletpoint, ein leeres <p> ausgeben, da DIV sonst kollabiert #}    
  101.     {% if bulletPoint %}
  102.         </ul>
  103.     {% else %}
  104.         <p>&nbsp;</p>
  105.     {% endif %}
  106. {% endblock %}