var/cache/dev/twig/1b/1b2630ae56496550dd484ac7112193c2.php line 49

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