{% include '@Web/Catalog/script-tag.html.twig' with { 'result': result } %}
{% import '@Web/Collection/collection_macros.html.twig' as setParameter %}
<div class="divDataFs"
data-filtersearch="{{ dataFilterSearch }}"
data-filters="{{ activeFilters != null ? activeFilters | json_encode(constant('JSON_PRETTY_PRINT')) : '' }}"
></div>
<div class="set-z-index-boxify"></div>
{% for k, elem in result.list %}
{% set article = (elem.interiors | length < 1 and (elem.a_show == 1 or elem.interiors | length == 0)) ? true : false %}
{% set numOfImgWithoutLazy = is_mobile() ? 5 : 12 %}
{# Найти интерьер с минимальной шириной, учитывая наличие атрибута 'x' #}
{% set interiorWithMinSize = null %}
{% for interior in elem.interiors %}
{% if interior.x is defined %}
{% if interiorWithMinSize is null or interior.x | number_format < interiorWithMinSize.x | number_format %}
{% set interiorWithMinSize = interior %}
{% endif %}
{% endif %}
{% endfor %}
{% set isNotFactoryPage = 'factory' not in dataFilterSearch %}
{% if elem.c_name != null %}
{% set price = elem.measureId == 1 and elem.price_mq > 0 ? elem.price_mq : elem.price %}
{% set price = userCurrency() == 'GBP' ? elem.price | floatSing : elem.price | floatSing(0) %}
<div class="boxInformer js-catalog-box-informer"
data-id={{ elem.c_id }}
{% if isNotFactoryPage %}
itemscope itemtype="https://schema.org/Product"
{% endif %}
>
{% set exhibitions = false %}
{% if not isPageExhibition and elem.c_exhibition | length > 0 %}
{% set exhibitions = elem.c_exhibition %}
{% endif %}
{# выезжающий информер #}
<div class="collection-informer">
<div class="innerBoxInformer">
<div class="header-wrapper">
<div class="header">
{% if isNotFactoryPage %}
<span itemprop="name" class="textCollection">{{ elem.c_name | transform }}</span>
{% endif %}
<span class="textCollection">{{ elem.c_name | transform }}</span>
{% if elem.author != null %}
<span class="design-name" data-name="{{ elem.author | trim }}">
({{ 'catalog_desigin' | trans ({'%author%' : elem.author | trim }) }})
</span>
{% endif %}
<span
{% if isNotFactoryPage %}
itemprop="brand" itemscope itemtype="https://schema.org/Brand"
{% endif %}
>
{% if isNotFactoryPage %}
<meta itemprop="name" content="{{ elem.f_name | transform }}"/>
{% endif %}
{{ 'collection_by' | trans }} {{ elem.f_name | transform }}
</span>
<span class="flag flag-{{ elem.country_code | lower }}"></span>
</div>
</div>
{% if isNotFactoryPage %}
<meta itemprop="sku" content="{{ elem.c_code }}"/>
<meta itemprop="description" content="{{ meta.description | raw }}"/>
<meta itemprop="mpn" content="{{ elem.c_id }}"/>
{% if elem.prc_count > 0 %}
<span itemprop="review" itemscope itemtype="http://schema.org/Review">
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="author"/>
</span>
<span itemprop="reviewRating" itemtype="http://schema.org/Rating" itemscope>
<meta itemprop="ratingValue" content="{{ elem.prc_vote / elem.prc_count }}"/>
<meta itemprop="bestRating" content="5"/>
<meta itemprop="worstRating" content="1"/>
</span>
</span>
{% endif %}
{% endif %}
{% if elem.type == 1 %}
<br/>
<div>
<b>{{ 'catalog_price_from' | trans }}
<strong>{{ price > 0 ? price : '-' }}</strong>
{{ '' | currency | raw }}/{{ elem.measureText | trans }}
</b>
</div>
{% endif %}
<div class="settings" data-processed="0"
data-action="{{ path('app_collection_settings', { 'coll': elem.c_id }) }}">
</div>
{% if elem.prc_count > 0 %}
<div class="collections-rating no-float">
{% set reviewsRate = elem.prc_vote / elem.prc_count %}
{{ include ('@Web/Common/rating_stars.html.twig', {'rating': reviewsRate, 'classname': '' }) }}
<br/>
<a href={{ "#{elem.url}#description_reviews" }}>
<div class="count-reviews clearfix">
{{ ('product_review_header') | trans }}
<span>({{ elem.prc_count }})</span>
</div>
</a>
</div>
{% endif %}
</div>
</div>
{% set lastElCount = elem.interiors | length %}
{% set hiddenDots = lastElCount <= 1 %}
<div class="butPointBlueBox {{ hiddenDots ? ' dots--hidden' : '' }}">
{% for index, interior in elem.interiors %}
<div data-code="{{ interior.i_id }}"
class="butPointBlue{{ index == 0 ? ' butPointBlueSel' : '' }}"
data-slide-nav={{ loop.index }}></div>
{% endfor %}
{% if article %}
{% for index, article in elem.articles %}
{% if index < 3 - elem.interiors | length %}
<div data-action=""
class="butPointBlue {{ index == 0 and elem.interiors | length == 0 ? ' butPointBlueSel' : '' }}">
</div>
{% set lastElCount = index + 1 %}
{% endif %}
{% endfor %}
{% endif %}
</div>
<div class="arrow left" data-prev-interior="{{ lastElCount }}"></div>
<div class="arrow right" data-next-interior="2"></div>
<a href="{{ elem.url }}"
target="_blank"
rel="noopener"
class="bodyImg js-collection-page-link {% if article %}article_bodyImg{% endif %}"
data-id-coll="{{ elem.c_id }}"
data-link="{{ elem.url }}"
data-page="{{ page }}"
{% if isNotFactoryPage %}
itemprop="url"
{% endif %}
>
{% for index, interior in elem.interiors %}
{% set path = setParameter.setCatalogInteriorNameFile(elem, interior) %}
{% set trimmedPath = path | trim %}
{# {% set pathWithModifiedPostfix = trimmedPath | replace({'/z_': '/a_'}) %} #}
{% set id = interior.i_id %}
<div>
<img content="{{ trimmedPath }}"
{% if isNotFactoryPage %}
itemprop="image"
{% endif %}
{% if k > numOfImgWithoutLazy or index > 0 %}
loading="lazy"
{% endif %}
data-alt="{{ interior.alt }}"
data-first="interior{{ interior.i_id }}"
{% if index == 0 and interiorWithMinSize is not null %}
data-width="{{ interiorWithMinSize.x == "0" ? 200 : interiorWithMinSize.x }}"
data-height="{{ interiorWithMinSize.x == "0" ? 300 : interiorWithMinSize.y }}"
{% elseif interior.x == 0 or interior.x > 600 %}
data-width="400"
data-height="400"
{% else %}
data-width="{{ interior.x | round }}"
data-height="{{ interior.y | round }}"
{% endif %}
data-slide="{{ loop.index }}"
data-process="{{ elem.process }}"
alt="{{ interior.alt }}"
data-observe-img
{% if index == 0 %}
class="oneImg"
{% else %}
class="image"
data-link="{{ trimmedPath }}"
{% endif %}
src="{{ trimmedPath }}"
/>
</div>
{% endfor %}
{% if article %}
{% for index, article in elem.articles %}
{% if index < 3 - elem.interiors | length %}
{% set path = setParameter.setCatalogArticleNameFile(elem, article) %}
{% set trimmedPath = path | trim %}
{% set pathWithModifiedPostfix = trimmedPath | replace({'/b_': '/a_'}) %}
<div class="img_container_interiors">
<img content="{{ pathWithModifiedPostfix }}"
{% if k > numOfImgWithoutLazy or index > 0 %}
loading="lazy"
{% endif %}
{% if isNotFactoryPage %}
itemprop="image"
{% endif %}
alt="{{ article.alt }}"
data-first="article{{ article.a_id }}"
{% if article.a_x == 0 or article.a_x > 600 %}
data-width="400"
data-height="400"
{% else %}
data-width="{{ article.a_x | round }}"
data-height="{{ article.a_y | round }}"
{% endif %}
data-process="{{ elem.process }}"
{% if index == 0 and elem.interiors | length == 0 %}
{# "art" используется в js плагине сетки #}
{# "art--highlights_img" - контур для светлых изобр. #}
class="oneImg img art {{ article.b_g == "1" ? ' art--highlights_img' : '' }}"
{% else %}
data-link="{{ asset(path) }}"
{% endif %}
src="{{ pathWithModifiedPostfix }}"
/>
</div>
{% endif %}
{% endfor %}
{% endif %}
</a>
<div class="top">
{# {% if elem.arrow %}#}
{# <span>+{{ te.valK(elem.ratingMonth)}}</span>#}
{# #}{# Стрелка вверх - класс "arrow-up", стрелка вниз - класс "arrow-down" #}
{# <div class="arrow-{{ elem.arrow }}"></div>#}
{# {% endif %}#}
<div
class="price-info interior-info-top{{ exhibitions ? ' exhibition-block' : '' }} {{ elem.discontinued ? ' discontinued' : '' }} {% if article %}article_info_top{% endif %}">
{% if isNotFactoryPage %}
<meta itemprop="material" content="{{ elem.material | join(', ') }}" />
{% endif %}
<span class="fon"
{% if isNotFactoryPage %}
itemprop="offers"
itemscope
itemtype="https://schema.org/Offer"
{% endif %}
>
{% if (userSession.lang is defined) and (userSession.lang == 'ru' or userSession.lang == 'no' or userSession.lang == 'dk') %}
{{ 'catalog_price_from' | trans }}
{% endif %}
<strong>
{% if elem.price > 0 %}
{{- elem.price -}}{% if userSession.lang is not defined or (userSession.lang != 'ru' and userSession.lang != 'no' and userSession.lang != 'dk') %}+{% endif %}
{% else %}
-
{% endif %}
</strong>
{% if isNotFactoryPage %}
<meta itemprop="price" content="{{ elem.price }}"/>
<meta itemprop="priceCurrency" content="{{ userCurrency() }}"/>
<meta itemprop="itemCondition" content="http://schema.org/NewCondition"/>
<meta itemprop="availability" content="http://schema.org/InStock"/>
<meta itemprop="url" content="{{ elem.url }}"/>
<meta itemprop="priceValidUntil" content="{{ date() | date_modify('+7 day') | date('Y-m-d') }}"/>
<span itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
<meta itemprop="name" content="{{ siteName }}"/>
</span>
{% endif %}
<span class="price-info-currency">{{ '' | currency | raw }}/{{ elem.measureText }}</span>
</span>
</div>
<!-- элем {{ elem.prc_count }} -->
<div class="reviews-info">
{% if elem.prc_count > 0 %}
{# Почему 2 блока со звездами? #}
<div
class="reviews-block"
style="display:none"
{% if isNotFactoryPage %}
itemprop="aggregateRating"
itemscope
itemtype="https://schema.org/AggregateRating"
{% endif %}
>
{% if isNotFactoryPage %}
<meta itemprop="ratingValue" content="{{ elem.prc_vote / elem.prc_count }}"/>
<meta itemprop="bestRating" content="5"/>
<meta itemprop="ratingCount" content="{{ elem.prc_count }}"/>
{% endif %}
{% set reviewsRate = elem.prc_vote / elem.prc_count %}
{% set reviewsRatePercent = (reviewsRate * 100) / 5 %}
{% set widthActive = 50 %}
{% if reviewsRatePercent > 50 and reviewsRatePercent != 100 %}
{% set widthActive = 60 %}
{% elseif reviewsRatePercent < 50 %}
{% set widthActive = 40 %}
{% elseif reviewsRatePercent == 100 %}
{% set widthActive = 100 %}
{% endif %}
{{ include ('@Web/Common/rating_stars.html.twig', {'rating': reviewsRate, 'classname': '' }) }}
<span class="count-reviews">
<b><a href="{{ elem.url }}#description_reviews">({{ elem.prc_count }})</a></b>
</span>
</div>
<div class="reviews-block all-stars js-all-stars ">
{% set reviewsRate = elem.prc_vote / elem.prc_count %}
{% set reviewsRatePercent = (reviewsRate * 100) / 5 %}
{{ include ('@Web/Common/rating_stars.html.twig', {'rating': reviewsRate, 'classname': '' }) }}
<span class="count-reviews ">
<b><a class="{% if article %}article_count_reviews{% endif %}"
href="{{ elem.url }}#description_reviews">({{ elem.prc_count }})</a></b>
</span>
</div>
{% endif %}
</div>
<div class="interior-info-top aditional-info">
{# вывод года релиза коллеции ярлычком, если это текущий год #}
{% if elem.c_release_year == ('now' | date('Y')) %}
<div class="status">{{ 'collection.releaseYear'|trans({'%d%': elem.c_release_year }) }}</div>
{% endif %}
{% if elem.discontinued %}
<span class="coll-closed js-fon">{{ 'collection_unavailable_freezed_desc' | trans }}</span>
{% endif %}
{% if elem.c_status == 3 %}
<div class="status">{{ 'article.temp_unavailable' | trans }}</div>
{% endif %}
{% if elem.awards and elem.awards | length > 0 %}
<span class="awards-list js-awards">
<img
loading="lazy"
class="help-tooltip-right"
src="{{ asset('img/award.svg') }}"
title="
{% for award in elem.awards %}
{{ award.title }} <br />
{% endfor %}
"
alt="
{% for award in elem.awards %}
{{ award.title }},
{% endfor %}
"
/>
</span>
{% endif %}
</div>
</div>
<div class="collScriptBg">
<div
class="collScript {% if article %}article_collScript{% endif %}"
>
<span class="col_name">{{ elem.material | join(', ') | transform }}</span>
</div>
<div class="coll-params">
<div class="coll-params-main">
{# иконка экспресс образца #}
{% if elem.hasExpressSample %}
<div class="has-sample help-tooltip" title="{{ 'collection.sample_tooltip' | trans }}">
{% if is_mobile() %}
{% include (article) ? '@Web/SVGIconsCode/quik_sample_catalog_mobile_art.html.twig' : '@Web/SVGIconsCode/quik_sample_catalog_mobile.html.twig' %}
{% else %}
{% include (article) ? '@Web/SVGIconsCode/quick_sample_catalog_art.html.twig' : '@Web/SVGIconsCode/quick_sample_catalog.html.twig' %}
{% endif %}
</div>
{% endif %}
{% if elem.interiors | length > 0 %}
{# определить, какую подсказку показать при наведении (для добавленного или не добавленного интерьера в идеи) #}
{% set isAddedInIdeabook = false %}
<div
data-idea-btn-id="add-to-idea-button"
data-code="{{ elem.interiors[0].i_id }}"
data-b_link="{{ path('app_ideas_list', {id: null }) }}/"
data-action="{{ path('app_ideas_list', {id: elem.interiors[0].i_id }) }}"
class="idea-add idea-interior
{% for interior in elem.interiors %}
{% if result.favorites[interior.i_id] is defined %}
active
{% set isAddedInIdeabook = true %}
{% endif %}
idea-add-{{ interior.i_id }} i_{{ interior.i_id }}
{% endfor %}"
title="{% set ideasCount = elem.rating | default(0) %}"
role="add-to-project"
data-type-project="idea"
data-element-count="1"
data-msg-added="{{ 'idea_msg_added' | trans }}"
data-from-collection={{ elem.c_id }} {# для gtm #}
{# поиск поля в объекте с началом "price_sort" #}
{% for key, value in elem %}
{% if key[:10] == 'price_sort' %}
data-min-price={{ value }}
{% endif %}
{% endfor %}
>
{% if is_mobile() %}
<i class="idea-added-to-project rating help-tooltip-fast-hide"
title="{{ 'collection_ideas_short' | trans | raw | capitalize }}">
{% include (article) ? '@Web/SVGIconsCode/idea_added_mobile_art.html.twig' : '@Web/SVGIconsCode/idea_added_mobile.html.twig' %}
</i>
<i class="idea-not-added-to-project rating {% if not is_mobile() %}help-tooltip-fast-hide{% endif %}"
title="{{ 'collection_ideas_short' | trans | raw | capitalize }}">
{% include (article) ? '@Web/SVGIconsCode/idea_no_added_mobile_art.html.twig' : '@Web/SVGIconsCode/idea_no_added_mobile.html.twig' %}
</i>
{% else %}
<i class="idea-added-to-project rating help-tooltip-fast-hide"
title="{{ 'collection_ideas_short' | trans({'%number%': te.valK(ideasCount)}) | raw | capitalize }}">
{% include (article) ? '@Web/SVGIconsCode/idea_added_art.html.twig' : '@Web/SVGIconsCode/idea_added.html.twig' %}
</i>
<i class="idea-not-added-to-project rating {% if not is_mobile() %}help-tooltip-fast-hide{% endif %}"
title="{{ 'collection_ideas_short' | trans({'%number%': te.valK(ideasCount)}) | raw | capitalize }}">
{% include (article) ? '@Web/SVGIconsCode/idea_no_added_art.html.twig' : '@Web/SVGIconsCode/idea_no_added.html.twig' %}
</i>
{% endif %}
<span class="val">{{ te.valK(ideasCount) }}</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}