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

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