var/cache/dev/twig/71/71e8ab67d9ff526143e75a2416115d73.php line 450

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/product/view.html.twig */
  16. class __TwigTemplate_4259ef71957ef3aeb11103671efa4832 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/product/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/product/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";
  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["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" 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["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" 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["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" 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["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" 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["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" 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["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" 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["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" 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. <style>
  227. .caracteristics table td{ min-width: 300px;padding: 5px 20px 5px 0; }
  228. </style>
  229. ";
  230. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  231. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  232. yield from [];
  233. }
  234. // line 62
  235. /**
  236. * @return iterable<null|scalar|\Stringable>
  237. */
  238. public function block_featured(array $context, array $blocks = []): iterable
  239. {
  240. $macros = $this->macros;
  241. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  242. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "featured"));
  243. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  244. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "featured"));
  245. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  246. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  247. yield from [];
  248. }
  249. // line 64
  250. /**
  251. * @return iterable<null|scalar|\Stringable>
  252. */
  253. public function block_breadcrumbs(array $context, array $blocks = []): iterable
  254. {
  255. $macros = $this->macros;
  256. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  257. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "breadcrumbs"));
  258. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  259. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "breadcrumbs"));
  260. // line 65
  261. yield " ";
  262. yield from $this->load("front/layout/breadcrumbs.html.twig", 65)->unwrap()->yield(CoreExtension::merge($context, ["product" => (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 65, $this->source); })())]));
  263. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  264. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  265. yield from [];
  266. }
  267. // line 68
  268. /**
  269. * @return iterable<null|scalar|\Stringable>
  270. */
  271. public function block_content(array $context, array $blocks = []): iterable
  272. {
  273. $macros = $this->macros;
  274. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  275. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  276. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  277. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  278. // line 69
  279. yield "
  280. ";
  281. // line 70
  282. yield from $this->load("front/layout/messages.html.twig", 70)->unwrap()->yield($context);
  283. // line 71
  284. yield "
  285. <div class=\"product-view\">
  286. <div class=\"ctn\">
  287. ";
  288. // line 74
  289. yield from $this->load("front/catalog/product/view/infos.html.twig", 74)->unwrap()->yield(CoreExtension::merge($context, ["discounts" => (isset($context["discountsList"]) || array_key_exists("discountsList", $context) ? $context["discountsList"] : (function () { throw new RuntimeError('Variable "discountsList" does not exist.', 74, $this->source); })())]));
  290. // line 75
  291. yield " </div>
  292. <div class=\"ctn\">
  293. ";
  294. // line 77
  295. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" does not exist.', 77, $this->source); })()), "description", [], "any", false, false, false, 77)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  296. // line 78
  297. yield " <div class=\"tab-content rte section\" id=\"description\">
  298. <div class=\"title-ctn\">
  299. <div class=\"title\">";
  300. // line 80
  301. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Description détaillée", [], "messages");
  302. yield "</div>
  303. </div>
  304. ";
  305. // line 82
  306. yield CoreExtension::getAttribute($this->env, $this->source, (isset($context["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" does not exist.', 82, $this->source); })()), "description", [], "any", false, false, false, 82);
  307. yield "
  308. </div>
  309. ";
  310. }
  311. // line 85
  312. yield " ";
  313. 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.', 85, $this->source); })()), "notice", [], "any", false, false, false, 85)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  314. // line 86
  315. yield " <div class=\"tab-content rte section\" id=\"notice\">
  316. <div class=\"title-ctn\">
  317. <div class=\"title\">";
  318. // line 88
  319. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Notice", [], "messages");
  320. yield "</div>
  321. </div>
  322. <p class=\"notice\"><a href=\"";
  323. // line 90
  324. 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.', 90, $this->source); })()), "noticeUrl", [], "any", false, false, false, 90), "html", null, true);
  325. yield "\" target=\"_blank\">";
  326. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Télécharger la notice d\x27utilisation", [], "messages");
  327. yield "</a></p>
  328. </div>
  329. ";
  330. }
  331. // line 93
  332. yield " ";
  333. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" does not exist.', 93, $this->source); })()), "conseil1", [], "any", false, false, false, 93)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  334. // line 94
  335. yield " <div class=\"section rte advices\">
  336. <div class=\"title-ctn\">
  337. <div class=\"title\">";
  338. // line 96
  339. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Conseils et astuces", [], "messages");
  340. yield "</div>
  341. </div>
  342. ";
  343. // line 98
  344. yield CoreExtension::getAttribute($this->env, $this->source, (isset($context["productDescription"]) || array_key_exists("productDescription", $context) ? $context["productDescription"] : (function () { throw new RuntimeError('Variable "productDescription" does not exist.', 98, $this->source); })()), "conseil1", [], "any", false, false, false, 98);
  345. yield "
  346. </div>
  347. ";
  348. }
  349. // line 101
  350. yield " ";
  351. 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.', 101, $this->source); })()), "video", [], "any", false, false, false, 101)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  352. // line 102
  353. yield " <div class=\"tab-content rte section\" id=\"video\">
  354. <div class=\"title-ctn\">
  355. <div class=\"title\">";
  356. // line 104
  357. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Vid&Eacute;o", [], "messages");
  358. yield "</div>
  359. <hr>
  360. </div>
  361. <div class=\"video-ctn\">
  362. ";
  363. // line 108
  364. 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.', 108, $this->source); })()), "video", [], "any", false, false, false, 108);
  365. yield "
  366. </div>
  367. </div>
  368. ";
  369. }
  370. // line 112
  371. yield " ";
  372. yield from $this->load("front/catalog/product/view/caracteristics.html.twig", 112)->unwrap()->yield($context);
  373. // line 113
  374. yield " </div>
  375. ";
  376. // line 114
  377. if ((($tmp = (isset($context["associates"]) || array_key_exists("associates", $context) ? $context["associates"] : (function () { throw new RuntimeError('Variable "associates" does not exist.', 114, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  378. // line 115
  379. yield " ";
  380. yield from $this->load("front/catalog/product/carousel.html.twig", 115)->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.', 115, $this->source); })()), "title" => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Produits associés"), "withWrapper" => true]));
  381. // line 116
  382. yield " ";
  383. }
  384. // line 117
  385. yield " <div class=\"ctn\" style=\"padding: 30px 0;\">
  386. ";
  387. // line 118
  388. if ((($tmp = (isset($context["inCategory"]) || array_key_exists("inCategory", $context) ? $context["inCategory"] : (function () { throw new RuntimeError('Variable "inCategory" does not exist.', 118, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  389. // line 119
  390. yield " ";
  391. yield from $this->load("front/catalog/product/carousel.html.twig", 119)->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.', 119, $this->source); })()), "title" => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Dans la même catégorie"), "withWrapper" => false]));
  392. // line 120
  393. yield " ";
  394. }
  395. // line 121
  396. yield " </div>
  397. ";
  398. // line 122
  399. 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 124
  400. (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 124, $this->source); })()), "request", [], "any", false, false, false, 124)]));
  401. // line 125
  402. yield "
  403. <div class=\"ctn\">
  404. ";
  405. // line 127
  406. if ((($tmp = (isset($context["pathTags"]) || array_key_exists("pathTags", $context) ? $context["pathTags"] : (function () { throw new RuntimeError('Variable "pathTags" does not exist.', 127, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  407. // line 128
  408. yield " <div class=\"section rte tags\">
  409. <div class=\"title-ctn\">
  410. <div class=\"title\">";
  411. // line 130
  412. yield $this->env->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->trans("Craquez aussi pour...", [], "messages");
  413. yield "</div>
  414. </div>
  415. ";
  416. // line 132
  417. yield (isset($context["pathTags"]) || array_key_exists("pathTags", $context) ? $context["pathTags"] : (function () { throw new RuntimeError('Variable "pathTags" does not exist.', 132, $this->source); })());
  418. yield "
  419. </div>
  420. ";
  421. }
  422. // line 135
  423. yield " </div>
  424. ";
  425. // line 146
  426. yield " </div>
  427. ";
  428. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  429. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  430. yield from [];
  431. }
  432. // line 149
  433. /**
  434. * @return iterable<null|scalar|\Stringable>
  435. */
  436. public function block_javascripts(array $context, array $blocks = []): iterable
  437. {
  438. $macros = $this->macros;
  439. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  440. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascripts"));
  441. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  442. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascripts"));
  443. // line 150
  444. yield " <script src=\"";
  445. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("js/product.js"), "html", null, true);
  446. yield "\"></script>
  447. <script>
  448. \$(document).ready(function(){
  449. ";
  450. // line 154
  451. yield " product.init();
  452. });
  453. </script>
  454. ";
  455. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  456. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  457. yield from [];
  458. }
  459. /**
  460. * @codeCoverageIgnore
  461. */
  462. public function getTemplateName(): string
  463. {
  464. return "front/catalog/product/view.html.twig";
  465. }
  466. /**
  467. * @codeCoverageIgnore
  468. */
  469. public function isTraitable(): bool
  470. {
  471. return false;
  472. }
  473. /**
  474. * @codeCoverageIgnore
  475. */
  476. public function getDebugInfo(): array
  477. {
  478. return array ( 509 => 154, 502 => 150, 489 => 149, 477 => 146, 474 => 135, 468 => 132, 463 => 130, 459 => 128, 457 => 127, 453 => 125, 451 => 124, 450 => 122, 447 => 121, 444 => 120, 441 => 119, 439 => 118, 436 => 117, 433 => 116, 430 => 115, 428 => 114, 425 => 113, 422 => 112, 415 => 108, 408 => 104, 404 => 102, 401 => 101, 395 => 98, 390 => 96, 386 => 94, 383 => 93, 375 => 90, 370 => 88, 366 => 86, 363 => 85, 357 => 82, 352 => 80, 348 => 78, 346 => 77, 342 => 75, 340 => 74, 335 => 71, 333 => 70, 330 => 69, 317 => 68, 305 => 65, 292 => 64, 270 => 62, 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,);
  479. }
  480. public function getSourceContext(): Source
  481. {
  482. return new Source("{% extends \x27front/front.html.twig\x27 %}
  483. {% block bodyClass %}product{% endblock %}
  484. {% block metas %}
  485. <title>{{ productDescription.headTitleTag ? productDescription.headTitleTag : productDescription.name }}</title>
  486. <meta name=\"description\" content=\"{{ productDescription.headDescTag ? productDescription.headDescTag : productDescription.description|metadescription }}\">
  487. <link rel=\"canonical\" href=\"{{ url(\x27product\x27,{id:product.id, url:productDescription.url}) }}\" />
  488. {% endblock %}
  489. {% block structuredData %}
  490. {% set cpt = 1 %}
  491. <script type=\"application/ld+json\">
  492. {
  493. \"@context\": \"https://schema.org\",
  494. \"@type\": \"BreadcrumbList\",
  495. \"itemListElement\":
  496. [
  497. {
  498. \"@type\": \"ListItem\",
  499. \"position\": {{ cpt }},
  500. \"item\":
  501. {
  502. \"@id\": \"{{ url(\x27index\x27) }}\",
  503. \"name\": \"{% trans %}Vivog | Matériel pour les toiletteurs et éleveurs{% endtrans %}\"
  504. }
  505. },
  506. {% for p in path %}
  507. {% set cpt = cpt + 1 %}
  508. {
  509. \"@type\": \"ListItem\",
  510. \"position\": {{ cpt }},
  511. \"item\":
  512. {
  513. {% if loop.index == 1 %}
  514. \"@id\": \"{{ url(\x27universe\x27,{url:p.url,id:p.id}) }}\",
  515. {% else %}
  516. \"@id\": \"{{ url(\x27category\x27,{url:p.url,id:p.id}) }}\",
  517. {% endif %}
  518. \"name\": \"{{ p.name }}\"
  519. }
  520. },
  521. {% endfor %}
  522. {% set cpt = cpt + 1 %}
  523. {
  524. \"@type\": \"ListItem\",
  525. \"position\": {{ cpt }},
  526. \"item\":
  527. {
  528. \"@id\": \"{{ url(\x27product\x27,{url:product.url,id:product.id}) }}\",
  529. \"name\": \"{{ product.name }}\"
  530. }
  531. }
  532. ]
  533. }
  534. </script>
  535. <style>
  536. .caracteristics table td{ min-width: 300px;padding: 5px 20px 5px 0; }
  537. </style>
  538. {% endblock %}
  539. {% block featured %}{% endblock %}
  540. {% block breadcrumbs %}
  541. {% include \x27front/layout/breadcrumbs.html.twig\x27 with {product:product} %}
  542. {% endblock %}
  543. {% block content %}
  544. {% include \x27front/layout/messages.html.twig\x27 %}
  545. <div class=\"product-view\">
  546. <div class=\"ctn\">
  547. {% include \x27front/catalog/product/view/infos.html.twig\x27 with {discounts:discountsList} %}
  548. </div>
  549. <div class=\"ctn\">
  550. {% if productDescription.description %}
  551. <div class=\"tab-content rte section\" id=\"description\">
  552. <div class=\"title-ctn\">
  553. <div class=\"title\">{% trans %}Description détaillée{% endtrans %}</div>
  554. </div>
  555. {{ productDescription.description|raw }}
  556. </div>
  557. {% endif %}
  558. {% if product.notice %}
  559. <div class=\"tab-content rte section\" id=\"notice\">
  560. <div class=\"title-ctn\">
  561. <div class=\"title\">{% trans %}Notice{% endtrans %}</div>
  562. </div>
  563. <p class=\"notice\"><a href=\"{{ product.noticeUrl }}\" target=\"_blank\">{% trans %}Télécharger la notice d\x27utilisation{% endtrans %}</a></p>
  564. </div>
  565. {% endif %}
  566. {% if productDescription.conseil1 %}
  567. <div class=\"section rte advices\">
  568. <div class=\"title-ctn\">
  569. <div class=\"title\">{% trans %}Conseils et astuces{% endtrans %}</div>
  570. </div>
  571. {{ productDescription.conseil1|raw }}
  572. </div>
  573. {% endif %}
  574. {% if product.video %}
  575. <div class=\"tab-content rte section\" id=\"video\">
  576. <div class=\"title-ctn\">
  577. <div class=\"title\">{% trans %}Vid&Eacute;o{% endtrans %}</div>
  578. <hr>
  579. </div>
  580. <div class=\"video-ctn\">
  581. {{ product.video|raw }}
  582. </div>
  583. </div>
  584. {% endif %}
  585. {% include \x27front/catalog/product/view/caracteristics.html.twig\x27 %}
  586. </div>
  587. {% if associates %}
  588. {% include \x27front/catalog/product/carousel.html.twig\x27 with {products:associates, title:\x27Produits associés\x27|trans, withWrapper:true} %}
  589. {% endif %}
  590. <div class=\"ctn\" style=\"padding: 30px 0;\">
  591. {% if inCategory %}
  592. {% include \x27front/catalog/product/carousel.html.twig\x27 with {products:inCategory, title:\x27Dans la même catégorie\x27|trans, withWrapper:false} %}
  593. {% endif %}
  594. </div>
  595. {{ render(controller(
  596. \x27App\\\\Controller\\\\Front\\\\Modules\\\\SeenProductsController::block\x27,
  597. { \x27request\x27: app.request }
  598. )) }}
  599. <div class=\"ctn\">
  600. {% if pathTags %}
  601. <div class=\"section rte tags\">
  602. <div class=\"title-ctn\">
  603. <div class=\"title\">{% trans %}Craquez aussi pour...{% endtrans %}</div>
  604. </div>
  605. {{ pathTags|raw }}
  606. </div>
  607. {% endif %}
  608. </div>
  609. {# <div class=\"ctn\">
  610. <div class=\"section tags module-categories\">
  611. <div class=\"title-ctn\">
  612. <div class=\"title\">{% trans %}No catégories{% endtrans %}</div>
  613. </div>
  614. <div class=\"content\">
  615. {{ pathTags|raw }}
  616. </div>
  617. </div>
  618. </div>#}
  619. </div>
  620. {% endblock %}
  621. {% block javascripts %}
  622. <script src=\"{{ asset(\x27js/product.js\x27) }}\"></script>
  623. <script>
  624. \$(document).ready(function(){
  625. {# tabs.init();#}
  626. product.init();
  627. });
  628. </script>
  629. {% endblock %}", "front/catalog/product/view.html.twig", "/var/www/dogcat.com/pim/templates/front/catalog/product/view.html.twig");
  630. }
  631. }