var/cache/dev/twig/38/38ea325e94b624ea1437ec5d85c35cf8.php line 847

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\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. use Twig\TemplateWrapper;
  15. /* front/catalog/model/view.html.twig */
  16. class __TwigTemplate_feeb4aaf90c3a20cb4ccd0e17f4f2035 extends Template
  17. {
  18. private Source $source;
  19. /**
  20. * @var array<string, Template>
  21. */
  22. private array $macros = [];
  23. public function __construct(Environment $env)
  24. {
  25. parent::__construct($env);
  26. $this->source = $this->getSourceContext();
  27. $this->blocks = [
  28. 'bodyClass' => [$this, 'block_bodyClass'],
  29. 'metas' => [$this, 'block_metas'],
  30. 'structuredData' => [$this, 'block_structuredData'],
  31. 'featured' => [$this, 'block_featured'],
  32. 'breadcrumbs' => [$this, 'block_breadcrumbs'],
  33. 'content' => [$this, 'block_content'],
  34. 'javascripts' => [$this, 'block_javascripts'],
  35. ];
  36. }
  37. protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
  38. {
  39. // line 1
  40. return "front/front.html.twig";
  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", "front/catalog/model/view.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", "front/catalog/model/view.html.twig"));
  49. $this->parent = $this->load("front/front.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_bodyClass(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", "bodyClass"));
  63. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  64. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "bodyClass"));
  65. yield "product product-model";
  66. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  67. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  68. yield from [];
  69. }
  70. // line 5
  71. /**
  72. * @return iterable<null|scalar|\Stringable>
  73. */
  74. public function block_metas(array $context, array $blocks = []): iterable
  75. {
  76. $macros = $this->macros;
  77. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  78. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "metas"));
  79. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  80. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "metas"));
  81. // line 6
  82. yield " <title>";
  83. yield (((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 6, $this->source); })()), "headTitleTag", [], "any", false, false, false, 6)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 6, $this->source); })()), "headTitleTag", [], "any", false, false, false, 6), "html", null, true)) : ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 6, $this->source); })()), "name", [], "any", false, false, false, 6), "html", null, true)));
  84. yield "</title>
  85. <meta name=\"description\" content=\"";
  86. // line 7
  87. yield (((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 7, $this->source); })()), "headDescTag", [], "any", false, false, false, 7)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 7, $this->source); })()), "headDescTag", [], "any", false, false, false, 7), "html", null, true)) : ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['App\Twig\TextExtension']->metaDescriptionFilter(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 7, $this->source); })()), "description", [], "any", false, false, false, 7)), "html", null, true)));
  88. yield "\">
  89. <link rel=\"canonical\" href=\"";
  90. // line 8
  91. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product", ["id" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 8, $this->source); })()), "id", [], "any", false, false, false, 8), "url" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 8, $this->source); })()), "url", [], "any", false, false, false, 8)]), "html", null, true);
  92. yield "\" />
  93. ";
  94. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  95. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  96. yield from [];
  97. }
  98. // line 11
  99. /**
  100. * @return iterable<null|scalar|\Stringable>
  101. */
  102. public function block_structuredData(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", "structuredData"));
  107. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  108. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "structuredData"));
  109. // line 12
  110. yield " ";
  111. $context["cpt"] = 1;
  112. // line 13
  113. yield " <script type=\"application/ld+json\">
  114. {
  115. \"@context\": \"https://schema.org\",
  116. \"@type\": \"BreadcrumbList\",
  117. \"itemListElement\":
  118. [
  119. {
  120. \"@type\": \"ListItem\",
  121. \"position\": ";
  122. // line 21
  123. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["cpt"]) || array_key_exists("cpt", $context) ? $context["cpt"] : (function () { throw new RuntimeError('Variable "cpt" does not exist.', 21, $this->source); })()), "html", null, true);
  124. yield ",
  125. \"item\":
  126. {
  127. \"@id\": \"";
  128. // line 24
  129. yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("index");
  130. yield "\",
  131. \"name\": \"";
  132. // line 25
  133. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Vivog | Matériel pour les toiletteurs et éleveurs", [], "messages");
  134. yield "\"
  135. }
  136. },
  137. ";
  138. // line 28
  139. $context['_parent'] = $context;
  140. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["path"]) || array_key_exists("path", $context) ? $context["path"] : (function () { throw new RuntimeError('Variable "path" does not exist.', 28, $this->source); })()));
  141. $context['loop'] = [
  142. 'parent' => $context['_parent'],
  143. 'index0' => 0,
  144. 'index' => 1,
  145. 'first' => true,
  146. ];
  147. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  148. $length = count($context['_seq']);
  149. $context['loop']['revindex0'] = $length - 1;
  150. $context['loop']['revindex'] = $length;
  151. $context['loop']['length'] = $length;
  152. $context['loop']['last'] = 1 === $length;
  153. }
  154. foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
  155. // line 29
  156. yield " ";
  157. $context["cpt"] = ((isset($context["cpt"]) || array_key_exists("cpt", $context) ? $context["cpt"] : (function () { throw new RuntimeError('Variable "cpt" does not exist.', 29, $this->source); })()) + 1);
  158. // line 30
  159. yield " {
  160. \"@type\": \"ListItem\",
  161. \"position\": ";
  162. // line 32
  163. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["cpt"]) || array_key_exists("cpt", $context) ? $context["cpt"] : (function () { throw new RuntimeError('Variable "cpt" does not exist.', 32, $this->source); })()), "html", null, true);
  164. yield ",
  165. \"item\":
  166. {
  167. ";
  168. // line 35
  169. if ((CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 35) == 1)) {
  170. // line 36
  171. yield " \"@id\": \"";
  172. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("universe", ["url" => CoreExtension::getAttribute($this->env, $this->source, $context["p"], "url", [], "any", false, false, false, 36), "id" => CoreExtension::getAttribute($this->env, $this->source, $context["p"], "id", [], "any", false, false, false, 36)]), "html", null, true);
  173. yield "\",
  174. ";
  175. } else {
  176. // line 38
  177. yield " \"@id\": \"";
  178. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("category", ["url" => CoreExtension::getAttribute($this->env, $this->source, $context["p"], "url", [], "any", false, false, false, 38), "id" => CoreExtension::getAttribute($this->env, $this->source, $context["p"], "id", [], "any", false, false, false, 38)]), "html", null, true);
  179. yield "\",
  180. ";
  181. }
  182. // line 40
  183. yield " \"name\": \"";
  184. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "name", [], "any", false, false, false, 40), "html", null, true);
  185. yield "\"
  186. }
  187. },
  188. ";
  189. ++$context['loop']['index0'];
  190. ++$context['loop']['index'];
  191. $context['loop']['first'] = false;
  192. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  193. --$context['loop']['revindex0'];
  194. --$context['loop']['revindex'];
  195. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  196. }
  197. }
  198. $_parent = $context['_parent'];
  199. unset($context['_seq'], $context['_key'], $context['p'], $context['_parent'], $context['loop']);
  200. $context = array_intersect_key($context, $_parent) + $_parent;
  201. // line 44
  202. yield " ";
  203. $context["cpt"] = ((isset($context["cpt"]) || array_key_exists("cpt", $context) ? $context["cpt"] : (function () { throw new RuntimeError('Variable "cpt" does not exist.', 44, $this->source); })()) + 1);
  204. // line 45
  205. yield " {
  206. \"@type\": \"ListItem\",
  207. \"position\": ";
  208. // line 47
  209. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["cpt"]) || array_key_exists("cpt", $context) ? $context["cpt"] : (function () { throw new RuntimeError('Variable "cpt" does not exist.', 47, $this->source); })()), "html", null, true);
  210. yield ",
  211. \"item\":
  212. {
  213. \"@id\": \"";
  214. // line 50
  215. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product", ["url" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 50, $this->source); })()), "url", [], "any", false, false, false, 50), "id" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 50, $this->source); })()), "id", [], "any", false, false, false, 50)]), "html", null, true);
  216. yield "\",
  217. \"name\": \"";
  218. // line 51
  219. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 51, $this->source); })()), "name", [], "any", false, false, false, 51), "html", null, true);
  220. yield "\"
  221. }
  222. }
  223. ]
  224. }
  225. </script>
  226. <script>
  227. var products = [];
  228. ";
  229. // line 59
  230. $context['_parent'] = $context;
  231. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["products"]) || array_key_exists("products", $context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.', 59, $this->source); })()));
  232. foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
  233. // line 60
  234. yield " products[\x27";
  235. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "id", [], "any", false, false, false, 60), "html", null, true);
  236. yield "\x27] = {
  237. id: ";
  238. // line 61
  239. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "id", [], "any", false, false, false, 61), "js"), "html", null, true);
  240. yield ",
  241. model: \x27";
  242. // line 62
  243. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "model", [], "any", false, false, false, 62), "js"), "html", null, true);
  244. yield "\x27,
  245. inStock: ";
  246. // line 63
  247. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((((CoreExtension::getAttribute($this->env, $this->source, $context["p"], "quantity", [], "any", false, false, false, 63) > 0)) ? (1) : (0)), "js"), "html", null, true);
  248. yield ",
  249. price: ";
  250. // line 64
  251. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "getPrice", [], "method", false, false, false, 64), "js"), "html", null, true);
  252. yield ",
  253. inCart: ";
  254. // line 65
  255. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["cartMgr"]) || array_key_exists("cartMgr", $context) ? $context["cartMgr"] : (function () { throw new RuntimeError('Variable "cartMgr" does not exist.', 65, $this->source); })()), "qtyInCart", [$context["p"]], "method", false, false, false, 65), "html", null, true);
  256. yield ",
  257. attributes: [],
  258. pictures: [],
  259. };
  260. ";
  261. // line 69
  262. $context['_parent'] = $context;
  263. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["attributes"]) || array_key_exists("attributes", $context) ? $context["attributes"] : (function () { throw new RuntimeError('Variable "attributes" does not exist.', 69, $this->source); })()));
  264. foreach ($context['_seq'] as $context["_key"] => $context["attribute"]) {
  265. // line 70
  266. yield " products[\x27";
  267. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "id", [], "any", false, false, false, 70), "html", null, true);
  268. yield "\x27].attributes[\x27";
  269. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["attribute"], "code", [], "any", false, false, false, 70), "html", null, true);
  270. yield "\x27] = \x27";
  271. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["p"], "getAttribute", [CoreExtension::getAttribute($this->env, $this->source, $context["attribute"], "code", [], "any", false, false, false, 70)], "method", false, false, false, 70)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? (CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["p"], "getAttribute", [CoreExtension::getAttribute($this->env, $this->source, $context["attribute"], "code", [], "any", false, false, false, 70)], "method", false, false, false, 70), "value", [], "any", false, false, false, 70)) : ("")), "js"), "html", null, true);
  272. yield "\x27;
  273. ";
  274. }
  275. $_parent = $context['_parent'];
  276. unset($context['_seq'], $context['_key'], $context['attribute'], $context['_parent']);
  277. $context = array_intersect_key($context, $_parent) + $_parent;
  278. // line 72
  279. yield " ";
  280. $context['_parent'] = $context;
  281. $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "pictures", [], "any", false, false, false, 72));
  282. foreach ($context['_seq'] as $context["_key"] => $context["picture"]) {
  283. // line 73
  284. yield " products[\x27";
  285. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "id", [], "any", false, false, false, 73), "html", null, true);
  286. yield "\x27].pictures.push ({
  287. id: ";
  288. // line 74
  289. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "id", [], "any", false, false, false, 74), "js"), "html", null, true);
  290. yield ",
  291. code: \x27";
  292. // line 75
  293. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "code", [], "any", false, false, false, 75), "js"), "html", null, true);
  294. yield "\x27,
  295. url: \x27";
  296. // line 76
  297. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "webPath", [], "any", false, false, false, 76), "js"), "html", null, true);
  298. yield "\x27,
  299. small: \x27";
  300. // line 77
  301. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Liip\ImagineBundle\Templating\LazyFilterRuntime')->filter(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "webPath", [], "any", false, false, false, 77), "product_small"), "js"), "html", null, true);
  302. yield "\x27,
  303. medium: \x27";
  304. // line 78
  305. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Liip\ImagineBundle\Templating\LazyFilterRuntime')->filter(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "webPath", [], "any", false, false, false, 78), "product_medium"), "js"), "html", null, true);
  306. yield "\x27,
  307. large: \x27";
  308. // line 79
  309. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Liip\ImagineBundle\Templating\LazyFilterRuntime')->filter(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "webPath", [], "any", false, false, false, 79), "product_large"), "js"), "html", null, true);
  310. yield "\x27,
  311. zoom: \x27";
  312. // line 80
  313. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Liip\ImagineBundle\Templating\LazyFilterRuntime')->filter(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "webPath", [], "any", false, false, false, 80), "product_zoom"), "js"), "html", null, true);
  314. yield "\x27,
  315. title: \x27";
  316. // line 81
  317. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "title", [], "any", false, false, false, 81), "js"), "html", null, true);
  318. yield "\x27,
  319. alt: \x27";
  320. // line 82
  321. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["picture"], "alt", [], "any", false, false, false, 82), "js"), "html", null, true);
  322. yield "\x27,
  323. });
  324. ";
  325. }
  326. $_parent = $context['_parent'];
  327. unset($context['_seq'], $context['_key'], $context['picture'], $context['_parent']);
  328. $context = array_intersect_key($context, $_parent) + $_parent;
  329. // line 85
  330. yield " ";
  331. }
  332. $_parent = $context['_parent'];
  333. unset($context['_seq'], $context['_key'], $context['p'], $context['_parent']);
  334. $context = array_intersect_key($context, $_parent) + $_parent;
  335. // line 86
  336. yield " var assets = [];
  337. ";
  338. // line 87
  339. $context['_parent'] = $context;
  340. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["assets"]) || array_key_exists("assets", $context) ? $context["assets"] : (function () { throw new RuntimeError('Variable "assets" does not exist.', 87, $this->source); })()));
  341. foreach ($context['_seq'] as $context["pid"] => $context["pictures"]) {
  342. // line 88
  343. yield " assets[\x27";
  344. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["pid"], "html", null, true);
  345. yield "\x27] = [];
  346. ";
  347. // line 89
  348. $context['_parent'] = $context;
  349. $context['_seq'] = CoreExtension::ensureTraversable($context["pictures"]);
  350. foreach ($context['_seq'] as $context["_key"] => $context["asset"]) {
  351. // line 90
  352. yield " assets[\x27";
  353. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["pid"], "html", null, true);
  354. yield "\x27].push ({
  355. id: ";
  356. // line 91
  357. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "id", [], "any", false, false, false, 91), "js"), "html", null, true);
  358. yield ",
  359. code: \x27";
  360. // line 92
  361. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "code", [], "any", false, false, false, 92), "js"), "html", null, true);
  362. yield "\x27,
  363. url: \x27";
  364. // line 93
  365. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "webPath", [], "any", false, false, false, 93), "js"), "html", null, true);
  366. yield "\x27,
  367. small: \x27";
  368. // line 94
  369. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Liip\ImagineBundle\Templating\LazyFilterRuntime')->filter(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "webPath", [], "any", false, false, false, 94), "product_small"), "js"), "html", null, true);
  370. yield "\x27,
  371. medium: \x27";
  372. // line 95
  373. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Liip\ImagineBundle\Templating\LazyFilterRuntime')->filter(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "webPath", [], "any", false, false, false, 95), "product_medium"), "js"), "html", null, true);
  374. yield "\x27,
  375. large: \x27";
  376. // line 96
  377. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Liip\ImagineBundle\Templating\LazyFilterRuntime')->filter(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "webPath", [], "any", false, false, false, 96), "product_large"), "js"), "html", null, true);
  378. yield "\x27,
  379. zoom: \x27";
  380. // line 97
  381. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Liip\ImagineBundle\Templating\LazyFilterRuntime')->filter(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "webPath", [], "any", false, false, false, 97), "product_zoom"), "js"), "html", null, true);
  382. yield "\x27,
  383. title: \x27";
  384. // line 98
  385. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "title", [], "any", false, false, false, 98), "js"), "html", null, true);
  386. yield "\x27,
  387. alt: \x27";
  388. // line 99
  389. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["asset"], "alt", [], "any", false, false, false, 99), "js"), "html", null, true);
  390. yield "\x27,
  391. });
  392. ";
  393. }
  394. $_parent = $context['_parent'];
  395. unset($context['_seq'], $context['_key'], $context['asset'], $context['_parent']);
  396. $context = array_intersect_key($context, $_parent) + $_parent;
  397. // line 102
  398. yield " ";
  399. }
  400. $_parent = $context['_parent'];
  401. unset($context['_seq'], $context['pid'], $context['pictures'], $context['_parent']);
  402. $context = array_intersect_key($context, $_parent) + $_parent;
  403. // line 103
  404. yield " </script>
  405. ";
  406. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  407. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  408. yield from [];
  409. }
  410. // line 106
  411. /**
  412. * @return iterable<null|scalar|\Stringable>
  413. */
  414. public function block_featured(array $context, array $blocks = []): iterable
  415. {
  416. $macros = $this->macros;
  417. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  418. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "featured"));
  419. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  420. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "featured"));
  421. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  422. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  423. yield from [];
  424. }
  425. // line 108
  426. /**
  427. * @return iterable<null|scalar|\Stringable>
  428. */
  429. public function block_breadcrumbs(array $context, array $blocks = []): iterable
  430. {
  431. $macros = $this->macros;
  432. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  433. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "breadcrumbs"));
  434. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  435. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "breadcrumbs"));
  436. // line 109
  437. yield " ";
  438. yield from $this->load("front/layout/breadcrumbs.html.twig", 109)->unwrap()->yield(CoreExtension::merge($context, ["productModel" => (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 109, $this->source); })())]));
  439. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  440. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  441. yield from [];
  442. }
  443. // line 112
  444. /**
  445. * @return iterable<null|scalar|\Stringable>
  446. */
  447. public function block_content(array $context, array $blocks = []): iterable
  448. {
  449. $macros = $this->macros;
  450. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  451. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  452. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  453. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  454. // line 113
  455. yield "
  456. ";
  457. // line 114
  458. yield from $this->load("front/layout/messages.html.twig", 114)->unwrap()->yield($context);
  459. // line 115
  460. yield "
  461. ";
  462. // line 116
  463. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 116, $this->source); })()), "request", [], "any", false, false, false, 116), "get", ["debug"], "method", false, false, false, 116)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  464. // line 117
  465. yield " <div class=\"ctn debug\">
  466. <p>
  467. <em><strong>debug</strong></em>
  468. id du modèle : ";
  469. // line 120
  470. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 120, $this->source); })()), "id", [], "any", false, false, false, 120), "html", null, true);
  471. yield "<br>
  472. code du modèle : ";
  473. // line 121
  474. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 121, $this->source); })()), "code", [], "any", false, false, false, 121), "html", null, true);
  475. yield "<br>
  476. ";
  477. // line 122
  478. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 122, $this->source); })()), "variant", [], "any", false, false, false, 122)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  479. // line 123
  480. yield " ";
  481. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 123, $this->source); })()), "variant", [], "any", false, false, false, 123), "code", [], "any", false, false, false, 123), "html", null, true);
  482. yield " ";
  483. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 123, $this->source); })()), "variant", [], "any", false, false, false, 123), "title", [], "any", false, false, false, 123), "html", null, true);
  484. yield " ";
  485. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 123, $this->source); })()), "variant", [], "any", false, false, false, 123), "axis1", [], "any", false, false, false, 123), "html", null, true);
  486. yield " ";
  487. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 123, $this->source); })()), "variant", [], "any", false, false, false, 123), "axis2", [], "any", false, false, false, 123), "html", null, true);
  488. yield "
  489. ";
  490. }
  491. // line 125
  492. yield " </p>
  493. ";
  494. // line 126
  495. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 126, $this->source); })()), "hasChildren", [], "method", false, false, false, 126)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  496. // line 127
  497. yield " <p>
  498. <em><strong>sous modèles</strong></em>
  499. ";
  500. // line 129
  501. $context['_parent'] = $context;
  502. $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 129, $this->source); })()), "children", [], "any", false, false, false, 129));
  503. foreach ($context['_seq'] as $context["_key"] => $context["child"]) {
  504. // line 130
  505. yield " <li>
  506. id du sous-modèle : ";
  507. // line 131
  508. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["child"], "id", [], "any", false, false, false, 131), "html", null, true);
  509. yield "<br>
  510. code du sous-modèle : ";
  511. // line 132
  512. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["child"], "code", [], "any", false, false, false, 132), "html", null, true);
  513. yield "<br>
  514. ";
  515. // line 133
  516. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["child"], "variant", [], "any", false, false, false, 133)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  517. // line 134
  518. yield " ";
  519. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["child"], "variant", [], "any", false, false, false, 134), "code", [], "any", false, false, false, 134), "html", null, true);
  520. yield " ";
  521. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["child"], "variant", [], "any", false, false, false, 134), "title", [], "any", false, false, false, 134), "html", null, true);
  522. yield " ";
  523. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["child"], "variant", [], "any", false, false, false, 134), "axis1", [], "any", false, false, false, 134), "html", null, true);
  524. yield " ";
  525. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["child"], "variant", [], "any", false, false, false, 134), "axis2", [], "any", false, false, false, 134), "html", null, true);
  526. yield "
  527. ";
  528. }
  529. // line 136
  530. yield " </li>
  531. ";
  532. }
  533. $_parent = $context['_parent'];
  534. unset($context['_seq'], $context['_key'], $context['child'], $context['_parent']);
  535. $context = array_intersect_key($context, $_parent) + $_parent;
  536. // line 138
  537. yield " </p>
  538. ";
  539. }
  540. // line 140
  541. yield " <p>
  542. <em><strong>produits</strong></em>
  543. <ul>
  544. ";
  545. // line 143
  546. $context['_parent'] = $context;
  547. $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModel"]) || array_key_exists("productModel", $context) ? $context["productModel"] : (function () { throw new RuntimeError('Variable "productModel" does not exist.', 143, $this->source); })()), "allProducts", [], "any", false, false, false, 143));
  548. foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
  549. // line 144
  550. yield " <li>
  551. id du produit : ";
  552. // line 145
  553. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "id", [], "any", false, false, false, 145), "html", null, true);
  554. yield "<br>
  555. ref du produit : ";
  556. // line 146
  557. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "reference", [], "any", false, false, false, 146), "html", null, true);
  558. yield "<br>
  559. variant par défaut : ";
  560. // line 147
  561. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["p"], "isDefaultVariant", [], "any", false, false, false, 147), "html", null, true);
  562. yield "<br>
  563. </li>
  564. ";
  565. }
  566. $_parent = $context['_parent'];
  567. unset($context['_seq'], $context['_key'], $context['p'], $context['_parent']);
  568. $context = array_intersect_key($context, $_parent) + $_parent;
  569. // line 150
  570. yield " </ul>
  571. </p>
  572. </div>
  573. ";
  574. }
  575. // line 154
  576. yield "
  577. <div class=\"product-view\">
  578. <div class=\"ctn\">
  579. <div class=\"product-infos\">
  580. ";
  581. // line 158
  582. yield from $this->load("front/catalog/model/view/assets.html.twig", 158)->unwrap()->yield($context);
  583. // line 159
  584. yield " <div class=\"infos\">
  585. ";
  586. // line 160
  587. if ((($tmp = $this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_ADMIN")) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  588. // line 161
  589. yield " <div class=\"admin-tools\">
  590. <a href=\"";
  591. // line 162
  592. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("admin_product_edit", ["id" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 162, $this->source); })()), "id", [], "any", false, false, false, 162)]), "html", null, true);
  593. yield "\" class=\"admin-update\" target=\"_blank\">modifier le produit</a>
  594. </div>
  595. ";
  596. }
  597. // line 165
  598. yield " ";
  599. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 165, $this->source); })()), "manufacturer", [], "any", false, false, false, 165)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  600. // line 166
  601. yield " <div class=\"manufacturer\"><a href=\"";
  602. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("manufacturer", ["id" => CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 166, $this->source); })()), "manufacturer", [], "any", false, false, false, 166), "id", [], "any", false, false, false, 166), "url" => CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 166, $this->source); })()), "manufacturer", [], "any", false, false, false, 166), "url", [], "any", false, false, false, 166)]), "html", null, true);
  603. yield "\">";
  604. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 166, $this->source); })()), "manufacturer", [], "any", false, false, false, 166), "name", [], "any", false, false, false, 166), "html", null, true);
  605. yield "</a></div>
  606. ";
  607. }
  608. // line 168
  609. yield " <h1>";
  610. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 168, $this->source); })()), "headingTitle", [], "any", false, false, false, 168), "html", null, true);
  611. yield "</h1>
  612. <div class=\"description\">
  613. ";
  614. // line 170
  615. if ((($tmp = (isset($context["hasWelcomeDiscount"]) || array_key_exists("hasWelcomeDiscount", $context) ? $context["hasWelcomeDiscount"] : (function () { throw new RuntimeError('Variable "hasWelcomeDiscount" does not exist.', 170, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  616. // line 171
  617. yield " <div>
  618. ";
  619. // line 172
  620. yield from $this->load("front/catalog/product/view/discount-welcome.html.twig", 172)->unwrap()->yield($context);
  621. // line 173
  622. yield " </div>
  623. ";
  624. }
  625. // line 175
  626. yield " ";
  627. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 175, $this->source); })()), "description", [], "any", false, false, false, 175)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  628. // line 176
  629. yield " <a href=\"#description\" class=\"bt-scroll\">";
  630. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Voir le descriptif", [], "messages");
  631. yield "</a>
  632. ";
  633. }
  634. // line 178
  635. yield " </div>
  636. ";
  637. // line 179
  638. if ((($tmp = !CoreExtension::getAttribute($this->env, $this->source, (isset($context["customerMgr"]) || array_key_exists("customerMgr", $context) ? $context["customerMgr"] : (function () { throw new RuntimeError('Variable "customerMgr" does not exist.', 179, $this->source); })()), "canSeePrices", [], "method", false, false, false, 179)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  639. // line 180
  640. yield " <div class=\"not-logged\">
  641. ";
  642. // line 181
  643. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Pour voir les prix des articles,", [], "messages");
  644. yield "<a href=\"";
  645. yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("customer_login");
  646. yield "\">";
  647. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("il faut être connecté", [], "messages");
  648. yield "</a> ";
  649. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("(c’est gratuit)", [], "messages");
  650. yield ".
  651. </div>
  652. ";
  653. }
  654. // line 184
  655. yield " ";
  656. yield from $this->load("front/catalog/model/view/references.html.twig", 184)->unwrap()->yield($context);
  657. // line 185
  658. yield " ";
  659. if ((($tmp = !CoreExtension::getAttribute($this->env, $this->source, (isset($context["customerMgr"]) || array_key_exists("customerMgr", $context) ? $context["customerMgr"] : (function () { throw new RuntimeError('Variable "customerMgr" does not exist.', 185, $this->source); })()), "isExpert", [], "method", false, false, false, 185)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  660. // line 186
  661. yield " <div class=\"offers\">
  662. <div class=\"free-shipping\">
  663. <img src=\"";
  664. // line 188
  665. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/pictos/shipping.svg"), "html", null, true);
  666. yield "\" alt=\"";
  667. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Livraison gratuite dès 100 € HT", [], "messages");
  668. yield "\">
  669. <div>";
  670. // line 189
  671. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("<strong>LIVRAISON GRATUITE</strong><br>dès 100 € HT", [], "messages");
  672. yield "</div>
  673. </div>
  674. <div class=\"free-gift\">
  675. <img src=\"";
  676. // line 192
  677. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/pictos/gift.svg"), "html", null, true);
  678. yield "\" alt=\"";
  679. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("1 cadeau offert pour chaque commande internet", [], "messages");
  680. yield "\">
  681. <div>";
  682. // line 193
  683. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("<strong>1 CADEAU OFFERT</strong> pour <br>chaque commande internet", [], "messages");
  684. yield "</div>
  685. </div>
  686. </div>
  687. ";
  688. // line 196
  689. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 196, $this->source); })()), "hasSoleil", [], "method", false, false, false, 196)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  690. // line 197
  691. yield " <p>";
  692. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("-25% de remise sur les produits <span class=\"picto soleil\"></span> dès 100€ HT de commande de produits <span class=\"picto soleil\"></span>", [], "messages");
  693. yield "</p>
  694. ";
  695. }
  696. // line 199
  697. yield " ";
  698. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 199, $this->source); })()), "hasNonSoleil", [], "method", false, false, false, 199)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  699. // line 200
  700. yield " <p>";
  701. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("-10% de remise sur les produits <span class=\"picto non-soleil\"></span> dès 100€ HT de commande de produits <span class=\"picto non-soleil\"></span>", [], "messages");
  702. yield "</p>
  703. ";
  704. }
  705. // line 202
  706. yield " ";
  707. }
  708. // line 203
  709. yield " </div>
  710. </div>
  711. </div>
  712. <div class=\"ctn\">
  713. ";
  714. // line 207
  715. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 207, $this->source); })()), "description", [], "any", false, false, false, 207)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  716. // line 208
  717. yield " <div class=\"tab-content rte section\" id=\"description\">
  718. <div class=\"title-ctn\">
  719. <div class=\"title\">";
  720. // line 210
  721. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Description détaillée", [], "messages");
  722. yield "</div>
  723. </div>
  724. ";
  725. // line 212
  726. yield CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 212, $this->source); })()), "description", [], "any", false, false, false, 212);
  727. yield "
  728. </div>
  729. ";
  730. }
  731. // line 215
  732. yield " ";
  733. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 215, $this->source); })()), "notice", [], "any", false, false, false, 215)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  734. // line 216
  735. yield " <div class=\"tab-content rte section\" id=\"notice\">
  736. <div class=\"title-ctn\">
  737. <div class=\"title\">";
  738. // line 218
  739. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Notice", [], "messages");
  740. yield "</div>
  741. </div>
  742. <p class=\"notice\"><a href=\"";
  743. // line 220
  744. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 220, $this->source); })()), "noticeUrl", [], "any", false, false, false, 220), "html", null, true);
  745. yield "\" target=\"_blank\">";
  746. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Télécharger la notice d\x27utilisation", [], "messages");
  747. yield "</a></p>
  748. </div>
  749. ";
  750. }
  751. // line 223
  752. yield " ";
  753. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 223, $this->source); })()), "conseil1", [], "any", false, false, false, 223)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  754. // line 224
  755. yield " <div class=\"section rte advices\">
  756. <div class=\"title-ctn\">
  757. <div class=\"title\">";
  758. // line 226
  759. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Conseils et astuces", [], "messages");
  760. yield "</div>
  761. </div>
  762. ";
  763. // line 228
  764. yield CoreExtension::getAttribute($this->env, $this->source, (isset($context["productModelDescription"]) || array_key_exists("productModelDescription", $context) ? $context["productModelDescription"] : (function () { throw new RuntimeError('Variable "productModelDescription" does not exist.', 228, $this->source); })()), "conseil1", [], "any", false, false, false, 228);
  765. yield "
  766. </div>
  767. ";
  768. }
  769. // line 231
  770. yield " ";
  771. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 231, $this->source); })()), "video", [], "any", false, false, false, 231)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  772. // line 232
  773. yield " <div class=\"tab-content rte section\" id=\"video\">
  774. <div class=\"title-ctn\">
  775. <div class=\"title\">";
  776. // line 234
  777. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Vid&Eacute;o", [], "messages");
  778. yield "</div>
  779. <hr>
  780. </div>
  781. <div class=\"video-ctn\">
  782. ";
  783. // line 238
  784. yield CoreExtension::getAttribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 238, $this->source); })()), "video", [], "any", false, false, false, 238);
  785. yield "
  786. </div>
  787. </div>
  788. ";
  789. }
  790. // line 242
  791. yield " ";
  792. yield from $this->load("front/catalog/product/view/caracteristics.html.twig", 242)->unwrap()->yield($context);
  793. // line 243
  794. yield " </div>
  795. ";
  796. // line 244
  797. if ((($tmp = (isset($context["associates"]) || array_key_exists("associates", $context) ? $context["associates"] : (function () { throw new RuntimeError('Variable "associates" does not exist.', 244, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  798. // line 245
  799. yield " ";
  800. yield from $this->load("front/catalog/product/carousel.html.twig", 245)->unwrap()->yield(CoreExtension::merge($context, ["products" => (isset($context["associates"]) || array_key_exists("associates", $context) ? $context["associates"] : (function () { throw new RuntimeError('Variable "associates" does not exist.', 245, $this->source); })()), "title" => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Produits associés"), "withWrapper" => true]));
  801. // line 246
  802. yield " ";
  803. }
  804. // line 247
  805. yield " <div class=\"ctn\" style=\"padding: 30px 0;\">
  806. ";
  807. // line 248
  808. if ((($tmp = (isset($context["inCategory"]) || array_key_exists("inCategory", $context) ? $context["inCategory"] : (function () { throw new RuntimeError('Variable "inCategory" does not exist.', 248, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  809. // line 249
  810. yield " ";
  811. yield from $this->load("front/catalog/product/carousel.html.twig", 249)->unwrap()->yield(CoreExtension::merge($context, ["products" => (isset($context["inCategory"]) || array_key_exists("inCategory", $context) ? $context["inCategory"] : (function () { throw new RuntimeError('Variable "inCategory" does not exist.', 249, $this->source); })()), "title" => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Dans la même catégorie"), "withWrapper" => false]));
  812. // line 250
  813. yield " ";
  814. }
  815. // line 251
  816. yield " </div>
  817. ";
  818. // line 252
  819. yield $this->env->getRuntime('Symfony\Bridge\Twig\Extension\HttpKernelRuntime')->renderFragment(Symfony\Bridge\Twig\Extension\HttpKernelExtension::controller("App\\Controller\\Front\\Modules\\SeenProductsController::block", ["request" => CoreExtension::getAttribute($this->env, $this->source, // line 254
  820. (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 254, $this->source); })()), "request", [], "any", false, false, false, 254)]));
  821. // line 255
  822. yield "
  823. <div class=\"ctn\">
  824. ";
  825. // line 257
  826. if ((($tmp = (isset($context["pathTags"]) || array_key_exists("pathTags", $context) ? $context["pathTags"] : (function () { throw new RuntimeError('Variable "pathTags" does not exist.', 257, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  827. // line 258
  828. yield " <div class=\"section rte tags\">
  829. <div class=\"title-ctn\">
  830. <div class=\"title\">";
  831. // line 260
  832. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Craquez aussi pour...", [], "messages");
  833. yield "</div>
  834. </div>
  835. ";
  836. // line 262
  837. yield (isset($context["pathTags"]) || array_key_exists("pathTags", $context) ? $context["pathTags"] : (function () { throw new RuntimeError('Variable "pathTags" does not exist.', 262, $this->source); })());
  838. yield "
  839. </div>
  840. ";
  841. }
  842. // line 265
  843. yield " </div>
  844. </div>
  845. ";
  846. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  847. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  848. yield from [];
  849. }
  850. // line 269
  851. /**
  852. * @return iterable<null|scalar|\Stringable>
  853. */
  854. public function block_javascripts(array $context, array $blocks = []): iterable
  855. {
  856. $macros = $this->macros;
  857. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  858. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascripts"));
  859. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  860. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascripts"));
  861. // line 270
  862. yield " <script src=\"";
  863. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("js/product.js"), "html", null, true);
  864. yield "\"></script>
  865. <script>
  866. \$(document).ready(function(){
  867. ";
  868. // line 274
  869. yield " product.init();
  870. });
  871. </script>
  872. ";
  873. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  874. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  875. yield from [];
  876. }
  877. /**
  878. * @codeCoverageIgnore
  879. */
  880. public function getTemplateName(): string
  881. {
  882. return "front/catalog/model/view.html.twig";
  883. }
  884. /**
  885. * @codeCoverageIgnore
  886. */
  887. public function isTraitable(): bool
  888. {
  889. return false;
  890. }
  891. /**
  892. * @codeCoverageIgnore
  893. */
  894. public function getDebugInfo(): array
  895. {
  896. return array ( 927 => 274, 920 => 270, 907 => 269, 894 => 265, 888 => 262, 883 => 260, 879 => 258, 877 => 257, 873 => 255, 871 => 254, 870 => 252, 867 => 251, 864 => 250, 861 => 249, 859 => 248, 856 => 247, 853 => 246, 850 => 245, 848 => 244, 845 => 243, 842 => 242, 835 => 238, 828 => 234, 824 => 232, 821 => 231, 815 => 228, 810 => 226, 806 => 224, 803 => 223, 795 => 220, 790 => 218, 786 => 216, 783 => 215, 777 => 212, 772 => 210, 768 => 208, 766 => 207, 760 => 203, 757 => 202, 751 => 200, 748 => 199, 742 => 197, 740 => 196, 734 => 193, 728 => 192, 722 => 189, 716 => 188, 712 => 186, 709 => 185, 706 => 184, 694 => 181, 691 => 180, 689 => 179, 686 => 178, 680 => 176, 677 => 175, 673 => 173, 671 => 172, 668 => 171, 666 => 170, 660 => 168, 652 => 166, 649 => 165, 643 => 162, 640 => 161, 638 => 160, 635 => 159, 633 => 158, 627 => 154, 621 => 150, 612 => 147, 608 => 146, 604 => 145, 601 => 144, 597 => 143, 592 => 140, 588 => 138, 581 => 136, 569 => 134, 567 => 133, 563 => 132, 559 => 131, 556 => 130, 552 => 129, 548 => 127, 546 => 126, 543 => 125, 531 => 123, 529 => 122, 525 => 121, 521 => 120, 516 => 117, 514 => 116, 511 => 115, 509 => 114, 506 => 113, 493 => 112, 481 => 109, 468 => 108, 446 => 106, 434 => 103, 428 => 102, 419 => 99, 415 => 98, 411 => 97, 407 => 96, 403 => 95, 399 => 94, 395 => 93, 391 => 92, 387 => 91, 382 => 90, 378 => 89, 373 => 88, 369 => 87, 366 => 86, 360 => 85, 351 => 82, 347 => 81, 343 => 80, 339 => 79, 335 => 78, 331 => 77, 327 => 76, 323 => 75, 319 => 74, 314 => 73, 309 => 72, 296 => 70, 292 => 69, 285 => 65, 281 => 64, 277 => 63, 273 => 62, 269 => 61, 264 => 60, 260 => 59, 249 => 51, 245 => 50, 239 => 47, 235 => 45, 232 => 44, 213 => 40, 207 => 38, 201 => 36, 199 => 35, 193 => 32, 189 => 30, 186 => 29, 169 => 28, 163 => 25, 159 => 24, 153 => 21, 143 => 13, 140 => 12, 127 => 11, 114 => 8, 110 => 7, 105 => 6, 92 => 5, 69 => 3, 46 => 1,);
  897. }
  898. public function getSourceContext(): Source
  899. {
  900. return new Source("{% extends \x27front/front.html.twig\x27 %}
  901. {% block bodyClass %}product product-model{% endblock %}
  902. {% block metas %}
  903. <title>{{ productModelDescription.headTitleTag ? productModelDescription.headTitleTag : productModelDescription.name }}</title>
  904. <meta name=\"description\" content=\"{{ productModelDescription.headDescTag ? productModelDescription.headDescTag : productModelDescription.description|metadescription }}\">
  905. <link rel=\"canonical\" href=\"{{ url(\x27product\x27,{id:product.id, url:productModelDescription.url}) }}\" />
  906. {% endblock %}
  907. {% block structuredData %}
  908. {% set cpt = 1 %}
  909. <script type=\"application/ld+json\">
  910. {
  911. \"@context\": \"https://schema.org\",
  912. \"@type\": \"BreadcrumbList\",
  913. \"itemListElement\":
  914. [
  915. {
  916. \"@type\": \"ListItem\",
  917. \"position\": {{ cpt }},
  918. \"item\":
  919. {
  920. \"@id\": \"{{ url(\x27index\x27) }}\",
  921. \"name\": \"{% trans %}Vivog | Matériel pour les toiletteurs et éleveurs{% endtrans %}\"
  922. }
  923. },
  924. {% for p in path %}
  925. {% set cpt = cpt + 1 %}
  926. {
  927. \"@type\": \"ListItem\",
  928. \"position\": {{ cpt }},
  929. \"item\":
  930. {
  931. {% if loop.index == 1 %}
  932. \"@id\": \"{{ url(\x27universe\x27,{url:p.url,id:p.id}) }}\",
  933. {% else %}
  934. \"@id\": \"{{ url(\x27category\x27,{url:p.url,id:p.id}) }}\",
  935. {% endif %}
  936. \"name\": \"{{ p.name }}\"
  937. }
  938. },
  939. {% endfor %}
  940. {% set cpt = cpt + 1 %}
  941. {
  942. \"@type\": \"ListItem\",
  943. \"position\": {{ cpt }},
  944. \"item\":
  945. {
  946. \"@id\": \"{{ url(\x27product\x27,{url:product.url,id:product.id}) }}\",
  947. \"name\": \"{{ product.name }}\"
  948. }
  949. }
  950. ]
  951. }
  952. </script>
  953. <script>
  954. var products = [];
  955. {% for p in products %}
  956. products[\x27{{ p.id }}\x27] = {
  957. id: {{ p.id | e(\x27js\x27) }},
  958. model: \x27{{ p.model | e(\x27js\x27) }}\x27,
  959. inStock: {{ (p.quantity > 0 ? 1 : 0) | e(\x27js\x27) }},
  960. price: {{ p.getPrice() | e(\x27js\x27) }},
  961. inCart: {{ cartMgr.qtyInCart(p) }},
  962. attributes: [],
  963. pictures: [],
  964. };
  965. {% for attribute in attributes %}
  966. products[\x27{{ p.id }}\x27].attributes[\x27{{ attribute.code }}\x27] = \x27{{ (p.getAttribute(attribute.code) ? p.getAttribute(attribute.code).value : \x27\x27) |e(\x27js\x27) }}\x27;
  967. {% endfor %}
  968. {% for picture in p.pictures %}
  969. products[\x27{{ p.id }}\x27].pictures.push ({
  970. id: {{ picture.id | e(\x27js\x27) }},
  971. code: \x27{{ picture.code | e(\x27js\x27) }}\x27,
  972. url: \x27{{ picture.webPath |e(\x27js\x27) }}\x27,
  973. small: \x27{{ picture.webPath | imagine_filter(\x27product_small\x27) |e(\x27js\x27) }}\x27,
  974. medium: \x27{{ picture.webPath | imagine_filter(\x27product_medium\x27) |e(\x27js\x27) }}\x27,
  975. large: \x27{{ picture.webPath | imagine_filter(\x27product_large\x27) |e(\x27js\x27) }}\x27,
  976. zoom: \x27{{ picture.webPath | imagine_filter(\x27product_zoom\x27) |e(\x27js\x27) }}\x27,
  977. title: \x27{{ picture.title |e(\x27js\x27) }}\x27,
  978. alt: \x27{{ picture.alt |e(\x27js\x27) }}\x27,
  979. });
  980. {% endfor %}
  981. {% endfor %}
  982. var assets = [];
  983. {% for pid, pictures in assets %}
  984. assets[\x27{{pid}}\x27] = [];
  985. {% for asset in pictures %}
  986. assets[\x27{{pid}}\x27].push ({
  987. id: {{ asset.id | e(\x27js\x27) }},
  988. code: \x27{{ asset.code | e(\x27js\x27) }}\x27,
  989. url: \x27{{ asset.webPath |e(\x27js\x27) }}\x27,
  990. small: \x27{{ asset.webPath | imagine_filter(\x27product_small\x27) |e(\x27js\x27) }}\x27,
  991. medium: \x27{{ asset.webPath | imagine_filter(\x27product_medium\x27) |e(\x27js\x27) }}\x27,
  992. large: \x27{{ asset.webPath | imagine_filter(\x27product_large\x27) |e(\x27js\x27) }}\x27,
  993. zoom: \x27{{ asset.webPath | imagine_filter(\x27product_zoom\x27) |e(\x27js\x27) }}\x27,
  994. title: \x27{{ asset.title |e(\x27js\x27) }}\x27,
  995. alt: \x27{{ asset.alt |e(\x27js\x27) }}\x27,
  996. });
  997. {% endfor %}
  998. {% endfor %}
  999. </script>
  1000. {% endblock %}
  1001. {% block featured %}{% endblock %}
  1002. {% block breadcrumbs %}
  1003. {% include \x27front/layout/breadcrumbs.html.twig\x27 with {productModel:productModel} %}
  1004. {% endblock %}
  1005. {% block content %}
  1006. {% include \x27front/layout/messages.html.twig\x27 %}
  1007. {% if app.request.get(\x27debug\x27) %}
  1008. <div class=\"ctn debug\">
  1009. <p>
  1010. <em><strong>debug</strong></em>
  1011. id du modèle : {{ productModel.id }}<br>
  1012. code du modèle : {{ productModel.code }}<br>
  1013. {% if productModel.variant %}
  1014. {{ productModel.variant.code }} {{ productModel.variant.title }} {{ productModel.variant.axis1 }} {{ productModel.variant.axis2 }}
  1015. {% endif %}
  1016. </p>
  1017. {% if productModel.hasChildren() %}
  1018. <p>
  1019. <em><strong>sous modèles</strong></em>
  1020. {% for child in productModel.children %}
  1021. <li>
  1022. id du sous-modèle : {{ child.id }}<br>
  1023. code du sous-modèle : {{ child.code }}<br>
  1024. {% if child.variant %}
  1025. {{ child.variant.code }} {{ child.variant.title }} {{ child.variant.axis1 }} {{ child.variant.axis2 }}
  1026. {% endif %}
  1027. </li>
  1028. {% endfor %}
  1029. </p>
  1030. {% endif %}
  1031. <p>
  1032. <em><strong>produits</strong></em>
  1033. <ul>
  1034. {% for p in productModel.allProducts %}
  1035. <li>
  1036. id du produit : {{ p.id }}<br>
  1037. ref du produit : {{ p.reference }}<br>
  1038. variant par défaut : {{ p.isDefaultVariant }}<br>
  1039. </li>
  1040. {% endfor %}
  1041. </ul>
  1042. </p>
  1043. </div>
  1044. {% endif %}
  1045. <div class=\"product-view\">
  1046. <div class=\"ctn\">
  1047. <div class=\"product-infos\">
  1048. {% include \x27front/catalog/model/view/assets.html.twig\x27 %}
  1049. <div class=\"infos\">
  1050. {% if is_granted(\x27ROLE_ADMIN\x27) %}
  1051. <div class=\"admin-tools\">
  1052. <a href=\"{{ path(\x27admin_product_edit\x27,{id:product.id}) }}\" class=\"admin-update\" target=\"_blank\">modifier le produit</a>
  1053. </div>
  1054. {% endif %}
  1055. {% if product.manufacturer %}
  1056. <div class=\"manufacturer\"><a href=\"{{ path(\x27manufacturer\x27,{id:product.manufacturer.id, url:product.manufacturer.url}) }}\">{{ product.manufacturer.name }}</a></div>
  1057. {% endif %}
  1058. <h1>{{ productModelDescription.headingTitle }}</h1>
  1059. <div class=\"description\">
  1060. {% if hasWelcomeDiscount %}
  1061. <div>
  1062. {% include \x27front/catalog/product/view/discount-welcome.html.twig\x27 %}
  1063. </div>
  1064. {% endif %}
  1065. {% if productModelDescription.description %}
  1066. <a href=\"#description\" class=\"bt-scroll\">{% trans %}Voir le descriptif{% endtrans %}</a>
  1067. {% endif %}
  1068. </div>
  1069. {% if not customerMgr.canSeePrices() %}
  1070. <div class=\"not-logged\">
  1071. {% trans %}Pour voir les prix des articles, {% endtrans %}<a href=\"{{ path(\x27customer_login\x27) }}\">{% trans %}il faut être connecté{% endtrans %}</a> {% trans %}(c’est gratuit){% endtrans %}.
  1072. </div>
  1073. {% endif %}
  1074. {% include \x27front/catalog/model/view/references.html.twig\x27 %}
  1075. {% if not customerMgr.isExpert() %}
  1076. <div class=\"offers\">
  1077. <div class=\"free-shipping\">
  1078. <img src=\"{{ asset(\x27img/pictos/shipping.svg\x27) }}\" alt=\"{% trans %}Livraison gratuite dès 100 € HT{% endtrans %}\">
  1079. <div>{% trans %}<strong>LIVRAISON GRATUITE</strong><br>dès 100 € HT{% endtrans %}</div>
  1080. </div>
  1081. <div class=\"free-gift\">
  1082. <img src=\"{{ asset(\x27img/pictos/gift.svg\x27) }}\" alt=\"{% trans %}1 cadeau offert pour chaque commande internet{% endtrans %}\">
  1083. <div>{% trans %}<strong>1 CADEAU OFFERT</strong> pour <br>chaque commande internet{% endtrans %}</div>
  1084. </div>
  1085. </div>
  1086. {% if product.hasSoleil() %}
  1087. <p>{% trans %}-25% de remise sur les produits <span class=\"picto soleil\"></span> dès 100€ HT de commande de produits <span class=\"picto soleil\"></span>{% endtrans %}</p>
  1088. {% endif %}
  1089. {% if product.hasNonSoleil() %}
  1090. <p>{% trans %}-10% de remise sur les produits <span class=\"picto non-soleil\"></span> dès 100€ HT de commande de produits <span class=\"picto non-soleil\"></span>{% endtrans %}</p>
  1091. {% endif %}
  1092. {% endif %}
  1093. </div>
  1094. </div>
  1095. </div>
  1096. <div class=\"ctn\">
  1097. {% if productModelDescription.description %}
  1098. <div class=\"tab-content rte section\" id=\"description\">
  1099. <div class=\"title-ctn\">
  1100. <div class=\"title\">{% trans %}Description détaillée{% endtrans %}</div>
  1101. </div>
  1102. {{ productModelDescription.description|raw }}
  1103. </div>
  1104. {% endif %}
  1105. {% if product.notice %}
  1106. <div class=\"tab-content rte section\" id=\"notice\">
  1107. <div class=\"title-ctn\">
  1108. <div class=\"title\">{% trans %}Notice{% endtrans %}</div>
  1109. </div>
  1110. <p class=\"notice\"><a href=\"{{ product.noticeUrl }}\" target=\"_blank\">{% trans %}Télécharger la notice d\x27utilisation{% endtrans %}</a></p>
  1111. </div>
  1112. {% endif %}
  1113. {% if productModelDescription.conseil1 %}
  1114. <div class=\"section rte advices\">
  1115. <div class=\"title-ctn\">
  1116. <div class=\"title\">{% trans %}Conseils et astuces{% endtrans %}</div>
  1117. </div>
  1118. {{ productModelDescription.conseil1|raw }}
  1119. </div>
  1120. {% endif %}
  1121. {% if product.video %}
  1122. <div class=\"tab-content rte section\" id=\"video\">
  1123. <div class=\"title-ctn\">
  1124. <div class=\"title\">{% trans %}Vid&Eacute;o{% endtrans %}</div>
  1125. <hr>
  1126. </div>
  1127. <div class=\"video-ctn\">
  1128. {{ product.video|raw }}
  1129. </div>
  1130. </div>
  1131. {% endif %}
  1132. {% include \x27front/catalog/product/view/caracteristics.html.twig\x27 %}
  1133. </div>
  1134. {% if associates %}
  1135. {% include \x27front/catalog/product/carousel.html.twig\x27 with {products:associates, title:\x27Produits associés\x27|trans, withWrapper:true} %}
  1136. {% endif %}
  1137. <div class=\"ctn\" style=\"padding: 30px 0;\">
  1138. {% if inCategory %}
  1139. {% include \x27front/catalog/product/carousel.html.twig\x27 with {products:inCategory, title:\x27Dans la même catégorie\x27|trans, withWrapper:false} %}
  1140. {% endif %}
  1141. </div>
  1142. {{ render(controller(
  1143. \x27App\\\\Controller\\\\Front\\\\Modules\\\\SeenProductsController::block\x27,
  1144. { \x27request\x27: app.request }
  1145. )) }}
  1146. <div class=\"ctn\">
  1147. {% if pathTags %}
  1148. <div class=\"section rte tags\">
  1149. <div class=\"title-ctn\">
  1150. <div class=\"title\">{% trans %}Craquez aussi pour...{% endtrans %}</div>
  1151. </div>
  1152. {{ pathTags|raw }}
  1153. </div>
  1154. {% endif %}
  1155. </div>
  1156. </div>
  1157. {% endblock %}
  1158. {% block javascripts %}
  1159. <script src=\"{{ asset(\x27js/product.js\x27) }}\"></script>
  1160. <script>
  1161. \$(document).ready(function(){
  1162. {# tabs.init();#}
  1163. product.init();
  1164. });
  1165. </script>
  1166. {% endblock %}", "front/catalog/model/view.html.twig", "/var/www/dogcat.com/pim/templates/front/catalog/model/view.html.twig");
  1167. }
  1168. }