templates/catalog/list.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block body %}
  3.     {% if prods|length or app.request.query.get('filter') == 1 %}
  4.         {% set viewlistpath = path(app.request.attributes.get('_route'), app.request.attributes.all._route_params|merge(app.request.query.all)|merge({'view': 'list'})) %}
  5.         {% set viewgridpath = path(app.request.attributes.get('_route'), app.request.attributes.all._route_params|merge(app.request.query.all)|merge({'view': 'grid'})) %}
  6.         {% set view30path = path(app.request.attributes.get('_route'), app.request.attributes.all._route_params|merge(app.request.query.all)|merge({'results': 30})) %}
  7.         {% set view60path = path(app.request.attributes.get('_route'), app.request.attributes.all._route_params|merge(app.request.query.all)|merge({'results': 60})) %}
  8.         {% set view90path = path(app.request.attributes.get('_route'), app.request.attributes.all._route_params|merge(app.request.query.all)|merge({'results': 90})) %}
  9.         {% if not cats|length %}
  10.             <h1 class="pl-h1">{{ page.h1 }}</h1>
  11.         {% endif %}
  12.         {% if args[0] == 'catalog' and (args[1] == 'action' or args[1] == 'new' or args[1] == 'pop' or args[1] == 'mix' or args[1] == 'onsale' or args[1] == 'selection1' or args[1] == 'selection2') and args[2] == '' %}
  13.             {{ page.cont }}
  14.         {% endif %}
  15.         {% if (request_uri == canonical and not cats|length) or catpage == 1 %}
  16.             {{ page.cont2 }}
  17.         {% endif %}
  18.         {% if paginator.start > 0 %}
  19.             <div class="hidden-xs">
  20.             {% endif %}
  21.             {{ subcat_list_rendered.content|raw }}
  22.             {% if paginator.start > 0 %}
  23.             </div>
  24.         {% endif %}
  25.         {% if args[1] in ['new', 'pop', 'mix', 'onsale', 'search', 'action', 'selection1', 'selection2'] %}
  26.             <div
  27.                 data-controller="block-loader"
  28.                 data-block-loader-url-value="{{ path('block_chars_selected_spec', {'cat_id': cat_id, 'cat_intname': (cat_intname ? cat_intname : 'default'), 'spec': args[1], 'filters': filters}) }}"
  29.                 data-block-loader-ignore-errors-value="true"
  30.             >
  31.                 <div class="loading"></div>
  32.             </div>
  33.         {% else %}
  34.             <div
  35.                 data-controller="block-loader"
  36.                 data-block-loader-url-value="{{ path('block_chars_selected', {'cat_id': cat_id, 'cat_intname': cat_intname, 'filters': filters}) }}"
  37.                 data-block-loader-ignore-errors-value="true"
  38.             >
  39.                 <div class="loading"></div>
  40.             </div>
  41.         {% endif %}
  42.         {% if not (args[0] == 'catalog' and (args[1] == 'action' or args[1] == 'new' or args[1] == 'pop' or args[1] == 'mix' or args[1] == 'onsale' or args[1] == 'selection1' or args[1] == 'selection2') and args[2] is not empty) %}
  43.             {% else %}
  44.                 <div class="listingPageLinks visible-xs m-cat-block-1">
  45.                     <a href="{{ path('prod_list_spec', {'spec': args[1] }) }}" class="action-count">
  46.                         <i class="fa fa-angle-left"></i>&nbsp;&nbsp;
  47.                         {% if args[1] == 'action' %}
  48.                             {{ labels.get('prod-list-1')|raw }}
  49.                         {% elseif args[1] == 'new' %}
  50.                             {{ labels.get('prod-list-2')|raw }}
  51.                         {% elseif args[1] == 'pop' %}
  52.                             {{ labels.get('prod-list-3')|raw }}
  53.                         {% elseif args[1] == 'mix' %}
  54.                             {{ labels.get('prod-list-4')|raw }}
  55.                         {% elseif args[1] == 'onsale' %}
  56.                             {{ labels.get('prod-list-5')|raw }}
  57.                         {% elseif args[1] == 'selection1' %}
  58.                             {{ labels.get('prod-list-25')|raw }}
  59.                         {% elseif args[1] == 'selection2' %}
  60.                             {{ labels.get('prod-list-26')|raw }}
  61.                         {% endif %}
  62.                     </a>
  63.                     <span class="pull-right action-count">{{ labels.get('prod-list-6')|raw }}:
  64.                         {{ paginator.cnt }}</span>
  65.                 </div>
  66.         {% endif %}
  67.         <div class="visible-xs m-cat-block-2">
  68.             <div class="row">
  69.                 <div class="col-xs-4">
  70.                     <div class="m-pl-sort">{{ labels.get('prod-list-7')|raw }}&nbsp;<i class="fa fa-angle-down"></i>
  71.                     </div>
  72.                 </div>
  73.                 <div class="col-xs-8">
  74.                     {% if (prods|length or app.request.query.get('filter') == 1) and cat %}
  75.                         <div class="psb-view psb-view-1 pull-right pl-filter">
  76.                             <a href="#" class="list">
  77.                                 <i class="fa fa-filter"></i>&nbsp;
  78.                                 {{ labels.get('prod-list-8')|raw }}</a>
  79.                         </div>
  80.                     {% endif %}
  81.                     <div class="pull-right m-psb-delimiter">
  82.                         |
  83.                     </div>
  84.                     <div class="pull-right m-psb-view">
  85.                         <form action="{{ path('redirect') }}" method="post">
  86.                             <button type="submit" name="redirect" class="list{% if view_mode is empty or view_mode == 'list' %}a{% endif %}" value="{{ viewlistpath }}">
  87.                                 <i class="fa fa-list-ul"></i>
  88.                             </button>
  89.                         </form>
  90.                         <form action="{{ path('redirect') }}" method="post">
  91.                             <button type="submit" name="redirect" class="grid{% if view_mode == 'grid' %}a{% endif %}" value="{{ viewgridpath }}">
  92.                                 <i class="fa fa-th-large"></i>
  93.                             </button>
  94.                         </form>
  95.                     </div>
  96.                 </div>
  97.             </div>
  98.         </div>
  99.         <div class="pa visible-xs m-pl-sort-block">
  100.             {{ include('catalog/block/sort.html.twig') }}
  101.         </div>
  102.         <div class="pc-buy"></div>
  103.         <!-- Product Sorting Bar -->
  104.         <div class="product-sorting-bar hidden-xs">
  105.             <div class="pull-left pl-sort">
  106.                 <div class="fl">{{ labels.get('catalog-sort-1')|raw }}:&nbsp;</div>
  107.                 <div class="fl pr">
  108.                     <div class="pl-sort-a">
  109.                         {% if app.request.query.get('order') == 'changed' %}
  110.                             {{ labels.get('catalog-sort-2')|raw }}
  111.                         {% elseif app.request.query.get('order') == 'prior' %}
  112.                             {{ labels.get('catalog-sort-3')|raw }}
  113.                         {% elseif app.request.query.get('order') == 'price' %}
  114.                             {{ labels.get('catalog-sort-4')|raw }}
  115.                         {% elseif app.request.query.get('order') == 'skidka' %}
  116.                             {{ labels.get('catalog-sort-8')|raw }}
  117.                         {% else %}
  118.                             {{ labels.get('catalog-sort-5')|raw }}
  119.                         {% endif %}&nbsp;<i class="fa fa-angle-down"></i>
  120.                     </div>
  121.                     <div class="pa pl-sort-block">
  122.                         {{ include('catalog/block/sort.html.twig') }}
  123.                     </div>
  124.                 </div>
  125.             </div>
  126.             <div class="pull-right pl-pcount pr">
  127.                 <div class="fl">{{ labels.get('prod-list-12')|raw }}:&nbsp;</div>
  128.                 <div class="fl pr">
  129.                     <div class="pl-pcount-a">{{ results }}&nbsp;<i class="fa fa-angle-down"></i>
  130.                     </div>
  131.                     <div class="pa pl-pcount-block">
  132.                         <ul>
  133.                             <li>
  134.                                 <form action="{{ path('redirect') }}" method="post">
  135.                                     <button type="submit" name="redirect" value="{{ view30path }}">30</button>
  136.                                 </form>
  137.                             </li>
  138.                             <li>
  139.                                 <form action="{{ path('redirect') }}" method="post">
  140.                                     <button type="submit" name="redirect" value="{{ view60path }}">60</button>
  141.                                 </form>
  142.                             </li>
  143.                             <li>
  144.                                 <form action="{{ path('redirect') }}" method="post">
  145.                                     <button type="submit" name="redirect" value="{{ view90path }}">90</button>
  146.                                 </form>
  147.                             </li>
  148.                         </ul>
  149.                     </div>
  150.                 </div>
  151.             </div>
  152.             <div class="psb-view pull-right">
  153.                 {{ labels.get('prod-list-9')|raw }}:
  154.                 <form action="{{ path('redirect') }}" method="post">
  155.                     <button type="submit" name="redirect" class="list{% if view_mode == 'list' or ((env.site == env.mir or env.site == env.miropt) and view_mode is empty) %}a{% endif %}" value="{{ viewlistpath }}">
  156.                         <i class="fa fa-list-ul"></i>
  157.                         {{ labels.get('prod-list-10')|raw }}</button>
  158.                 </form>
  159.                 <form action="{{ path('redirect') }}" method="post">
  160.                     <button type="submit" name="redirect" class="grid{% if view_mode == 'grid' or ((env.site == env.mir or env.site == env.miropt) and view_mode is empty) %}a{% endif %}" value="{{ viewgridpath }}">
  161.                         <i class="fa fa-th-large"></i>
  162.                         {{ labels.get('prod-list-11')|raw }}</button>
  163.                 </form>
  164.             </div>
  165.         </div>
  166.         <!-- End Product Sorting Bar -->
  167.         {% if not prods|length %}
  168.             <div class="pl-empty">{{ labels.get('prod-list-13')|raw }}</div>
  169.         {% else %}
  170.             <div class="pl-block">
  171.                 {% for prod in prods %}
  172.                     {% set prodone = prod %}
  173.                     {% if view_mode != 'grid' %}
  174.                         <div class="col-md-12 box-product-outer bpo-list pl-list">
  175.                             <div class="bpo-loading"></div>
  176.                             <div class="box-product">
  177.                                 <div class="col-md-2 col-xs-4 pl-img col-xl-pl-1" data-img="pl-img">
  178.                                     <div class="img-wrapper pl-image-detail pl-img-thumb">
  179.                                         <a class="group list-img-thumb" href="{{ asset(env.host_static ~ '/pic/prod-l/' ~ prod.id ~ '.jpg') }}" data-href="{{ path('prod_cont', {'prod_id': prod.id}) }}">
  180.                                             <img class="b-lazy" src="{{ asset('loading-img' ~ (env_is_opt ? '-opt' : '') ~ '.gif', 'img') }}" data-src="{{ asset(env.host_static ~ '/pic/prod-m/' ~ prod.id ~ '.jpg') }}" alt="{{ prod.name }}">
  181.                                         </a>
  182.                                         <a class="group2 list-img-thumb" href="{{ asset(env.host_static ~ '/pic/prod-l/' ~ prod.id ~ '.jpg') }}" data-href="{{ path('prod_cont', {'prod_id': prod.id}) }}">
  183.                                             <img class="b-lazy" src="{{ asset('loading-img' ~ (env_is_opt ? '-opt' : '') ~ '.gif', 'img') }}" data-src="{{ asset(env.host_static ~ '/pic/prod-m/' ~ prod.id ~ '.jpg') }}" alt="{{ prod.name }}">
  184.                                         </a>
  185.                                     </div>
  186.                                     <div class="pl-labels">
  187.                                         {{ include('catalog/block/prod-labels.html.twig') }}
  188.                                     </div>
  189.                                 </div>
  190.                                 <div class="col-md-7 col-xs-8 col-xl-pl-2">
  191.                                     <div class="h6 pl-name gpl-h6">
  192.                                         <a href="{{ path('prod_cont', {'prod_id': prod.id}) }}" title="{{ prod.name }}">
  193.                                             {% if prod.pop %}<img src="{{ asset('hot' ~ app.request.locale ~ '.png', 'img') }}" alt="hot" class="prod-hot">
  194.                                             {% endif %}
  195.                                             {{ prod.name|replace({(' (' ~ prod.art|trim ~ ')'): '<span class="gpl-art2"> (' ~ prod.art|trim ~ ')</span>'})|raw }}
  196.                                             <span class="gpl-art">...({{ prod.art }})</span>
  197.                                         </a>
  198.                                     </div>
  199.                                     {% set colors = prod.colors %}
  200.                                     {% set colorsLazy = true %}
  201.                                     <div class="pl-colors-list">{{ include('catalog/block/prod-colors-list.html.twig') }}</div>
  202.                                     {% if prod.sizes|length %}
  203.                                     <div class="weight pl-pack">
  204.                                         <span class="pl-pack-title">{{ labels.get('sizes')|raw }}: &nbsp;</span>
  205.                                         {% set sizes = prod.sizes %}
  206.                                         <span class="pl-sizes-list">{{ include('catalog/block/prod-sizes-list.html.twig') }}</span>
  207.                                     </div>
  208.                                     {% endif %}
  209.                                     {% if prod.inpacks|length %}
  210.                                     <div class="pl-pack-space">&nbsp;</div>
  211.                                     {# <div class="clear"></div> #}
  212.                                     <div class="weight pl-pack">        
  213.                                         <span class="pl-pack-title">{{ labels.get('pack')|raw }}: &nbsp;</span>
  214.                                         {% set inpacks = prod.inpacks %}
  215.                                         <span class="pl-inpack-list">{{ include('catalog/block/prod-inpack-list.html.twig') }}</span>
  216.                                     </div>
  217.                                     {% endif %}
  218.                                     {# <div class="pl-pack-space">&nbsp;</div>
  219.                                     <span class="weight hidden-xs">
  220.                                         <span class="ves2">{{ labels.get('weight')|raw }}: &nbsp;</span>
  221.                                         <span class="pl-weight">{{ include('catalog/block/prod-weight.html.twig') }}</span>
  222.                                     </span> #}
  223.                                 </div>
  224.                                 <div class="col-md-3 col-xs-12 col-xl-pl-3">
  225.                                     <div class="row">
  226.                                         <div class="col-xs-12 col-sm-12">
  227.                                             <div class="row">
  228.                                                 <div class="col-xs-10 col-sm-12 nopadding">
  229.                                                     <div class="xprice pl-xprice">
  230.                                                         {{ include('catalog/block/prod-price.html.twig') }}
  231.                                                     </div>
  232.                                                 </div>
  233.                                                 <div class="col-xs-2 col-sm-12">
  234.                                                     <div class="xform pl-form">
  235.                                                         {{ include('catalog/block/prod-form.html.twig') }}
  236.                                                     </div>
  237.                                                     <div class="pl-wishlist">
  238.                                                         {{ include('catalog/block/prod-wishlist.html.twig') }}
  239.                                                     </div>
  240.                                                 </div>
  241.                                             </div>
  242.                                         </div>
  243.                                     </div>
  244.                                 </div>
  245.                                 <div class="clear"></div>
  246.                             </div>
  247.                         </div>
  248.                     {% else %}
  249.                         <div class="col-sm-4 col-md-4 col-lg-3 col-xl-3 col-xs-6 box-product-outer bpo-grid pl-grid">
  250.                             <div class="bpo-loading"></div>
  251.                             <div class="box-product">
  252.                                 <div class="img-wrapper pl-img-thumb pl-slider-colors">
  253.                                     <a
  254.                                         href="{{ path('prod_cont', {'prod_id': prod.id}) }}" class="grid-img-thumb bp-loading">
  255.                                         <!-- ontouchend="if(body.clientWidth>991) {return false;}"-->
  256.                                         <img
  257.                                         class="b-lazy" src="{{ asset('loading-img' ~ (env_is_opt ? '-opt' : '') ~ '.gif', 'img') }}" data-src="{{ asset(env.host_static ~ '/pic/prod-m/' ~ prod.id ~ '.jpg') }}" alt="{{ prod.name }}" title="{{ prod.name }}">
  258.                                     <!-- onclick="<?=\ASweb\SEO\GoogleTrade::gProdClick($prod->id)?>"-->
  259.                                     </a>
  260.                                     <div
  261.                                         class="main-recomended-prods">
  262.                                         <!-- Full Slider -->
  263.                                         <div class="container-fluid">
  264.                                             <div class="row">
  265.                                                 <div class="pl-slider-2-{{ prod.id }} pl-slider-2" data-id="{{ prod.id }}">
  266.                                                     <a
  267.                                                         href="{{ path('prod_cont', {'prod_id': prod.id}) }}" class="grid-img-thumb">
  268.                                                         <!-- ontouchend="if(body.clientWidth>991) {return false;}"-->
  269.                                                         <img src="{{ asset(env.host_static ~ '/pic/prod-m/' ~ prod.id ~ '.jpg') }}" alt="{{ prod.name }}" title="{{ prod.name }}">
  270.                                                     </a>
  271.                                                     {% for photo in prod.photos %}
  272.                                                         <a
  273.                                                             href="{{ path('prod_cont', {'prod_id': prod.id}) }}" class="grid-img-thumb">
  274.                                                             <!-- ontouchend="if(body.clientWidth>991) {return false;}"-->
  275.                                                             <img src="{{ asset(env.host_static ~ '/pic/photo/' ~ photo.id ~ '.jpg') }}" alt="">
  276.                                                         </a>
  277.                                                     {% endfor %}
  278.                                                 </div>
  279.                                             </div>
  280.                                         </div>
  281.                                         <!-- End Full Slider -->
  282.                                     </div>
  283.                                 </div>
  284.                                 <div class="pl-labels">
  285.                                     {{ include('catalog/block/prod-labels.html.twig') }}
  286.                                 </div>
  287.                                 <div class="pc-new pl-wish pl-grid-hover">
  288.                                     <div class="pl-grid-wishlist pl-wishlist-2">
  289.                                         {{ include('catalog/block/prod-wishlist.html.twig') }}
  290.                                     </div>
  291.                                 </div>
  292.                                 <div class="pa visible-xs">
  293.                                     <div class="pc-wish pl-wishlist">
  294.                                         {{ include('catalog/block/prod-wishlist-mobile.html.twig') }}
  295.                                     </div>
  296.                                 </div>
  297.                                 <div class="pa w100 hidden-xs pl-grid-hover">
  298.                                     <div class="pa pl-grid-form">
  299.                                         <div class="pgf-1">
  300.                                             <div class="pl-form-2">
  301.                                                 {{ include('catalog/block/prod-form.html.twig') }}
  302.                                             </div>
  303.                                         </div>
  304.                                     </div>
  305.                                 </div>
  306.                                 {% set colors = prod.colors %}
  307.                                 {% set colorsLazy = true %}
  308.                                 <div class="hidden-xs pl-colors-list-2">{{ include('catalog/block/prod-colors.html.twig') }}</div>
  309.                                 <div class="h6 pl-name gpl-h6">
  310.                                     <div class="gpl-art">
  311.                                         <a href="{{ path('prod_cont', {'prod_id': prod.id}) }}">...({{ prod.art }})</a>
  312.                                     </div>
  313.                                     <a href="{{ path('prod_cont', {'prod_id': prod.id}) }}" title="{{ prod.name }}">
  314.                                         {% if prod.pop %}<img src="{{ asset('hot' ~ app.request.locale ~ '.png', 'img') }}" alt="hot" class="prod-hot">
  315.                                         {% endif %}
  316.                                         {{ prod.name|replace({(' (' ~ prod.art|trim ~ ')'): '<span class="gpl-art2"> (' ~ prod.art|trim ~ ')</span>'})|raw }}</a>
  317.                                 </div>
  318.                                 {% if prod.sizes|length %}
  319.                                 <div class="weight pl-pack">
  320.                                     <span class="pl-pack-title">{{ labels.get('sizes')|raw }}: &nbsp;</span>
  321.                                     {% set sizes = prod.sizes %}
  322.                                     <span class="pl-sizes-list">{{ include('catalog/block/prod-sizes-list.html.twig') }}</span>
  323.                                 </div>
  324.                                 {% endif %}
  325.                                 {% if prod.inpacks|length %}
  326.                                 <div class="weight pl-pack">
  327.                                     <span class="pl-pack-title">{{ labels.get('pack')|raw }}: &nbsp;</span>
  328.                                     {% set inpacks = prod.inpacks %}
  329.                                     <span class="pl-inpack-list">{{ include('catalog/block/prod-inpack-list.html.twig') }}</span>
  330.                                 </div>
  331.                                 {% else %}
  332.                                 {# <div class="weight hidden-xs">
  333.                                     {{ labels.get('pack')|raw }}: &nbsp;
  334.                                     <span class="pl-inpack">{{ include('catalog/block/prod-inpack.html.twig') }}</span>
  335.                                 </div>
  336.                                 <div class="weight visible-xs">
  337.                                     {{ labels.get('pack')|raw }}: &nbsp;
  338.                                     <span class="pl-inpack">{{ include('catalog/block/m-prod-inpack.html.twig') }}</span>
  339.                                 </div> #}
  340.                                 {% endif %}
  341.                                 <div class="xprice pl-price">
  342.                                     {{ include('catalog/block/prod-price.html.twig') }}
  343.                                 </div>
  344.                                 <div class="xform visible-xs pl-form">
  345.                                     {{ include('catalog/block/m-prod-form.html.twig') }}
  346.                                 </div>
  347.                             </div>
  348.                         </div>
  349.                     {% endif %}
  350.                 {% endfor %}
  351.             </div>
  352.         {% endif %}
  353.         <div class="clearfix"></div>
  354.         {% if prods|length %}
  355.             <div class="listingPageLinks">
  356.                 {{ include('block/rule/rule.html.twig') }}
  357.             </div>
  358.         {% endif %}
  359.         <div class="clear"></div>
  360.     {% elseif app.request.query.get('novinki') %}
  361.         <br><br><br>
  362.         {{ labels.get('prod-list-15')|raw }}
  363.         <br/><br/>
  364.         <a href="?novinki=">{{ labels.get('prod-list-16')|raw }}</a>
  365.     {% elseif args[1]=='search' %}
  366.         {% if not cats|length %}
  367.             <h3>{{ labels.get('prod-list-17')|raw }}: "<span class="search-0-q">{{ app.request.query.get('q') }}</span>"</h3>
  368.             <b class="search-b">{{ labels.get('prod-list-18')|raw }}:</b>
  369.             <ol class="search-ol">
  370.                 <li>{{ labels.get('prod-list-19')|raw }}</li>
  371.                 <li>{{ labels.get('prod-list-20')|raw }}</li>
  372.                 <li>{{ labels.get('prod-list-21')|raw }}</li>
  373.                 <li>{{ labels.get('prod-list-22')|raw }}</li>
  374.             </ol>
  375.         {% endif %}
  376.     {% elseif not cats|length %}
  377.         <br><br><br>
  378.         {{ labels.get('prod-list-23')|raw }}
  379.     {% endif %}
  380.     {% if showcont %}
  381.         <div class="pagecont">
  382.             {{ cont|raw }}
  383.             <table>
  384.                 <tbody>
  385.                     <tr>
  386.                         <td style="text-align: left;">✅
  387.                             {{ labels.get('prodstable-1')|raw }}</td>
  388.                         <td>{{ prodstable.cat }}</td>
  389.                     </tr>
  390.                     <tr>
  391.                         <td style="text-align: left;">✅
  392.                             {{ labels.get('prodstable-2')|raw }}</td>
  393.                         <td>{{ prodstable.cnt }}</td>
  394.                     </tr>
  395.                     <tr>
  396.                         <td style="text-align: left;">✅
  397.                             {{ labels.get('prodstable-3')|raw }}</td>
  398.                         <td>{{ prodstable.avgprice }}
  399.                             {{ env.valuta.name }}</td>
  400.                     </tr>
  401.                     <tr>
  402.                         <td style="text-align: left;">✅
  403.                             {{ labels.get('prodstable-4')|raw }}</td>
  404.                         <td>{{ prodstable.minprice }}
  405.                             {{ env.valuta.name }}</td>
  406.                     </tr>
  407.                     <tr>
  408.                         <td style="text-align: left;">✅
  409.                             {{ labels.get('prodstable-5')|raw }}</td>
  410.                         <td>{{ prodstable.maxprice }}
  411.                             {{ env.valuta.name }}</td>
  412.                     </tr>
  413.                 </tbody>
  414.             </table>
  415.         </div>
  416.     {% endif %}
  417. {% endblock %}