templates/frontoffice_bundle/article/product.html.twig line 1

  1. {% extends "frontoffice_bundle/base.html.twig" %}
  2. {% block menu %}
  3.     <li><a href="/">Accueil</a></li>
  4.     <li><a href="/products/Légumes/1/" {% if nom == "Légumes" %}class="active"{% endif %}>Légumes</a></li>
  5.     <li><a href="/products/Fruits/2/" {% if nom == "Fruits" %}class="active"{% endif %}>Fruits</a></li>
  6.     <li><a href="/products/Poissons/3/" {% if nom == "Poissons" %}class="active"{% endif %}>Poissons</a></li>
  7.     <li><a href="/products/Hygiènes/5/" {% if nom == "Hygiènes" %}class="active"{% endif %}>Hygiènes</a></li>
  8.     <li><a href="/products/Réstauration/4/" {% if nom == "Réstauration" %}class="active"{% endif %}>Réstauration</a></li>
  9.     <li><a href="/products/Alimentations_générales/6/" {% if nom == "Alimentations_générales" %}class="active"{% endif %}>Alimentations générales</a></li>
  10. {% endblock %}
  11. {% block body %}
  12.     <style>
  13.         .center{
  14.             width: 150px;
  15.             margin: 40px auto;
  16.         }
  17.         .fruite-item {
  18.             height: 100%;
  19.             transition: 0.5s;
  20.         }
  21.         .fruite-item:hover {
  22.             box-shadow: 0 0 55px rgba(0, 0, 0, 0.4);
  23.         }
  24.         .fruite-item .fruite-img {
  25.             overflow: hidden;
  26.             transition: 0.5s;
  27.             border-radius: 10px 10px 0 0;
  28.         }
  29.         .fruite-item .fruite-img img {
  30.             transition: 0.5s;
  31.         }
  32.         .fruite-item .fruite-img img:hover {
  33.             transform: scale(1.3);
  34.         }
  35.         .fruite-name .active{
  36.             color: #ffb524 !important;
  37.         }
  38.     </style>
  39.     <div class="container-fluid page-header py-5">
  40.         <h1 class="text-center text-white display-6">Produits</h1>
  41.         <ol class="breadcrumb justify-content-center mb-0">
  42.             <li class="breadcrumb-item"><a href="/">Acceuil</a></li>
  43.             <li class="breadcrumb-item"><a href="/products">Produits</a></li>
  44.             <li class="breadcrumb-item active text-white">
  45.                 {% if nom == "Légumes" %}
  46.                     Légumes
  47.                 {% elseif nom == "Fruits" %}
  48.                     Fruits
  49.                 {% elseif nom == "Poissons" %}
  50.                     Poissons
  51.                 {% elseif nom == "Réstauration" %}
  52.                     Réstauration
  53.                 {% elseif nom == "Hygiènes" %}
  54.                     Hygiènes
  55.                 {% elseif nom == "Alimentations_générales" %}
  56.                     Alimentations générales
  57.                 {% endif %}
  58.         </li>
  59.         </ol>
  60.     </div>
  61.     <section>
  62.         <div class="container">
  63.             <div class="row">
  64.                 <div class="col-lg-3 mt-3">
  65.                     <div class="row g-4">
  66.                         <div class="col-lg-12">
  67.                             <form action="/search/" method="GET">
  68.                                 <div class="input-group w-100 mx-auto d-flex">
  69.                                     <input type="search" class="form-control p-3" placeholder="mots clés" aria-describedby="search-icon-1" name="name">
  70.                                     <button type="submit" id="search-icon-1" class="input-group-text p-3"><i class="fa fa-search"></i></button>
  71.                                 </div>
  72.                             </form>
  73.                         </div>
  74.                     </div>
  75.                     <div class="row g-4">
  76.                         <div class="col-lg-12">
  77.                        <div class="mb-3">
  78.                                 <h4 class="mt-2">Categories</h4>
  79.                                 <ul class="list-unstyled fruite-categorie">
  80.                                     <li>
  81.                                         <div class="d-flex justify-content-between fruite-name pt-2">
  82.                                             <a href="/products/Legumes/1/" class="nav-item nav-link {% if app.request.pathinfo == '/products/Legumes/1/' %}active{% endif %}"><i class="fas fa-apple-alt me-2"></i>Légumes</a>
  83.                                         </div>
  84.                                     </li>
  85.                                     <li>
  86.                                         <div class="d-flex justify-content-between fruite-name pt-2">
  87.                                             <a href="/products/Fruits/2/" class="nav-item nav-link {% if app.request.pathinfo == '/products/Fruits/2/' %}active{% endif %}"><i class="fas fa-apple-alt me-2"></i>Fruits</a>
  88.                                         </div>
  89.                                     </li>
  90.                                     <li>
  91.                                         <div class="d-flex justify-content-between fruite-name pt-2">
  92.                                             <a href="/products/Poissons/3/" class="nav-item nav-link {% if app.request.pathinfo == '/products/Poissons/3/' %}active{% endif %}"><i class="fas fa-apple-alt me-2"></i>Poissons</a>
  93.                                         </div>
  94.                                     </li>
  95.                                     <li>
  96.                                         <div class="d-flex justify-content-between fruite-name pt-2">
  97.                                             <a href="/products/Restauration/4/" class="nav-item nav-link {% if app.request.pathinfo == '/products/Restauration/4/' %}active{% endif %}"><i class="fas fa-apple-alt me-2"></i>Réstauration</a>
  98.                                         </div>
  99.                                     </li>
  100.                                     <li>
  101.                                         <div class="d-flex justify-content-between fruite-name pt-2">
  102.                                             <a href="/products/Hygienes/5/" class="nav-item nav-link {% if app.request.pathinfo == '/products/Hygienes/5/' %}active{% endif %}"><i class="fas fa-apple-alt me-2"></i>Hygiènes</a>
  103.                                         </div>
  104.                                     </li>
  105.                                     <li>
  106.                                         <div class="d-flex justify-content-between fruite-name pt-2">
  107.                                             <a href="/products/Alimentations_generales/6/" class="nav-item nav-link {% if app.request.pathinfo == '/products/Alimentations_generales/6/' %}active{% endif %}"><i class="fas fa-apple-alt me-2"></i>Alimentations générales</a>
  108.                                         </div>
  109.                                     </li>
  110.                                 </ul>
  111.                             </div>
  112.                         </div>
  113.                         <div class="col-lg-12">
  114.                             <div class="position-relative">
  115.                                 <img src='{{ asset("bundles/Frontoffice/img/banner-fruits.jpg")}}' class="img-fluid w-100 rounded" alt="">
  116.                                 <div class="position-absolute" style="top: 50%; right: 10px; transform: translateY(-50%);">
  117.                                     <h4 class="text-secondary fw-bold">Bannière <br> De <br> Fruits <br> Frais</h4>
  118.                                 </div>
  119.                             </div>
  120.                         </div>
  121.                     </div>
  122.                 </div>
  123.                 <div class="col-lg-9 mt-3">
  124.                     <div class="row g-4 justify-content-center">
  125.                         {% if listarticles %}
  126.                             {% for lm in listarticles %}
  127.                                 <div class="col-md-6 col-lg-6 col-xl-4 ">
  128.                                     <div class="rounded position-relative fruite-item border border-secondary rounded-bottom" >
  129.                                         <div class="fruite-img">
  130.                                             <a href="/product/{{ lm["categorie"] }}/{{ lm["categorie"] }}/{{ lm["article"].id }}/">
  131.                                                 <img src="{{ asset(lm["article"].imgPrincipale) }}" class="img-fluid w-100 rounded-top " alt="" style="height: 250px !important;padding: 10px !important;">
  132.                                             </a>
  133.                                         </div>
  134.                                         <div class="text-white bg-secondary px-3 py-1 rounded position-absolute" style="top: 10px; left: 10px;">{{ lm["categorie"] }}</div>
  135.                                         <div class="p-4">
  136.                                             
  137.                                             <h4>{{ lm["article"].titre }}</h4>
  138.                                             <div class="d-flex justify-content-between flex-lg-wrap">
  139.                                                 <div class="input-group" style="width: 60%;margin-top:10px;margin-bottom: 10px;margin-left: auto;margin-right: auto;">
  140.                                                     <div class="input-group-btn">
  141.                                                         <button type="button" class="btn btn-default btn-number" disabled="disabled" data-type="minus" data-field="quant-{{ lm["article"].id }}">
  142.                                                             <i class="fa fa-minus"></i>
  143.                                                         </button>
  144.                                                     </div>
  145.                                                     <input type="text" name="quant-{{ lm["article"].id }}" class="form-control input-number" id="quant-{{ lm["article"].id }}" value="{{ lm["article"].minQte }}" min="{{ lm["article"].minQte }}" max="150" unite="{{ lm["article"].unite }}">
  146.                                                     <div class="input-group-btn">
  147.                                                         <button type="button" class="btn btn-default btn-number" data-type="plus" data-field="quant-{{ lm["article"].id }}">
  148.                                                             <i class="fa fa-plus"></i>
  149.                                                         </button>
  150.                                                     </div>
  151.                                                 </div>
  152.                                             </div>
  153.                                             <div class="d-flex justify-content-between flex-lg-inherit">
  154.                                                 <p class="text-dark fs-5 fw-bold mb-0 mt-1">
  155.                                                     {% if typeCompte == "PRO" %}
  156.                                                         {% if lm["article"].prixPromo > 0 and lm["article"].prixPromo < lm["article"].prixProTTC %}
  157.                                                             {{ lm["article"].prixPromo|number_format(2, '.', '') }} DH / {{ lm["article"].unite }}
  158.                                                             {% set prix = lm["article"].prixPromo %}
  159.                                                         {% else %}
  160.                                                             {{ lm["article"].prixProTTC|number_format(2, '.', '') }} DH / {{ lm["article"].unite }}
  161.                                                             {% set prix = lm["article"].prixProTTC %}
  162.                                                         {% endif %}
  163.                                                     {% else %}
  164.                                                         {% if lm["article"].prixPromo > 0 and lm["article"].prixPromo < lm["article"].prixTTC %}
  165.                                                             {{ lm["article"].prixPromo|number_format(2, '.', '') }} DH / {{ lm["article"].unite }}
  166.                                                             {% set prix = lm["article"].prixPromo %}
  167.                                                         {% else %}
  168.                                                             {{ lm["article"].prixTTC|number_format(2, '.', '') }} DH / {{ lm["article"].unite }}
  169.                                                             {% set prix = lm["article"].prixTTC %}
  170.                                                         {% endif %}
  171.                                                     {% endif %}
  172.                                                 </p>
  173.                                                 <button class="btn border border-secondary rounded-pill px-3 text-primary add-to-cart" onClick='addToPanierArticle({{ lm["article"].id }});'>Ajouter au <i class="fa fa-shopping-cart"></i></button>
  174.                                             </div>
  175.                                         </div>
  176.                                     </div>
  177.                                 </div>    
  178.                             {% endfor %}
  179.                         {% else %}
  180.                             <div class="text-center" style="margin-top:30%;"><h3 class="text-secondary fw-bold">Aucun produit disponible pour le moment</h3></div>
  181.                         {% endif %}
  182.                     </div>
  183.                     <div class="col-12">
  184.                         <div class="pagination d-flex justify-content-center mt-5">
  185.                             {{ knp_pagination_render(articles) }}
  186.                         </div>
  187.                     </div>
  188.                 </div>
  189.             </div>
  190.         </div>
  191.     </section>
  192.     
  193.     <div id="myModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" role="dialog">
  194.         <div class="modal-dialog modal-lg" style="min-width: 90%;">
  195.             <div class="modal-content">
  196.                 <div class="modal-header">
  197.                     <h4 class="modal-title"></h4>
  198.                     <button type="button" class="close" data-dismiss="modal">&times;</button>
  199.                 </div>
  200.                 <div class="modal-body">
  201.                     <div class="panel panel-default">
  202.                         <div class="panel-body">
  203.                             <div class="row">
  204.                                 <div class="col-lg-5">
  205.                                     <div class="image-large">
  206.                                         <img src="" alt="Product" id="imgProduct" style="max-width: 100%;">
  207.                                     </div>
  208.                                 </div>
  209.                                 <div class="col-lg-7">
  210.                                     <div class="product-details" style="width: 100%;">
  211.                                         <div class="text-right">
  212.                                         </div>
  213.                                         <h3 class="product-name" id="titleProduct"></h3>
  214.                                         <h4 class="product-name" id="titleProduct2"></h4>
  215.                                         <h4 class="product-price" style="text-decoration: line-through;color:#868686;"><strong id="priceProductOld"></strong></h4>
  216.                                         <h2 class="product-price"><strong id="priceProduct"></strong></h2>
  217.                                         <a href="#" class="view-more-detail" id="moreDetail">Voir plus de Details</a>
  218.                                     </div>
  219.                                     <div class="row">
  220.                                         <div class="col-lg-4">
  221.                                             <div class="option-dropdowns" style="width: 100%;">
  222.                                                 <div>
  223.                                                     <div>
  224.                                                         <input type="hidden" id="idArticle" value="0" />
  225.                                                         <div class="input-group" style="width: 100%;">
  226.                                                             <div class="input-group-btn">
  227.                                                                 <button type="button" class="btn btn-default btn-number" disabled="disabled" data-type="minus" data-field="quant[1]">
  228.                                                                     <i class="glyphicon glyphicon-minus"></i>
  229.                                                                 </button>
  230.                                                             </div>
  231.                                                             <input type="text" name="quant[1]" class="form-control input-number" id="qte" value="1" min="1" max="150" unite="">
  232.                                                             <div class="input-group-btn">
  233.                                                                 <button type="button" class="btn btn-default btn-number" data-type="plus" data-field="quant[1]">
  234.                                                                     <i class="glyphicon glyphicon-plus"></i>
  235.                                                                 </button>
  236.                                                             </div>
  237.                                                         </div>
  238.                                                     </div>
  239.                                                 </div>
  240.                                             </div>
  241.                                         </div>
  242.                                         <div class="col-lg-8">
  243.                                             <div class="buttons">
  244.                                                 <div>
  245.                                                     <a class="button vert add-to-bag" onclick="addArtPan()"><i class="fa fa-shopping-cart"></i>  Ajouter au panier </a>
  246.                                                 </div>
  247.                                             </div>
  248.                                         </div>
  249.                                     </div>
  250.                                     <div id="shareDiv">
  251.                                         <h3>PARTAGER : </h3>
  252.                                         <div class='social-share-btns-container'>
  253.                                             <div class='social-share-btns'>
  254.                                                 <a class='share-btn share-btn-twitter' href='https://twitter.com/intent/tweet?text=https://codepen.io/marko-zub/#' rel='nofollow' target='_blank'>
  255.                                                     <i class="fa fa-twitter" aria-hidden="true"></i>
  256.                                                 </a>
  257.                                                 <a class='share-btn share-btn-facebook' href='https://www.facebook.com/sharer/sharer.php?u=https://codepen.io/marko-zub/#' rel='nofollow' target='_blank'>
  258.                                                     <i class="fa fa-facebook" aria-hidden="true"></i>
  259.                                                 </a>
  260.                                                 <a class='share-btn share-btn-linkedin' href='https://www.linkedin.com/cws/share?url=https://codepen.io/marko-zub/#' rel='nofollow' target='_blank'>
  261.                                                     <i class="fa fa-linkedin" aria-hidden="true"></i>
  262.                                                 </a>
  263.                                                 <a class='share-btn share-btn-mail' href='mailto:?subject=Look Fun Codepen Account&amp;amp;body=https://codepen.io/marko-zub/#' rel='nofollow' target='_blank' title='via email'>
  264.                                                     <i class="fa fa-envelope-o" aria-hidden="true"></i>
  265.                                                 </a>
  266.                                                 <a class='share-btn share-btn-reddit' href='mailto:?subject=Look Fun Codepen Account&amp;amp;body=https://codepen.io/marko-zub/#' rel='nofollow' target='_blank' title='via email'>
  267.                                                     <i class="fa fa-google-plus" aria-hidden="true"></i>
  268.                                                 </a>
  269.                                             </div>
  270.                                         </div>
  271.                                     </div>
  272.                                 </div>
  273.                             </div>
  274.                             <!-- /.panel-body -->
  275.                         </div>
  276.                         <!-- /.panel-body -->
  277.                     </div>
  278.                 </div>
  279.             </div>
  280.         </div>
  281.     </div>
  282. {% endblock %}
  283. {% block js %}
  284.     <script type="text/javascript">
  285.         var listOfProduct = {{ articlesJson|json_encode|raw }};
  286.         function addArtPan(){
  287.             var qte = document.getElementById("qte").value;
  288.             var id = document.getElementById("idArticle").value;
  289.             addToPanier(id,qte);
  290.             var lastPan = parseInt(document.getElementById("nbrArticle").innerText);
  291.             var nbrPan = lastPan+1;
  292.             document.getElementById("nbrArticle").innerText = nbrPan;
  293.         }
  294.         function addToPanierArticle(id){
  295.             var qte = document.getElementById("quant-"+id).value;
  296.             addToPanier(id,qte);
  297.             var lastPan = parseInt(document.getElementById("nbrArticle").innerText);
  298.             var nbrPan = lastPan+1;
  299.             document.getElementById("nbrArticle").innerText = nbrPan;
  300.         }
  301.     </script>
  302.     <script src='{{ asset("bundles/Frontoffice/js/products.js") }}'></script>
  303. {% endblock %}