public/themes/karen/products.html.twig line 1

Open in your IDE?
  1. {% extends getThemeDir('base.html.twig') %}
  2. {% block seo %}
  3.     {{ render_seo('app_shop_site_products', null, app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
  4. {% endblock %}
  5. {% block body %}
  6.     {% set data = {
  7.         payload: paginator,
  8.         filters: filters,
  9.         allParameters: app.request.query.all|merge(app.request.attributes.get('_route_params')),
  10.         currentPage: currentPage,
  11.         size: parameters.size,
  12.         request: app.request,
  13.         postType : app.request.attributes.get('postType'),
  14.         requestPath: 'Admin:GlobalSettings:Inspection',
  15.         pageNumber : app.request.query.get('page'),
  16.     } %}
  17.     {% set currentPage = data.currentPage %}
  18.     {% set currentPageParameters = data.currentPageParameters | default({page: "1"}) %}
  19.     {% set size = data.size %}
  20.     <div class="flex flex-col lg:flex-row gap-4 mt-5 container">
  21.         {% if filters is defined %}
  22.             <form action="{{ path(currentPage, currentPageParameters ) }}"
  23.                   class="lg:sticky top-1 h-fit lg:w-1/4 hidden lg:flex flex-col gap-y-4 items-center shadow rounded-lg py-4 dark:bg-gray-800 bg-white">
  24.                 <div class="flex items-center justify-between w-full px-2 xl:px-4">
  25.                     <span class="flex items-center gap-x-1">
  26.                         <p class="font-DanaMedium text-gray-700 dark:text-gray-200 text-lg">فیلترها
  27.                         </p>
  28.                     </span>
  29.                     <a href="{{ path('app_shop_site_products') }}"
  30.                        class="text-blue-500 dark:text-blue-400 text-sm cursor-pointer"> حذف فیلتر‌ها</a>
  31.                 </div>
  32.                 <div class="w-full justify-between flex items-center gap-x-3 px-2 xl:px-4 py-4">
  33.                     {% for form in filters %}
  34.                         {% if form.type == "text" %}
  35.                             <input type="text" name="{{ form.name }}"
  36.                                    class="block w-full py-1.5 px-3 text-base outline dark:outline-none outline-1 -outline-offset-1 placeholder:text-gray-400   transition-all col-span-6
  37.                             text-gray-800 dark:text-gray-100 dark:bg-gray-900 bg-slate-100 border border-transparent hover:border-slate-200 appearance-none rounded-md outline-none focus:bg-white focus:border-indigo-400 focus:ring-2 focus:ring-indigo-100 dark:focus:ring-blue-400 h-11"
  38.                                    value="{{ form.value | default }}"
  39.                                    placeholder="{{ form.label }}">
  40.                         {% endif %}
  41.                     {% endfor %}
  42.                 </div>
  43.                 <div class="w-full justify-between flex items-center gap-x-3 px-2 xl:px-4 py-4">
  44.                     <button type="submit"
  45.                             class="w-full mt-4 flex items-center gap-x-1 justify-center bg-blue-500 text-white hover:bg-blue-600 transition-all rounded-lg shadow py-2">
  46.                         اعمال
  47.                     </button>
  48.                 </div>
  49.             </form>
  50.         {% endif %}
  51.         <div class="lg:w-3/4">
  52.             <div class="grid grid-cols-1 xxs:grid-cols-2 xs:grid-cols-2 sm:grid-cols-2 xl:grid-cols-3 gap-3 xs:gap-2 sm:gap-4">
  53.                 {% if data.payload is not iterable %}
  54.                     {% set results = data.payload.results %}
  55.                 {% else %}
  56.                     {% set results = data.payload %}
  57.                 {% endif %}
  58.                 {% for id,item in results %}
  59.                     {% include getThemeDir('modules/cart-product.html.twig') with {'product' : item} %}
  60.                     {% else %}
  61.                     موردی یافت نشد
  62.                 {% endfor %}
  63.             </div>
  64.             {% if data.pagination is not defined or data.pagination == true %}
  65.                 {% set paginator = data.payload %}
  66.                 {% set currentPage = data.currentPage %}
  67.                 {% set params = data.allParameters | default({page: "1"}) %}
  68.                 {% set size = data.size %}
  69.                 {% if paginator.getNumResults > 0 %}
  70.                     <div class="mt-10 w-full flex items-center justify-center">
  71.                         <input type="hidden" id="query-status" value="{{ data.request.get('status') }}"/>
  72.                         <ul class="flex items-center gap-x-3 child:flex child:items-center child:justify-center child:w-8 child:h-8 child:cursor-pointer child:shadow child:rounded-lg child:transition-all child:duration-300">
  73.                             {% for i in paginator.start..paginator.end %}
  74.                                 {% if i == paginator.currentPage %}
  75.                                     <li class="text-white bg-blue-500">
  76.                                         <a href="#">
  77.                                             {{ i }}
  78.                                         </a>
  79.                                     </li>
  80.                                 {% else %}
  81.                                     <li class="bg-white dark:bg-gray-800 hover:bg-blue-500 dark:hover:bg-blue-500 hover:text-white">
  82.                                         <a href="{{ path(currentPage, params|merge({"page": i })) }}">
  83.                                             {{ i }}
  84.                                         </a>
  85.                                     </li>
  86.                                 {% endif %}
  87.                             {% endfor %}
  88.                         </ul>
  89.                     </div>
  90.                 {% endif %}
  91.             {% endif %}
  92.         </div>
  93.     </div>
  94. {% endblock %}