var/cache/dev/twig/62/62b8c91dcbdddb022fe6dfb3566d3819.php line 60

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\MacroNamespace;
  8. use Twig\Markup;
  9. use Twig\Sandbox\SecurityError;
  10. use Twig\Sandbox\SecurityNotAllowedTagError;
  11. use Twig\Sandbox\SecurityNotAllowedFilterError;
  12. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  13. use Twig\Sandbox\SecurityNotAllowedTestError;
  14. use Twig\Source;
  15. use Twig\Template;
  16. use Twig\TemplateWrapper;
  17. /* page/product/list.html.twig */
  18. class __TwigTemplate_97ca41108d57fec7fe24415043c123cc extends Template
  19. {
  20. private Source $source;
  21. /**
  22. * @var array<string, MacroNamespace>
  23. */
  24. private array $macros = [];
  25. private \Twig\Runtime\EscaperRuntime $escaper;
  26. public function __construct(Environment $env)
  27. {
  28. parent::__construct($env);
  29. $this->source = $this->getSourceContext();
  30. $this->escaper = $env->getRuntime('Twig\Runtime\EscaperRuntime');
  31. $this->blocks = [
  32. 'page_title' => [$this, 'block_page_title'],
  33. 'head_custom_stylesheets' => [$this, 'block_head_custom_stylesheets'],
  34. 'content' => [$this, 'block_content'],
  35. ];
  36. }
  37. protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
  38. {
  39. // line 1
  40. return $this->parent ??= $this->load("base.html.twig", 1);
  41. }
  42. protected function doDisplay(array $context, array $blocks = []): iterable
  43. {
  44. $macros = $this->macros;
  45. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  46. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "page/product/list.html.twig"));
  47. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  48. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "page/product/list.html.twig"));
  49. $this->parent = $this->load("base.html.twig", 1);
  50. yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  51. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  52. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  53. }
  54. // line 3
  55. /**
  56. * @return iterable<null|scalar|\Stringable>
  57. */
  58. public function block_page_title(array $context, array $blocks = []): iterable
  59. {
  60. $macros = $this->macros;
  61. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  62. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "page_title"));
  63. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  64. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "page_title"));
  65. // line 4
  66. yield " ";
  67. yield (string) $this->escaper->escape(Twig\Extension\CoreExtension::striptags($this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve("storefront.title")), "html", null, true);
  68. yield " | Produkte
  69. ";
  70. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  71. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  72. return; yield;
  73. }
  74. // line 7
  75. /**
  76. * @return iterable<null|scalar|\Stringable>
  77. */
  78. public function block_head_custom_stylesheets(array $context, array $blocks = []): iterable
  79. {
  80. $macros = $this->macros;
  81. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  82. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "head_custom_stylesheets"));
  83. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  84. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "head_custom_stylesheets"));
  85. // line 8
  86. yield " ";
  87. yield (string) $this->extensions['Symfony\WebpackEncoreBundle\Twig\EntryFilesTwigExtension']->renderWebpackLinkTags("hero-header");
  88. yield "
  89. ";
  90. // line 9
  91. yield (string) $this->extensions['Symfony\WebpackEncoreBundle\Twig\EntryFilesTwigExtension']->renderWebpackLinkTags("product-card");
  92. yield "
  93. ";
  94. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  95. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  96. return; yield;
  97. }
  98. // line 12
  99. /**
  100. * @return iterable<null|scalar|\Stringable>
  101. */
  102. public function block_content(array $context, array $blocks = []): iterable
  103. {
  104. $macros = $this->macros;
  105. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  106. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  107. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  108. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  109. // line 13
  110. yield " ";
  111. 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))) {
  112. // line 14
  113. yield " <div class=\"hero-header\" style=\"background-image: url(/images/";
  114. 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);
  115. yield ");\">
  116. <div class=\"hero-header-inner\">
  117. <div class=\"container-3xl\">
  118. <div class=\"row\">
  119. <div class=\"col-12\">
  120. <h1 class=\"hero-headline mb-5 text-white\">";
  121. // line 19
  122. yield (string) $this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve("product.list.page.headline");
  123. yield "</h1>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. ";
  130. } else {
  131. // line 26
  132. yield " <div class=\"container-3xl mb-0 mt-5 mt-sm-5\">
  133. <div class=\"row\">
  134. <div class=\"col-12\">
  135. <h1 class=\"ornament-with-child\">";
  136. // line 29
  137. yield (string) $this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve("product.list.page.headline");
  138. yield "</h1>
  139. </div>
  140. </div>
  141. </div>
  142. ";
  143. }
  144. // line 34
  145. yield "
  146. <div class=\"container-3xl my-5\">
  147. <div class=\"row\">
  148. <div class=\"col-12\">
  149. ";
  150. // line 38
  151. yield (string) $this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve("product.list.page.description");
  152. yield "
  153. </div>
  154. </div>
  155. </div>
  156. <div class=\"product-cards container-3xl my-3 mb-sm-6\">
  157. <div class=\"row g-4 match-height-product\" data-match-height-group=\"product-group\">
  158. ";
  159. // line 45
  160. 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)) {
  161. // line 46
  162. yield " ";
  163. $context['_parent'] = $context;
  164. $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)); }));
  165. foreach ($context['_seq'] as $context["_key"] => $context["product"]) {
  166. // line 47
  167. yield " ";
  168. $context["productConfig"] = $this->extensions['App\Twig\AppExtension']->jsonDecode(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "config", [], "any", false, false, false, 47));
  169. // line 48
  170. yield " <div class=\"col-12 col-md-6\">
  171. <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\">
  172. <div class=\"row\">
  173. <div class=\"col-12 col-sm-";
  174. // line 51
  175. 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"));
  176. yield " order-2 order-sm-1\">
  177. <h4 class=\"mb-4\">";
  178. // line 52
  179. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "name", [], "any", false, false, false, 52), "html", null, true);
  180. yield "</h4>
  181. <div>
  182. <p class=\"line-clamp clamp-4\">";
  183. // line 54
  184. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "shortDescription", [], "any", false, false, false, 54), "html", null, true);
  185. yield "</p>
  186. <ul id=\"product-config\">
  187. ";
  188. // line 56
  189. 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)) {
  190. // line 57
  191. yield " <li>
  192. ";
  193. // line 58
  194. 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);
  195. yield "x KIM Adressen
  196. </li>
  197. ";
  198. }
  199. // line 61
  200. yield " ";
  201. 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)) {
  202. // line 62
  203. yield " ";
  204. $context['_parent'] = $context;
  205. $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));
  206. foreach ($context['_seq'] as $context["_key"] => $context["hardware"]) {
  207. // line 63
  208. yield " ";
  209. if ((CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "quantity", [], "any", false, false, false, 63) > 0)) {
  210. // line 64
  211. yield " <li>
  212. ";
  213. // line 65
  214. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "quantity", [], "any", false, false, false, 65), "html", null, true);
  215. yield "x ";
  216. yield (string) $this->env->getRuntime('App\Twig\TextResolverRuntime')->resolve(CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "hardware", [], "any", false, false, false, 65));
  217. yield "
  218. </li>
  219. ";
  220. }
  221. // line 68
  222. yield " ";
  223. }
  224. $_parent = $context['_parent'];
  225. unset($context['_seq'], $context['_key'], $context['hardware'], $context['_parent']);
  226. $context = array_intersect_key($context, $_parent);
  227. $context += $_parent;
  228. // line 69
  229. yield " ";
  230. }
  231. // line 70
  232. yield " </ul>
  233. </div>
  234. </div>
  235. ";
  236. // line 73
  237. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 73)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  238. // line 74
  239. yield " <div class=\"col-12 col-sm-4 order-1 order-sm-2 mb-4\">
  240. <img class=\"w-100\" src=\"/images/";
  241. // line 75
  242. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 75), "html", null, true);
  243. yield "\" alt=\"";
  244. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "name", [], "any", false, false, false, 75), "html", null, true);
  245. yield "\">
  246. </div>
  247. ";
  248. }
  249. // line 78
  250. yield " </div>
  251. <a href=\"";
  252. // line 79
  253. 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);
  254. 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>
  255. </div>
  256. </div>
  257. ";
  258. }
  259. $_parent = $context['_parent'];
  260. unset($context['_seq'], $context['_key'], $context['product'], $context['_parent']);
  261. $context = array_intersect_key($context, $_parent);
  262. $context += $_parent;
  263. // line 83
  264. yield " ";
  265. } else {
  266. // line 84
  267. yield " ";
  268. $context['_parent'] = $context;
  269. $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));
  270. foreach ($context['_seq'] as $context["_key"] => $context["product"]) {
  271. // line 85
  272. yield " ";
  273. $context["productConfig"] = $this->extensions['App\Twig\AppExtension']->jsonDecode(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "config", [], "any", false, false, false, 85));
  274. // line 86
  275. yield " <div class=\"col-xs-12 col-md-6 mb-3\">
  276. <div class=\"product position-relative d-flex flex-column justify-content-between h-100 p-3 p-sm-5 bg-lightgrey\">
  277. <div class=\"row\">
  278. <div class=\"col-xs-12 col-sm-";
  279. // line 89
  280. 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"));
  281. yield " order-2 order-sm-1\">
  282. <h4 class=\"mb-4\">";
  283. // line 90
  284. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "name", [], "any", false, false, false, 90), "html", null, true);
  285. yield "</h4>
  286. <div>
  287. <p>";
  288. // line 92
  289. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "shortDescription", [], "any", false, false, false, 92), "html", null, true);
  290. yield "</p>
  291. <ul>
  292. ";
  293. // line 94
  294. 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)) {
  295. // line 95
  296. yield " <li>
  297. ";
  298. // line 96
  299. 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);
  300. yield " KIM Adressen
  301. </li>
  302. ";
  303. }
  304. // line 99
  305. yield " ";
  306. 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)) {
  307. // line 100
  308. yield " ";
  309. $context['_parent'] = $context;
  310. $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));
  311. foreach ($context['_seq'] as $context["_key"] => $context["hardware"]) {
  312. // line 101
  313. yield " <li>
  314. ";
  315. // line 102
  316. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "quantity", [], "any", false, false, false, 102), "html", null, true);
  317. yield " ";
  318. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["hardware"], "hardware", [], "any", false, false, false, 102), "html", null, true);
  319. yield "
  320. </li>
  321. ";
  322. }
  323. $_parent = $context['_parent'];
  324. unset($context['_seq'], $context['_key'], $context['hardware'], $context['_parent']);
  325. $context = array_intersect_key($context, $_parent);
  326. $context += $_parent;
  327. // line 105
  328. yield " ";
  329. }
  330. // line 106
  331. yield " </ul>
  332. </div>
  333. </div>
  334. ";
  335. // line 109
  336. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 109)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  337. // line 110
  338. yield " <div class=\"col-xs-12 col-sm-4 order-1 order-sm-2 mb-4\">
  339. <img class=\"w-100\" src=\"/images/";
  340. // line 111
  341. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "listImage", [], "any", false, false, false, 111), "html", null, true);
  342. yield "\" alt=\"";
  343. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "name", [], "any", false, false, false, 111), "html", null, true);
  344. yield "\">
  345. </div>
  346. ";
  347. }
  348. // line 114
  349. yield " </div>
  350. <a href=\"";
  351. // line 115
  352. 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);
  353. 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>
  354. </div>
  355. </div>
  356. ";
  357. }
  358. $_parent = $context['_parent'];
  359. unset($context['_seq'], $context['_key'], $context['product'], $context['_parent']);
  360. $context = array_intersect_key($context, $_parent);
  361. $context += $_parent;
  362. // line 119
  363. yield " ";
  364. }
  365. // line 120
  366. yield " </div>
  367. </div>
  368. ";
  369. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  370. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  371. return; yield;
  372. }
  373. /**
  374. * @codeCoverageIgnore
  375. */
  376. public function getTemplateName(): string
  377. {
  378. return "page/product/list.html.twig";
  379. }
  380. /**
  381. * @codeCoverageIgnore
  382. */
  383. public function isTraitable(): bool
  384. {
  385. return false;
  386. }
  387. /**
  388. * @codeCoverageIgnore
  389. */
  390. public function getDefaultEscapeStrategy(): string|false
  391. {
  392. return "html";
  393. }
  394. /**
  395. * @codeCoverageIgnore
  396. */
  397. public function getDebugInfo(): array
  398. {
  399. 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,);
  400. }
  401. public function getSourceContext(): Source
  402. {
  403. return new Source("{% extends \x27base.html.twig\x27 %}
  404. {% block page_title %}
  405. {{ \x27storefront.title\x27|resolve|striptags }} | Produkte
  406. {% endblock %}
  407. {% block head_custom_stylesheets %}
  408. {{ encore_entry_link_tags(\x27hero-header\x27) }}
  409. {{ encore_entry_link_tags(\x27product-card\x27) }}
  410. {% endblock head_custom_stylesheets %}
  411. {% block content %}
  412. {% if category and category.headerImage %}
  413. <div class=\"hero-header\" style=\"background-image: url(/images/{{ category.headerImage }});\">
  414. <div class=\"hero-header-inner\">
  415. <div class=\"container-3xl\">
  416. <div class=\"row\">
  417. <div class=\"col-12\">
  418. <h1 class=\"hero-headline mb-5 text-white\">{{ \x27product.list.page.headline\x27|resolve }}</h1>
  419. </div>
  420. </div>
  421. </div>
  422. </div>
  423. </div>
  424. {% else %}
  425. <div class=\"container-3xl mb-0 mt-5 mt-sm-5\">
  426. <div class=\"row\">
  427. <div class=\"col-12\">
  428. <h1 class=\"ornament-with-child\">{{ \x27product.list.page.headline\x27|resolve }}</h1>
  429. </div>
  430. </div>
  431. </div>
  432. {% endif %}
  433. <div class=\"container-3xl my-5\">
  434. <div class=\"row\">
  435. <div class=\"col-12\">
  436. {{ \x27product.list.page.description\x27|resolve }}
  437. </div>
  438. </div>
  439. </div>
  440. <div class=\"product-cards container-3xl my-3 mb-sm-6\">
  441. <div class=\"row g-4 match-height-product\" data-match-height-group=\"product-group\">
  442. {% if tenant.categories|length > 0 %}
  443. {% for product in tenant.products|filter(product => category in product.categories) %}
  444. {% set productConfig = product.config|json_decode %}
  445. <div class=\"col-12 col-md-6\">
  446. <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\">
  447. <div class=\"row\">
  448. <div class=\"col-12 col-sm-{{ product.listImage ? \x278\x27 : \x2712\x27 }} order-2 order-sm-1\">
  449. <h4 class=\"mb-4\">{{ product.name }}</h4>
  450. <div>
  451. <p class=\"line-clamp clamp-4\">{{ product.shortDescription }}</p>
  452. <ul id=\"product-config\">
  453. {% if productConfig.kim_addresses_included %}
  454. <li>
  455. {{ productConfig.kim_addresses.quantity }}x KIM Adressen
  456. </li>
  457. {% endif %}
  458. {% if productConfig.hardware_included %}
  459. {% for hardware in productConfig.hardware %}
  460. {% if hardware.quantity > 0 %}
  461. <li>
  462. {{ hardware.quantity }}x {{ hardware.hardware|resolve }}
  463. </li>
  464. {% endif %}
  465. {% endfor %}
  466. {% endif %}
  467. </ul>
  468. </div>
  469. </div>
  470. {% if product.listImage %}
  471. <div class=\"col-12 col-sm-4 order-1 order-sm-2 mb-4\">
  472. <img class=\"w-100\" src=\"/images/{{ product.listImage }}\" alt=\"{{ product.name }}\">
  473. </div>
  474. {% endif %}
  475. </div>
  476. <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>
  477. </div>
  478. </div>
  479. {% endfor %}
  480. {% else %}
  481. {% for product in tenant.products %}
  482. {% set productConfig = product.config|json_decode %}
  483. <div class=\"col-xs-12 col-md-6 mb-3\">
  484. <div class=\"product position-relative d-flex flex-column justify-content-between h-100 p-3 p-sm-5 bg-lightgrey\">
  485. <div class=\"row\">
  486. <div class=\"col-xs-12 col-sm-{{ product.listImage ? \x278\x27 : \x2712\x27 }} order-2 order-sm-1\">
  487. <h4 class=\"mb-4\">{{ product.name }}</h4>
  488. <div>
  489. <p>{{ product.shortDescription }}</p>
  490. <ul>
  491. {% if productConfig.kim_addresses_included %}
  492. <li>
  493. {{ productConfig.kim_addresses.quantity }} KIM Adressen
  494. </li>
  495. {% endif %}
  496. {% if productConfig.hardware_included %}
  497. {% for hardware in productConfig.hardware %}
  498. <li>
  499. {{ hardware.quantity }} {{ hardware.hardware }}
  500. </li>
  501. {% endfor %}
  502. {% endif %}
  503. </ul>
  504. </div>
  505. </div>
  506. {% if product.listImage %}
  507. <div class=\"col-xs-12 col-sm-4 order-1 order-sm-2 mb-4\">
  508. <img class=\"w-100\" src=\"/images/{{ product.listImage }}\" alt=\"{{ product.name }}\">
  509. </div>
  510. {% endif %}
  511. </div>
  512. <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>
  513. </div>
  514. </div>
  515. {% endfor %}
  516. {% endif %}
  517. </div>
  518. </div>
  519. {% endblock %}
  520. ", "page/product/list.html.twig", "/srv/storefront/templates/page/product/list.html.twig");
  521. }
  522. }