templates/Products/category.html.twig line 246

Open in your IDE?
  1. {% extends "layout/layout.html.twig" %}
  2. {% block title %}
  3.     {% if products_head  is not empty %}
  4.         GFS -
  5.         {{products_head.breadcrumb}}
  6.     {% else %}
  7.         {{'product_page_meta_title'|trans}}
  8.     {% endif %}
  9. {% endblock %}
  10. {% block metaDescription %}
  11.     {# {% if products_head  is not empty %}
  12.                                                                                                                                                                                                                                             GFS - {{products_head.breadcrumb}}
  13.                                                                                                                                                                                                                                           {% else %} #}
  14.     {{"product_page_meta_description"|trans}}
  15.     {# {% endif %} #}
  16. {% endblock %}
  17. {% block content %}
  18.     <!--Start Main Slider-->
  19.     <section class="main-slider-section product-main-slider product-main-slider-section-banner denty">
  20.         <div class="container container-lg">
  21.             <div class="custom-slider singal-slider main-slider">
  22.                 {% if products_head is not empty and products_head.slides is not empty %}
  23.                     <div class="slide">
  24.                         <div class="slide-media slide-media-desktop">
  25.                             {% if products_head.slides[0].localizedfields.data.getLocalizedValue('cb_image') is defined %}
  26.                                 <img src="{{ products_head.slides[0].localizedfields.data.getLocalizedValue('cb_image') }}"alt="desktop banner product" class="desktop-banner">
  27.                             {# <img src="{{  products_head.slides[0].localizedfields.data.getLocalizedValue('cb_image_mobile') }}" alt="" class="mobile-banner"> #}
  28.                             {% endif %}
  29.                         </div>
  30.                         <div class="slide-media slide-media-mobile">
  31.                             {% if products_head.slides[0].localizedfields.data.getLocalizedValue('cb_image_mobile') is defined %}
  32.                                 {# <img src="{{  products_head.slides[0].localizedfields.data.getLocalizedValue('cb_image') }}" alt="" class="desktop-banner"> #}
  33.                                 <img src="{{ products_head.slides[0].localizedfields.data.getLocalizedValue('cb_image_mobile') }}" alt="mobile banner product" class="mobile-banner">
  34.                             {% endif %}
  35.                         </div>
  36.                         <div class="silde-content-box">
  37.                             <div class="slide-content">
  38.                                 <h1>
  39.                                     {% if products_head.slides[0].localizedfields.data.getLocalizedValue('cb_title') is defined %}
  40.                                         <span class="title-sm d-block">{{products_head.slides[0].localizedfields.data.getLocalizedValue('cb_title')}}</span>
  41.                                     {% endif %}
  42.                                     {% if products_head.slides[0].localizedfields.data.getLocalizedValue('cb_link')  %}
  43.                                         <span class="title-lg underline-end d-block">{{products_head.slides[0].localizedfields.data.getLocalizedValue('cb_link')}}</span>
  44.                                     {% else %}
  45.                                         <span class="title-lg">{{'quality'|trans}}
  46.                                             &
  47.                                             <u>{{'taste!'|trans}}</u>
  48.                                         </span>
  49.                                     {% endif %}
  50.                                 </h1>
  51.                             </div>
  52.                             {# {% if products_head.brand_logo is not empty %}
  53.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       <div class="product-brand">
  54.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         <img src="{{products_head.brand_logo}}" alt="">
  55.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       </div>
  56.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       {% endif %} #}
  57.                         </div>
  58.                     </div>
  59.                 {% else %}
  60.                     {% for slides in category_slider %}
  61.                         <div class="slide">
  62.                             <div class="slide-media slide-media-desktop">
  63.                                 <img
  64.                                 src="{{ slides.slider_image.data }}" alt="category banner image desktop" class="desktop-banner">
  65.                             {# <img src="{{ slides.slider_image.data }}" alt="" class="mobile-banner"> #}
  66.                             </div>
  67.                             <div class="slide-media slide-media-mobile">
  68.                                 <img
  69.                                 src="{{ slides.slider_image_mobile.data }}" alt="category banner image mobile" class="desktop-banner">
  70.                             {# <img src="{{ slides.slider_image.data }}" alt="" class="mobile-banner"> #}
  71.                             </div>
  72.                             <div class="silde-content-box ">
  73.                                 <div class="slide-content">
  74.                                     <h1>
  75.                                         <span class="title-sm d-block">{{ slides.localizedfields.data.getLocalizedValue('heading') }}</span>
  76.                                         <span class="title-lg underline-end">{{ slides.localizedfields.data.getLocalizedValue('heading1') }}</u>
  77.                                     </span>
  78.                                 </h1>
  79.                             </div>
  80.                             {# <div class="product-brand">
  81.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           <img src="/static/assets/images/goody_logo.png" alt="">
  82.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         </div> #}
  83.                         </div>
  84.                     </div>
  85.                 {% endfor %}
  86.             {% endif %}
  87.         </div>
  88.     </div>
  89. </section>
  90. <!--End Main Slider-->
  91. <!--Start Breadcrumbs-->
  92. <div class="breadcrumb-holder">
  93.     <ol class="breadcrumb">
  94.         <li class="breadcrumb-item">
  95.             <a href="/{{app.request.locale}}">{{'Home'|trans}}</a>
  96.         </li>
  97.         {% if products_head  is not empty %}
  98.             <li class="breadcrumb-item">
  99.                 <a href="/{{app.request.locale}}/products/">{{'Products'|trans}}</a>
  100.             </li>
  101.             <li class="breadcrumb-item active" aria-current="page">{{products_head.breadcrumb}}</li>
  102.         {% else %}
  103.             {# <li class="breadcrumb-item active" aria-current="page">{{'allproducts'|trans}}</li> #}
  104.             <li class="breadcrumb-item">{{'Products'|trans}}</li>
  105.         {% endif %}
  106.     </ol>
  107. </div>
  108. <!--End Breadcrumbs-->
  109. <!--Start Page Info Section-->
  110. <section class="pageinfo-section">
  111.     <div class="container container-sm">
  112.         {% if products_head is not empty %}
  113.             <h1 class="title">{{products_head.name}}</h1>
  114.             {% if products_head.id != 263 and products_head.id != 260 and products_head.id != 413%}
  115.                 <p>{{products_head.Detail_desc}}</p>
  116.             {% else %}
  117.                 <p>{{products_head.description}}</p>
  118.             {% endif %}
  119.         {% else %}
  120.             <h1 class="title">{{'allproducts'|trans}}</h1>
  121.             <p>{{'allproductsdescription'|trans}}</p>
  122.         {% endif %}
  123.     </div>
  124. </section>
  125. <!--End Page Info Section-->
  126. <!--Start Product Box-->
  127. {# {% if products_head is not empty %}
  128.     {% if products_head.id != 263 %}
  129.         {% else %}
  130.             <h2 class="text-center mt-3">{{'Coming soon'|trans}}</h2>
  131.             <style>
  132.                 .product-result-container,
  133.                 .featured-recipes-section {
  134.                     display: none;
  135.                 }
  136.             </style>
  137.     {% endif %}
  138. {% endif %} #}
  139. <section class="product-result-container position-bg-product">
  140.     <div class="container container-sm">
  141.         <div class="row">
  142.         <div class="col-sm-12 col-lg-4 col-xl-3 filter-box">
  143.             <form name="filter-form" id="filter-form" method="get">    
  144.                     <div class="filter-wrapper">
  145.                         <h4 class="title">{{'Filters'|trans}}
  146.                             <span class="filter-icon"><img src="/static/assets/images/filter-dropdown.svg" alt="filter-dropdown"></span>
  147.                         </h4>
  148.                         <div class="filder-options">
  149.                             <div class="input-holder">
  150.                                 <input type="text" placeholder="{{'Search for product'|trans}}" name="query" id="search" value="{{ filters.query }}" class="form-control">
  151.                             </div>
  152.                         </div>
  153.                     </div>
  154.                     <div class="filter-accordion hidden">
  155.                         <div class="card filter-card" id="filter1">
  156.                             {% if(filterDefinition.filters|length > 0) %}
  157.                                 {% for filter in filterDefinition.filters %}                                    
  158.                                     {% set filterMarkup = filterService.filterFrontend(filter, productListing, currentFilter) %}
  159.                                     {{ filterMarkup | raw  }}
  160.                                 {% endfor %}
  161.                             {% endif %}
  162.                         </div>
  163.                     </div>                    
  164.                 </form>
  165.             </div>
  166.             <div
  167.                 class="col-sm-12 col-lg-8 col-xl-9 product-results">
  168.                 <!--Start Product Small Banner-->
  169.                 <div class="social-holder-box social-small-box catalog-download">
  170.                     <div class="social-holder-img slide-media-mobile">
  171.                         <img src="/static/assets/images/download_catalog_374x128_mobile.jpg" alt="catalog mobile">
  172.                     </div>
  173.                     <div class="social-holder-img slide-media-desktop">
  174.                         <img src="/static/assets/images/download_catalog_485x166_desktop.jpg" alt="catalog desktop">
  175.                     </div>
  176.                     <div class="social-holder-info">
  177.                         <p>{{'Download our latest product'|trans}}</p>
  178.                         <p>{{'catalog with updated line-up'|trans}}</p>
  179.                         {# <div class="btn-holder slide-media-desktop">
  180.                             <a href="/Catalog/2022/Catalog_Full.pdf" class="btn btn-custom btn-primary" download>{{'Download Now!'|trans}}</a>
  181.                         </div>
  182.                         <div class="btn-holder slide-media-mobile">
  183.                             <a href="/Catalog/2022/Catalog_Full_Mobile.pdf" class="btn btn-custom btn-green" download>{{'Download Now!'|trans}}</a>
  184.                         </div> #}
  185.                         {% if app.request.locale == 'ar' %}
  186.                             <div class="btn-holder slide-media-desktop">
  187.                                 <a href="/Catalog/2024/GCS_Catalog_Arabic_Desktop.pdf" class="btn btn-custom btn-primary" download>{{'Download Now!'|trans}}</a>
  188.                             </div>
  189.                             <div class="btn-holder slide-media-mobile">
  190.                                 <a href="/Catalog/2024/GCS_Catalog_Arabic_Mobile.pdf" class="btn btn-custom btn-green" download>{{'Download Now!'|trans}}</a>
  191.                             </div>
  192.                         {% else %}
  193.                             <div class="btn-holder slide-media-desktop">
  194.                                 <a href="/Catalog/2024/GCS_Catalog_English_Desktop.pdf" class="btn btn-custom btn-primary" download>{{'Download Now!'|trans}}</a>
  195.                             </div>
  196.                             <div class="btn-holder slide-media-mobile">
  197.                                 <a href="/Catalog/2024/GCS_Catalog_English_Mobile.pdf" class="btn btn-custom btn-green" download>{{'Download Now!'|trans}}</a>
  198.                             </div>
  199.                         {% endif %}
  200.                     </div>
  201.                 </div>
  202.                 <!--End Product Small Banner-->
  203.                 <div class="product-box-holder">
  204.                     <div class="row">
  205.                         {% if products is defined and products is not null %}
  206.                             {% for product in products %}
  207.                                 {% if product.brands.id is defined  %}
  208.                                     {% if product.brands.id == 263 %}
  209.                                         {% set class = "slide-img-bg-brown" %}
  210.                                     {% elseif product.brands.id == 262 %}
  211.                                         {% set class = "slide-img-bg-blue" %}
  212.                                     {% elseif product.brands.id == 413 %}
  213.                                         {% set class = "slide-img-bg-purple" %}
  214.                                     {% else %}
  215.                                         {% set class = "slide-img-bg-green" %}
  216.                                     {% endif %}
  217.                                 {% else %}
  218.                                     {% set class = "no-class" %}
  219.                                 {% endif %}
  220.                                 <div class="col-12 col-md-6 col-xl-4 product-result">
  221.                                     {% include "/includes/product-card.html.twig" with {
  222.                                         featured_product: product,
  223.                                         class: class,
  224.                                         LikedId : LikedId,
  225.                                     } %}
  226.                                 </div>
  227.                                 <!--Start GFS Loyalty Program-->
  228.                                 {#  {% if  loop.index == 6 %} understaining purpose #}
  229.                                 {% if  loop.index == 6 %}
  230.                                 </div>
  231.                                 {% for mid_banners in mid_banner %}
  232.                                     <div class="info-media loyalty-program loyalty-program-small d-none">
  233.                                         <div class="info-section">
  234.                                             <h5>{{'loyalty program'|trans}}</h5>
  235.                                             <h4>{{'Join the'|trans}}</h4>
  236.                                             <h3>{{mid_banners.localizedfields.data.getLocalizedValue('heading')}}</h3>
  237.                                             <p>{{mid_banners.localizedfields.data.getLocalizedValue('heading1')}}</p>
  238.                                             <div class="btn-holder">
  239.                                                 <div class="btn-border">
  240.                                                     <a href="/{{app.request.locale}}/loyalty-program" class="btn btn-custom btn-lg-o-white">{{'Discover More'|trans}}</a>
  241.                                                 </div>
  242.                                                 {% if app.session.get('loginUserName') is null %}
  243.                                                     <div class="btn-border btn-border-black ">
  244.                                                         <a href="/{{app.request.locale}}/signup" class="btn btn-custom btn-lg-o-black">{{'Sign-up Now!'|trans}}</a>
  245.                                                     </div>
  246.                                                 {% endif %}
  247.                                             </div>
  248.                                         </div>
  249.                                         <div class="media-section">
  250.                                             <img src="{{mid_banners.slider_image.data}}" alt="mid banner image">
  251.                                         </div>
  252.                                     </div>
  253.                                 {% endfor %}
  254.                                 <div class="row new-div">
  255.                                 {% endif %}
  256.                                 <!--End GFS Loyalty Program-->
  257.                             {% else %}
  258.                                 <h2>{{'No Product Found'|trans}}</h2>
  259.                             {% endfor %}
  260.                         {% endif %}
  261.                     </div>
  262.                     {% if products|length >= 12 %}
  263.                         <div class="load-more">
  264.                             <button class="btn btn-custom btn-p-outline-blue" id="load-more" onclick="loadMoreProduct()">{{'Load more'|trans}}</button>
  265.                         </div>
  266.                     {% endif %}
  267.                 </div>
  268.             </div>
  269.         </div>
  270.     </div>
  271.     {% include "layout/baseimage.html.twig" %}
  272. </section>
  273. <!--End Product Box-->
  274. <!--Start Recipes Using Our Products Section-->
  275. <section class="featured-recipes-section inner-featured-recipe using-products using-products-home position-bg-img position-bg-product-2 recipe-using-products-product-section">
  276.     <div class="container container-sm">
  277.         {% set newArray = [] %}
  278.         {% set recipesarray = [] %}
  279.         {% for product in products %}
  280.             {% for product_used_recipe in product.recipes %}
  281.                 {% set recipesarray = recipesarray|merge([product_used_recipe]) %}
  282.             {% endfor %}
  283.         {% endfor %}
  284.         {% if recipesarray|length >  0 %}
  285.             <h2 class="heading">{{'Recipes Using Our Products'|trans}}</h2>
  286.         {% endif %}
  287.         <div class="featured-recipes">
  288.             <div class="custom-slider featured-recipes-slider">
  289.                 {% for product in products %}
  290.                     {% for product_used_recipe in product.recipes %}
  291.                         {% if product_used_recipe not in newArray %}
  292.                             {% set newArray = newArray|merge([product_used_recipe]) %}
  293.                             <div class="slide">
  294.                                 <div class="slide-holder">
  295.                                     <a href="/{{app.request.locale}}/all-recipes/{{ product_used_recipe.url }}" tabindex="0">
  296.                                         <figure class="slide-img">
  297.                                             <img src="{{product_used_recipe.featured_image}}" alt="{{product_used_recipe.name}}">
  298.                                             {% if product_used_recipe.banner_video %}
  299.                                                 <i class="fas fa-play-circle"></i>
  300.                                             {% endif %}
  301.                                         </figure>
  302.                                     </a>
  303.                                     <div class="slide-content">
  304.                                         <a href="/{{app.request.locale}}/all-recipes/{{ product_used_recipe.url }}" tabindex="0">
  305.                                             <h3>{{ product_used_recipe.name }}</h3>
  306.                                         </a>
  307.                                         <p>{{ product_used_recipe.short_description }}</p>
  308.                                         <div class="chef-names"></div>
  309.                                         <ul
  310.                                             class="list-unstyled recipe-info">
  311.                                             {# <li class="mins">{{ product_used_recipe.time }}{{ "mins"|trans }}</li> #}
  312.                                             <li class="orders">{{'No. Of'|trans}}{{'Serving'|trans}}{{ product_used_recipe.serves }}</li>
  313.                                             <li class="time">{{ product_used_recipe.typeofmeal|trans }}</li>
  314.                                         </ul>
  315.                                     </div>
  316.                                     <div class="btn-holder">
  317.                                         <a href="/{{app.request.locale}}/all-recipes/{{ product_used_recipe.url }}" class="btn btn-custom btn-lg-o-black" tabindex="0">{{'View Recipe'|trans}}</a>
  318.                                     </div>
  319.                                 </div>
  320.                             </div>
  321.                         {% endif %}
  322.                     {% endfor %}
  323.                 {% endfor %}
  324.             </div>
  325.         </div>
  326.     </div>
  327.     {% include "layout/baseimage.html.twig" %}
  328. </section>
  329. <script>
  330.     document.querySelectorAll('.filter-checkbox').forEach(function(checkbox) {
  331.         checkbox.addEventListener('change', function() {        
  332.             document.forms[0].submit();
  333.         });
  334.     });
  335.     document.querySelector('input[name="query"]').addEventListener('keydown', function(event) {
  336.         if (event.key === 'Enter') {
  337.             event.preventDefault();
  338.             document.forms[0].submit();
  339.         }
  340.     });
  341.     function clearFilter() {
  342.             document.querySelectorAll(".filter-checkbox").forEach(function(checkbox) {
  343.                 checkbox.checked = false;
  344.             });
  345.             document.forms[0].submit();
  346.     }
  347.     window.addEventListener('load', function() {
  348.         document.querySelector('.product-result-container').scrollIntoView({ behavior: 'smooth' });
  349.     });
  350. </script>
  351. <!--End Recipes Using Our Products Section-->
  352. <script>
  353. let page = 1;
  354. function loadMoreProduct() {
  355. data = '';
  356. if (typeof($('input[name="locationthemes"]:checked').val()) !== 'undefined') {
  357. var checked_val = $('input[name="locationthemes"]:checked').val();
  358. data = {
  359. 'checked_val': checked_val
  360. }
  361. }
  362. let add_query = '&';
  363. if (!window.location.search) {
  364. add_query = '?';
  365. }
  366. $.ajax({
  367. type: "GET",
  368. url: window.location.href + add_query + 'page=' + page,
  369. data: data,
  370. cache: false,
  371. beforeSend: function () {
  372. $('#load-more').addClass('btn-load');
  373. },
  374. complete: function () {
  375. $('#load-more').removeClass('btn-load');
  376. },
  377. success: function (data) {
  378. if (data.success) {
  379. $('.product-box-holder .new-div').append(data.success);
  380. page++;
  381. }
  382. if (data.success == '' || data.total_products < 11) {
  383. $('#load-more').hide();
  384. }
  385. }
  386. });
  387. }
  388. </script>
  389. {% if (app.request.locale =='ar') %}
  390.     {% set topMenu = app.request.requesturi|replace({'/ar/': '/en/'}) %}
  391. {% else %}
  392.     {% set topMenu = app.request.requesturi|replace({'/en/': '/ar/'}) %}
  393. {% endif %}
  394. <script>
  395.     var _TopMenuLink = "{{ topMenu }}" + window.location.search;
  396. </script>{% endblock %}{% block footer %}
  397. {% include "includes/footer.html.twig" %}{% endblock %}