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