<?php
use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\CoreExtension;
use Twig\Extension\SandboxExtension;
use Twig\MacroNamespace;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Sandbox\SecurityNotAllowedTestError;
use Twig\Source;
use Twig\Template;
use Twig\TemplateWrapper;
/* page/product/list.html.twig */
class __TwigTemplate_97ca41108d57fec7fe24415043c123cc extends Template
{
private Source $source;
/**
* @var array<string, MacroNamespace>
*/
private array $macros = [];
private \Twig\Runtime\EscaperRuntime $escaper;
public function __construct(Environment $env)
{
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->escaper = $env->getRuntime('Twig\Runtime\EscaperRuntime');
$this->blocks = [
'page_title' => [$this, 'block_page_title'],
'head_custom_stylesheets' => [$this, 'block_head_custom_stylesheets'],
'content' => [$this, 'block_content'],
];
}
protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
{
// line 1
return $this->parent ??= $this->load("base.html.twig", 1);
}
protected function doDisplay(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "page/product/list.html.twig"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "page/product/list.html.twig"));
$this->parent = $this->load("base.html.twig", 1);
yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
}
// line 3
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_page_title(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "page_title"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "page_title"));
// line 4
yield " ";
yield (string) $this->escaper->escape(Twig\Extension\CoreExtension::striptags($this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve("storefront.title")), "html", null, true);
yield " | Produkte
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
return; yield;
}
// line 7
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_head_custom_stylesheets(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "head_custom_stylesheets"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "head_custom_stylesheets"));
// line 8
yield " ";
yield (string) $this->extensions['Symfony\WebpackEncoreBundle\Twig\EntryFilesTwigExtension']->renderWebpackLinkTags("hero-header");
yield "
";
// line 9
yield (string) $this->extensions['Symfony\WebpackEncoreBundle\Twig\EntryFilesTwigExtension']->renderWebpackLinkTags("product-card");
yield "
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
return; yield;
}
// line 12
/**
* @return iterable<null|scalar|\Stringable>
*/
public function block_content(array $context, array $blocks = []): iterable
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
// line 13
yield " ";
if (((($tmp = (isset($context["category"]) || array_key_exists("category", $context) ? $context["category"] : (function () { throw new RuntimeError('Variable "category" does not exist.', 13, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp) && (($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["category"]) || array_key_exists("category", $context) ? $context["category"] : (function () { throw new RuntimeError('Variable "category" does not exist.', 13, $this->source); })()), "headerImage", [], "any", false, false, false, 13)) && $tmp instanceof Markup ? (string) $tmp : $tmp))) {
// line 14
yield " <div class=\"hero-header\" style=\"background-image: url(/images/";
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["category"]) || array_key_exists("category", $context) ? $context["category"] : (function () { throw new RuntimeError('Variable "category" does not exist.', 14, $this->source); })()), "headerImage", [], "any", false, false, false, 14), "html", null, true);
yield ");\">
<div class=\"hero-header-inner\">
<div class=\"container-3xl\">
<div class=\"row\">
<div class=\"col-12\">
<h1 class=\"hero-headline mb-5 text-white\">";
// line 19
yield (string) $this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve("product.list.page.headline");
yield "</h1>
</div>
</div>
</div>
</div>
</div>
";
} else {
// line 26
yield " <div class=\"container-3xl mb-0 mt-5 mt-sm-5\">
<div class=\"row\">
<div class=\"col-12\">
<h1 class=\"ornament-with-child\">";
// line 29
yield (string) $this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve("product.list.page.headline");
yield "</h1>
</div>
</div>
</div>
";
}
// line 34
yield "
<div class=\"container-3xl my-5\">
<div class=\"row\">
<div class=\"col-12\">
";
// line 38
yield (string) $this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve("product.list.page.description");
yield "
</div>
</div>
</div>
<div class=\"product-cards container-3xl my-3 mb-sm-6\">
<div class=\"row g-4 match-height-product\" data-match-height-group=\"product-group\">
";
// line 45
if ((Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env, $this->source, (isset($context["tenant"]) || array_key_exists("tenant", $context) ? $context["tenant"] : (function () { throw new RuntimeError('Variable "tenant" does not exist.', 45, $this->source); })()), "categories", [], "any", false, false, false, 45)) > 0)) {
// line 46
yield " ";
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::filter($this->env, $this->env->hasExtension(\Twig\Extension\SandboxExtension::class) && $this->env->getExtension(\Twig\Extension\SandboxExtension::class)->getChecker()->isSandboxed($this->source), CoreExtension::getAttribute($this->env, $this->source, (isset($context["tenant"]) || array_key_exists("tenant", $context) ? $context["tenant"] : (function () { throw new RuntimeError('Variable "tenant" does not exist.', 46, $this->source); })()), "products", [], "any", false, false, false, 46), function ($__product__) use ($context, $macros) { $context["product"] = $__product__; return CoreExtension::inFilter((isset($context["category"]) || array_key_exists("category", $context) ? $context["category"] : (function () { throw new RuntimeError('Variable "category" does not exist.', 46, $this->source); })()), CoreExtension::getAttribute($this->env, $this->source, $context["product"], "categories", [], "any", false, false, false, 46)); }));
foreach ($context['_seq'] as $context["_key"] => $context["product"]) {
// line 47
yield " ";
$context["productConfig"] = $this->extensions['App\Twig\AppExtension']->jsonDecode(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "config", [], "any", false, false, false, 47));
// line 48
yield " <div class=\"col-12 col-md-6\">
<div data-match-height=\"product\" class=\"product position-relative d-flex flex-column justify-content-between h-100 p-3 p-sm-5 bg-lightgrey\">
<div class=\"row\">
<div class=\"col-12 col-sm-";
// line 51
yield (string) (((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 51)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ("8") : ("12"));
yield " order-2 order-sm-1\">
<h4 class=\"mb-4\">";
// line 52
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "name", [], "any", false, false, false, 52), "html", null, true);
yield "</h4>
<div>
<p class=\"line-clamp clamp-4\">";
// line 54
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "shortDescription", [], "any", false, false, false, 54), "html", null, true);
yield "</p>
<ul id=\"product-config\">
";
// line 56
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productConfig"]) || array_key_exists("productConfig", $context) ? $context["productConfig"] : (function () { throw new RuntimeError('Variable "productConfig" does not exist.', 56, $this->source); })()), "kim_addresses_included", [], "any", false, false, false, 56)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 57
yield " <li>
";
// line 58
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["productConfig"]) || array_key_exists("productConfig", $context) ? $context["productConfig"] : (function () { throw new RuntimeError('Variable "productConfig" does not exist.', 58, $this->source); })()), "kim_addresses", [], "any", false, false, false, 58), "quantity", [], "any", false, false, false, 58), "html", null, true);
yield "x KIM Adressen
</li>
";
}
// line 61
yield " ";
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productConfig"]) || array_key_exists("productConfig", $context) ? $context["productConfig"] : (function () { throw new RuntimeError('Variable "productConfig" does not exist.', 61, $this->source); })()), "hardware_included", [], "any", false, false, false, 61)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 62
yield " ";
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productConfig"]) || array_key_exists("productConfig", $context) ? $context["productConfig"] : (function () { throw new RuntimeError('Variable "productConfig" does not exist.', 62, $this->source); })()), "hardware", [], "any", false, false, false, 62));
foreach ($context['_seq'] as $context["_key"] => $context["hardware"]) {
// line 63
yield " ";
if ((CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "quantity", [], "any", false, false, false, 63) > 0)) {
// line 64
yield " <li>
";
// line 65
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "quantity", [], "any", false, false, false, 65), "html", null, true);
yield "x ";
yield (string) $this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve(CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "hardware", [], "any", false, false, false, 65));
yield "
</li>
";
}
// line 68
yield " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_key'], $context['hardware'], $context['_parent']);
$context = array_intersect_key($context, $_parent);
$context += $_parent;
// line 69
yield " ";
}
// line 70
yield " </ul>
</div>
</div>
";
// line 73
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 73)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 74
yield " <div class=\"col-12 col-sm-4 order-1 order-sm-2 mb-4\">
<img class=\"w-100\" src=\"/images/";
// line 75
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 75), "html", null, true);
yield "\" alt=\"";
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "name", [], "any", false, false, false, 75), "html", null, true);
yield "\">
</div>
";
}
// line 78
yield " </div>
<a href=\"";
// line 79
yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("product_details", ["productId" => CoreExtension::getAttribute($this->env, $this->source, $context["product"], "id", [], "any", false, false, false, 79)]), "html", null, true);
yield "\" class=\"d-flex justify-content-end align-items-center text-decoration-none fw-bold my-3 mt-sm-0\"><span class=\"me-2\">Mehr erfahren </span><i class=\"fas fa-arrow-right\"></i></a>
</div>
</div>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_key'], $context['product'], $context['_parent']);
$context = array_intersect_key($context, $_parent);
$context += $_parent;
// line 83
yield " ";
} else {
// line 84
yield " ";
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env, $this->source, (isset($context["tenant"]) || array_key_exists("tenant", $context) ? $context["tenant"] : (function () { throw new RuntimeError('Variable "tenant" does not exist.', 84, $this->source); })()), "products", [], "any", false, false, false, 84));
foreach ($context['_seq'] as $context["_key"] => $context["product"]) {
// line 85
yield " ";
$context["productConfig"] = $this->extensions['App\Twig\AppExtension']->jsonDecode(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "config", [], "any", false, false, false, 85));
// line 86
yield " <div class=\"col-xs-12 col-md-6 mb-3\">
<div class=\"product position-relative d-flex flex-column justify-content-between h-100 p-3 p-sm-5 bg-lightgrey\">
<div class=\"row\">
<div class=\"col-xs-12 col-sm-";
// line 89
yield (string) (((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 89)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ("8") : ("12"));
yield " order-2 order-sm-1\">
<h4 class=\"mb-4\">";
// line 90
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "name", [], "any", false, false, false, 90), "html", null, true);
yield "</h4>
<div>
<p>";
// line 92
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "shortDescription", [], "any", false, false, false, 92), "html", null, true);
yield "</p>
<ul>
";
// line 94
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productConfig"]) || array_key_exists("productConfig", $context) ? $context["productConfig"] : (function () { throw new RuntimeError('Variable "productConfig" does not exist.', 94, $this->source); })()), "kim_addresses_included", [], "any", false, false, false, 94)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 95
yield " <li>
";
// line 96
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["productConfig"]) || array_key_exists("productConfig", $context) ? $context["productConfig"] : (function () { throw new RuntimeError('Variable "productConfig" does not exist.', 96, $this->source); })()), "kim_addresses", [], "any", false, false, false, 96), "quantity", [], "any", false, false, false, 96), "html", null, true);
yield " KIM Adressen
</li>
";
}
// line 99
yield " ";
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productConfig"]) || array_key_exists("productConfig", $context) ? $context["productConfig"] : (function () { throw new RuntimeError('Variable "productConfig" does not exist.', 99, $this->source); })()), "hardware_included", [], "any", false, false, false, 99)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 100
yield " ";
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productConfig"]) || array_key_exists("productConfig", $context) ? $context["productConfig"] : (function () { throw new RuntimeError('Variable "productConfig" does not exist.', 100, $this->source); })()), "hardware", [], "any", false, false, false, 100));
foreach ($context['_seq'] as $context["_key"] => $context["hardware"]) {
// line 101
yield " <li>
";
// line 102
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "quantity", [], "any", false, false, false, 102), "html", null, true);
yield " ";
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "hardware", [], "any", false, false, false, 102), "html", null, true);
yield "
</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_key'], $context['hardware'], $context['_parent']);
$context = array_intersect_key($context, $_parent);
$context += $_parent;
// line 105
yield " ";
}
// line 106
yield " </ul>
</div>
</div>
";
// line 109
if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 109)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
// line 110
yield " <div class=\"col-xs-12 col-sm-4 order-1 order-sm-2 mb-4\">
<img class=\"w-100\" src=\"/images/";
// line 111
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 111), "html", null, true);
yield "\" alt=\"";
yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "name", [], "any", false, false, false, 111), "html", null, true);
yield "\">
</div>
";
}
// line 114
yield " </div>
<a href=\"";
// line 115
yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("product_details", ["productId" => CoreExtension::getAttribute($this->env, $this->source, $context["product"], "id", [], "any", false, false, false, 115)]), "html", null, true);
yield "\" class=\"d-flex justify-content-end align-items-center text-decoration-none fw-bold\"><span class=\"me-2\">Mehr erfahren </span><i class=\"fas fa-arrow-right\"></i></a>
</div>
</div>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_key'], $context['product'], $context['_parent']);
$context = array_intersect_key($context, $_parent);
$context += $_parent;
// line 119
yield " ";
}
// line 120
yield " </div>
</div>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
return; yield;
}
/**
* @codeCoverageIgnore
*/
public function getTemplateName(): string
{
return "page/product/list.html.twig";
}
/**
* @codeCoverageIgnore
*/
public function isTraitable(): bool
{
return false;
}
/**
* @codeCoverageIgnore
*/
public function getDefaultEscapeStrategy(): string|false
{
return "html";
}
/**
* @codeCoverageIgnore
*/
public function getDebugInfo(): array
{
return array ( 398 => 120, 395 => 119, 384 => 115, 381 => 114, 373 => 111, 370 => 110, 368 => 109, 363 => 106, 360 => 105, 348 => 102, 345 => 101, 340 => 100, 337 => 99, 331 => 96, 328 => 95, 326 => 94, 321 => 92, 316 => 90, 312 => 89, 307 => 86, 304 => 85, 299 => 84, 296 => 83, 285 => 79, 282 => 78, 274 => 75, 271 => 74, 269 => 73, 264 => 70, 261 => 69, 254 => 68, 246 => 65, 243 => 64, 240 => 63, 235 => 62, 232 => 61, 226 => 58, 223 => 57, 221 => 56, 216 => 54, 211 => 52, 207 => 51, 202 => 48, 199 => 47, 194 => 46, 192 => 45, 182 => 38, 176 => 34, 168 => 29, 163 => 26, 153 => 19, 144 => 14, 141 => 13, 128 => 12, 115 => 9, 110 => 8, 97 => 7, 83 => 4, 70 => 3, 47 => 1,);
}
public function getSourceContext(): Source
{
return new Source("{% extends \x27base.html.twig\x27 %}
{% block page_title %}
{{ \x27storefront.title\x27|resolve|striptags }} | Produkte
{% endblock %}
{% block head_custom_stylesheets %}
{{ encore_entry_link_tags(\x27hero-header\x27) }}
{{ encore_entry_link_tags(\x27product-card\x27) }}
{% endblock head_custom_stylesheets %}
{% block content %}
{% if category and category.headerImage %}
<div class=\"hero-header\" style=\"background-image: url(/images/{{ category.headerImage }});\">
<div class=\"hero-header-inner\">
<div class=\"container-3xl\">
<div class=\"row\">
<div class=\"col-12\">
<h1 class=\"hero-headline mb-5 text-white\">{{ \x27product.list.page.headline\x27|resolve }}</h1>
</div>
</div>
</div>
</div>
</div>
{% else %}
<div class=\"container-3xl mb-0 mt-5 mt-sm-5\">
<div class=\"row\">
<div class=\"col-12\">
<h1 class=\"ornament-with-child\">{{ \x27product.list.page.headline\x27|resolve }}</h1>
</div>
</div>
</div>
{% endif %}
<div class=\"container-3xl my-5\">
<div class=\"row\">
<div class=\"col-12\">
{{ \x27product.list.page.description\x27|resolve }}
</div>
</div>
</div>
<div class=\"product-cards container-3xl my-3 mb-sm-6\">
<div class=\"row g-4 match-height-product\" data-match-height-group=\"product-group\">
{% if tenant.categories|length > 0 %}
{% for product in tenant.products|filter(product => category in product.categories) %}
{% set productConfig = product.config|json_decode %}
<div class=\"col-12 col-md-6\">
<div data-match-height=\"product\" class=\"product position-relative d-flex flex-column justify-content-between h-100 p-3 p-sm-5 bg-lightgrey\">
<div class=\"row\">
<div class=\"col-12 col-sm-{{ product.listImage ? \x278\x27 : \x2712\x27 }} order-2 order-sm-1\">
<h4 class=\"mb-4\">{{ product.name }}</h4>
<div>
<p class=\"line-clamp clamp-4\">{{ product.shortDescription }}</p>
<ul id=\"product-config\">
{% if productConfig.kim_addresses_included %}
<li>
{{ productConfig.kim_addresses.quantity }}x KIM Adressen
</li>
{% endif %}
{% if productConfig.hardware_included %}
{% for hardware in productConfig.hardware %}
{% if hardware.quantity > 0 %}
<li>
{{ hardware.quantity }}x {{ hardware.hardware|resolve }}
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</div>
</div>
{% if product.listImage %}
<div class=\"col-12 col-sm-4 order-1 order-sm-2 mb-4\">
<img class=\"w-100\" src=\"/images/{{ product.listImage }}\" alt=\"{{ product.name }}\">
</div>
{% endif %}
</div>
<a href=\"{{ path(\x27product_details\x27, {productId: product.id}) }}\" class=\"d-flex justify-content-end align-items-center text-decoration-none fw-bold my-3 mt-sm-0\"><span class=\"me-2\">Mehr erfahren </span><i class=\"fas fa-arrow-right\"></i></a>
</div>
</div>
{% endfor %}
{% else %}
{% for product in tenant.products %}
{% set productConfig = product.config|json_decode %}
<div class=\"col-xs-12 col-md-6 mb-3\">
<div class=\"product position-relative d-flex flex-column justify-content-between h-100 p-3 p-sm-5 bg-lightgrey\">
<div class=\"row\">
<div class=\"col-xs-12 col-sm-{{ product.listImage ? \x278\x27 : \x2712\x27 }} order-2 order-sm-1\">
<h4 class=\"mb-4\">{{ product.name }}</h4>
<div>
<p>{{ product.shortDescription }}</p>
<ul>
{% if productConfig.kim_addresses_included %}
<li>
{{ productConfig.kim_addresses.quantity }} KIM Adressen
</li>
{% endif %}
{% if productConfig.hardware_included %}
{% for hardware in productConfig.hardware %}
<li>
{{ hardware.quantity }} {{ hardware.hardware }}
</li>
{% endfor %}
{% endif %}
</ul>
</div>
</div>
{% if product.listImage %}
<div class=\"col-xs-12 col-sm-4 order-1 order-sm-2 mb-4\">
<img class=\"w-100\" src=\"/images/{{ product.listImage }}\" alt=\"{{ product.name }}\">
</div>
{% endif %}
</div>
<a href=\"{{ path(\x27product_details\x27, {productId: product.id}) }}\" class=\"d-flex justify-content-end align-items-center text-decoration-none fw-bold\"><span class=\"me-2\">Mehr erfahren </span><i class=\"fas fa-arrow-right\"></i></a>
</div>
</div>
{% endfor %}
{% endif %}
</div>
</div>
{% endblock %}
", "page/product/list.html.twig", "/srv/storefront/templates/page/product/list.html.twig");
}
}