src/WebBundle/Resources/views/Search/show.html.twig line 1

Open in your IDE?
  1. {% extends '@Web/layout.html.twig' %}
  2. {% import _self as build %}
  3. {% block title %}
  4.     {{ 'search_result' | trans }}
  5. {% endblock %}
  6. {% block stylesheets %}
  7.     {{ parent() }}
  8.     <link rel="stylesheet" href="{{ asset('_css/pages.min.css') }}" />
  9.     <link rel="stylesheet" href="{{ asset('_css/slide-show.min.css') }}" />
  10.     {% if is_mobile() and not is_tablet() %}
  11.         <link rel="stylesheet" href="{{ asset('_css/slide-show-mobile.min.css') }}" />
  12.     {% elseif is_mobile() %}
  13.         <link rel="stylesheet" href="{{ asset('_css/slide-show-tablet.min.css') }}" />
  14.     {% endif %}
  15. {% endblock stylesheets %}
  16. {% block javascripts %}
  17.     {{ parent() }}
  18.     {% if te.checkIsDev %}
  19.         <script src="{{ asset('_js/page.js') }}"></script>
  20.         <script src="{{ asset('_js/search-page.js') }}"></script>
  21.     {% else %}
  22.         <script src="{{ asset('_js/page.min.js') }}"></script>
  23.         <script src="{{ asset('_js/search-page.min.js') }}"></script>
  24.     {% endif %}
  25. {% endblock javascripts %}
  26. {% block meta %}
  27.     <meta name="robots" content="noindex, nofollow" />
  28. {% endblock %}
  29. {% set max = 30 %}
  30. {% macro renderBlock(nameCount, data, class, header, dataLis, dataId) %}
  31.     <div class="tab-content-wrapper" data-lis="{{ dataLis }}">
  32.         <h2>{{ header | trans }}</h2>
  33.         <ol class="s-r-results s-r-{{ class}}" id="s-r-{{ class }}">
  34.             {% if class == 'collection' %}
  35.                 {% macro collectionEls(key, row) %}
  36.                 <div class="boxInformer search-elem">
  37.                     <a class="bodyImg js-collection-page-link" href="{{ row.c_url }}" target="_blank" rel="noopener">
  38.                         <img
  39.                             class="filing_img"
  40.                             data-width="{{ row.w }}"
  41.                             data-height="{{ row.h }}"
  42.                             alt="{{ row.c_name | striptags }}"
  43.                             src="{{ row.img }}"
  44.                         />
  45.                     </a>
  46.                     <div class="collScriptBg">
  47.                         <div class="collScript{{ row.cls }}">
  48.                             <a class="collection" href="{{ row.c_url }}" target="_blank" rel="noopener">
  49.                                 {{ row.c_name | raw }}
  50.                             </a>
  51.                             {{ 'collection_by' | trans }}
  52.                             <span>{{ row.f_name | raw }}</span>
  53.                         </div>
  54.                         {% if row.express_sample == "1" %}
  55.                             <div class="help-tooltip" title="{{ 'collection.sample_tooltip' | trans }}">
  56.                                 {% if is_mobile() %}
  57.                                     {% include '@Web/SVGIconsCode/quik_sample_catalog_mobile.html.twig' %}
  58.                                 {% else %}
  59.                                     {% include '@Web/SVGIconsCode/quick_sample_catalog.html.twig' %}
  60.                                 {% endif %}
  61.                             </div>
  62.                         {% endif %}
  63.                     </div>
  64.                 </div>
  65.                 {% endmacro %}
  66.                 {% for cKey, cRow in data.name %}
  67.                     {{ build.collectionEls(cKey, cRow) }}
  68.                 {% endfor %}
  69.                 {% for cKey, cRow in data.desc %}
  70.                     {{ build.collectionEls(cKey, cRow) }}
  71.                 {% endfor %}
  72.             {% elseif class == 'factory' %}
  73.                 {% macro factoryEls(key, row) %}{#
  74.                     #}<li class="box-factory search-elem">
  75.                         <a href="{{ row.f_url }}" target="_blank" rel="noopener">
  76.                             <div>
  77.                                 {{ row.f_name | raw }}
  78.                                 <span class="flag flag-{{ row.ct_code }}"></span>
  79.                             </div>
  80.                         </a>
  81.                     </li>{#
  82.                 #}{% endmacro %}
  83.                 {% for fKey, fRow in data.name %}
  84.                     {{ build.factoryEls(fKey, fRow) }}
  85.                 {% endfor %}
  86.                 {% for fKey, fRow in data.desc %}
  87.                     {{ build.factoryEls(fKey, fRow) }}
  88.                 {% endfor %}
  89.             {% elseif class == 'publications' %}
  90.                 {% macro publicationsEls(key, row) %}{#
  91.                 #}<li class="publication search-elem">
  92.                     <a href="{{ row.url }}" target="_blank" rel="noopener">
  93.                         <div class="box">
  94.                             <img class=""
  95.                                  src="{{ row.img }}"
  96.                                  alt="{{ row.name | striptags }}" />
  97.                             <div class="name">{{ row.name | raw }}</div>
  98.                             <div class="publication-text">
  99.                                 {{ row.desc | striptags }}...
  100.                                 <span class="details">→</span>
  101.                             </div>
  102.                             <div class="both"></div>
  103.                         </div>
  104.                     </a>
  105.                     </li>{#
  106.                 #}{% endmacro %}
  107.                 {% for pKey, pRow in data.name %}
  108.                     {{ build.publicationsEls(pKey, pRow) }}
  109.                 {% endfor %}
  110.                 {% for pKey, pRow in data.desc %}
  111.                     {{ build.publicationsEls(pKey, pRow) }}
  112.                 {% endfor %}
  113.             {% else %}
  114.                 {% macro catalogEls(key, row) %}
  115.                     <li class="search-elem">
  116.                         {% if row.c_name is defined %}
  117.                             {% set name = row.c_name ~ ' ' ~ ('collection_by' | trans) ~ ' ' ~ row.f_name %}
  118.                             {% set url = row.c_url %}
  119.                         {% elseif row.f_name is defined %}
  120.                             {% set name = row.f_name %}
  121.                             {% set url = row.f_url %}
  122.                         {% elseif row.b_name is defined %}
  123.                             {% set name = row.b_name %}
  124.                             {% set url = row.url %}
  125.                         {% elseif row.fl_name is defined %}
  126.                             {% set name = row.fl_name %}
  127.                             {% set url = row.url %}
  128.                         {% else %}
  129.                             {% set name = row.name %}
  130.                             {% set url = row.url %}
  131.                         {% endif %}
  132.                         <div class="s-r-link">
  133.                             {% if row.c_name is defined %}
  134.                                 <a href="{{ url }}" target="_blank" rel="noopener">{{ name | raw }}</a>
  135.                                 {{ 'collection_by' | trans }}
  136.                                 <span>{{ row.f_name | raw }}</span>
  137.                             {% elseif row.f_name is defined %}
  138.                                 <a href="{{ url }}" target="_blank" rel="noopener">{{ name | raw }}</a>
  139.                             {% else %}
  140.                                 <a href="{{ url }}" target="_blank" rel="noopener">{{ name | raw }}</a>
  141.                             {% endif %}
  142.                             {% if row.img != null %}
  143.                                 <a href="{{ url }}" class="s-r-img-link" target="_blank" rel="noopener">
  144.                                     <img class=""
  145.                                          src="{{ row.img }}"
  146.                                          alt="{{ name | striptags }}" />
  147.                                 </a>
  148.                             {% endif %}
  149.                         </div>
  150.                     </li>
  151.                 {% endmacro %}
  152.                 {% for catKey, catRow in data.name %}
  153.                     {{ build.catalogEls(catKey, catRow) }}
  154.                 {% endfor %}
  155.                 {% for catKey, catRow in data.desc %}
  156.                     {{ build.catalogEls(catKey, catRow) }}
  157.                 {% endfor %}
  158.             {% endif %}
  159.         </ol>
  160.         <div class="both"></div>
  161.         {% if data.nCount + data.dCount > 30 %}
  162.             <div class="more-link-wrapper">
  163.                 <a href="javascript:void(0)" class="js-more"
  164.                    data-portion-url="{{ path('app_full_text_search_portion', {'type': dataId}) }}"
  165.                    data-count="{{ data.nCount + data.dCount }}" data-current-portion="1"
  166.                    data-target="#s-r-{{ class }}"></a>
  167.                 <div class="spinner"></div>
  168.             </div>
  169.         {% endif %}
  170.     </div>
  171. {% endmacro %}
  172. {% block googleTagScript %}
  173.     {% if googleRemarketing is defined and googleRemarketing%}
  174.         {% set articlesData = [] %}
  175.         {% for art in result.articles.res %}
  176.             {% set articlesData = articlesData | merge([ art.id ]) %}
  177.         {% endfor %}
  178.     {% endif %}
  179. {% endblock %}
  180. {% block content %}
  181.     <div class="search-results-page">
  182.         <h1>
  183.             {{ 'search_result_query' | trans }}:
  184.             <span class="bolder">{{ query }}</span>
  185.             ({{ docsCount }})
  186.         </h1>
  187.         {% if te.request.get('test') == 1 %}
  188.             <div class="gcse-search"></div>
  189.         {% endif %}
  190.         {% if docsCount != 0 %}
  191.             {% set catalogLength = result.filters.nCount + result.filters.dCount %}
  192.             {% set brandsLength = result.factory.nCount + result.factory.dCount %}
  193.             {% set collectionsLength = result.collections.nCount + result.collections.dCount %}
  194.             {% set itemsLength = result.articles.count %}
  195.             {% set blogsLength = result.publications.nCount + result.publications.dCount %}
  196.             <div class="tabs-block">
  197.                 <div class="t-b-w">
  198.                     <div class="mobile-gradient"></div>
  199.                     <div class="t-b-i-w">
  200.                         <div class="t-b-c-w">
  201.                             <div class="t-b-content">
  202.                                 <div class="t-b-item selected" data-lis="all">{{ 'all' | trans }}</div>
  203.                                 {% if catalogLength > 0 %}
  204.                                     <div class="t-b-item" data-lis="catalog">{{ 'catalog_catalog' | trans }} ({{ catalogLength }})</div>
  205.                                 {% endif %}
  206.                                 {% if brandsLength > 0 %}
  207.                                     <div class="t-b-item" data-lis="brands">{{ 'left_menu_factories' | trans }} ({{ brandsLength }})</div>
  208.                                 {% endif %}
  209.                                 {% if collectionsLength > 0 %}
  210.                                     <div class="t-b-item" data-lis="collections">{{ 'left_menu_collections' | trans }} ({{ collectionsLength }})</div>
  211.                                 {% endif %}
  212.                                 {% if itemsLength > 0 %}
  213.                                     <div class="t-b-item" data-lis="items">{{ 'collection_articles_d' | trans }} ({{ itemsLength }})</div>
  214.                                 {% endif %}
  215.                                 {% if blogsLength > 0 %}
  216.                                     <div class="t-b-item" data-lis="blogs">{{ 'blog_blogs' | trans }} ({{ blogsLength }})</div>
  217.                                 {% endif %}
  218.                             </div>
  219.                         </div>
  220.                     </div>
  221.                 </div>
  222.             </div>
  223.         {% endif %}
  224.         <div
  225.             class="s-r-inner-wrapper"
  226.             data-empty-msg-block{% if docsCount == 0 %} style="display: none"{% endif %}
  227.             data-count-result="{{docsCount}}"
  228.         >
  229.             {% if result.filters.nCount > 0 or result.filters.dCount > 0 %}
  230.                 {{ build.renderBlock(nameCount, result.filters, 'catalog', 'catalog_catalog', 'catalog', 'filters') }}
  231.             {% endif %}
  232.             {% if result.factory.nCount > 0 or result.factory.dCount > 0 %}
  233.                 {{ build.renderBlock(nameCount, result.factory, 'factory', 'left_menu_factories', 'brands', 'factory') }}
  234.             {% endif %}
  235.             {% if result.collections.nCount > 0 or result.collections.dCount > 0 %}
  236.                 {{ build.renderBlock(nameCount, result.collections, 'collection', 'left_menu_collections', 'collections', 'collections') }}
  237.             {% endif %}
  238.             {% if result.articles.count > 0 %}
  239.                 <div class="tab-content-wrapper articless" data-lis="items">
  240.                     <h2>{{ 'collection_articles_d' | trans }}</h2>
  241.                     <div id="s-r-articles" class="collection-articles-body js-collection-articles-body">
  242.                         {% for article in result.articles.res %}
  243.                             {% include '@Web/Collection/article.html.twig' with { 'article': article, 'noImageClass': '' } %}
  244.                         {% endfor %}
  245.                     </div>
  246.                     {% if result.articles.count > max %}
  247.                         <div class="more-link-wrapper">
  248.                             <a
  249.                                 href="javascript:void(0)"
  250.                                 class="js-more"
  251.                                 data-portion-url="{{ path('app_full_text_search_portion', { 'type': 'articles' }) }}"
  252.                                 data-count="{{ result.articles.count }}"
  253.                                 data-current-portion="1"
  254.                                 data-target="#s-r-articles"></a>
  255.                             <div class="spinner"></div>
  256.                         </div>
  257.                     {% endif %}
  258.                 </div>
  259.             {% endif %}
  260.             {% if result.publications.name | length > 0 or result.publications.desc | length > 0 %}
  261.                 {{ build.renderBlock(nameCount, result.publications, 'publications', 'blog_blogs', 'blogs', 'publications') }}
  262.             {% endif %}
  263.         </div>
  264.     </div>
  265.     {# данный блок появляется, если удаляем последний проект из списка #}
  266.     <div class="no-project-msg"
  267.         {% if docsCount == 0 %}
  268.             style="display: table;"
  269.         {% else %}
  270.             style="display: none;"
  271.         {% endif %}
  272.         data-empty-msg
  273.     >
  274.         {{ 'search_no_result' | trans }}
  275.     </div>
  276. {% endblock %}