var/cache/dev/twig/8e/8ede3bd677c04cb4d437fc0e5713964c.php line 277

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* frontView/product/show.html.twig */
  14. class __TwigTemplate_617131562bca3b8cf28135156a69bc65 extends Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source = $this->getSourceContext();
  22.         $this->blocks = [
  23.             'javascripts' => [$this, 'block_javascripts'],
  24.             'stylesheets' => [$this, 'block_stylesheets'],
  25.             'title' => [$this, 'block_title'],
  26.             'body' => [$this, 'block_body'],
  27.         ];
  28.     }
  29.     protected function doGetParent(array $context)
  30.     {
  31.         // line 1
  32.         return "base.html.twig";
  33.     }
  34.     protected function doDisplay(array $context, array $blocks = [])
  35.     {
  36.         $macros = $this->macros;
  37.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  38.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "frontView/product/show.html.twig"));
  39.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  40.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "frontView/product/show.html.twig"));
  41.         $this->parent = $this->loadTemplate("base.html.twig", "frontView/product/show.html.twig", 1);
  42.         $this->parent->display($context, array_merge($this->blocks, $blocks));
  43.         
  44.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  45.         
  46.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  47.     }
  48.     // line 2
  49.     public function block_javascripts($context, array $blocks = [])
  50.     {
  51.         $macros = $this->macros;
  52.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  53.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascripts"));
  54.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  55.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascripts"));
  56.         // line 3
  57.         echo "\t";
  58.         echo $this->extensions['Symfony\WebpackEncoreBundle\Twig\EntryFilesTwigExtension']->renderWebpackScriptTags("UtilityPhotoProductJs");
  59.         echo "
  60.  ";
  61.         
  62.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  63.         
  64.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  65.     }
  66.     // line 6
  67.     public function block_stylesheets($context, array $blocks = [])
  68.     {
  69.         $macros = $this->macros;
  70.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  71.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheets"));
  72.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  73.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheets"));
  74.         // line 7
  75.         echo "\t";
  76.         $this->displayParentBlock("stylesheets", $context, $blocks);
  77.         echo "
  78. \t<style>
  79. \t\t.product-specs-table {
  80. \t\t\t--specs-border: #e1e8f0;
  81. \t\t\t--specs-label: #1c2f49;
  82. \t\t\t--specs-value: #718096;
  83. \t\t\tborder: 1px solid var(--specs-border);
  84. \t\t\tborder-radius: 0.75rem;
  85. \t\t\toverflow: hidden;
  86. \t\t\tborder-collapse: separate;
  87. \t\t\tborder-spacing: 0;
  88. \t\t\tbackground: #fff;
  89. \t\t}
  90. \t\t.product-specs-table thead th {
  91. \t\t\tpadding: 1rem 1.25rem;
  92. \t\t\tborder: 0;
  93. \t\t\tbackground: #063f80;
  94. \t\t\tcolor: #fff;
  95. \t\t\tfont-size: 1.05rem;
  96. \t\t\ttext-align: center;
  97. \t\t}
  98. \t\t.product-specs-table tbody th,
  99. \t\t.product-specs-table tbody td {
  100. \t\t\tpadding: 0.9rem 1.25rem;
  101. \t\t\tborder-top: 1px solid var(--specs-border);
  102. \t\t\tvertical-align: middle;
  103. \t\t}
  104. \t\t.product-specs-table tbody th {
  105. \t\t\twidth: 34%;
  106. \t\t\tcolor: var(--specs-label);
  107. \t\t\tfont-weight: 700;
  108. \t\t}
  109. \t\t.product-specs-table tbody td {
  110. \t\t\tcolor: var(--specs-value);
  111. \t\t}
  112. \t\t.product-specs-table tbody tr:nth-child(odd) {
  113. \t\t\tbackground: #f8fafc;
  114. \t\t}
  115. \t\t.product-specs-table .product-type-badges {
  116. \t\t\tdisplay: flex;
  117. \t\t\tflex-wrap: wrap;
  118. \t\t\tgap: 0.5rem;
  119. \t\t}
  120. \t\t.product-specs-table .product-type-badges .badge {
  121. \t\t\tpadding: 0.55rem 0.8rem;
  122. \t\t\tborder: 1px solid #d5e3f2;
  123. \t\t\tborder-radius: 999px;
  124. \t\t\tbackground: #edf6ff !important;
  125. \t\t\tcolor: #064589 !important;
  126. \t\t\tfont-weight: 600;
  127. \t\t}
  128. \t\t.product-detail-actions {
  129. \t\t\tdisplay: flex;
  130. \t\t\tflex-wrap: wrap;
  131. \t\t\tgap: 0.65rem;
  132. \t\t\tmargin-top: 1.25rem;
  133. \t\t}
  134. \t\t.product-detail-actions .button-contact {
  135. \t\t\tmargin-bottom: 0 !important;
  136. \t\t}
  137. \t\t@media (max-width: 576px) {
  138. \t\t\t.product-specs-table tbody th,
  139. \t\t\t.product-specs-table tbody td {
  140. \t\t\t\tpadding: 0.75rem;
  141. \t\t\t}
  142. \t\t\t.product-detail-actions .button-contact {
  143. \t\t\t\twidth: 100%;
  144. \t\t\t}
  145. \t\t}
  146. \t</style>
  147. ";
  148.         
  149.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  150.         
  151.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  152.     }
  153.     // line 90
  154.     public function block_title($context, array $blocks = [])
  155.     {
  156.         $macros = $this->macros;
  157.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  158.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "title"));
  159.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  160.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "title"));
  161.         echo "Produits";
  162.         
  163.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  164.         
  165.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  166.     }
  167.     // line 92
  168.     public function block_body($context, array $blocks = [])
  169.     {
  170.         $macros = $this->macros;
  171.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  172.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "body"));
  173.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  174.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "body"));
  175.         // line 93
  176.         echo "<header>
  177. ";
  178.         // line 94
  179.         echo twig_include($this->env, $context, "@FrontView/menus.html.twig");
  180.         echo "
  181. </header>
  182. <main class=\"front-office-page front-office-detail\">
  183. \t<div class=\"container\">
  184. \t\t<div class=\"row py-2\">
  185. \t\t\t<!-- Modal image show -->
  186. \t\t\t<div class=\"modal fade\" id=\"listsmodalphoto\" tabindex=\"-1\" aria-labelledby=\"exampleModalLabel\" aria-hidden=\"true\">
  187. \t\t\t  <div class=\"modal-dialog modal-dialog-centered\">
  188. \t\t\t\t<div class=\"modal-content\">
  189. \t\t\t\t\t<img class=\"imgproduct\" id=\"imgprincipalhide\" src=\"";
  190.         // line 103
  191.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(("uploads/products/" . twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 103, $this->source); })()), "picture", [], "any", false, false, false, 103))), "html", null, true);
  192.         echo "\">
  193. \t\t\t\t</div>
  194. \t\t\t  </div>
  195. \t\t\t</div>
  196. \t\t\t<div class=\"col-md-2\">
  197. \t\t\t\t";
  198.         // line 108
  199.         echo twig_include($this->env, $context, "@FrontView/menusgeneral.html.twig");
  200.         echo "
  201. \t\t\t</div>
  202. \t\t\t<div class=\"col-md-10\">
  203. \t\t\t\t\t<div class=\"album bg-custom-product py-4 border product-detail-shell\">
  204. \t\t\t\t\t<div class=\"row mb-2 px-4\">
  205. \t\t\t\t\t\t<div class=\"modal fade\" id=\"listsmodalphoto\" tabindex=\"-1\" aria-labelledby=\"exampleModalLabel\" aria-hidden=\"true\">
  206. \t\t\t\t\t\t  <div class=\"modal-dialog modal-dialog-centered\">
  207. \t\t\t\t\t\t\t<div class=\"modal-content\">
  208. \t\t\t\t\t\t\t\t<img class=\"imgproduct\" id=\"imgprincipalhide\" src=\"#\" alt=\"test-image\">
  209. \t\t\t\t\t\t\t</div>
  210. \t\t\t\t\t\t  </div>
  211. \t\t\t\t\t\t</div>
  212. \t\t\t\t\t\t
  213. \t\t\t\t\t\t<div class=\"col-md-5\">
  214. \t\t\t\t\t\t\t<input type=\"hidden\" id=\"product_id\" value=\"";
  215.         // line 122
  216.         echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 122, $this->source); })()), "id", [], "any", false, false, false, 122), "html", null, true);
  217.         echo "\" />
  218. \t\t\t\t\t\t\t<img  class=\"imgproduct\" id=\"imgprincipal\" src=\"";
  219.         // line 123
  220.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(("uploads/products/" . twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 123, $this->source); })()), "picture", [], "any", false, false, false, 123))), "html", null, true);
  221.         echo "\" >
  222. \t\t\t\t\t\t\t<div id=\"listimgproduct\">
  223. \t\t\t\t\t\t\t\t<div class=\"row\" >
  224. \t\t\t\t\t\t\t\t\t<div class=\"col-md-3 col-6 mt-1\">
  225. \t\t\t\t\t\t\t\t\t\t\t<img class=\"imgproduct\" id=\"nano4\" src=\"";
  226.         // line 127
  227.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(("uploads/products/" . twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 127, $this->source); })()), "picture", [], "any", false, false, false, 127))), "html", null, true);
  228.         echo "\">
  229. \t\t\t\t\t\t\t\t\t</div>
  230. \t\t\t\t\t\t\t\t\t
  231. \t\t\t\t\t\t\t\t\t";
  232.         // line 130
  233.         $context["idimgs"] = 0;
  234.         // line 131
  235.         echo "\t\t\t\t\t\t\t\t\t";
  236.         $context['_parent'] = $context;
  237.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 131, $this->source); })()), "linkspicturesArrays", [], "any", false, false, false, 131));
  238.         foreach ($context['_seq'] as $context["_key"] => $context["file"]) {
  239.             // line 132
  240.             echo "\t\t\t\t\t\t\t\t\t\t<div class=\"col-md-3  col-6 mt-1\">
  241. \t\t\t\t\t\t\t\t\t\t\t<img class=\"imgproduct\" id=\"img-";
  242.             // line 133
  243.             echo twig_escape_filter($this->env, (isset($context["idimgs"]) || array_key_exists("idimgs", $context) ? $context["idimgs"] : (function () { throw new RuntimeError('Variable "idimgs" does not exist.', 133, $this->source); })()), "html", null, true);
  244.             echo "\" src=\"";
  245.             echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(("uploads/products/" . $context["file"])), "html", null, true);
  246.             echo "\">
  247. \t\t\t\t\t\t\t\t\t\t</div>
  248. \t\t\t\t\t\t\t\t\t\t";
  249.             // line 135
  250.             $context["idimgs"] = ((isset($context["idimgs"]) || array_key_exists("idimgs", $context) ? $context["idimgs"] : (function () { throw new RuntimeError('Variable "idimgs" does not exist.', 135, $this->source); })()) + 1);
  251.             // line 136
  252.             echo "\t\t\t\t\t\t\t\t\t";
  253.         }
  254.         $_parent = $context['_parent'];
  255.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['file'], $context['_parent'], $context['loop']);
  256.         $context = array_intersect_key($context, $_parent) + $_parent;
  257.         echo " 
  258. \t\t\t\t\t\t\t\t</div>
  259. \t\t\t\t\t\t\t</div>
  260. \t\t\t\t\t\t\t<div class=\"card mt-1\">
  261. \t\t\t\t\t\t\t  <div class=\"card-body\">
  262. \t\t\t\t\t\t\t\t
  263. \t\t\t\t\t\t\t\t<h5 class=\"card-title text-center\">Whatsapp</h5>
  264. \t\t\t\t\t\t\t\t<div class=\"row\">
  265. \t\t\t\t\t\t\t\t\t<div class=\"col-md-12\">
  266. \t\t\t\t\t\t\t\t\t\t<div class=\"row\">
  267. \t\t\t\t\t\t\t\t\t\t\t<a href=\"https://wa.me/+261349313463?text=refchambrekiban\" class=\"btn btn-success\"><i class=\"bi bi-telephone-plus-fill\"></i> +261 34 93 134 63</a>
  268. \t\t\t\t\t\t\t\t\t\t</div>
  269. \t\t\t\t\t\t\t\t\t</div>
  270. \t\t\t\t\t\t\t\t</div>
  271. \t\t\t\t\t\t\t  </div>
  272. \t\t\t\t\t\t\t</div>
  273. \t\t\t\t\t\t</div>
  274. \t\t\t\t\t\t<div class=\"col-md-7\">
  275. \t\t\t\t\t\t\t<p> ";
  276.         // line 155
  277.         echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 155, $this->source); })()), "title", [], "any", false, false, false, 155), "html", null, true);
  278.         echo "
  279. \t\t\t\t\t\t\t</p>
  280. \t\t\t\t\t\t\t<div class=\"product-modules-card\">
  281. \t\t\t\t\t\t\t\t<div class=\"product-modules-heading\">
  282. \t\t\t\t\t\t\t\t\t<div><i class=\"fas fa-layer-group me-2\"></i>Modules inclus</div>
  283. \t\t\t\t\t\t\t\t\t<span>";
  284.         // line 160
  285.         echo twig_escape_filter($this->env, twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 160, $this->source); })()), "modulesForDisplay", [], "any", false, false, false, 160)), "html", null, true);
  286.         echo " module";
  287.         echo (((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 160, $this->source); })()), "modulesForDisplay", [], "any", false, false, false, 160)) > 1)) ? ("s") : (""));
  288.         echo "</span>
  289. \t\t\t\t\t\t\t\t</div>
  290. \t\t\t\t\t\t\t\t";
  291.         // line 162
  292.         if ((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 162, $this->source); })()), "modulesForDisplay", [], "any", false, false, false, 162)) > 0)) {
  293.             // line 163
  294.             echo "\t\t\t\t\t\t\t\t\t<div class=\"modules-table-scroll\">
  295. \t\t\t\t\t\t\t\t\t\t<table class=\"table product-modules-table mb-0\">
  296. \t\t\t\t\t\t\t\t\t\t\t<thead><tr><th>#</th><th>Module</th></tr></thead>
  297. \t\t\t\t\t\t\t\t\t\t\t<tbody>
  298. \t\t\t\t\t\t\t\t\t\t\t";
  299.             // line 167
  300.             $context['_parent'] = $context;
  301.             $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 167, $this->source); })()), "modulesForDisplay", [], "any", false, false, false, 167));
  302.             $context['loop'] = [
  303.               'parent' => $context['_parent'],
  304.               'index0' => 0,
  305.               'index'  => 1,
  306.               'first'  => true,
  307.             ];
  308.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  309.                 $length = count($context['_seq']);
  310.                 $context['loop']['revindex0'] = $length - 1;
  311.                 $context['loop']['revindex'] = $length;
  312.                 $context['loop']['length'] = $length;
  313.                 $context['loop']['last'] = 1 === $length;
  314.             }
  315.             foreach ($context['_seq'] as $context["_key"] => $context["module"]) {
  316.                 // line 168
  317.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>";
  318.                 echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 168), "html", null, true);
  319.                 echo "</td><td>";
  320.                 echo twig_escape_filter($this->env, $context["module"], "html", null, true);
  321.                 echo "</td></tr>
  322. \t\t\t\t\t\t\t\t\t\t\t";
  323.                 ++$context['loop']['index0'];
  324.                 ++$context['loop']['index'];
  325.                 $context['loop']['first'] = false;
  326.                 if (isset($context['loop']['length'])) {
  327.                     --$context['loop']['revindex0'];
  328.                     --$context['loop']['revindex'];
  329.                     $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  330.                 }
  331.             }
  332.             $_parent = $context['_parent'];
  333.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['module'], $context['_parent'], $context['loop']);
  334.             $context = array_intersect_key($context, $_parent) + $_parent;
  335.             // line 170
  336.             echo "\t\t\t\t\t\t\t\t\t\t\t</tbody>
  337. \t\t\t\t\t\t\t\t\t\t</table>
  338. \t\t\t\t\t\t\t\t\t</div>
  339. \t\t\t\t\t\t\t\t";
  340.         } else {
  341.             // line 174
  342.             echo "\t\t\t\t\t\t\t\t\t<div class=\"product-modules-empty\"><i class=\"fas fa-inbox\"></i><span>Aucun module renseigné pour ce produit.</span></div>
  343. \t\t\t\t\t\t\t\t";
  344.         }
  345.         // line 176
  346.         echo "\t\t\t\t\t\t\t</div>
  347. \t\t\t\t\t\t\t<hr class=\"border-2\">
  348. \t\t\t\t\t\t\t<table class=\"table product-specs-table mb-0\">
  349. \t\t\t\t\t\t\t\t<thead>
  350. \t\t\t\t\t\t\t\t\t<tr>
  351. \t\t\t\t\t\t\t\t\t  <th class=\"text-center\" scope=\"col\" colspan=2>Fiche Produit</th>
  352. \t\t\t\t\t\t\t\t\t</tr>
  353. \t\t\t\t\t\t\t\t</thead>
  354. \t\t\t\t\t\t\t\t<tbody>
  355. \t\t\t\t\t\t\t\t\t<tr>
  356. \t\t\t\t\t\t\t\t\t  <th scope=\"row\">Catégorie</th>
  357. \t\t\t\t\t\t\t\t\t  <td><div class=\"row\">";
  358.         // line 187
  359.         echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 187, $this->source); })()), "fkcategorie", [], "any", false, false, false, 187), "title", [], "any", false, false, false, 187), "html", null, true);
  360.         echo "</div></td>
  361. \t\t\t\t\t\t\t\t\t</tr>
  362. \t\t\t\t\t\t\t\t\t<tr class=\"d-none\">
  363. \t\t\t\t\t\t\t\t\t  <th scope=\"row\">À partir de</th>
  364. \t\t\t\t\t\t\t\t\t  ";
  365.         // line 201
  366.         echo "\t\t\t\t\t\t\t\t\t  \t";
  367.         $context["price"] = twig_first($this->env, twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 201, $this->source); })()), "priceProducts", [], "any", false, false, false, 201));
  368.         // line 202
  369.         echo "\t\t\t\t\t\t\t\t\t\t<td>
  370. \t\t\t\t\t\t\t\t\t\t";
  371.         // line 203
  372.         if ((isset($context["price"]) || array_key_exists("price", $context) ? $context["price"] : (function () { throw new RuntimeError('Variable "price" does not exist.', 203, $this->source); })())) {
  373.             // line 204
  374.             echo "
  375. \t\t\t\t\t\t\t\t\t\t\t";
  376.             // line 205
  377.             if ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_COM")) {
  378.                 // line 206
  379.                 echo "                                                ";
  380.                 $context["normalPrice"] = twig_get_attribute($this->env, $this->source, (isset($context["price"]) || array_key_exists("price", $context) ? $context["price"] : (function () { throw new RuntimeError('Variable "price" does not exist.', 206, $this->source); })()), "priceCustomer", [], "any", false, false, false, 206);
  381.                 // line 207
  382.                 echo "                                                ";
  383.                 $context["promoPrice"] = twig_get_attribute($this->env, $this->source, (isset($context["price"]) || array_key_exists("price", $context) ? $context["price"] : (function () { throw new RuntimeError('Variable "price" does not exist.', 207, $this->source); })()), "promoPriceCustomer", [], "any", false, false, false, 207);
  384.                 // line 208
  385.                 echo "                                                ";
  386.                 $context["minQty"] = null;
  387.                 // line 209
  388.                 echo "
  389. \t\t\t\t\t\t\t\t\t\t\t";
  390.             } elseif ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_CUSTOMER")) {
  391.                 // line 211
  392.                 echo "                                                ";
  393.                 $context["normalPrice"] = twig_get_attribute($this->env, $this->source, (isset($context["price"]) || array_key_exists("price", $context) ? $context["price"] : (function () { throw new RuntimeError('Variable "price" does not exist.', 211, $this->source); })()), "priceCustomer", [], "any", false, false, false, 211);
  394.                 // line 212
  395.                 echo "                                                ";
  396.                 $context["promoPrice"] = twig_get_attribute($this->env, $this->source, (isset($context["price"]) || array_key_exists("price", $context) ? $context["price"] : (function () { throw new RuntimeError('Variable "price" does not exist.', 212, $this->source); })()), "promoPriceCustomer", [], "any", false, false, false, 212);
  397.                 // line 213
  398.                 echo "                                                ";
  399.                 $context["minQty"] = null;
  400.                 // line 214
  401.                 echo "
  402. \t\t\t\t\t\t\t\t\t\t\t";
  403.             } else {
  404.                 // line 216
  405.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t";
  406.                 $context["normalPrice"] = twig_get_attribute($this->env, $this->source, (isset($context["price"]) || array_key_exists("price", $context) ? $context["price"] : (function () { throw new RuntimeError('Variable "price" does not exist.', 216, $this->source); })()), "priceCustomer", [], "any", false, false, false, 216);
  407.                 // line 217
  408.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t";
  409.                 $context["promoPrice"] = twig_get_attribute($this->env, $this->source, (isset($context["price"]) || array_key_exists("price", $context) ? $context["price"] : (function () { throw new RuntimeError('Variable "price" does not exist.', 217, $this->source); })()), "promoPriceCustomer", [], "any", false, false, false, 217);
  410.                 // line 218
  411.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t";
  412.                 $context["minQty"] = null;
  413.                 // line 219
  414.                 echo "\t\t\t\t\t\t\t\t\t\t\t";
  415.             }
  416.             // line 220
  417.             echo "
  418. \t\t\t\t\t\t\t\t\t\t\t";
  419.             // line 221
  420.             if ((twig_get_attribute($this->env, $this->source, (isset($context["price"]) || array_key_exists("price", $context) ? $context["price"] : (function () { throw new RuntimeError('Variable "price" does not exist.', 221, $this->source); })()), "isPromotionValid", [], "any", false, false, false, 221) && (isset($context["promoPrice"]) || array_key_exists("promoPrice", $context) ? $context["promoPrice"] : (function () { throw new RuntimeError('Variable "promoPrice" does not exist.', 221, $this->source); })()))) {
  421.                 // line 222
  422.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price text-muted\" style=\"text-decoration: line-through;\">
  423. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  424.                 // line 223
  425.                 echo twig_escape_filter($this->env, twig_number_format_filter($this->env, (isset($context["normalPrice"]) || array_key_exists("normalPrice", $context) ? $context["normalPrice"] : (function () { throw new RuntimeError('Variable "normalPrice" does not exist.', 223, $this->source); })()), 2, ".", " "), "html", null, true);
  426.                 echo "
  427. \t\t\t\t\t\t\t\t\t\t\t\t</span>
  428. \t\t\t\t\t\t\t\t\t\t\t\t<br>
  429. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price text-danger fw-bold\">
  430. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  431.                 // line 227
  432.                 echo twig_escape_filter($this->env, twig_number_format_filter($this->env, (isset($context["promoPrice"]) || array_key_exists("promoPrice", $context) ? $context["promoPrice"] : (function () { throw new RuntimeError('Variable "promoPrice" does not exist.', 227, $this->source); })()), 2, ".", " "), "html", null, true);
  433.                 echo "
  434. \t\t\t\t\t\t\t\t\t\t\t\t</span>
  435. \t\t\t\t\t\t\t\t\t\t\t";
  436.             } else {
  437.                 // line 230
  438.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price\">
  439. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  440.                 // line 231
  441.                 echo twig_escape_filter($this->env, twig_number_format_filter($this->env, (isset($context["normalPrice"]) || array_key_exists("normalPrice", $context) ? $context["normalPrice"] : (function () { throw new RuntimeError('Variable "normalPrice" does not exist.', 231, $this->source); })()), 2, ".", " "), "html", null, true);
  442.                 echo "
  443. \t\t\t\t\t\t\t\t\t\t\t\t</span>
  444. \t\t\t\t\t\t\t\t\t\t\t";
  445.             }
  446.             // line 234
  447.             echo "
  448. \t\t\t\t\t\t\t\t\t\t\t";
  449.             // line 235
  450.             echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 235, $this->source); })()), "fkdevise", [], "any", false, false, false, 235), "title", [], "any", false, false, false, 235), "html", null, true);
  451.             echo "
  452. \t\t\t\t\t\t\t\t\t\t\t";
  453.             // line 237
  454.             if ((isset($context["minQty"]) || array_key_exists("minQty", $context) ? $context["minQty"] : (function () { throw new RuntimeError('Variable "minQty" does not exist.', 237, $this->source); })())) {
  455.                 // line 238
  456.                 echo "\t\t\t\t\t\t\t\t\t\t\t\t<br>
  457. \t\t\t\t\t\t\t\t\t\t\t\t<small class=\"text-muted\">
  458. \t\t\t\t\t\t\t\t\t\t\t\t\t(";
  459.                 // line 240
  460.                 echo twig_escape_filter($this->env, (isset($context["minQty"]) || array_key_exists("minQty", $context) ? $context["minQty"] : (function () { throw new RuntimeError('Variable "minQty" does not exist.', 240, $this->source); })()), "html", null, true);
  461.                 echo ") produit(s) minimum
  462. \t\t\t\t\t\t\t\t\t\t\t\t</small>
  463. \t\t\t\t\t\t\t\t\t\t\t";
  464.             }
  465.             // line 243
  466.             echo "
  467. \t\t\t\t\t\t\t\t\t\t";
  468.         }
  469.         // line 245
  470.         echo "\t\t\t\t\t\t\t\t\t\t</td>
  471. \t\t\t\t\t\t\t\t\t  <tr>
  472.                                       <th scope=\"row\">Type</th>
  473. \t\t\t\t\t\t\t\t\t\t";
  474.         // line 258
  475.         echo "
  476.                                         <td><div class=\"product-type-badges\">";
  477.         // line 259
  478.         $context['_parent'] = $context;
  479.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 259, $this->source); })()), "statetypeLabels", [], "any", false, false, false, 259));
  480.         foreach ($context['_seq'] as $context["_key"] => $context["label"]) {
  481.             echo "<span class=\"badge bg-light text-dark\">";
  482.             echo twig_escape_filter($this->env, $context["label"], "html", null, true);
  483.             echo "</span>";
  484.         }
  485.         $_parent = $context['_parent'];
  486.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['label'], $context['_parent'], $context['loop']);
  487.         $context = array_intersect_key($context, $_parent) + $_parent;
  488.         echo "</div></td>
  489. \t\t\t\t\t\t\t\t\t</tr>
  490. \t\t\t\t\t\t\t\t\t <tr>
  491. \t\t\t\t\t\t\t\t\t\t<th scope=\"row\">Disponibilité</th>
  492. \t\t\t\t\t\t\t\t\t\t<td>
  493. \t\t\t\t\t\t\t\t\t\t\t";
  494.         // line 264
  495.         if ((twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 264, $this->source); })()), "stock", [], "any", false, false, false, 264) > 0)) {
  496.             // line 265
  497.             echo "\t\t\t\t\t\t\t\t\t\t\t\tDisponible
  498. \t\t\t\t\t\t\t\t\t\t\t";
  499.         } else {
  500.             // line 267
  501.             echo "\t\t\t\t\t\t\t\t\t\t\t\tDisponible sur commande
  502. \t\t\t\t\t\t\t\t\t\t\t";
  503.         }
  504.         // line 269
  505.         echo "\t\t\t\t\t\t\t\t\t\t\t
  506. \t\t\t\t\t\t\t\t\t\t</td>
  507. \t\t\t\t\t\t\t\t\t</tr>
  508. \t\t\t\t\t\t\t\t\t</tr>
  509. \t\t\t\t\t\t\t\t</tbody>
  510. \t\t\t\t\t\t\t</table>
  511. \t\t\t\t\t\t\t<div class=\"product-detail-actions\">
  512. \t\t\t\t\t\t\t<a href=\"";
  513.         // line 276
  514.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app_contact", ["product_id" => twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 276, $this->source); })()), "id", [], "any", false, false, false, 276)]), "html", null, true);
  515.         echo "\" class=\"btn btn-success button-contact\"><i class=\"fas fa-file-invoice-dollar me-2\" aria-hidden=\"true\"></i>Demander un devis</a>
  516. \t\t\t\t\t\t\t<a href=\"";
  517.         // line 277
  518.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app_demo", ["product_id" => twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 277, $this->source); })()), "id", [], "any", false, false, false, 277)]), "html", null, true);
  519.         echo "\" class=\"btn btn-primary button-contact\"><i class=\"fas fa-desktop me-2\" aria-hidden=\"true\"></i>Demander une démo</a>
  520. \t\t\t\t\t\t\t<a class=\"d-none\" href=\"";
  521.         // line 278
  522.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app_product_panier", ["product" => twig_get_attribute($this->env, $this->source, (isset($context["product"]) || array_key_exists("product", $context) ? $context["product"] : (function () { throw new RuntimeError('Variable "product" does not exist.', 278, $this->source); })()), "id", [], "any", false, false, false, 278)]), "html", null, true);
  523.         echo "\"><button type=\"button\" class=\"btn btn-success button-contact mb-2\"><i class=\"fas fa-cart-plus me-2\" aria-hidden=\"true\"></i>Ajouter au panier</button></a>
  524. \t\t\t\t\t\t\t<a class=\"d-none\" href=\"";
  525.         // line 279
  526.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app_product_list_panier");
  527.         echo "\"><button type=\"button\" class=\"btn btn-success button-contact mb-2\"><i class=\"fas fa-list-check me-2\" aria-hidden=\"true\"></i>Liste de mes commandes</button></a>
  528. \t\t\t\t\t\t\t</div>
  529. \t\t\t\t\t\t</div>
  530. \t\t\t\t\t</div>
  531. \t\t\t\t</div>
  532. \t\t\t</div>
  533. \t\t</div>
  534. \t</div>
  535. </main>
  536. ";
  537.         // line 289
  538.         echo twig_include($this->env, $context, "@FrontView/footer.html.twig");
  539.         echo "
  540. <!-- <script src=\"";
  541.         // line 291
  542.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("build/UtilityProductPoint.js"), "html", null, true);
  543.         echo "\"></script>  -->
  544. ";
  545.         
  546.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  547.         
  548.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  549.     }
  550.     public function getTemplateName()
  551.     {
  552.         return "frontView/product/show.html.twig";
  553.     }
  554.     public function isTraitable()
  555.     {
  556.         return false;
  557.     }
  558.     public function getDebugInfo()
  559.     {
  560.         return array (  586 => 291,  581 => 289,  568 => 279,  564 => 278,  560 => 277,  556 => 276,  547 => 269,  543 => 267,  539 => 265,  537 => 264,  520 => 259,  517 => 258,  512 => 245,  508 => 243,  502 => 240,  498 => 238,  496 => 237,  491 => 235,  488 => 234,  482 => 231,  479 => 230,  473 => 227,  466 => 223,  463 => 222,  461 => 221,  458 => 220,  455 => 219,  452 => 218,  449 => 217,  446 => 216,  442 => 214,  439 => 213,  436 => 212,  433 => 211,  429 => 209,  426 => 208,  423 => 207,  420 => 206,  418 => 205,  415 => 204,  413 => 203,  410 => 202,  407 => 201,  400 => 187,  387 => 176,  383 => 174,  377 => 170,  358 => 168,  341 => 167,  335 => 163,  333 => 162,  326 => 160,  318 => 155,  292 => 136,  290 => 135,  283 => 133,  280 => 132,  275 => 131,  273 => 130,  267 => 127,  260 => 123,  256 => 122,  239 => 108,  231 => 103,  219 => 94,  216 => 93,  206 => 92,  187 => 90,  94 => 7,  84 => 6,  71 => 3,  61 => 2,  38 => 1,);
  561.     }
  562.     public function getSourceContext()
  563.     {
  564.         return new Source("{% extends 'base.html.twig' %}
  565.  {% block javascripts %}
  566. \t{{ encore_entry_script_tags('UtilityPhotoProductJs') }}
  567.  {% endblock %}
  568. {% block stylesheets %}
  569. \t{{ parent() }}
  570. \t<style>
  571. \t\t.product-specs-table {
  572. \t\t\t--specs-border: #e1e8f0;
  573. \t\t\t--specs-label: #1c2f49;
  574. \t\t\t--specs-value: #718096;
  575. \t\t\tborder: 1px solid var(--specs-border);
  576. \t\t\tborder-radius: 0.75rem;
  577. \t\t\toverflow: hidden;
  578. \t\t\tborder-collapse: separate;
  579. \t\t\tborder-spacing: 0;
  580. \t\t\tbackground: #fff;
  581. \t\t}
  582. \t\t.product-specs-table thead th {
  583. \t\t\tpadding: 1rem 1.25rem;
  584. \t\t\tborder: 0;
  585. \t\t\tbackground: #063f80;
  586. \t\t\tcolor: #fff;
  587. \t\t\tfont-size: 1.05rem;
  588. \t\t\ttext-align: center;
  589. \t\t}
  590. \t\t.product-specs-table tbody th,
  591. \t\t.product-specs-table tbody td {
  592. \t\t\tpadding: 0.9rem 1.25rem;
  593. \t\t\tborder-top: 1px solid var(--specs-border);
  594. \t\t\tvertical-align: middle;
  595. \t\t}
  596. \t\t.product-specs-table tbody th {
  597. \t\t\twidth: 34%;
  598. \t\t\tcolor: var(--specs-label);
  599. \t\t\tfont-weight: 700;
  600. \t\t}
  601. \t\t.product-specs-table tbody td {
  602. \t\t\tcolor: var(--specs-value);
  603. \t\t}
  604. \t\t.product-specs-table tbody tr:nth-child(odd) {
  605. \t\t\tbackground: #f8fafc;
  606. \t\t}
  607. \t\t.product-specs-table .product-type-badges {
  608. \t\t\tdisplay: flex;
  609. \t\t\tflex-wrap: wrap;
  610. \t\t\tgap: 0.5rem;
  611. \t\t}
  612. \t\t.product-specs-table .product-type-badges .badge {
  613. \t\t\tpadding: 0.55rem 0.8rem;
  614. \t\t\tborder: 1px solid #d5e3f2;
  615. \t\t\tborder-radius: 999px;
  616. \t\t\tbackground: #edf6ff !important;
  617. \t\t\tcolor: #064589 !important;
  618. \t\t\tfont-weight: 600;
  619. \t\t}
  620. \t\t.product-detail-actions {
  621. \t\t\tdisplay: flex;
  622. \t\t\tflex-wrap: wrap;
  623. \t\t\tgap: 0.65rem;
  624. \t\t\tmargin-top: 1.25rem;
  625. \t\t}
  626. \t\t.product-detail-actions .button-contact {
  627. \t\t\tmargin-bottom: 0 !important;
  628. \t\t}
  629. \t\t@media (max-width: 576px) {
  630. \t\t\t.product-specs-table tbody th,
  631. \t\t\t.product-specs-table tbody td {
  632. \t\t\t\tpadding: 0.75rem;
  633. \t\t\t}
  634. \t\t\t.product-detail-actions .button-contact {
  635. \t\t\t\twidth: 100%;
  636. \t\t\t}
  637. \t\t}
  638. \t</style>
  639. {% endblock %}
  640. {% block title %}Produits{% endblock %}
  641. {% block body %}
  642. <header>
  643. {{ include('@FrontView/menus.html.twig') }}
  644. </header>
  645. <main class=\"front-office-page front-office-detail\">
  646. \t<div class=\"container\">
  647. \t\t<div class=\"row py-2\">
  648. \t\t\t<!-- Modal image show -->
  649. \t\t\t<div class=\"modal fade\" id=\"listsmodalphoto\" tabindex=\"-1\" aria-labelledby=\"exampleModalLabel\" aria-hidden=\"true\">
  650. \t\t\t  <div class=\"modal-dialog modal-dialog-centered\">
  651. \t\t\t\t<div class=\"modal-content\">
  652. \t\t\t\t\t<img class=\"imgproduct\" id=\"imgprincipalhide\" src=\"{{ asset('uploads/products/'~product.picture) }}\">
  653. \t\t\t\t</div>
  654. \t\t\t  </div>
  655. \t\t\t</div>
  656. \t\t\t<div class=\"col-md-2\">
  657. \t\t\t\t{{ include('@FrontView/menusgeneral.html.twig') }}
  658. \t\t\t</div>
  659. \t\t\t<div class=\"col-md-10\">
  660. \t\t\t\t\t<div class=\"album bg-custom-product py-4 border product-detail-shell\">
  661. \t\t\t\t\t<div class=\"row mb-2 px-4\">
  662. \t\t\t\t\t\t<div class=\"modal fade\" id=\"listsmodalphoto\" tabindex=\"-1\" aria-labelledby=\"exampleModalLabel\" aria-hidden=\"true\">
  663. \t\t\t\t\t\t  <div class=\"modal-dialog modal-dialog-centered\">
  664. \t\t\t\t\t\t\t<div class=\"modal-content\">
  665. \t\t\t\t\t\t\t\t<img class=\"imgproduct\" id=\"imgprincipalhide\" src=\"#\" alt=\"test-image\">
  666. \t\t\t\t\t\t\t</div>
  667. \t\t\t\t\t\t  </div>
  668. \t\t\t\t\t\t</div>
  669. \t\t\t\t\t\t
  670. \t\t\t\t\t\t<div class=\"col-md-5\">
  671. \t\t\t\t\t\t\t<input type=\"hidden\" id=\"product_id\" value=\"{{ product.id }}\" />
  672. \t\t\t\t\t\t\t<img  class=\"imgproduct\" id=\"imgprincipal\" src=\"{{ asset('uploads/products/'~product.picture) }}\" >
  673. \t\t\t\t\t\t\t<div id=\"listimgproduct\">
  674. \t\t\t\t\t\t\t\t<div class=\"row\" >
  675. \t\t\t\t\t\t\t\t\t<div class=\"col-md-3 col-6 mt-1\">
  676. \t\t\t\t\t\t\t\t\t\t\t<img class=\"imgproduct\" id=\"nano4\" src=\"{{ asset('uploads/products/'~product.picture) }}\">
  677. \t\t\t\t\t\t\t\t\t</div>
  678. \t\t\t\t\t\t\t\t\t
  679. \t\t\t\t\t\t\t\t\t{% set idimgs = 0 %}
  680. \t\t\t\t\t\t\t\t\t{% for file in product.linkspicturesArrays %}
  681. \t\t\t\t\t\t\t\t\t\t<div class=\"col-md-3  col-6 mt-1\">
  682. \t\t\t\t\t\t\t\t\t\t\t<img class=\"imgproduct\" id=\"img-{{ idimgs }}\" src=\"{{ asset('uploads/products/'~file) }}\">
  683. \t\t\t\t\t\t\t\t\t\t</div>
  684. \t\t\t\t\t\t\t\t\t\t{% set idimgs = idimgs+1 %}
  685. \t\t\t\t\t\t\t\t\t{% endfor %} 
  686. \t\t\t\t\t\t\t\t</div>
  687. \t\t\t\t\t\t\t</div>
  688. \t\t\t\t\t\t\t<div class=\"card mt-1\">
  689. \t\t\t\t\t\t\t  <div class=\"card-body\">
  690. \t\t\t\t\t\t\t\t
  691. \t\t\t\t\t\t\t\t<h5 class=\"card-title text-center\">Whatsapp</h5>
  692. \t\t\t\t\t\t\t\t<div class=\"row\">
  693. \t\t\t\t\t\t\t\t\t<div class=\"col-md-12\">
  694. \t\t\t\t\t\t\t\t\t\t<div class=\"row\">
  695. \t\t\t\t\t\t\t\t\t\t\t<a href=\"https://wa.me/+261349313463?text=refchambrekiban\" class=\"btn btn-success\"><i class=\"bi bi-telephone-plus-fill\"></i> +261 34 93 134 63</a>
  696. \t\t\t\t\t\t\t\t\t\t</div>
  697. \t\t\t\t\t\t\t\t\t</div>
  698. \t\t\t\t\t\t\t\t</div>
  699. \t\t\t\t\t\t\t  </div>
  700. \t\t\t\t\t\t\t</div>
  701. \t\t\t\t\t\t</div>
  702. \t\t\t\t\t\t<div class=\"col-md-7\">
  703. \t\t\t\t\t\t\t<p> {{ product.title }}
  704. \t\t\t\t\t\t\t</p>
  705. \t\t\t\t\t\t\t<div class=\"product-modules-card\">
  706. \t\t\t\t\t\t\t\t<div class=\"product-modules-heading\">
  707. \t\t\t\t\t\t\t\t\t<div><i class=\"fas fa-layer-group me-2\"></i>Modules inclus</div>
  708. \t\t\t\t\t\t\t\t\t<span>{{ product.modulesForDisplay|length }} module{{ product.modulesForDisplay|length > 1 ? 's' : '' }}</span>
  709. \t\t\t\t\t\t\t\t</div>
  710. \t\t\t\t\t\t\t\t{% if product.modulesForDisplay|length > 0 %}
  711. \t\t\t\t\t\t\t\t\t<div class=\"modules-table-scroll\">
  712. \t\t\t\t\t\t\t\t\t\t<table class=\"table product-modules-table mb-0\">
  713. \t\t\t\t\t\t\t\t\t\t\t<thead><tr><th>#</th><th>Module</th></tr></thead>
  714. \t\t\t\t\t\t\t\t\t\t\t<tbody>
  715. \t\t\t\t\t\t\t\t\t\t\t{% for module in product.modulesForDisplay %}
  716. \t\t\t\t\t\t\t\t\t\t\t\t<tr><td>{{ loop.index }}</td><td>{{ module }}</td></tr>
  717. \t\t\t\t\t\t\t\t\t\t\t{% endfor %}
  718. \t\t\t\t\t\t\t\t\t\t\t</tbody>
  719. \t\t\t\t\t\t\t\t\t\t</table>
  720. \t\t\t\t\t\t\t\t\t</div>
  721. \t\t\t\t\t\t\t\t{% else %}
  722. \t\t\t\t\t\t\t\t\t<div class=\"product-modules-empty\"><i class=\"fas fa-inbox\"></i><span>Aucun module renseigné pour ce produit.</span></div>
  723. \t\t\t\t\t\t\t\t{% endif %}
  724. \t\t\t\t\t\t\t</div>
  725. \t\t\t\t\t\t\t<hr class=\"border-2\">
  726. \t\t\t\t\t\t\t<table class=\"table product-specs-table mb-0\">
  727. \t\t\t\t\t\t\t\t<thead>
  728. \t\t\t\t\t\t\t\t\t<tr>
  729. \t\t\t\t\t\t\t\t\t  <th class=\"text-center\" scope=\"col\" colspan=2>Fiche Produit</th>
  730. \t\t\t\t\t\t\t\t\t</tr>
  731. \t\t\t\t\t\t\t\t</thead>
  732. \t\t\t\t\t\t\t\t<tbody>
  733. \t\t\t\t\t\t\t\t\t<tr>
  734. \t\t\t\t\t\t\t\t\t  <th scope=\"row\">Catégorie</th>
  735. \t\t\t\t\t\t\t\t\t  <td><div class=\"row\">{{ product.fkcategorie.title }}</div></td>
  736. \t\t\t\t\t\t\t\t\t</tr>
  737. \t\t\t\t\t\t\t\t\t<tr class=\"d-none\">
  738. \t\t\t\t\t\t\t\t\t  <th scope=\"row\">À partir de</th>
  739. \t\t\t\t\t\t\t\t\t  {# <td>
  740. \t\t\t\t\t\t\t\t\t\t{% if is_granted('ROLE_COM') %}
  741. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price\">{{ product.priceProducts[0].priceDealer|number_format(2, '.', ' ') }}</span> {{ product.fkdevise.title }} </br>
  742. \t\t\t\t\t\t\t\t\t\t\t\t({{ product.priceProducts[0].nbrDealerProd }}) produit(s) minimum
  743. \t\t\t\t\t\t\t\t\t\t{% elseif is_granted('ROLE_CUSTOMER')%}
  744. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price\">{{ product.priceProducts[0].priceBulkCustomer|number_format(2, '.', ' ') }} ({{ product.priceProducts[0].nbrBulkProd }}) </span> 
  745. \t\t\t\t\t\t\t\t\t\t{% else %}
  746. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price\">{{ product.priceProducts[0].priceCustomer|number_format(2, '.', ' ') }}</span> </span> {{ product.fkdevise.title }} </br>
  747. \t\t\t\t\t\t\t\t\t\t{% endif %}
  748. \t\t\t\t\t\t\t\t\t  </td> #}
  749. \t\t\t\t\t\t\t\t\t  \t{% set price = product.priceProducts|first %}
  750. \t\t\t\t\t\t\t\t\t\t<td>
  751. \t\t\t\t\t\t\t\t\t\t{% if price %}
  752. \t\t\t\t\t\t\t\t\t\t\t{% if is_granted('ROLE_COM') %}
  753.                                                 {% set normalPrice = price.priceCustomer %}
  754.                                                 {% set promoPrice  = price.promoPriceCustomer %}
  755.                                                 {% set minQty      = null %}
  756. \t\t\t\t\t\t\t\t\t\t\t{% elseif is_granted('ROLE_CUSTOMER') %}
  757.                                                 {% set normalPrice = price.priceCustomer %}
  758.                                                 {% set promoPrice  = price.promoPriceCustomer %}
  759.                                                 {% set minQty      = null %}
  760. \t\t\t\t\t\t\t\t\t\t\t{% else %}
  761. \t\t\t\t\t\t\t\t\t\t\t\t{% set normalPrice = price.priceCustomer %}
  762. \t\t\t\t\t\t\t\t\t\t\t\t{% set promoPrice  = price.promoPriceCustomer %}
  763. \t\t\t\t\t\t\t\t\t\t\t\t{% set minQty      = null %}
  764. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  765. \t\t\t\t\t\t\t\t\t\t\t{% if price.isPromotionValid and promoPrice %}
  766. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price text-muted\" style=\"text-decoration: line-through;\">
  767. \t\t\t\t\t\t\t\t\t\t\t\t\t{{ normalPrice|number_format(2, '.', ' ') }}
  768. \t\t\t\t\t\t\t\t\t\t\t\t</span>
  769. \t\t\t\t\t\t\t\t\t\t\t\t<br>
  770. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price text-danger fw-bold\">
  771. \t\t\t\t\t\t\t\t\t\t\t\t\t{{ promoPrice|number_format(2, '.', ' ') }}
  772. \t\t\t\t\t\t\t\t\t\t\t\t</span>
  773. \t\t\t\t\t\t\t\t\t\t\t{% else %}
  774. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price\">
  775. \t\t\t\t\t\t\t\t\t\t\t\t\t{{ normalPrice|number_format(2, '.', ' ') }}
  776. \t\t\t\t\t\t\t\t\t\t\t\t</span>
  777. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  778. \t\t\t\t\t\t\t\t\t\t\t{{ product.fkdevise.title }}
  779. \t\t\t\t\t\t\t\t\t\t\t{% if minQty %}
  780. \t\t\t\t\t\t\t\t\t\t\t\t<br>
  781. \t\t\t\t\t\t\t\t\t\t\t\t<small class=\"text-muted\">
  782. \t\t\t\t\t\t\t\t\t\t\t\t\t({{ minQty }}) produit(s) minimum
  783. \t\t\t\t\t\t\t\t\t\t\t\t</small>
  784. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  785. \t\t\t\t\t\t\t\t\t\t{% endif %}
  786. \t\t\t\t\t\t\t\t\t\t</td>
  787. \t\t\t\t\t\t\t\t\t  <tr>
  788.                                       <th scope=\"row\">Type</th>
  789. \t\t\t\t\t\t\t\t\t\t{# <td>
  790. \t\t\t\t\t\t\t\t\t\t{% if is_granted('ROLE_CUSTOMER') %}
  791. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price\">{{ product.priceProducts[0].priceBulkCustomer|number_format(2, '.', ' ') }} </span></span> {{ product.fkdevise.title }} </br>
  792. \t\t\t\t\t\t\t\t\t\t\t\t ({{ product.priceProducts[0].nbrBulkProd }})  produit(s) minimum
  793. \t\t\t\t\t\t\t\t\t\t{% elseif is_granted('ROLE_COM')%}
  794. \t\t\t\t\t\t\t\t\t\t{% else %}
  795. \t\t\t\t\t\t\t\t\t\t\t\t<span class=\"marge-price\">{{ product.priceProducts[0].priceBulkCustomer|number_format(2, '.', ' ') }} </span></span> {{ product.fkdevise.title }} </br>
  796. \t\t\t\t\t\t\t\t\t\t\t\t ({{ product.priceProducts[0].nbrBulkProd }})  produit(s) minimum
  797. \t\t\t\t\t\t\t\t\t\t{% endif %}
  798. \t\t\t\t\t\t\t\t\t\t</td> #}
  799.                                         <td><div class=\"product-type-badges\">{% for label in product.statetypeLabels %}<span class=\"badge bg-light text-dark\">{{ label }}</span>{% endfor %}</div></td>
  800. \t\t\t\t\t\t\t\t\t</tr>
  801. \t\t\t\t\t\t\t\t\t <tr>
  802. \t\t\t\t\t\t\t\t\t\t<th scope=\"row\">Disponibilité</th>
  803. \t\t\t\t\t\t\t\t\t\t<td>
  804. \t\t\t\t\t\t\t\t\t\t\t{% if product.stock > 0  %}
  805. \t\t\t\t\t\t\t\t\t\t\t\tDisponible
  806. \t\t\t\t\t\t\t\t\t\t\t{% else %}
  807. \t\t\t\t\t\t\t\t\t\t\t\tDisponible sur commande
  808. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  809. \t\t\t\t\t\t\t\t\t\t\t
  810. \t\t\t\t\t\t\t\t\t\t</td>
  811. \t\t\t\t\t\t\t\t\t</tr>
  812. \t\t\t\t\t\t\t\t\t</tr>
  813. \t\t\t\t\t\t\t\t</tbody>
  814. \t\t\t\t\t\t\t</table>
  815. \t\t\t\t\t\t\t<div class=\"product-detail-actions\">
  816. \t\t\t\t\t\t\t<a href=\"{{ path('app_contact', {'product_id': product.id}) }}\" class=\"btn btn-success button-contact\"><i class=\"fas fa-file-invoice-dollar me-2\" aria-hidden=\"true\"></i>Demander un devis</a>
  817. \t\t\t\t\t\t\t<a href=\"{{ path('app_demo', {'product_id': product.id}) }}\" class=\"btn btn-primary button-contact\"><i class=\"fas fa-desktop me-2\" aria-hidden=\"true\"></i>Demander une démo</a>
  818. \t\t\t\t\t\t\t<a class=\"d-none\" href=\"{{ path('app_product_panier', {'product': product.id}) }}\"><button type=\"button\" class=\"btn btn-success button-contact mb-2\"><i class=\"fas fa-cart-plus me-2\" aria-hidden=\"true\"></i>Ajouter au panier</button></a>
  819. \t\t\t\t\t\t\t<a class=\"d-none\" href=\"{{ path('app_product_list_panier') }}\"><button type=\"button\" class=\"btn btn-success button-contact mb-2\"><i class=\"fas fa-list-check me-2\" aria-hidden=\"true\"></i>Liste de mes commandes</button></a>
  820. \t\t\t\t\t\t\t</div>
  821. \t\t\t\t\t\t</div>
  822. \t\t\t\t\t</div>
  823. \t\t\t\t</div>
  824. \t\t\t</div>
  825. \t\t</div>
  826. \t</div>
  827. </main>
  828. {{ include('@FrontView/footer.html.twig') }}
  829. <!-- <script src=\"{{ asset('build/UtilityProductPoint.js') }}\"></script>  -->
  830. {% endblock %}
  831. ", "frontView/product/show.html.twig", "/htdocs/templates/frontView/product/show.html.twig");
  832.     }
  833. }