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

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