diff --git a/index.php b/index.php index ecc95b9..f34e11b 100755 --- a/index.php +++ b/index.php @@ -69,87 +69,67 @@ $APPLICATION->SetTitle("ЭраСептик");

Популярные товары

-
- - product - -
-
4/5
-
- Септик ЭРА 4 прин -

Решение для небольших дачных домов

-
-
-

Пользователей: 1-3 чел

-

Производительность: 0.5м2

-

Сброс: 150 литров

-

Питание: не нужно

-
-
77 000 ₽
-
- - -
-
-
- -
- - product - -
-
4/5
-
- Септик ЭРА 4 прин -

Решение для небольших дачных домов

-
-
-

Пользователей: 1-3 чел

-

Производительность: 0.5м2

-

Сброс: 150 литров

-

Питание: не нужно

-
-
77 000 ₽
-
- - -
-
-
- -
- - product - -
-
4/5
-
- Септик ЭРА 4 прин -

Решение для небольших дачных домов

-
-
-

Пользователей: 1-3 чел

-

Производительность: 0.5м2

-

Сброс: 150 литров

-

Питание: не нужно

-
-
77 000 ₽
-
- - -
-
-
+ IncludeComponent( + "bitrix:catalog.section", + "mainpage", + array( + "IBLOCK_TYPE" => "catalog", + "IBLOCK_ID" => "4", + "SECTION_ID" => "", + "SECTION_CODE" => "", + "ELEMENT_SORT_FIELD" => "shows", + "ELEMENT_SORT_ORDER" => "desc", + "PAGE_ELEMENT_COUNT" => "3", + "PROPERTY_CODE" => array("CHEL", "SBROS_NUM", "RECYCLE_VOL"), + "SHOW_ALL_WO_SECTION" => "Y", + "PRICE_CODE" => array(), + "SHOW_PRICE_COUNT" => "1", + "PRICE_VAT_INCLUDE" => "Y", + "ADD_TO_BASKET_ACTION" => "ADD", + "PRODUCT_ID_VARIABLE" => "id", + "PRODUCT_QUANTITY_VARIABLE" => "quantity", + "PRODUCT_PROPS_VARIABLE" => "prop", + "CACHE_TYPE" => "A", + "CACHE_TIME" => "36000000", + "CACHE_GROUPS" => "Y", + "DISPLAY_COMPARE" => "N", + "SET_TITLE" => "N", + "SET_BROWSER_TITLE" => "N", + "SET_META_KEYWORDS" => "N", + "SET_META_DESCRIPTION" => "N", + "ADD_SECTIONS_CHAIN" => "N", + "SHOW_ALL_WO_SECTION" => "Y", + "SHOW_404" => "N", + "MESSAGE_404" => "", + // ... другие параметры по необходимости ... + ), + false + ); + ?>

Категории товаров

- Септики - Автономные канализации - Станции биоочистки - Локальные очистные сооружения - + 4, + 'ACTIVE' => 'Y', + 'GLOBAL_ACTIVE' => 'Y', + 'DEPTH_LEVEL' => 1 + ]; + $arSelect = ['ID', 'NAME', 'SECTION_PAGE_URL']; + $rsSections = CIBlockSection::GetList(['SORT' => 'ASC'], $arFilter, false, $arSelect); + while ($arSection = $rsSections->GetNext()) { + ?> + + + У нас собственное производство К каталогу @@ -232,249 +212,162 @@ $APPLICATION->SetTitle("ЭраСептик");

Мы предлагаем следующие услуги

-
-
-

Монтаж септика под ключ

-

Полный монтаж септика под ключ, быстро и надежно.

-
- от 77 000 ₽ - (от 36 часов) -
-
-
-

Монтаж септика для дома

-

Полный монтаж септика под ключ, быстро и надежно.

-
- от 77 000 ₽ - (от 36 часов) -
-
-
-

Монтаж септика для дачи

-

Полный монтаж септика под ключ, быстро и надежно.

-
- от 77 000 ₽ - (от 36 часов) -
-
-
-

Монтаж септика для бани

-

Полный монтаж септика под ключ, быстро и надежно.

-
- от 77 000 ₽ - (от 36 часов) -
-
-
-

Монтаж ЛОС

-

Полный монтаж септика под ключ, быстро и надежно.

-
- от 77 000 ₽ - (от 36 часов) -
-
-
-

Септик для коттеджа

-

Полный монтаж септика под ключ, быстро и надежно.

-
- от 77 000 ₽ - (от 36 часов) -
-
-
-

Монтаж септика для кухни

-

Полный монтаж септика под ключ, быстро и надежно.

-
- от 77 000 ₽ - (от 36 часов) -
-
-
-

Автономные канализации

-

Полный монтаж септика под ключ, быстро и надежно.

-
- от 77 000 ₽ - (от 36 часов) -
-
- - Все услуги - -
-
- -
-
-
-

Рассчитать септик за 5 минут!

-

Наш менеджер свяжется с вами в ближайшее время

- - - -

Нажимая кнопку «Заказать звонок», вы подтверждаете свое согласие на обработку персональных данных

-
-
-
- -
-
-

Последние выполненные объекты

-
-
-
-
-
Загородный дом в Подмосковье, 03.05.24
- Подробнее -
-
-

Установка септика в коттедж

-

Клиенту требовалась автономная канализация для проживания

-

Что было сделано:

-
    -
  • исследование грунта и уровня грунтовых вод
  • -
  • выявление особенностей участка и согласование с клиентом
  • -
-
- -
-
-
-
Загородный дом в Подмосковье, 03.05.24
- Подробнее -
-
-

Установка септика в коттедж

-

Клиенту требовалась автономная канализация для проживания

-

Что было сделано:

-
    -
  • исследование грунта и уровня грунтовых вод
  • -
  • выявление особенностей участка и согласование с клиентом
  • -
-
- -
-
-
-
Загородный дом в Подмосковье, 03.05.24
- Подробнее -
-
-

Установка септика в коттедж

-

Клиенту требовалась автономная канализация для проживания

-

Что было сделано:

-
    -
  • исследование грунта и уровня грунтовых вод
  • -
  • выявление особенностей участка и согласование с клиентом
  • -
-
- -
-

Вы можете ознакомиться с другими проектами в нашем портфолио

- Перейти к другим работам -
-
-
+
+ +

Установка септика под ключ

+

+ Осуществление проектов любой сложности. +

+
+ от 90 000 ₽ (от 8.5 часов) +
+
+

Установка септика для дома

+

+ Быстро рассчитаем смету и качественно проведём все необходимые мероприятия. +

+
+ от 109 000 ₽ (от 8.5 часов) +
+
+

Установка септика для дачи

+

+ рассмотрим все сложности, быстро и надежно произведём установку. +

+
+ от 101 000 ₽ (от 8.5 часов) +
+
+

Установка септика для бани

+

+ Подготовим проект, предусмотрим все проблемы, проведём монтаж септика под ключ. +

+
+ от 90 000 ₽ (от 8.5 часов) +
+
+

Установка ЛОС

+

+ Осуществим проект под различные домовладения, с учётом всех нюансов. +

+
+ от 109 000 ₽ (от 8.5 часов) +
+
+

Установка септика для коттеджа

+

+ Скорая калькуляция сметы, оперативный подход в оговоренные сроки. +

+
+ от 134 000 ₽ (от 8.5 часов) +
+
+

Установка септика для кухни

+

+ Примем во внимание все пожелания, быстро и надежно выполним свои услуги. +

+
+ от 90 000 ₽ (от 8.5 часов) +
+
+

Установка автономной канализации

+

+ Специалисты с большим опытом, профессионально проведут совокупность работ. +

+
+ от 109 000 ₽ (от 8.5 часов) +
+
Все услуги +
-
-
-
-

Что говорят наши клиенты

-
- - -
-
-
-
- Review video poster - -
-
06.06.23
-
4/5
-
-
-
Анатолий Матвеевич
-
г. Одинцово
-
-
- -
-
-
А
-
Анатолий Матвеевич
-
г. Одинцово
-
-

Монтаж септиков

-
- В своем новом доме не хотелось пользоваться выгребной ямой. Тем более что после посещения ассенизаторов остается неприятный запах. Искали и приобрели автономную канализацию ЭРА. Доступные цены и качественный монтаж в - короткие сроки. После его установки недолгое время присматривался, а потом забыл на два года пока не пришло время обслуживать. Порекомендовали систему ЭРА соседям. Они поступили мудро и оборудовали сразу три дома одной - системой. Рекомнедую!!! -
-
-
06.06.23
-
4/5
-
-
- -
-
-
Е
-
Евгения
-
г. Подольск
-
-

Монтаж септиков

-
- В своем новом доме не хотелось пользоваться выгребной ямой. Тем более что после посещения ассенизаторов остается неприятный запах. Искали и приобрели автономную канализацию ЭРА. Доступные цены и качественный монтаж в - короткие сроки. После его установки недолгое время присматривался, а потом забыл на два года пока не пришло время обслуживать. Порекомендовали систему ЭРА соседям. Они поступили мудро и оборудовали сразу три дома одной - системой. Рекомнедую!!! -
-
-
06.06.23
-
4/5
-
-
+IncludeComponent( + "bitrix:main.include", + "", + Array( + "AREA_FILE_SHOW" => "file", + "PATH" => "/include/order-call.php" + ) +);?> -
-
-
А
-
Анатолий Матвеевич
-
г. Одинцово
-
-

Монтаж септиков

-
- В своем новом доме не хотелось пользоваться выгребной ямой. Тем более что после посещения ассенизаторов остается неприятный запах. Искали и приобрели автономную канализацию ЭРА. Доступные цены и качественный монтаж в - короткие сроки. После его установки недолгое время присматривался, а потом забыл на два года пока не пришло время обслуживать. Порекомендовали систему ЭРА соседям. Они поступили мудро и оборудовали сразу три дома одной - системой. Рекомнедую!!! -
-
-
06.06.23
-
4/5
-
-
+
+
+

Последние выполненные объекты

+
+
+
+
+
+ Дача в Подмосковье, 24.03.25 +
+ Подробнее +
+
+

Установка септика для дачи

+

+ Клиент пожелал приобрести автономную канализацию для дачи. +

+

Что было сделано:

+
    +
  • Был осуществлен бесплатный выезд инженера, который выявил глубину залегания трубы. Определил особенности грунта и будущее месторасположение септика.
  • +
  • Септик установлен, готов к использованию.
  • +
+
+
+
+
+
+ Баня в Подмосковье, 19.12.24 +
+ Подробнее +
+
+

Установка септика в бане

+

+ Клиент захотел септик для бани под ключ на 5 человек +

+

Что было сделано:

+
    +
  • Учли все сложности, пожелания, согласовали смету
  • +
  • Осуществили свои обязанности перед заказчиком в короткие сроки
  • +
+
+
+
+
+
+ Частный дом в Подмосковье, 10.02.25 +
+ Подробнее +
+
+

Установка септика в частный дом

+

+ Клиент нуждался в септике для дома под ключ на 4 человека +

+

Что было сделано:

+
    +
  • Выявили потребность, запустили проект в работу
  • +
  • Произвели все необходимые действия, сдали объект по акту приёма передачи
  • +
+
+
+

Вы можете ознакомиться с другими проектами в нашем портфолио

+ Перейти к другим работам +
+
+
+
+ +IncludeComponent( + "bitrix:main.include", + "", + Array( + "AREA_FILE_SHOW" => "file", + "PATH" => "/include/reviews.php" + ) +);?> -
-
-
Е
-
Евгения
-
г. Подольск
-
-

Монтаж септиков

-
- В своем новом доме не хотелось пользоваться выгребной ямой. Тем более что после посещения ассенизаторов остается неприятный запах. Искали и приобрели автономную канализацию ЭРА. Доступные цены и качественный монтаж в - короткие сроки. После его установки недолгое время присматривался, а потом забыл на два года пока не пришло время обслуживать. Порекомендовали систему ЭРА соседям. Они поступили мудро и оборудовали сразу три дома одной - системой. Рекомнедую!!! -
-
-
06.06.23
-
4/5
-
-
-
-
-
@@ -489,114 +382,122 @@ $APPLICATION->SetTitle("ЭраСептик");
Давайте знакомиться ближе 🤍
- Читать о компании + Читать о компании
-
-
-

Мы ведем профессиональный блог

-
-
-
-
-
20.05.24
- Читать статью -
-
-
-
-
Инструкция
-
Советы
-
История
-
-

- Типы локальных очистных сооружений: как выбрать подходящее решение для вашего участка -

-
- Выбор септика для дачи — важная задача, от которой зависит комфорт и экологическая безопасность вашего загородного участка. В этом посте мы рассмотрим ключевые факторы, которые стоит учесть при выборе септика: объем, - тип системы, материал изготовления, а также нюансы монтажа и эксплуатации. Узнайте, как сделать ваш выбор осознанным и избежать распространенных ошибок, чтобы ваша дача всегда оставалась чистым и уютным местом для - отдыха! -
-
-
- -
-
-
-
20.05.24
- Читать статью -
-
-
-
-
Инструкция
-
Советы
-
-

Как правильно подплетать дредлоки самому

-
- Выбор септика для дачи — важная задача, от которой зависит комфорт и экологическая безопасность вашего загородного участка. В этом посте мы рассмотрим ключевые факторы, которые стоит учесть при выборе септика: объем, - тип системы, материал изготовления, а также нюансы монтажа и эксплуатации. Узнайте, как сделать ваш выбор осознанным и избежать распространенных ошибок, чтобы ваша дача всегда оставалась чистым и уютным местом для - отдыха! -
-
-
- -
-
-
-
20.05.24
- Читать статью -
-
-
-
-
Советы
-
История
-
-

- Плюсы и минусы использования автономных канализационных систем на даче -

-
- Выбор септика для дачи — важная задача, от которой зависит комфорт и экологическая безопасность вашего загородного участка. В этом посте мы рассмотрим ключевые факторы, которые стоит учесть при выборе септика: объем, - тип системы, материал изготовления, а также нюансы монтажа и эксплуатации. Узнайте, как сделать ваш выбор осознанным и избежать распространенных ошибок, чтобы ваша дача всегда оставалась чистым и уютным местом для - отдыха! -
-
-
- -
-
-
-
20.05.24
- Читать статью -
-
-
-
-
История
-
Инструкция
-
-

- Монтаж и обслуживание локальных очистных сооружений: что нужно знать -

-
- Выбор септика для дачи — важная задача, от которой зависит комфорт и экологическая безопасность вашего загородного участка. В этом посте мы рассмотрим ключевые факторы, которые стоит учесть при выборе септика: объем, - тип системы, материал изготовления, а также нюансы монтажа и эксплуатации. Узнайте, как сделать ваш выбор осознанным и избежать распространенных ошибок, чтобы ваша дача всегда оставалась чистым и уютным местом для - отдыха! -
-
-
- -
-
- Читайте больше полезной информации в нашем блоге -
- Смотреть все статьи -
-
-
-
+
+
+

Мы ведем профессиональный блог

+
+
+
+
+
+ 20.05.24 +
+ Читать статью +
+
+
+
+
+ Инструкция +
+
+ Советы +
+
+

+ Виды септиков для частного дома

+
+ При строительстве загородного дома или дачи особое внимание стоит уделить организации системы очистки сточных вод. +
+
+
+
+
+
+
+ 20.09.24 +
+ Читать статью +
+
+
+
+
+ Инструкция +
+
+ Советы +
+
+

Септики для дачи: Руководство по выбору и установке

+
+ Существует три основных типа септиков, которые чаще всего применяются на дачных участках. Каждый из них имеет свои особенности, преимущества и требования к эксплуатации. +
+
+
+
+
+
+
+ 11.01.24 +
+ Читать статью +
+
+
+
+
+ Советы +
+
+ Инструкция +
+
+

+ Автономная канализация для частного дома и дачи: Как выбрать лучшую систему и правильно ее установить

+
+ В отсутствие подключения к централизованной системе, выбор подходящей канализационной установки становится ключевым для эффективной утилизации сточных вод. +
+
+
+
+
+
+
+ 05.05.24 +
+ Читать статью +
+
+
+
+
+ История +
+
+ Инструкция +
+
+

+ Станции биологической очистки: принцип работы и правильный выбор

+
+ Для решения этого вопроса раньше использовались такие традиционные методы, как выгребные ямы и септики. +
+
+
+
+
+ Читайте больше полезной информации в нашем блоге +
+ Смотреть все статьи +
+
+
+
\ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog.item/mainpage/template.php b/local/templates/.default/components/bitrix/catalog.item/mainpage/template.php new file mode 100644 index 0000000..25f73d7 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog.item/mainpage/template.php @@ -0,0 +1,72 @@ +setFrameMode(true); +if (isset($arResult['ITEM'])): + $productId = $arResult['ITEM']['ID']; + $priceRow = Bitrix\Catalog\PriceTable::getList([ + 'filter' => [ + 'PRODUCT_ID' => $productId, + 'CATALOG_GROUP_ID' => 1 + ], + 'select' => ['PRICE', 'CURRENCY'] + ])->fetch(); + $salePrice = $arResult['ITEM']['PROPERTIES']['ATT_OLD_PRICE']['VALUE']; + $CHEL = $arResult['ITEM']['PROPERTIES']['CHEL']['VALUE']; + $SBROS_NUM = $arResult['ITEM']['PROPERTIES']['SBROS_NUM']['VALUE']; + $RECYCLE_VOL = $arResult['ITEM']['PROPERTIES']['RECYCLE_VOL']['VALUE']; + $reviews = $arResult['ITEM']['PROPERTIES']['REV_COMPLITE']['VALUE']; + $rating = function_exists('getAverageRating') ? getAverageRating($reviews) : 0; +?> +
+ + <?= $arResult['ITEM']['NAME'] ?> + +
+
/5
+
+ + + + +

+ +

+ +
+
+ +

+ Пользователей: +

+ + +

+ Залповый сброс, л: +

+ + +

+ Объем переработки, л/сутки: +

+ +
+ +
+ ₽ +
+ +
+ " value="1" class="form-control" id="QUANTITY"> + " value="ADD2BASKET"> + + " value="" class="id-offer"> + + +
+
+
+ \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog.section/mainpage/template.php b/local/templates/.default/components/bitrix/catalog.section/mainpage/template.php new file mode 100644 index 0000000..54e4e93 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog.section/mainpage/template.php @@ -0,0 +1,26 @@ +setFrameMode(true); +?> + + + IncludeComponent( + 'bitrix:catalog.item', + 'mainpage', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $this->GetEditAreaId($item['ID']), + 'TYPE' => 'CARD', + ), + 'PARAMS' => $arParams + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> + + +
Товаров не найдено
+ diff --git a/local/templates/.default/components/bitrix/catalog/main/!page.php b/local/templates/.default/components/bitrix/catalog/main/!page.php new file mode 100644 index 0000000..5b48c27 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/!page.php @@ -0,0 +1,64 @@ + +IncludeComponent( + "bitrix:catalog.section", + "", + array( + "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], + "IBLOCK_ID" => $arParams["IBLOCK_ID"], + "ELEMENT_SORT_FIELD" => $arParams["ELEMENT_SORT_FIELD"], + "ELEMENT_SORT_ORDER" => $arParams["ELEMENT_SORT_ORDER"], + "PAGE_ELEMENT_COUNT" => $arParams["PAGE_ELEMENT_COUNT"], + "LINE_ELEMENT_COUNT" => $arParams["LINE_ELEMENT_COUNT"], + "PROPERTY_CODE" => $arParams["LIST_PROPERTY_CODE"], + "OFFERS_CART_PROPERTIES" => $arParams["OFFERS_CART_PROPERTIES"], + "OFFERS_FIELD_CODE" => $arParams["LIST_OFFERS_FIELD_CODE"], + "OFFERS_PROPERTY_CODE" => $arParams["LIST_OFFERS_PROPERTY_CODE"], + "OFFERS_SORT_FIELD" => $arParams["OFFERS_SORT_FIELD"], + "OFFERS_SORT_ORDER" => $arParams["OFFERS_SORT_ORDER"], + "OFFERS_LIMIT" => $arParams["LIST_OFFERS_LIMIT"], + "SECTION_URL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["section"], + "DETAIL_URL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["element"], + "BASKET_URL" => $arParams["BASKET_URL"], + "ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"], + "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"], + "PRODUCT_QUANTITY_VARIABLE" => $arParams["PRODUCT_QUANTITY_VARIABLE"], + "PRODUCT_PROPS_VARIABLE" => $arParams["PRODUCT_PROPS_VARIABLE"], + "SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"], + "CACHE_TYPE" => $arParams["CACHE_TYPE"], + "CACHE_TIME" => $arParams["CACHE_TIME"], + "DISPLAY_COMPARE" => $arParams["USE_COMPARE"], + "PRICE_CODE" => $arParams["PRICE_CODE"], + "USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"], + "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"], + "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"], + "PRODUCT_PROPERTIES" => $arParams["PRODUCT_PROPERTIES"], + "USE_PRODUCT_QUANTITY" => $arParams["USE_PRODUCT_QUANTITY"], + "CONVERT_CURRENCY" => $arParams["CONVERT_CURRENCY"], + "CURRENCY_ID" => $arParams["CURRENCY_ID"], + "DISPLAY_TOP_PAGER" => $arParams["DISPLAY_TOP_PAGER"], + "DISPLAY_BOTTOM_PAGER" => $arParams["DISPLAY_BOTTOM_PAGER"], + "PAGER_TITLE" => $arParams["PAGER_TITLE"], + "PAGER_SHOW_ALWAYS" => $arParams["PAGER_SHOW_ALWAYS"], + "PAGER_TEMPLATE" => $arParams["PAGER_TEMPLATE"], + "PAGER_DESC_NUMBERING" => $arParams["PAGER_DESC_NUMBERING"], + "PAGER_DESC_NUMBERING_CACHE_TIME" => $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"], + "PAGER_SHOW_ALL" => $arParams["PAGER_SHOW_ALL"], + "FILTER_NAME" => "arrFilter", + "SECTION_ID" => "", + "SECTION_CODE" => "", + "SECTION_USER_FIELDS" => array(), + "INCLUDE_SUBSECTIONS" => "Y", + "SHOW_ALL_WO_SECTION" => "Y", + "META_KEYWORDS" => "", + "META_DESCRIPTION" => "", + "BROWSER_TITLE" => "", + "ADD_SECTIONS_CHAIN" => "N", + "SET_TITLE" => "N", + "SET_STATUS_404" => "N", + "CACHE_FILTER" => "N", + "CACHE_GROUPS" => "N", + ), + $component +); +?> \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/.parameters.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/.parameters.php new file mode 100644 index 0000000..d30d3f0 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/.parameters.php @@ -0,0 +1,640 @@ + 0); + +$defaultValue = array('-' => GetMessage('CP_BCS_TPL_PROP_EMPTY')); +$arSKU = false; +$boolSKU = false; +$filterDataValues = array(); +if ($boolCatalog && (isset($arCurrentValues['IBLOCK_ID']) && 0 < intval($arCurrentValues['IBLOCK_ID']))) +{ + $arSKU = CCatalogSku::GetInfoByProductIBlock($arCurrentValues['IBLOCK_ID']); + $boolSKU = !empty($arSKU) && is_array($arSKU); + $filterDataValues['iblockId'] = (int)$arCurrentValues['IBLOCK_ID']; + if ($boolSKU) + { + $filterDataValues['offersIblockId'] = $arSKU['IBLOCK_ID']; + } +} + +$arThemes = array(); +if (ModuleManager::isModuleInstalled('bitrix.eshop')) +{ + $arThemes['site'] = GetMessage('CP_BCS_TPL_THEME_SITE'); +} + +$arThemesList = array( + 'blue' => GetMessage('CP_BCS_TPL_THEME_BLUE'), + 'green' => GetMessage('CP_BCS_TPL_THEME_GREEN'), + 'red' => GetMessage('CP_BCS_TPL_THEME_RED'), + 'yellow' => GetMessage('CP_BCS_TPL_THEME_YELLOW') +); +$dir = trim(preg_replace("'[\\\\/]+'", '/', __DIR__.'/themes/')); +if (is_dir($dir)) +{ + foreach ($arThemesList as $themeID => $themeName) + { + if (!is_file($dir.$themeID.'/style.css')) + continue; + + $arThemes[$themeID] = $themeName; + } +} + +$arTemplateParameters['TEMPLATE_THEME'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_TEMPLATE_THEME'), + 'TYPE' => 'LIST', + 'VALUES' => $arThemes, + 'DEFAULT' => 'blue', + 'ADDITIONAL_VALUES' => 'Y' +); + +$lineElementCount = (int)($arCurrentValues['LINE_ELEMENT_COUNT'] ?? 3); +$pageElementCount = (int)($arCurrentValues['PAGE_ELEMENT_COUNT'] ?? 18); + +$arTemplateParameters['PRODUCT_ROW_VARIANTS'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_ROW_VARIANTS'), + 'TYPE' => 'CUSTOM', + 'BIG_DATA' => \Bitrix\Main\Analytics\Catalog::isOn() ? 'Y' : 'N', + 'COUNT_PARAM_NAME' => 'PAGE_ELEMENT_COUNT', + 'JS_FILE' => CatalogSectionComponent::getSettingsScript($componentPath, 'dragdrop_add'), + 'JS_EVENT' => 'initDraggableAddControl', + 'JS_MESSAGES' => Json::encode(array( + 'variant' => GetMessage('CP_BCS_TPL_SETTINGS_VARIANT'), + 'delete' => GetMessage('CP_BCS_TPL_SETTINGS_DELETE'), + 'quantity' => GetMessage('CP_BCS_TPL_SETTINGS_QUANTITY'), + 'quantityBigData' => GetMessage('CP_BCS_TPL_SETTINGS_QUANTITY_BIG_DATA') + )), + 'JS_DATA' => Json::encode(CatalogSectionComponent::getTemplateVariantsMap()), + 'DEFAULT' => Json::encode(CatalogSectionComponent::predictRowVariants($lineElementCount, $pageElementCount)) +); + +$arTemplateParameters['ENLARGE_PRODUCT'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_ENLARGE_PRODUCT'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N', + 'VALUES' => array( + 'STRICT' => GetMessage('CP_BCS_TPL_ENLARGE_PRODUCT_STRICT'), + 'PROP' => GetMessage('CP_BCS_TPL_ENLARGE_PRODUCT_PROP') + ) +); + +$arTemplateParameters['PRODUCT_BLOCKS_ORDER'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCKS_ORDER'), + 'TYPE' => 'CUSTOM', + 'JS_FILE' => CatalogSectionComponent::getSettingsScript($componentPath, 'dragdrop_order'), + 'JS_EVENT' => 'initDraggableOrderControl', + 'JS_DATA' => Json::encode(array( + 'price' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_PRICE'), + 'quantityLimit' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_QUANTITY_LIMIT'), + 'quantity' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_QUANTITY'), + 'buttons' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_BUTTONS'), + 'props' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_PROPS'), + 'sku' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_SKU') + )), + 'DEFAULT' => 'price,props,sku,quantityLimit,quantity,buttons' +); + +$arTemplateParameters['SHOW_SLIDER'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_SLIDER'), + 'TYPE' => 'CHECKBOX', + 'MULTIPLE' => 'N', + 'REFRESH' => 'Y', + 'DEFAULT' => 'Y' +); + +if (isset($arCurrentValues['SHOW_SLIDER']) && $arCurrentValues['SHOW_SLIDER'] === 'Y') +{ + $arTemplateParameters['SLIDER_INTERVAL'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SLIDER_INTERVAL'), + 'TYPE' => 'TEXT', + 'MULTIPLE' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '3000' + ); + $arTemplateParameters['SLIDER_PROGRESS'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SLIDER_PROGRESS'), + 'TYPE' => 'CHECKBOX', + 'MULTIPLE' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => 'N' + ); +} + +$arAllPropList = array(); +$arFilePropList = $defaultValue; +$arListPropList = array(); + +if ($iblockExists) +{ + $rsProps = CIBlockProperty::GetList( + array('SORT' => 'ASC', 'ID' => 'ASC'), + array('IBLOCK_ID' => $arCurrentValues['IBLOCK_ID'], 'ACTIVE' => 'Y') + ); + while ($arProp = $rsProps->Fetch()) + { + $strPropName = '['.$arProp['ID'].']'.('' != $arProp['CODE'] ? '['.$arProp['CODE'].']' : '').' '.$arProp['NAME']; + + if ($arProp['CODE'] == '') + { + $arProp['CODE'] = $arProp['ID']; + } + + $arAllPropList[$arProp['CODE']] = $strPropName; + + if ($arProp['PROPERTY_TYPE'] === 'F') + { + $arFilePropList[$arProp['CODE']] = $strPropName; + } + + if ($arProp['PROPERTY_TYPE'] === 'L') + { + $arListPropList[$arProp['CODE']] = $strPropName; + } + } + + $showedProperties = []; + if ($usePropertyFeatures) + { + if ($iblockExists) + { + $showedProperties = Iblock\Model\PropertyFeature::getListPageShowPropertyCodes( + $arCurrentValues['IBLOCK_ID'], + ['CODE' => 'Y'] + ); + if ($showedProperties === null) + $showedProperties = []; + } + } + else + { + if (!empty($arCurrentValues['PROPERTY_CODE']) && is_array($arCurrentValues['PROPERTY_CODE'])) + { + $showedProperties = $arCurrentValues['PROPERTY_CODE']; + } + } + if (!empty($showedProperties)) + { + $selected = array(); + + foreach ($showedProperties as $code) + { + if (isset($arAllPropList[$code])) + { + $selected[$code] = $arAllPropList[$code]; + } + } + + $arTemplateParameters['PROPERTY_CODE_MOBILE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PROPERTY_CODE_MOBILE'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'Y', + 'VALUES' => $selected + ); + } + unset($showedProperties); + + if (isset($arCurrentValues['ENLARGE_PRODUCT']) && $arCurrentValues['ENLARGE_PRODUCT'] === 'PROP') + { + $arTemplateParameters['ENLARGE_PROP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_ENLARGE_PROP'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '-', + 'VALUES' => $defaultValue + $arListPropList + ); + } + + if ($boolSKU) + { + $arTemplateParameters['PRODUCT_DISPLAY_MODE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_DISPLAY_MODE'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N', + 'VALUES' => array( + 'N' => GetMessage('CP_BCS_TPL_DML_SIMPLE'), + 'Y' => GetMessage('CP_BCS_TPL_DML_EXT') + ) + ); + } + + $arTemplateParameters['ADD_PICT_PROP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_ADD_PICT_PROP'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '-', + 'VALUES' => $arFilePropList + ); + + $arTemplateParameters['LABEL_PROP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_LABEL_PROP'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'Y', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'Y', + 'VALUES' => $arListPropList + ); + + if (isset($arCurrentValues['LABEL_PROP']) && !empty($arCurrentValues['LABEL_PROP'])) + { + if (!is_array($arCurrentValues['LABEL_PROP'])) + { + $arCurrentValues['LABEL_PROP'] = array($arCurrentValues['LABEL_PROP']); + } + + $selected = array(); + foreach ($arCurrentValues['LABEL_PROP'] as $name) + { + if (isset($arListPropList[$name])) + { + $selected[$name] = $arListPropList[$name]; + } + } + + $arTemplateParameters['LABEL_PROP_MOBILE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_LABEL_PROP_MOBILE'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'Y', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'VALUES' => $selected + ); + unset($selected); + + $arTemplateParameters['LABEL_PROP_POSITION'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_LABEL_PROP_POSITION'), + 'TYPE' => 'CUSTOM', + 'JS_FILE' => CatalogSectionComponent::getSettingsScript($componentPath, 'position'), + 'JS_EVENT' => 'initPositionControl', + 'JS_DATA' => Json::encode( + array( + 'positions' => array( + 'top-left', 'top-center', 'top-right', + 'middle-left', 'middle-center', 'middle-right', + 'bottom-left', 'bottom-center', 'bottom-right' + ), + 'className' => '' + ) + ), + 'DEFAULT' => 'top-left' + ); + } + + if ($boolSKU && isset($arCurrentValues['PRODUCT_DISPLAY_MODE']) && 'Y' == $arCurrentValues['PRODUCT_DISPLAY_MODE']) + { + $arAllOfferPropList = array(); + $arFileOfferPropList = $arTreeOfferPropList = $defaultValue; + $rsProps = CIBlockProperty::GetList( + array('SORT' => 'ASC', 'ID' => 'ASC'), + array('IBLOCK_ID' => $arSKU['IBLOCK_ID'], 'ACTIVE' => 'Y') + ); + while ($arProp = $rsProps->Fetch()) + { + if ($arProp['ID'] == $arSKU['SKU_PROPERTY_ID']) + continue; + $arProp['USER_TYPE'] = (string)$arProp['USER_TYPE']; + $strPropName = '['.$arProp['ID'].']'.('' != $arProp['CODE'] ? '['.$arProp['CODE'].']' : '').' '.$arProp['NAME']; + if ('' == $arProp['CODE']) + $arProp['CODE'] = $arProp['ID']; + $arAllOfferPropList[$arProp['CODE']] = $strPropName; + if ('F' == $arProp['PROPERTY_TYPE']) + $arFileOfferPropList[$arProp['CODE']] = $strPropName; + if ('N' != $arProp['MULTIPLE']) + continue; + if ( + 'L' == $arProp['PROPERTY_TYPE'] + || 'E' == $arProp['PROPERTY_TYPE'] + || ('S' == $arProp['PROPERTY_TYPE'] && 'directory' == $arProp['USER_TYPE'] && CIBlockPriceTools::checkPropDirectory($arProp)) + ) + $arTreeOfferPropList[$arProp['CODE']] = $strPropName; + } + $arTemplateParameters['OFFER_ADD_PICT_PROP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_OFFER_ADD_PICT_PROP'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '-', + 'VALUES' => $arFileOfferPropList + ); + if (!$usePropertyFeatures) + { + $arTemplateParameters['OFFER_TREE_PROPS'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_OFFER_TREE_PROPS'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'Y', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '-', + 'VALUES' => $arTreeOfferPropList + ); + } + } +} + +if ($boolCatalog) +{ + $arTemplateParameters['PRODUCT_SUBSCRIPTION'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_SUBSCRIPTION'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'Y' + ); + $arTemplateParameters['SHOW_DISCOUNT_PERCENT'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_DISCOUNT_PERCENT'), + 'TYPE' => 'CHECKBOX', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N' + ); + + if (isset($arCurrentValues['SHOW_DISCOUNT_PERCENT']) && $arCurrentValues['SHOW_DISCOUNT_PERCENT'] === 'Y') + { + $arTemplateParameters['DISCOUNT_PERCENT_POSITION'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_DISCOUNT_PERCENT_POSITION'), + 'TYPE' => 'CUSTOM', + 'JS_FILE' => CatalogSectionComponent::getSettingsScript($componentPath, 'position'), + 'JS_EVENT' => 'initPositionControl', + 'JS_DATA' => Json::encode( + array( + 'positions' => array( + 'top-left', 'top-center', 'top-right', + 'middle-left', 'middle-center', 'middle-right', + 'bottom-left', 'bottom-center', 'bottom-right' + ), + 'className' => 'bx-pos-parameter-block-circle' + ) + ), + 'DEFAULT' => 'bottom-right' + ); + } + + $arTemplateParameters['SHOW_OLD_PRICE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_OLD_PRICE'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'N' + ); + $arTemplateParameters['SHOW_MAX_QUANTITY'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_MAX_QUANTITY'), + 'TYPE' => 'LIST', + 'REFRESH' => 'Y', + 'MULTIPLE' => 'N', + 'VALUES' => array( + 'N' => GetMessage('CP_BCS_TPL_SHOW_MAX_QUANTITY_N'), + 'Y' => GetMessage('CP_BCS_TPL_SHOW_MAX_QUANTITY_Y'), + 'M' => GetMessage('CP_BCS_TPL_SHOW_MAX_QUANTITY_M') + ), + 'DEFAULT' => array('N'), + ); + + if (isset($arCurrentValues['SHOW_MAX_QUANTITY'])) + { + if ($arCurrentValues['SHOW_MAX_QUANTITY'] !== 'N') + { + $arTemplateParameters['MESS_SHOW_MAX_QUANTITY'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_SHOW_MAX_QUANTITY'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_SHOW_MAX_QUANTITY_DEFAULT') + ); + } + + if ($arCurrentValues['SHOW_MAX_QUANTITY'] === 'M') + { + $arTemplateParameters['RELATIVE_QUANTITY_FACTOR'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_RELATIVE_QUANTITY_FACTOR'), + 'TYPE' => 'STRING', + 'DEFAULT' => '5' + ); + $arTemplateParameters['MESS_RELATIVE_QUANTITY_MANY'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_RELATIVE_QUANTITY_MANY'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_RELATIVE_QUANTITY_MANY_DEFAULT') + ); + $arTemplateParameters['MESS_RELATIVE_QUANTITY_FEW'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_RELATIVE_QUANTITY_FEW'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_RELATIVE_QUANTITY_FEW_DEFAULT') + ); + } + } + + $arTemplateParameters['ADD_TO_BASKET_ACTION'] = array( + 'PARENT' => 'BASKET', + 'NAME' => GetMessage('CP_BCS_TPL_ADD_TO_BASKET_ACTION'), + 'TYPE' => 'LIST', + 'VALUES' => array( + 'ADD' => GetMessage('ADD_TO_BASKET_ACTION_ADD'), + 'BUY' => GetMessage('ADD_TO_BASKET_ACTION_BUY') + ), + 'DEFAULT' => 'ADD', + 'REFRESH' => 'N' + ); + $arTemplateParameters['SHOW_CLOSE_POPUP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_CLOSE_POPUP'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'N', + ); +} + +$arTemplateParameters['MESS_BTN_BUY'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_BUY'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_BUY_DEFAULT') +); + +$arTemplateParameters['LAZY_LOAD'] = array( + 'PARENT' => 'PAGER_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_LAZY_LOAD'), + 'TYPE' => 'CHECKBOX', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N' +); + +$arTemplateParameters['MESS_BTN_LAZY_LOAD'] = array( + 'PARENT' => 'PAGER_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_LAZY_LOAD'), + 'TYPE' => 'TEXT', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_LAZY_LOAD_DEFAULT'), + 'HIDDEN' => (isset($arCurrentValues['LAZY_LOAD']) && $arCurrentValues['LAZY_LOAD'] === 'Y' ? 'N' : 'Y') +); + +$arTemplateParameters['LOAD_ON_SCROLL'] = array( + 'PARENT' => 'PAGER_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_LOAD_ON_SCROLL'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'N', + 'HIDDEN' => ( + (isset($arCurrentValues['LAZY_LOAD']) && $arCurrentValues['LAZY_LOAD'] === 'Y') + || (isset($arCurrentValues['DISPLAY_TOP_PAGER']) && $arCurrentValues['DISPLAY_TOP_PAGER'] === 'Y') + || (!isset($arCurrentValues['DISPLAY_BOTTOM_PAGER']) || $arCurrentValues['DISPLAY_BOTTOM_PAGER'] !== 'N') + ? 'N' + : 'Y' + ) +); + +$arTemplateParameters['MESS_BTN_ADD_TO_BASKET'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_ADD_TO_BASKET'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_ADD_TO_BASKET_DEFAULT') +); +$arTemplateParameters['MESS_BTN_SUBSCRIBE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_SUBSCRIBE'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_SUBSCRIBE_DEFAULT') +); + +if (isset($arCurrentValues['DISPLAY_COMPARE']) && $arCurrentValues['DISPLAY_COMPARE'] === 'Y') +{ + $arTemplateParameters['MESS_BTN_COMPARE'] = array( + 'PARENT' => 'COMPARE', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_COMPARE'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_COMPARE_DEFAULT') + ); + $arTemplateParameters['COMPARE_NAME'] = array( + 'PARENT' => 'COMPARE', + 'NAME' => GetMessage('CP_BCS_TPL_COMPARE_NAME'), + 'TYPE' => 'STRING', + 'DEFAULT' => 'CATALOG_COMPARE_LIST' + ); +} + +$arTemplateParameters['MESS_BTN_DETAIL'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_DETAIL'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_DETAIL_DEFAULT') +); +$arTemplateParameters['MESS_NOT_AVAILABLE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_NOT_AVAILABLE'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_NOT_AVAILABLE_DEFAULT') +); +$arTemplateParameters['MESS_NOT_AVAILABLE_SERVICE'] = [ + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_NOT_AVAILABLE_SERVICE'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_NOT_AVAILABLE_SERVICE_DEFAULT'), +]; + +if (\Bitrix\Main\Analytics\Catalog::isOn()) +{ + $arTemplateParameters['RCM_TYPE'] = array( + 'PARENT' => 'BIG_DATA_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_TYPE_TITLE'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'VALUES' => array( + // personal + 'personal' => GetMessage('CP_BCS_TPL_PERSONAL'), + // general + 'bestsell' => GetMessage('CP_BCS_TPL_BESTSELLERS'), + // item2item + 'similar_sell' => GetMessage('CP_BCS_TPL_SOLD_WITH'), + 'similar_view' => GetMessage('CP_BCS_TPL_VIEWED_WITH'), + 'similar' => GetMessage('CP_BCS_TPL_SIMILAR'), + // randomly distributed + 'any_similar' => GetMessage('CP_BCS_TPL_SIMILAR_ANY'), + 'any_personal' => GetMessage('CP_BCS_TPL_PERSONAL_WBEST'), + 'any' => GetMessage('CP_BCS_TPL_RAND') + ), + 'DEFAULT' => 'personal' + ); + $arTemplateParameters['RCM_PROD_ID'] = array( + 'PARENT' => 'BIG_DATA_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_ID_PARAM'), + 'TYPE' => 'STRING', + 'DEFAULT' => '={$_REQUEST["PRODUCT_ID"]}' + ); + $arTemplateParameters['SHOW_FROM_SECTION'] = array( + 'PARENT' => 'BIG_DATA_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_FROM_SECTION'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'N' + ); +} + +$arTemplateParameters['USE_ENHANCED_ECOMMERCE'] = array( + 'PARENT' => 'ANALYTICS_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_USE_ENHANCED_ECOMMERCE'), + 'TYPE' => 'CHECKBOX', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N' +); + +if (isset($arCurrentValues['USE_ENHANCED_ECOMMERCE']) && $arCurrentValues['USE_ENHANCED_ECOMMERCE'] === 'Y') +{ + $arTemplateParameters['DATA_LAYER_NAME'] = array( + 'PARENT' => 'ANALYTICS_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_DATA_LAYER_NAME'), + 'TYPE' => 'STRING', + 'DEFAULT' => 'dataLayer' + ); + $arTemplateParameters['BRAND_PROPERTY'] = array( + 'PARENT' => 'ANALYTICS_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_BRAND_PROPERTY'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'DEFAULT' => '', + 'VALUES' => $defaultValue + $arAllPropList + ); +} diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/component_epilog.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/component_epilog.php new file mode 100644 index 0000000..a25fea5 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/component_epilog.php @@ -0,0 +1,63 @@ +SetAdditionalCSS($templateFolder.'/themes/'.$templateData['TEMPLATE_THEME'].'/style.css'); + $APPLICATION->SetAdditionalCSS('/bitrix/css/main/themes/'.$templateData['TEMPLATE_THEME'].'/style.css', true); +} + +if (!empty($templateData['TEMPLATE_LIBRARY'])) +{ + $loadCurrency = false; + if (!empty($templateData['CURRENCIES'])) + { + $loadCurrency = \Bitrix\Main\Loader::includeModule('currency'); + } + + CJSCore::Init($templateData['TEMPLATE_LIBRARY']); + + if ($loadCurrency) + { + ?> + + getRequest(); +if ($request->isAjaxRequest() && ($request->get('action') === 'showMore' || $request->get('action') === 'deferredLoad')) +{ + $content = ob_get_contents(); + ob_end_clean(); + + [, $itemsContainer] = explode('', $content); + $paginationContainer = ''; + if ($templateData['USE_PAGINATION_CONTAINER']) + { + [, $paginationContainer] = explode('', $content); + } + [, $epilogue] = explode('', $content); + + if (isset($arParams['AJAX_MODE']) && $arParams['AJAX_MODE'] === 'Y') + { + $component->prepareLinks($paginationContainer); + } + + $component::sendJsonAnswer(array( + 'items' => $itemsContainer, + 'pagination' => $paginationContainer, + 'epilogue' => $epilogue, + )); +} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/functions.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/functions.php new file mode 100644 index 0000000..4aa9b01 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/functions.php @@ -0,0 +1,107 @@ + false, + 'SECOND_PICT' => false + ); + + if (!empty($item) && is_array($item)) + { + if (!empty($item['PREVIEW_PICTURE'])) + { + if (!is_array($item['PREVIEW_PICTURE'])) + $item['PREVIEW_PICTURE'] = CFile::GetFileArray($item['PREVIEW_PICTURE']); + if (isset($item['PREVIEW_PICTURE']['ID'])) + { + $result['PICT'] = array( + 'ID' => intval($item['PREVIEW_PICTURE']['ID']), + 'SRC' => $item['PREVIEW_PICTURE']['SRC'], + 'WIDTH' => intval($item['PREVIEW_PICTURE']['WIDTH']), + 'HEIGHT' => intval($item['PREVIEW_PICTURE']['HEIGHT']) + ); + } + } + if (!empty($item['DETAIL_PICTURE'])) + { + $keyPict = (empty($result['PICT']) ? 'PICT' : 'SECOND_PICT'); + if (!is_array($item['DETAIL_PICTURE'])) + $item['DETAIL_PICTURE'] = CFile::GetFileArray($item['DETAIL_PICTURE']); + if (isset($item['DETAIL_PICTURE']['ID'])) + { + $result[$keyPict] = array( + 'ID' => intval($item['DETAIL_PICTURE']['ID']), + 'SRC' => $item['DETAIL_PICTURE']['SRC'], + 'WIDTH' => intval($item['DETAIL_PICTURE']['WIDTH']), + 'HEIGHT' => intval($item['DETAIL_PICTURE']['HEIGHT']) + ); + } + } + if (empty($result['SECOND_PICT'])) + { + if ( + '' != $propertyCode && + isset($item['PROPERTIES'][$propertyCode]) && + 'F' == $item['PROPERTIES'][$propertyCode]['PROPERTY_TYPE'] + ) + { + if ( + isset($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) && + !empty($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) + ) + { + $fileValues = ( + isset($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']['ID']) ? + array(0 => $item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) : + $item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE'] + ); + foreach ($fileValues as &$oneFileValue) + { + $keyPict = (empty($result['PICT']) ? 'PICT' : 'SECOND_PICT'); + $result[$keyPict] = array( + 'ID' => intval($oneFileValue['ID']), + 'SRC' => $oneFileValue['SRC'], + 'WIDTH' => intval($oneFileValue['WIDTH']), + 'HEIGHT' => intval($oneFileValue['HEIGHT']) + ); + if ('SECOND_PICT' == $keyPict) + break; + } + if (isset($oneFileValue)) + unset($oneFileValue); + } + else + { + $propValues = $item['PROPERTIES'][$propertyCode]['VALUE']; + if (!is_array($propValues)) + $propValues = array($propValues); + foreach ($propValues as &$oneValue) + { + $oneFileValue = CFile::GetFileArray($oneValue); + if (isset($oneFileValue['ID'])) + { + $keyPict = (empty($result['PICT']) ? 'PICT' : 'SECOND_PICT'); + $result[$keyPict] = array( + 'ID' => intval($oneFileValue['ID']), + 'SRC' => $oneFileValue['SRC'], + 'WIDTH' => intval($oneFileValue['WIDTH']), + 'HEIGHT' => intval($oneFileValue['HEIGHT']) + ); + if ('SECOND_PICT' == $keyPict) + break; + } + } + if (isset($oneValue)) + unset($oneValue); + } + } + } + } + return $result; + } +} +?> \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/result_modifier.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/result_modifier.php new file mode 100644 index 0000000..ec7bbbf --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/result_modifier.php @@ -0,0 +1,9 @@ +getComponent(); +$arParams = $component->applyTemplateModifications(); \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.js b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.js new file mode 100644 index 0000000..5f264ce --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.js @@ -0,0 +1,359 @@ +(function() { + 'use strict'; + + if (!!window.JCCatalogSectionComponent) + return; + + window.JCCatalogSectionComponent = function(params) { + this.formPosting = false; + this.siteId = params.siteId || ''; + this.ajaxId = params.ajaxId || ''; + this.template = params.template || ''; + this.componentPath = params.componentPath || ''; + this.parameters = params.parameters || ''; + + if (params.navParams) + { + this.navParams = { + NavNum: params.navParams.NavNum || 1, + NavPageNomer: parseInt(params.navParams.NavPageNomer) || 1, + NavPageCount: parseInt(params.navParams.NavPageCount) || 1 + }; + } + + this.bigData = params.bigData || {enabled: false}; + this.container = document.querySelector('[data-entity="' + params.container + '"]'); + this.showMoreButton = null; + this.showMoreButtonMessage = null; + + if (this.bigData.enabled && BX.util.object_keys(this.bigData.rows).length > 0) + { + BX.cookie_prefix = this.bigData.js.cookiePrefix || ''; + BX.cookie_domain = this.bigData.js.cookieDomain || ''; + BX.current_server_time = this.bigData.js.serverTime; + + BX.ready(BX.delegate(this.bigDataLoad, this)); + } + + if (params.initiallyShowHeader) + { + BX.ready(BX.delegate(this.showHeader, this)); + } + + if (params.deferredLoad) + { + BX.ready(BX.delegate(this.deferredLoad, this)); + } + + if (params.lazyLoad) + { + this.showMoreButton = document.querySelector('[data-use="show-more-' + this.navParams.NavNum + '"]'); + this.showMoreButtonMessage = this.showMoreButton.innerHTML; + BX.bind(this.showMoreButton, 'click', BX.proxy(this.showMore, this)); + } + + if (params.loadOnScroll) + { + BX.bind(window, 'scroll', BX.proxy(this.loadOnScroll, this)); + } + }; + + window.JCCatalogSectionComponent.prototype = + { + checkButton: function() + { + if (this.showMoreButton) + { + if (this.navParams.NavPageNomer == this.navParams.NavPageCount) + { + BX.remove(this.showMoreButton); + } + else + { + this.container.appendChild(this.showMoreButton); + } + } + }, + + enableButton: function() + { + if (this.showMoreButton) + { + BX.removeClass(this.showMoreButton, 'disabled'); + this.showMoreButton.innerHTML = this.showMoreButtonMessage; + } + }, + + disableButton: function() + { + if (this.showMoreButton) + { + BX.addClass(this.showMoreButton, 'disabled'); + this.showMoreButton.innerHTML = BX.message('BTN_MESSAGE_LAZY_LOAD_WAITER'); + } + }, + + loadOnScroll: function() + { + var scrollTop = BX.GetWindowScrollPos().scrollTop, + containerBottom = BX.pos(this.container).bottom; + + if (scrollTop + window.innerHeight > containerBottom) + { + this.showMore(); + } + }, + + showMore: function() + { + if (this.navParams.NavPageNomer < this.navParams.NavPageCount) + { + var data = {}; + data['action'] = 'showMore'; + data['PAGEN_' + this.navParams.NavNum] = this.navParams.NavPageNomer + 1; + + if (!this.formPosting) + { + this.formPosting = true; + this.disableButton(); + this.sendRequest(data); + } + } + }, + + bigDataLoad: function() + { + var url = 'https://analytics.bitrix.info/crecoms/v1_0/recoms.php', + data = BX.ajax.prepareData(this.bigData.params); + + if (data) + { + url += (url.indexOf('?') !== -1 ? '&' : '?') + data; + } + + var onReady = BX.delegate(function(result){ + this.sendRequest({ + action: 'deferredLoad', + bigData: 'Y', + items: result && result.items || [], + rid: result && result.id, + count: this.bigData.count, + rowsRange: this.bigData.rowsRange, + shownIds: this.bigData.shownIds + }); + }, this); + + BX.ajax({ + method: 'GET', + dataType: 'json', + url: url, + timeout: 3, + onsuccess: onReady, + onfailure: onReady + }); + }, + + deferredLoad: function() + { + this.sendRequest({action: 'deferredLoad'}); + }, + + sendRequest: function(data) + { + var defaultData = { + siteId: this.siteId, + template: this.template, + parameters: this.parameters + }; + + if (this.ajaxId) + { + defaultData.AJAX_ID = this.ajaxId; + } + + BX.ajax({ + url: this.componentPath + '/ajax.php' + (document.location.href.indexOf('clear_cache=Y') !== -1 ? '?clear_cache=Y' : ''), + method: 'POST', + dataType: 'json', + timeout: 60, + data: BX.merge(defaultData, data), + onsuccess: BX.delegate(function(result){ + if (!result || !result.JS) + return; + + BX.ajax.processScripts( + BX.processHTML(result.JS).SCRIPT, + false, + BX.delegate(function(){this.showAction(result, data);}, this) + ); + }, this) + }); + }, + + showAction: function(result, data) + { + if (!data) + return; + + switch (data.action) + { + case 'showMore': + this.processShowMoreAction(result); + break; + case 'deferredLoad': + this.processDeferredLoadAction(result, data.bigData === 'Y'); + break; + } + }, + + processShowMoreAction: function(result) + { + this.formPosting = false; + this.enableButton(); + + if (result) + { + this.navParams.NavPageNomer++; + this.processItems(result.items); + this.processPagination(result.pagination); + this.processEpilogue(result.epilogue); + this.checkButton(); + } + }, + + processDeferredLoadAction: function(result, bigData) + { + if (!result) + return; + + var position = bigData ? this.bigData.rows : {}; + + this.processItems(result.items, BX.util.array_keys(position)); + }, + + processItems: function(itemsHtml, position) + { + if (!itemsHtml) + return; + + var processed = BX.processHTML(itemsHtml, false), + temporaryNode = BX.create('DIV'); + + var items, k, origRows; + + temporaryNode.innerHTML = processed.HTML; + items = temporaryNode.querySelectorAll('[data-entity="items-row"]'); + + if (items.length) + { + this.showHeader(true); + + for (k in items) + { + if (items.hasOwnProperty(k)) + { + origRows = position ? this.container.querySelectorAll('[data-entity="items-row"]') : false; + items[k].style.opacity = 0; + + if (origRows && BX.type.isDomNode(origRows[position[k]])) + { + origRows[position[k]].parentNode.insertBefore(items[k], origRows[position[k]]); + } + else + { + this.container.appendChild(items[k]); + } + } + } + + new BX.easing({ + duration: 2000, + start: {opacity: 0}, + finish: {opacity: 100}, + transition: BX.easing.makeEaseOut(BX.easing.transitions.quad), + step: function(state){ + for (var k in items) + { + if (items.hasOwnProperty(k)) + { + items[k].style.opacity = state.opacity / 100; + } + } + }, + complete: function(){ + for (var k in items) + { + if (items.hasOwnProperty(k)) + { + items[k].removeAttribute('style'); + } + } + } + }).animate(); + } + + BX.ajax.processScripts(processed.SCRIPT); + }, + + processPagination: function(paginationHtml) + { + if (!paginationHtml) + return; + + var pagination = document.querySelectorAll('[data-pagination-num="' + this.navParams.NavNum + '"]'); + for (var k in pagination) + { + if (pagination.hasOwnProperty(k)) + { + pagination[k].innerHTML = paginationHtml; + } + } + }, + + processEpilogue: function(epilogueHtml) + { + if (!epilogueHtml) + return; + + var processed = BX.processHTML(epilogueHtml, false); + BX.ajax.processScripts(processed.SCRIPT); + }, + + showHeader: function(animate) + { + var parentNode = BX.findParent(this.container, {attr: {'data-entity': 'parent-container'}}), + header; + + if (parentNode && BX.type.isDomNode(parentNode)) + { + header = parentNode.querySelector('[data-entity="header"]'); + + if (header && header.getAttribute('data-showed') != 'true') + { + header.style.display = ''; + + if (animate) + { + new BX.easing({ + duration: 2000, + start: {opacity: 0}, + finish: {opacity: 100}, + transition: BX.easing.makeEaseOut(BX.easing.transitions.quad), + step: function(state){ + header.style.opacity = state.opacity / 100; + }, + complete: function(){ + header.removeAttribute('style'); + header.setAttribute('data-showed', 'true'); + } + }).animate(); + } + else + { + header.style.opacity = 100; + } + } + } + } + }; +})(); \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.map.js b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.map.js new file mode 100644 index 0000000..2beed40 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.map.js @@ -0,0 +1 @@ +{"version":3,"sources":["script.js"],"names":["window","JCCatalogSectionComponent","params","this","formPosting","siteId","ajaxId","template","componentPath","parameters","navParams","NavNum","NavPageNomer","parseInt","NavPageCount","bigData","enabled","container","document","querySelector","showMoreButton","showMoreButtonMessage","BX","util","object_keys","rows","length","cookie_prefix","js","cookiePrefix","cookie_domain","cookieDomain","current_server_time","serverTime","ready","delegate","bigDataLoad","initiallyShowHeader","showHeader","deferredLoad","lazyLoad","innerHTML","bind","proxy","showMore","loadOnScroll","prototype","checkButton","remove","appendChild","enableButton","removeClass","disableButton","addClass","message","scrollTop","GetWindowScrollPos","containerBottom","pos","bottom","innerHeight","data","sendRequest","url","ajax","prepareData","indexOf","onReady","result","action","items","rid","id","count","rowsRange","shownIds","method","dataType","timeout","onsuccess","onfailure","defaultData","AJAX_ID","location","href","merge","JS","processScripts","processHTML","SCRIPT","showAction","processShowMoreAction","processDeferredLoadAction","processItems","processPagination","pagination","processEpilogue","epilogue","position","array_keys","itemsHtml","processed","temporaryNode","create","k","origRows","HTML","querySelectorAll","hasOwnProperty","style","opacity","type","isDomNode","parentNode","insertBefore","easing","duration","start","finish","transition","makeEaseOut","transitions","quad","step","state","complete","removeAttribute","animate","paginationHtml","epilogueHtml","findParent","attr","data-entity","header","getAttribute","display","setAttribute"],"mappings":"CAAA,WACC,aAEA,KAAMA,OAAOC,0BACZ,OAEDD,OAAOC,0BAA4B,SAASC,GAC3CC,KAAKC,YAAc,MACnBD,KAAKE,OAASH,EAAOG,QAAU,GAC/BF,KAAKG,OAASJ,EAAOI,QAAU,GAC/BH,KAAKI,SAAWL,EAAOK,UAAY,GACnCJ,KAAKK,cAAgBN,EAAOM,eAAiB,GAC7CL,KAAKM,WAAaP,EAAOO,YAAc,GAEvC,GAAIP,EAAOQ,UACX,CACCP,KAAKO,WACJC,OAAQT,EAAOQ,UAAUC,QAAU,EACnCC,aAAcC,SAASX,EAAOQ,UAAUE,eAAiB,EACzDE,aAAcD,SAASX,EAAOQ,UAAUI,eAAiB,GAI3DX,KAAKY,QAAUb,EAAOa,UAAYC,QAAS,OAC3Cb,KAAKc,UAAYC,SAASC,cAAc,iBAAmBjB,EAAOe,UAAY,MAC9Ed,KAAKiB,eAAiB,KACtBjB,KAAKkB,sBAAwB,KAE7B,GAAIlB,KAAKY,QAAQC,SAAWM,GAAGC,KAAKC,YAAYrB,KAAKY,QAAQU,MAAMC,OAAS,EAC5E,CACCJ,GAAGK,cAAgBxB,KAAKY,QAAQa,GAAGC,cAAgB,GACnDP,GAAGQ,cAAgB3B,KAAKY,QAAQa,GAAGG,cAAgB,GACnDT,GAAGU,oBAAsB7B,KAAKY,QAAQa,GAAGK,WAEzCX,GAAGY,MAAMZ,GAAGa,SAAShC,KAAKiC,YAAajC,OAGxC,GAAID,EAAOmC,oBACX,CACCf,GAAGY,MAAMZ,GAAGa,SAAShC,KAAKmC,WAAYnC,OAGvC,GAAID,EAAOqC,aACX,CACCjB,GAAGY,MAAMZ,GAAGa,SAAShC,KAAKoC,aAAcpC,OAGzC,GAAID,EAAOsC,SACX,CACCrC,KAAKiB,eAAiBF,SAASC,cAAc,wBAA0BhB,KAAKO,UAAUC,OAAS,MAC/FR,KAAKkB,sBAAwBlB,KAAKiB,eAAeqB,UACjDnB,GAAGoB,KAAKvC,KAAKiB,eAAgB,QAASE,GAAGqB,MAAMxC,KAAKyC,SAAUzC,OAG/D,GAAID,EAAO2C,aACX,CACCvB,GAAGoB,KAAK1C,OAAQ,SAAUsB,GAAGqB,MAAMxC,KAAK0C,aAAc1C,SAIxDH,OAAOC,0BAA0B6C,WAEhCC,YAAa,WAEZ,GAAI5C,KAAKiB,eACT,CACC,GAAIjB,KAAKO,UAAUE,cAAgBT,KAAKO,UAAUI,aAClD,CACCQ,GAAG0B,OAAO7C,KAAKiB,oBAGhB,CACCjB,KAAKc,UAAUgC,YAAY9C,KAAKiB,mBAKnC8B,aAAc,WAEb,GAAI/C,KAAKiB,eACT,CACCE,GAAG6B,YAAYhD,KAAKiB,eAAgB,YACpCjB,KAAKiB,eAAeqB,UAAYtC,KAAKkB,wBAIvC+B,cAAe,WAEd,GAAIjD,KAAKiB,eACT,CACCE,GAAG+B,SAASlD,KAAKiB,eAAgB,YACjCjB,KAAKiB,eAAeqB,UAAYnB,GAAGgC,QAAQ,kCAI7CT,aAAc,WAEb,IAAIU,EAAYjC,GAAGkC,qBAAqBD,UACvCE,EAAkBnC,GAAGoC,IAAIvD,KAAKc,WAAW0C,OAE1C,GAAIJ,EAAYvD,OAAO4D,YAAcH,EACrC,CACCtD,KAAKyC,aAIPA,SAAU,WAET,GAAIzC,KAAKO,UAAUE,aAAeT,KAAKO,UAAUI,aACjD,CACC,IAAI+C,KACJA,EAAK,UAAY,WACjBA,EAAK,SAAW1D,KAAKO,UAAUC,QAAUR,KAAKO,UAAUE,aAAe,EAEvE,IAAKT,KAAKC,YACV,CACCD,KAAKC,YAAc,KACnBD,KAAKiD,gBACLjD,KAAK2D,YAAYD,MAKpBzB,YAAa,WAEZ,IAAI2B,EAAM,wDACTF,EAAOvC,GAAG0C,KAAKC,YAAY9D,KAAKY,QAAQb,QAEzC,GAAI2D,EACJ,CACCE,IAAQA,EAAIG,QAAQ,QAAU,EAAI,IAAM,KAAOL,EAGhD,IAAIM,EAAU7C,GAAGa,SAAS,SAASiC,GAClCjE,KAAK2D,aACJO,OAAQ,eACRtD,QAAS,IACTuD,MAAOF,GAAUA,EAAOE,UACxBC,IAAKH,GAAUA,EAAOI,GACtBC,MAAOtE,KAAKY,QAAQ0D,MACpBC,UAAWvE,KAAKY,QAAQ2D,UACxBC,SAAUxE,KAAKY,QAAQ4D,YAEtBxE,MAEHmB,GAAG0C,MACFY,OAAQ,MACRC,SAAU,OACVd,IAAKA,EACLe,QAAS,EACTC,UAAWZ,EACXa,UAAWb,KAIb5B,aAAc,WAEbpC,KAAK2D,aAAaO,OAAQ,kBAG3BP,YAAa,SAASD,GAErB,IAAIoB,GACH5E,OAAQF,KAAKE,OACbE,SAAUJ,KAAKI,SACfE,WAAYN,KAAKM,YAGlB,GAAIN,KAAKG,OACT,CACC2E,EAAYC,QAAU/E,KAAKG,OAG5BgB,GAAG0C,MACFD,IAAK5D,KAAKK,cAAgB,aAAeU,SAASiE,SAASC,KAAKlB,QAAQ,oBAAsB,EAAI,iBAAmB,IACrHU,OAAQ,OACRC,SAAU,OACVC,QAAS,GACTjB,KAAMvC,GAAG+D,MAAMJ,EAAapB,GAC5BkB,UAAWzD,GAAGa,SAAS,SAASiC,GAC/B,IAAKA,IAAWA,EAAOkB,GACtB,OAEDhE,GAAG0C,KAAKuB,eACPjE,GAAGkE,YAAYpB,EAAOkB,IAAIG,OAC1B,MACAnE,GAAGa,SAAS,WAAWhC,KAAKuF,WAAWtB,EAAQP,IAAS1D,QAEvDA,SAILuF,WAAY,SAAStB,EAAQP,GAE5B,IAAKA,EACJ,OAED,OAAQA,EAAKQ,QAEZ,IAAK,WACJlE,KAAKwF,sBAAsBvB,GAC3B,MACD,IAAK,eACJjE,KAAKyF,0BAA0BxB,EAAQP,EAAK9C,UAAY,KACxD,QAIH4E,sBAAuB,SAASvB,GAE/BjE,KAAKC,YAAc,MACnBD,KAAK+C,eAEL,GAAIkB,EACJ,CACCjE,KAAKO,UAAUE,eACfT,KAAK0F,aAAazB,EAAOE,OACzBnE,KAAK2F,kBAAkB1B,EAAO2B,YAC9B5F,KAAK6F,gBAAgB5B,EAAO6B,UAC5B9F,KAAK4C,gBAIP6C,0BAA2B,SAASxB,EAAQrD,GAE3C,IAAKqD,EACJ,OAED,IAAI8B,EAAWnF,EAAUZ,KAAKY,QAAQU,QAEtCtB,KAAK0F,aAAazB,EAAOE,MAAOhD,GAAGC,KAAK4E,WAAWD,KAGpDL,aAAc,SAASO,EAAWF,GAEjC,IAAKE,EACJ,OAED,IAAIC,EAAY/E,GAAGkE,YAAYY,EAAW,OACzCE,EAAgBhF,GAAGiF,OAAO,OAE3B,IAAIjC,EAAOkC,EAAGC,EAEdH,EAAc7D,UAAY4D,EAAUK,KACpCpC,EAAQgC,EAAcK,iBAAiB,6BAEvC,GAAIrC,EAAM5C,OACV,CACCvB,KAAKmC,WAAW,MAEhB,IAAKkE,KAAKlC,EACV,CACC,GAAIA,EAAMsC,eAAeJ,GACzB,CACCC,EAAWP,EAAW/F,KAAKc,UAAU0F,iBAAiB,6BAA+B,MACrFrC,EAAMkC,GAAGK,MAAMC,QAAU,EAEzB,GAAIL,GAAYnF,GAAGyF,KAAKC,UAAUP,EAASP,EAASM,KACpD,CACCC,EAASP,EAASM,IAAIS,WAAWC,aAAa5C,EAAMkC,GAAIC,EAASP,EAASM,SAG3E,CACCrG,KAAKc,UAAUgC,YAAYqB,EAAMkC,MAKpC,IAAIlF,GAAG6F,QACNC,SAAU,IACVC,OAAQP,QAAS,GACjBQ,QAASR,QAAS,KAClBS,WAAYjG,GAAG6F,OAAOK,YAAYlG,GAAG6F,OAAOM,YAAYC,MACxDC,KAAM,SAASC,GACd,IAAK,IAAIpB,KAAKlC,EACd,CACC,GAAIA,EAAMsC,eAAeJ,GACzB,CACClC,EAAMkC,GAAGK,MAAMC,QAAUc,EAAMd,QAAU,OAI5Ce,SAAU,WACT,IAAK,IAAIrB,KAAKlC,EACd,CACC,GAAIA,EAAMsC,eAAeJ,GACzB,CACClC,EAAMkC,GAAGsB,gBAAgB,cAI1BC,UAGJzG,GAAG0C,KAAKuB,eAAec,EAAUZ,SAGlCK,kBAAmB,SAASkC,GAE3B,IAAKA,EACJ,OAED,IAAIjC,EAAa7E,SAASyF,iBAAiB,yBAA2BxG,KAAKO,UAAUC,OAAS,MAC9F,IAAK,IAAI6F,KAAKT,EACd,CACC,GAAIA,EAAWa,eAAeJ,GAC9B,CACCT,EAAWS,GAAG/D,UAAYuF,KAK7BhC,gBAAiB,SAASiC,GAEzB,IAAKA,EACJ,OAED,IAAI5B,EAAY/E,GAAGkE,YAAYyC,EAAc,OAC7C3G,GAAG0C,KAAKuB,eAAec,EAAUZ,SAGlCnD,WAAY,SAASyF,GAEpB,IAAId,EAAa3F,GAAG4G,WAAW/H,KAAKc,WAAYkH,MAAOC,cAAe,sBACrEC,EAED,GAAIpB,GAAc3F,GAAGyF,KAAKC,UAAUC,GACpC,CACCoB,EAASpB,EAAW9F,cAAc,0BAElC,GAAIkH,GAAUA,EAAOC,aAAa,gBAAkB,OACpD,CACCD,EAAOxB,MAAM0B,QAAU,GAEvB,GAAIR,EACJ,CACC,IAAIzG,GAAG6F,QACNC,SAAU,IACVC,OAAQP,QAAS,GACjBQ,QAASR,QAAS,KAClBS,WAAYjG,GAAG6F,OAAOK,YAAYlG,GAAG6F,OAAOM,YAAYC,MACxDC,KAAM,SAASC,GACdS,EAAOxB,MAAMC,QAAUc,EAAMd,QAAU,KAExCe,SAAU,WACTQ,EAAOP,gBAAgB,SACvBO,EAAOG,aAAa,cAAe,WAElCT,cAGJ,CACCM,EAAOxB,MAAMC,QAAU,UAhW7B","file":"script.map.js"} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.min.js b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.min.js new file mode 100644 index 0000000..c775608 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_offers/script.min.js @@ -0,0 +1,2 @@ +(function(){"use strict";if(!!window.JCCatalogSectionComponent)return;window.JCCatalogSectionComponent=function(t){this.formPosting=false;this.siteId=t.siteId||"";this.ajaxId=t.ajaxId||"";this.template=t.template||"";this.componentPath=t.componentPath||"";this.parameters=t.parameters||"";if(t.navParams){this.navParams={NavNum:t.navParams.NavNum||1,NavPageNomer:parseInt(t.navParams.NavPageNomer)||1,NavPageCount:parseInt(t.navParams.NavPageCount)||1}}this.bigData=t.bigData||{enabled:false};this.container=document.querySelector('[data-entity="'+t.container+'"]');this.showMoreButton=null;this.showMoreButtonMessage=null;if(this.bigData.enabled&&BX.util.object_keys(this.bigData.rows).length>0){BX.cookie_prefix=this.bigData.js.cookiePrefix||"";BX.cookie_domain=this.bigData.js.cookieDomain||"";BX.current_server_time=this.bigData.js.serverTime;BX.ready(BX.delegate(this.bigDataLoad,this))}if(t.initiallyShowHeader){BX.ready(BX.delegate(this.showHeader,this))}if(t.deferredLoad){BX.ready(BX.delegate(this.deferredLoad,this))}if(t.lazyLoad){this.showMoreButton=document.querySelector('[data-use="show-more-'+this.navParams.NavNum+'"]');this.showMoreButtonMessage=this.showMoreButton.innerHTML;BX.bind(this.showMoreButton,"click",BX.proxy(this.showMore,this))}if(t.loadOnScroll){BX.bind(window,"scroll",BX.proxy(this.loadOnScroll,this))}};window.JCCatalogSectionComponent.prototype={checkButton:function(){if(this.showMoreButton){if(this.navParams.NavPageNomer==this.navParams.NavPageCount){BX.remove(this.showMoreButton)}else{this.container.appendChild(this.showMoreButton)}}},enableButton:function(){if(this.showMoreButton){BX.removeClass(this.showMoreButton,"disabled");this.showMoreButton.innerHTML=this.showMoreButtonMessage}},disableButton:function(){if(this.showMoreButton){BX.addClass(this.showMoreButton,"disabled");this.showMoreButton.innerHTML=BX.message("BTN_MESSAGE_LAZY_LOAD_WAITER")}},loadOnScroll:function(){var t=BX.GetWindowScrollPos().scrollTop,e=BX.pos(this.container).bottom;if(t+window.innerHeight>e){this.showMore()}},showMore:function(){if(this.navParams.NavPageNomer + * | + * | + */ + +$this->setFrameMode(true); + + + + +if (!empty($arResult['NAV_RESULT'])) +{ + $navParams = array( + 'NavPageCount' => $arResult['NAV_RESULT']->NavPageCount, + 'NavPageNomer' => $arResult['NAV_RESULT']->NavPageNomer, + 'NavNum' => $arResult['NAV_RESULT']->NavNum + ); +} +else +{ + $navParams = array( + 'NavPageCount' => 1, + 'NavPageNomer' => 1, + 'NavNum' => $this->randString() + ); +} + +$showTopPager = false; +$showBottomPager = false; +$showLazyLoad = false; + +if ($arParams['PAGE_ELEMENT_COUNT'] > 0 && $navParams['NavPageCount'] > 1) +{ + $showTopPager = $arParams['DISPLAY_TOP_PAGER']; + $showBottomPager = $arParams['DISPLAY_BOTTOM_PAGER']; + $showLazyLoad = $arParams['LAZY_LOAD'] === 'Y' && $navParams['NavPageNomer'] != $navParams['NavPageCount']; +} + +$templateLibrary = array('popup', 'ajax', 'fx'); +$currencyList = ''; + +if (!empty($arResult['CURRENCIES'])) +{ + $templateLibrary[] = 'currency'; + $currencyList = CUtil::PhpToJSObject($arResult['CURRENCIES'], false, true, true); +} + +$templateData = array( + 'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'], + 'TEMPLATE_LIBRARY' => $templateLibrary, + 'CURRENCIES' => $currencyList, + 'USE_PAGINATION_CONTAINER' => $showTopPager || $showBottomPager, +); +unset($currencyList, $templateLibrary); + +$elementEdit = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_EDIT'); +$elementDelete = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_DELETE'); +$elementDeleteParams = array('CONFIRM' => GetMessage('CT_BCS_TPL_ELEMENT_DELETE_CONFIRM')); + +$positionClassMap = array( + 'left' => 'product-item-label-left', + 'center' => 'product-item-label-center', + 'right' => 'product-item-label-right', + 'bottom' => 'product-item-label-bottom', + 'middle' => 'product-item-label-middle', + 'top' => 'product-item-label-top' +); + +$discountPositionClass = ''; +if ($arParams['SHOW_DISCOUNT_PERCENT'] === 'Y' && !empty($arParams['DISCOUNT_PERCENT_POSITION'])) +{ + foreach (explode('-', $arParams['DISCOUNT_PERCENT_POSITION']) as $pos) + { + $discountPositionClass .= isset($positionClassMap[$pos]) ? ' '.$positionClassMap[$pos] : ''; + } +} + +$labelPositionClass = ''; +if (!empty($arParams['LABEL_PROP_POSITION'])) +{ + foreach (explode('-', $arParams['LABEL_PROP_POSITION']) as $pos) + { + $labelPositionClass .= isset($positionClassMap[$pos]) ? ' '.$positionClassMap[$pos] : ''; + } +} + +$arParams['~MESS_BTN_BUY'] = ($arParams['~MESS_BTN_BUY'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_BUY'); +$arParams['~MESS_BTN_DETAIL'] = ($arParams['~MESS_BTN_DETAIL'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_DETAIL'); +$arParams['~MESS_BTN_COMPARE'] = ($arParams['~MESS_BTN_COMPARE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_COMPARE'); +$arParams['~MESS_BTN_SUBSCRIBE'] = ($arParams['~MESS_BTN_SUBSCRIBE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_SUBSCRIBE'); +$arParams['~MESS_BTN_ADD_TO_BASKET'] = ($arParams['~MESS_BTN_ADD_TO_BASKET'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_ADD_TO_BASKET'); +$arParams['~MESS_NOT_AVAILABLE'] = ($arParams['~MESS_NOT_AVAILABLE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_PRODUCT_NOT_AVAILABLE'); +$arParams['~MESS_NOT_AVAILABLE_SERVICE'] = ($arParams['~MESS_NOT_AVAILABLE_SERVICE'] ?? '') ?: Loc::getMessage('CP_BCS_TPL_MESS_PRODUCT_NOT_AVAILABLE_SERVICE'); +$arParams['~MESS_SHOW_MAX_QUANTITY'] = ($arParams['~MESS_SHOW_MAX_QUANTITY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_SHOW_MAX_QUANTITY'); +$arParams['~MESS_RELATIVE_QUANTITY_MANY'] = ($arParams['~MESS_RELATIVE_QUANTITY_MANY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_MANY'); +$arParams['MESS_RELATIVE_QUANTITY_MANY'] = ($arParams['MESS_RELATIVE_QUANTITY_MANY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_MANY'); +$arParams['~MESS_RELATIVE_QUANTITY_FEW'] = ($arParams['~MESS_RELATIVE_QUANTITY_FEW'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_FEW'); +$arParams['MESS_RELATIVE_QUANTITY_FEW'] = ($arParams['MESS_RELATIVE_QUANTITY_FEW'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_FEW'); + +$arParams['MESS_BTN_LAZY_LOAD'] = $arParams['MESS_BTN_LAZY_LOAD'] ?: Loc::getMessage('CT_BCS_CATALOG_MESS_BTN_LAZY_LOAD'); + +$obName = 'ob'.preg_replace('/[^a-zA-Z0-9_]/', 'x', $this->GetEditAreaId($navParams['NavNum'])); +$containerName = 'container-'.$navParams['NavNum']; + +if ($showTopPager) +{ + ?> +
+ + + +
+ + + + + + +
+ $arParams['SHOW_DISCOUNT_PERCENT'], + 'PRODUCT_DISPLAY_MODE' => $arParams['PRODUCT_DISPLAY_MODE'], + 'SHOW_MAX_QUANTITY' => $arParams['SHOW_MAX_QUANTITY'], + 'RELATIVE_QUANTITY_FACTOR' => $arParams['RELATIVE_QUANTITY_FACTOR'], + 'MESS_SHOW_MAX_QUANTITY' => $arParams['~MESS_SHOW_MAX_QUANTITY'], + 'MESS_RELATIVE_QUANTITY_MANY' => $arParams['~MESS_RELATIVE_QUANTITY_MANY'], + 'MESS_RELATIVE_QUANTITY_FEW' => $arParams['~MESS_RELATIVE_QUANTITY_FEW'], + 'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'], + 'USE_PRODUCT_QUANTITY' => $arParams['USE_PRODUCT_QUANTITY'], + 'PRODUCT_QUANTITY_VARIABLE' => $arParams['PRODUCT_QUANTITY_VARIABLE'], + 'ADD_TO_BASKET_ACTION' => $arParams['ADD_TO_BASKET_ACTION'], + 'ADD_PROPERTIES_TO_BASKET' => $arParams['ADD_PROPERTIES_TO_BASKET'], + 'PRODUCT_PROPS_VARIABLE' => $arParams['PRODUCT_PROPS_VARIABLE'], + 'SHOW_CLOSE_POPUP' => $arParams['SHOW_CLOSE_POPUP'], + 'DISPLAY_COMPARE' => $arParams['DISPLAY_COMPARE'], + 'COMPARE_PATH' => $arParams['COMPARE_PATH'], + 'COMPARE_NAME' => $arParams['COMPARE_NAME'], + 'PRODUCT_SUBSCRIPTION' => $arParams['PRODUCT_SUBSCRIPTION'], + 'PRODUCT_BLOCKS_ORDER' => $arParams['PRODUCT_BLOCKS_ORDER'], + 'LABEL_POSITION_CLASS' => $labelPositionClass, + 'DISCOUNT_POSITION_CLASS' => $discountPositionClass, + 'SLIDER_INTERVAL' => $arParams['SLIDER_INTERVAL'], + 'SLIDER_PROGRESS' => $arParams['SLIDER_PROGRESS'], + '~BASKET_URL' => $arParams['~BASKET_URL'], + '~ADD_URL_TEMPLATE' => $arResult['~ADD_URL_TEMPLATE'], + '~BUY_URL_TEMPLATE' => $arResult['~BUY_URL_TEMPLATE'], + '~COMPARE_URL_TEMPLATE' => $arResult['~COMPARE_URL_TEMPLATE'], + '~COMPARE_DELETE_URL_TEMPLATE' => $arResult['~COMPARE_DELETE_URL_TEMPLATE'], + 'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'], + 'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'], + 'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'], + 'BRAND_PROPERTY' => $arParams['BRAND_PROPERTY'], + 'MESS_BTN_BUY' => $arParams['~MESS_BTN_BUY'], + 'MESS_BTN_DETAIL' => $arParams['~MESS_BTN_DETAIL'], + 'MESS_BTN_COMPARE' => $arParams['~MESS_BTN_COMPARE'], + 'MESS_BTN_SUBSCRIBE' => $arParams['~MESS_BTN_SUBSCRIBE'], + 'MESS_BTN_ADD_TO_BASKET' => $arParams['~MESS_BTN_ADD_TO_BASKET'], + ]; + + $areaIds = []; + $itemParameters = []; + + foreach ($arResult['ITEMS'] as $item) + { + $uniqueId = $item['ID'].'_'.md5($this->randString().$component->getAction()); + $areaIds[$item['ID']] = $this->GetEditAreaId($uniqueId); + $this->AddEditAction($uniqueId, $item['EDIT_LINK'], $elementEdit); + $this->AddDeleteAction($uniqueId, $item['DELETE_LINK'], $elementDelete, $elementDeleteParams); + + $itemParameters[$item['ID']] = [ + 'SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']], + 'MESS_NOT_AVAILABLE' => ($arResult['MODULES']['catalog'] && $item['PRODUCT']['TYPE'] === ProductTable::TYPE_SERVICE + ? $arParams['~MESS_NOT_AVAILABLE_SERVICE'] + : $arParams['~MESS_NOT_AVAILABLE'] + ), + ]; + } + ?> + + + + + + +
+ +

case 0

+
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+
+
+
+
+ +

case 1

+
+
+ +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+
+
+ +
+
+ + + + + IncludeComponent( + 'bitrix:catalog.item', + 'cat_item', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> + + + + + + + + IncludeComponent( + 'bitrix:catalog.item', + 'cat_item', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> + + + + +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ + +
+
+ +
+ + + + +
+ + sign($templateName, 'catalog.section'); +$signedParams = $signer->sign(base64_encode(serialize($arResult['ORIGINAL_PARAMETERS'])), 'catalog.section'); +?> + + diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/.parameters.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/.parameters.php new file mode 100644 index 0000000..d30d3f0 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/.parameters.php @@ -0,0 +1,640 @@ + 0); + +$defaultValue = array('-' => GetMessage('CP_BCS_TPL_PROP_EMPTY')); +$arSKU = false; +$boolSKU = false; +$filterDataValues = array(); +if ($boolCatalog && (isset($arCurrentValues['IBLOCK_ID']) && 0 < intval($arCurrentValues['IBLOCK_ID']))) +{ + $arSKU = CCatalogSku::GetInfoByProductIBlock($arCurrentValues['IBLOCK_ID']); + $boolSKU = !empty($arSKU) && is_array($arSKU); + $filterDataValues['iblockId'] = (int)$arCurrentValues['IBLOCK_ID']; + if ($boolSKU) + { + $filterDataValues['offersIblockId'] = $arSKU['IBLOCK_ID']; + } +} + +$arThemes = array(); +if (ModuleManager::isModuleInstalled('bitrix.eshop')) +{ + $arThemes['site'] = GetMessage('CP_BCS_TPL_THEME_SITE'); +} + +$arThemesList = array( + 'blue' => GetMessage('CP_BCS_TPL_THEME_BLUE'), + 'green' => GetMessage('CP_BCS_TPL_THEME_GREEN'), + 'red' => GetMessage('CP_BCS_TPL_THEME_RED'), + 'yellow' => GetMessage('CP_BCS_TPL_THEME_YELLOW') +); +$dir = trim(preg_replace("'[\\\\/]+'", '/', __DIR__.'/themes/')); +if (is_dir($dir)) +{ + foreach ($arThemesList as $themeID => $themeName) + { + if (!is_file($dir.$themeID.'/style.css')) + continue; + + $arThemes[$themeID] = $themeName; + } +} + +$arTemplateParameters['TEMPLATE_THEME'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_TEMPLATE_THEME'), + 'TYPE' => 'LIST', + 'VALUES' => $arThemes, + 'DEFAULT' => 'blue', + 'ADDITIONAL_VALUES' => 'Y' +); + +$lineElementCount = (int)($arCurrentValues['LINE_ELEMENT_COUNT'] ?? 3); +$pageElementCount = (int)($arCurrentValues['PAGE_ELEMENT_COUNT'] ?? 18); + +$arTemplateParameters['PRODUCT_ROW_VARIANTS'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_ROW_VARIANTS'), + 'TYPE' => 'CUSTOM', + 'BIG_DATA' => \Bitrix\Main\Analytics\Catalog::isOn() ? 'Y' : 'N', + 'COUNT_PARAM_NAME' => 'PAGE_ELEMENT_COUNT', + 'JS_FILE' => CatalogSectionComponent::getSettingsScript($componentPath, 'dragdrop_add'), + 'JS_EVENT' => 'initDraggableAddControl', + 'JS_MESSAGES' => Json::encode(array( + 'variant' => GetMessage('CP_BCS_TPL_SETTINGS_VARIANT'), + 'delete' => GetMessage('CP_BCS_TPL_SETTINGS_DELETE'), + 'quantity' => GetMessage('CP_BCS_TPL_SETTINGS_QUANTITY'), + 'quantityBigData' => GetMessage('CP_BCS_TPL_SETTINGS_QUANTITY_BIG_DATA') + )), + 'JS_DATA' => Json::encode(CatalogSectionComponent::getTemplateVariantsMap()), + 'DEFAULT' => Json::encode(CatalogSectionComponent::predictRowVariants($lineElementCount, $pageElementCount)) +); + +$arTemplateParameters['ENLARGE_PRODUCT'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_ENLARGE_PRODUCT'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N', + 'VALUES' => array( + 'STRICT' => GetMessage('CP_BCS_TPL_ENLARGE_PRODUCT_STRICT'), + 'PROP' => GetMessage('CP_BCS_TPL_ENLARGE_PRODUCT_PROP') + ) +); + +$arTemplateParameters['PRODUCT_BLOCKS_ORDER'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCKS_ORDER'), + 'TYPE' => 'CUSTOM', + 'JS_FILE' => CatalogSectionComponent::getSettingsScript($componentPath, 'dragdrop_order'), + 'JS_EVENT' => 'initDraggableOrderControl', + 'JS_DATA' => Json::encode(array( + 'price' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_PRICE'), + 'quantityLimit' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_QUANTITY_LIMIT'), + 'quantity' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_QUANTITY'), + 'buttons' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_BUTTONS'), + 'props' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_PROPS'), + 'sku' => GetMessage('CP_BCS_TPL_PRODUCT_BLOCK_SKU') + )), + 'DEFAULT' => 'price,props,sku,quantityLimit,quantity,buttons' +); + +$arTemplateParameters['SHOW_SLIDER'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_SLIDER'), + 'TYPE' => 'CHECKBOX', + 'MULTIPLE' => 'N', + 'REFRESH' => 'Y', + 'DEFAULT' => 'Y' +); + +if (isset($arCurrentValues['SHOW_SLIDER']) && $arCurrentValues['SHOW_SLIDER'] === 'Y') +{ + $arTemplateParameters['SLIDER_INTERVAL'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SLIDER_INTERVAL'), + 'TYPE' => 'TEXT', + 'MULTIPLE' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '3000' + ); + $arTemplateParameters['SLIDER_PROGRESS'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SLIDER_PROGRESS'), + 'TYPE' => 'CHECKBOX', + 'MULTIPLE' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => 'N' + ); +} + +$arAllPropList = array(); +$arFilePropList = $defaultValue; +$arListPropList = array(); + +if ($iblockExists) +{ + $rsProps = CIBlockProperty::GetList( + array('SORT' => 'ASC', 'ID' => 'ASC'), + array('IBLOCK_ID' => $arCurrentValues['IBLOCK_ID'], 'ACTIVE' => 'Y') + ); + while ($arProp = $rsProps->Fetch()) + { + $strPropName = '['.$arProp['ID'].']'.('' != $arProp['CODE'] ? '['.$arProp['CODE'].']' : '').' '.$arProp['NAME']; + + if ($arProp['CODE'] == '') + { + $arProp['CODE'] = $arProp['ID']; + } + + $arAllPropList[$arProp['CODE']] = $strPropName; + + if ($arProp['PROPERTY_TYPE'] === 'F') + { + $arFilePropList[$arProp['CODE']] = $strPropName; + } + + if ($arProp['PROPERTY_TYPE'] === 'L') + { + $arListPropList[$arProp['CODE']] = $strPropName; + } + } + + $showedProperties = []; + if ($usePropertyFeatures) + { + if ($iblockExists) + { + $showedProperties = Iblock\Model\PropertyFeature::getListPageShowPropertyCodes( + $arCurrentValues['IBLOCK_ID'], + ['CODE' => 'Y'] + ); + if ($showedProperties === null) + $showedProperties = []; + } + } + else + { + if (!empty($arCurrentValues['PROPERTY_CODE']) && is_array($arCurrentValues['PROPERTY_CODE'])) + { + $showedProperties = $arCurrentValues['PROPERTY_CODE']; + } + } + if (!empty($showedProperties)) + { + $selected = array(); + + foreach ($showedProperties as $code) + { + if (isset($arAllPropList[$code])) + { + $selected[$code] = $arAllPropList[$code]; + } + } + + $arTemplateParameters['PROPERTY_CODE_MOBILE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PROPERTY_CODE_MOBILE'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'Y', + 'VALUES' => $selected + ); + } + unset($showedProperties); + + if (isset($arCurrentValues['ENLARGE_PRODUCT']) && $arCurrentValues['ENLARGE_PRODUCT'] === 'PROP') + { + $arTemplateParameters['ENLARGE_PROP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_ENLARGE_PROP'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '-', + 'VALUES' => $defaultValue + $arListPropList + ); + } + + if ($boolSKU) + { + $arTemplateParameters['PRODUCT_DISPLAY_MODE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_DISPLAY_MODE'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N', + 'VALUES' => array( + 'N' => GetMessage('CP_BCS_TPL_DML_SIMPLE'), + 'Y' => GetMessage('CP_BCS_TPL_DML_EXT') + ) + ); + } + + $arTemplateParameters['ADD_PICT_PROP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_ADD_PICT_PROP'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '-', + 'VALUES' => $arFilePropList + ); + + $arTemplateParameters['LABEL_PROP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_LABEL_PROP'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'Y', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'Y', + 'VALUES' => $arListPropList + ); + + if (isset($arCurrentValues['LABEL_PROP']) && !empty($arCurrentValues['LABEL_PROP'])) + { + if (!is_array($arCurrentValues['LABEL_PROP'])) + { + $arCurrentValues['LABEL_PROP'] = array($arCurrentValues['LABEL_PROP']); + } + + $selected = array(); + foreach ($arCurrentValues['LABEL_PROP'] as $name) + { + if (isset($arListPropList[$name])) + { + $selected[$name] = $arListPropList[$name]; + } + } + + $arTemplateParameters['LABEL_PROP_MOBILE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_LABEL_PROP_MOBILE'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'Y', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'VALUES' => $selected + ); + unset($selected); + + $arTemplateParameters['LABEL_PROP_POSITION'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_LABEL_PROP_POSITION'), + 'TYPE' => 'CUSTOM', + 'JS_FILE' => CatalogSectionComponent::getSettingsScript($componentPath, 'position'), + 'JS_EVENT' => 'initPositionControl', + 'JS_DATA' => Json::encode( + array( + 'positions' => array( + 'top-left', 'top-center', 'top-right', + 'middle-left', 'middle-center', 'middle-right', + 'bottom-left', 'bottom-center', 'bottom-right' + ), + 'className' => '' + ) + ), + 'DEFAULT' => 'top-left' + ); + } + + if ($boolSKU && isset($arCurrentValues['PRODUCT_DISPLAY_MODE']) && 'Y' == $arCurrentValues['PRODUCT_DISPLAY_MODE']) + { + $arAllOfferPropList = array(); + $arFileOfferPropList = $arTreeOfferPropList = $defaultValue; + $rsProps = CIBlockProperty::GetList( + array('SORT' => 'ASC', 'ID' => 'ASC'), + array('IBLOCK_ID' => $arSKU['IBLOCK_ID'], 'ACTIVE' => 'Y') + ); + while ($arProp = $rsProps->Fetch()) + { + if ($arProp['ID'] == $arSKU['SKU_PROPERTY_ID']) + continue; + $arProp['USER_TYPE'] = (string)$arProp['USER_TYPE']; + $strPropName = '['.$arProp['ID'].']'.('' != $arProp['CODE'] ? '['.$arProp['CODE'].']' : '').' '.$arProp['NAME']; + if ('' == $arProp['CODE']) + $arProp['CODE'] = $arProp['ID']; + $arAllOfferPropList[$arProp['CODE']] = $strPropName; + if ('F' == $arProp['PROPERTY_TYPE']) + $arFileOfferPropList[$arProp['CODE']] = $strPropName; + if ('N' != $arProp['MULTIPLE']) + continue; + if ( + 'L' == $arProp['PROPERTY_TYPE'] + || 'E' == $arProp['PROPERTY_TYPE'] + || ('S' == $arProp['PROPERTY_TYPE'] && 'directory' == $arProp['USER_TYPE'] && CIBlockPriceTools::checkPropDirectory($arProp)) + ) + $arTreeOfferPropList[$arProp['CODE']] = $strPropName; + } + $arTemplateParameters['OFFER_ADD_PICT_PROP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_OFFER_ADD_PICT_PROP'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '-', + 'VALUES' => $arFileOfferPropList + ); + if (!$usePropertyFeatures) + { + $arTemplateParameters['OFFER_TREE_PROPS'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_OFFER_TREE_PROPS'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'Y', + 'ADDITIONAL_VALUES' => 'N', + 'REFRESH' => 'N', + 'DEFAULT' => '-', + 'VALUES' => $arTreeOfferPropList + ); + } + } +} + +if ($boolCatalog) +{ + $arTemplateParameters['PRODUCT_SUBSCRIPTION'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_SUBSCRIPTION'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'Y' + ); + $arTemplateParameters['SHOW_DISCOUNT_PERCENT'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_DISCOUNT_PERCENT'), + 'TYPE' => 'CHECKBOX', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N' + ); + + if (isset($arCurrentValues['SHOW_DISCOUNT_PERCENT']) && $arCurrentValues['SHOW_DISCOUNT_PERCENT'] === 'Y') + { + $arTemplateParameters['DISCOUNT_PERCENT_POSITION'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_DISCOUNT_PERCENT_POSITION'), + 'TYPE' => 'CUSTOM', + 'JS_FILE' => CatalogSectionComponent::getSettingsScript($componentPath, 'position'), + 'JS_EVENT' => 'initPositionControl', + 'JS_DATA' => Json::encode( + array( + 'positions' => array( + 'top-left', 'top-center', 'top-right', + 'middle-left', 'middle-center', 'middle-right', + 'bottom-left', 'bottom-center', 'bottom-right' + ), + 'className' => 'bx-pos-parameter-block-circle' + ) + ), + 'DEFAULT' => 'bottom-right' + ); + } + + $arTemplateParameters['SHOW_OLD_PRICE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_OLD_PRICE'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'N' + ); + $arTemplateParameters['SHOW_MAX_QUANTITY'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_MAX_QUANTITY'), + 'TYPE' => 'LIST', + 'REFRESH' => 'Y', + 'MULTIPLE' => 'N', + 'VALUES' => array( + 'N' => GetMessage('CP_BCS_TPL_SHOW_MAX_QUANTITY_N'), + 'Y' => GetMessage('CP_BCS_TPL_SHOW_MAX_QUANTITY_Y'), + 'M' => GetMessage('CP_BCS_TPL_SHOW_MAX_QUANTITY_M') + ), + 'DEFAULT' => array('N'), + ); + + if (isset($arCurrentValues['SHOW_MAX_QUANTITY'])) + { + if ($arCurrentValues['SHOW_MAX_QUANTITY'] !== 'N') + { + $arTemplateParameters['MESS_SHOW_MAX_QUANTITY'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_SHOW_MAX_QUANTITY'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_SHOW_MAX_QUANTITY_DEFAULT') + ); + } + + if ($arCurrentValues['SHOW_MAX_QUANTITY'] === 'M') + { + $arTemplateParameters['RELATIVE_QUANTITY_FACTOR'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_RELATIVE_QUANTITY_FACTOR'), + 'TYPE' => 'STRING', + 'DEFAULT' => '5' + ); + $arTemplateParameters['MESS_RELATIVE_QUANTITY_MANY'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_RELATIVE_QUANTITY_MANY'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_RELATIVE_QUANTITY_MANY_DEFAULT') + ); + $arTemplateParameters['MESS_RELATIVE_QUANTITY_FEW'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_RELATIVE_QUANTITY_FEW'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_RELATIVE_QUANTITY_FEW_DEFAULT') + ); + } + } + + $arTemplateParameters['ADD_TO_BASKET_ACTION'] = array( + 'PARENT' => 'BASKET', + 'NAME' => GetMessage('CP_BCS_TPL_ADD_TO_BASKET_ACTION'), + 'TYPE' => 'LIST', + 'VALUES' => array( + 'ADD' => GetMessage('ADD_TO_BASKET_ACTION_ADD'), + 'BUY' => GetMessage('ADD_TO_BASKET_ACTION_BUY') + ), + 'DEFAULT' => 'ADD', + 'REFRESH' => 'N' + ); + $arTemplateParameters['SHOW_CLOSE_POPUP'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_CLOSE_POPUP'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'N', + ); +} + +$arTemplateParameters['MESS_BTN_BUY'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_BUY'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_BUY_DEFAULT') +); + +$arTemplateParameters['LAZY_LOAD'] = array( + 'PARENT' => 'PAGER_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_LAZY_LOAD'), + 'TYPE' => 'CHECKBOX', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N' +); + +$arTemplateParameters['MESS_BTN_LAZY_LOAD'] = array( + 'PARENT' => 'PAGER_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_LAZY_LOAD'), + 'TYPE' => 'TEXT', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_LAZY_LOAD_DEFAULT'), + 'HIDDEN' => (isset($arCurrentValues['LAZY_LOAD']) && $arCurrentValues['LAZY_LOAD'] === 'Y' ? 'N' : 'Y') +); + +$arTemplateParameters['LOAD_ON_SCROLL'] = array( + 'PARENT' => 'PAGER_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_LOAD_ON_SCROLL'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'N', + 'HIDDEN' => ( + (isset($arCurrentValues['LAZY_LOAD']) && $arCurrentValues['LAZY_LOAD'] === 'Y') + || (isset($arCurrentValues['DISPLAY_TOP_PAGER']) && $arCurrentValues['DISPLAY_TOP_PAGER'] === 'Y') + || (!isset($arCurrentValues['DISPLAY_BOTTOM_PAGER']) || $arCurrentValues['DISPLAY_BOTTOM_PAGER'] !== 'N') + ? 'N' + : 'Y' + ) +); + +$arTemplateParameters['MESS_BTN_ADD_TO_BASKET'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_ADD_TO_BASKET'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_ADD_TO_BASKET_DEFAULT') +); +$arTemplateParameters['MESS_BTN_SUBSCRIBE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_SUBSCRIBE'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_SUBSCRIBE_DEFAULT') +); + +if (isset($arCurrentValues['DISPLAY_COMPARE']) && $arCurrentValues['DISPLAY_COMPARE'] === 'Y') +{ + $arTemplateParameters['MESS_BTN_COMPARE'] = array( + 'PARENT' => 'COMPARE', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_COMPARE'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_COMPARE_DEFAULT') + ); + $arTemplateParameters['COMPARE_NAME'] = array( + 'PARENT' => 'COMPARE', + 'NAME' => GetMessage('CP_BCS_TPL_COMPARE_NAME'), + 'TYPE' => 'STRING', + 'DEFAULT' => 'CATALOG_COMPARE_LIST' + ); +} + +$arTemplateParameters['MESS_BTN_DETAIL'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_BTN_DETAIL'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_BTN_DETAIL_DEFAULT') +); +$arTemplateParameters['MESS_NOT_AVAILABLE'] = array( + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_NOT_AVAILABLE'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_NOT_AVAILABLE_DEFAULT') +); +$arTemplateParameters['MESS_NOT_AVAILABLE_SERVICE'] = [ + 'PARENT' => 'VISUAL', + 'NAME' => GetMessage('CP_BCS_TPL_MESS_NOT_AVAILABLE_SERVICE'), + 'TYPE' => 'STRING', + 'DEFAULT' => GetMessage('CP_BCS_TPL_MESS_NOT_AVAILABLE_SERVICE_DEFAULT'), +]; + +if (\Bitrix\Main\Analytics\Catalog::isOn()) +{ + $arTemplateParameters['RCM_TYPE'] = array( + 'PARENT' => 'BIG_DATA_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_TYPE_TITLE'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'VALUES' => array( + // personal + 'personal' => GetMessage('CP_BCS_TPL_PERSONAL'), + // general + 'bestsell' => GetMessage('CP_BCS_TPL_BESTSELLERS'), + // item2item + 'similar_sell' => GetMessage('CP_BCS_TPL_SOLD_WITH'), + 'similar_view' => GetMessage('CP_BCS_TPL_VIEWED_WITH'), + 'similar' => GetMessage('CP_BCS_TPL_SIMILAR'), + // randomly distributed + 'any_similar' => GetMessage('CP_BCS_TPL_SIMILAR_ANY'), + 'any_personal' => GetMessage('CP_BCS_TPL_PERSONAL_WBEST'), + 'any' => GetMessage('CP_BCS_TPL_RAND') + ), + 'DEFAULT' => 'personal' + ); + $arTemplateParameters['RCM_PROD_ID'] = array( + 'PARENT' => 'BIG_DATA_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_PRODUCT_ID_PARAM'), + 'TYPE' => 'STRING', + 'DEFAULT' => '={$_REQUEST["PRODUCT_ID"]}' + ); + $arTemplateParameters['SHOW_FROM_SECTION'] = array( + 'PARENT' => 'BIG_DATA_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_SHOW_FROM_SECTION'), + 'TYPE' => 'CHECKBOX', + 'DEFAULT' => 'N' + ); +} + +$arTemplateParameters['USE_ENHANCED_ECOMMERCE'] = array( + 'PARENT' => 'ANALYTICS_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_USE_ENHANCED_ECOMMERCE'), + 'TYPE' => 'CHECKBOX', + 'REFRESH' => 'Y', + 'DEFAULT' => 'N' +); + +if (isset($arCurrentValues['USE_ENHANCED_ECOMMERCE']) && $arCurrentValues['USE_ENHANCED_ECOMMERCE'] === 'Y') +{ + $arTemplateParameters['DATA_LAYER_NAME'] = array( + 'PARENT' => 'ANALYTICS_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_DATA_LAYER_NAME'), + 'TYPE' => 'STRING', + 'DEFAULT' => 'dataLayer' + ); + $arTemplateParameters['BRAND_PROPERTY'] = array( + 'PARENT' => 'ANALYTICS_SETTINGS', + 'NAME' => GetMessage('CP_BCS_TPL_BRAND_PROPERTY'), + 'TYPE' => 'LIST', + 'MULTIPLE' => 'N', + 'DEFAULT' => '', + 'VALUES' => $defaultValue + $arAllPropList + ); +} diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/component_epilog.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/component_epilog.php new file mode 100644 index 0000000..a25fea5 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/component_epilog.php @@ -0,0 +1,63 @@ +SetAdditionalCSS($templateFolder.'/themes/'.$templateData['TEMPLATE_THEME'].'/style.css'); + $APPLICATION->SetAdditionalCSS('/bitrix/css/main/themes/'.$templateData['TEMPLATE_THEME'].'/style.css', true); +} + +if (!empty($templateData['TEMPLATE_LIBRARY'])) +{ + $loadCurrency = false; + if (!empty($templateData['CURRENCIES'])) + { + $loadCurrency = \Bitrix\Main\Loader::includeModule('currency'); + } + + CJSCore::Init($templateData['TEMPLATE_LIBRARY']); + + if ($loadCurrency) + { + ?> + + getRequest(); +if ($request->isAjaxRequest() && ($request->get('action') === 'showMore' || $request->get('action') === 'deferredLoad')) +{ + $content = ob_get_contents(); + ob_end_clean(); + + [, $itemsContainer] = explode('', $content); + $paginationContainer = ''; + if ($templateData['USE_PAGINATION_CONTAINER']) + { + [, $paginationContainer] = explode('', $content); + } + [, $epilogue] = explode('', $content); + + if (isset($arParams['AJAX_MODE']) && $arParams['AJAX_MODE'] === 'Y') + { + $component->prepareLinks($paginationContainer); + } + + $component::sendJsonAnswer(array( + 'items' => $itemsContainer, + 'pagination' => $paginationContainer, + 'epilogue' => $epilogue, + )); +} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/functions.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/functions.php new file mode 100644 index 0000000..4aa9b01 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/functions.php @@ -0,0 +1,107 @@ + false, + 'SECOND_PICT' => false + ); + + if (!empty($item) && is_array($item)) + { + if (!empty($item['PREVIEW_PICTURE'])) + { + if (!is_array($item['PREVIEW_PICTURE'])) + $item['PREVIEW_PICTURE'] = CFile::GetFileArray($item['PREVIEW_PICTURE']); + if (isset($item['PREVIEW_PICTURE']['ID'])) + { + $result['PICT'] = array( + 'ID' => intval($item['PREVIEW_PICTURE']['ID']), + 'SRC' => $item['PREVIEW_PICTURE']['SRC'], + 'WIDTH' => intval($item['PREVIEW_PICTURE']['WIDTH']), + 'HEIGHT' => intval($item['PREVIEW_PICTURE']['HEIGHT']) + ); + } + } + if (!empty($item['DETAIL_PICTURE'])) + { + $keyPict = (empty($result['PICT']) ? 'PICT' : 'SECOND_PICT'); + if (!is_array($item['DETAIL_PICTURE'])) + $item['DETAIL_PICTURE'] = CFile::GetFileArray($item['DETAIL_PICTURE']); + if (isset($item['DETAIL_PICTURE']['ID'])) + { + $result[$keyPict] = array( + 'ID' => intval($item['DETAIL_PICTURE']['ID']), + 'SRC' => $item['DETAIL_PICTURE']['SRC'], + 'WIDTH' => intval($item['DETAIL_PICTURE']['WIDTH']), + 'HEIGHT' => intval($item['DETAIL_PICTURE']['HEIGHT']) + ); + } + } + if (empty($result['SECOND_PICT'])) + { + if ( + '' != $propertyCode && + isset($item['PROPERTIES'][$propertyCode]) && + 'F' == $item['PROPERTIES'][$propertyCode]['PROPERTY_TYPE'] + ) + { + if ( + isset($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) && + !empty($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) + ) + { + $fileValues = ( + isset($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']['ID']) ? + array(0 => $item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) : + $item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE'] + ); + foreach ($fileValues as &$oneFileValue) + { + $keyPict = (empty($result['PICT']) ? 'PICT' : 'SECOND_PICT'); + $result[$keyPict] = array( + 'ID' => intval($oneFileValue['ID']), + 'SRC' => $oneFileValue['SRC'], + 'WIDTH' => intval($oneFileValue['WIDTH']), + 'HEIGHT' => intval($oneFileValue['HEIGHT']) + ); + if ('SECOND_PICT' == $keyPict) + break; + } + if (isset($oneFileValue)) + unset($oneFileValue); + } + else + { + $propValues = $item['PROPERTIES'][$propertyCode]['VALUE']; + if (!is_array($propValues)) + $propValues = array($propValues); + foreach ($propValues as &$oneValue) + { + $oneFileValue = CFile::GetFileArray($oneValue); + if (isset($oneFileValue['ID'])) + { + $keyPict = (empty($result['PICT']) ? 'PICT' : 'SECOND_PICT'); + $result[$keyPict] = array( + 'ID' => intval($oneFileValue['ID']), + 'SRC' => $oneFileValue['SRC'], + 'WIDTH' => intval($oneFileValue['WIDTH']), + 'HEIGHT' => intval($oneFileValue['HEIGHT']) + ); + if ('SECOND_PICT' == $keyPict) + break; + } + } + if (isset($oneValue)) + unset($oneValue); + } + } + } + } + return $result; + } +} +?> \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/arr_left.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/arr_left.png new file mode 100644 index 0000000..c2ca99a Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/arr_left.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/arr_right.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/arr_right.png new file mode 100644 index 0000000..2780801 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/arr_right.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/fade_left.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/fade_left.png new file mode 100644 index 0000000..8f2b0fb Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/fade_left.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/fade_right.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/fade_right.png new file mode 100644 index 0000000..3baf05f Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/fade_right.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/missing.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/missing.png new file mode 100644 index 0000000..4840256 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/missing.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/no_photo.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/no_photo.png new file mode 100644 index 0000000..f9dd583 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/no_photo.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/no_prop_value.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/no_prop_value.png new file mode 100644 index 0000000..f9dd583 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/no_prop_value.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/stick.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/stick.png new file mode 100644 index 0000000..812eb80 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/stick.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/stick_disc.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/stick_disc.png new file mode 100644 index 0000000..84b98e4 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/stick_disc.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/x2border.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/x2border.png new file mode 100644 index 0000000..e7b32cf Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/x2border.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/x2border_active.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/x2border_active.png new file mode 100644 index 0000000..7eb3fee Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/images/x2border_active.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/lang/de/.parameters.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/lang/de/.parameters.php new file mode 100644 index 0000000..56920b4 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/lang/de/.parameters.php @@ -0,0 +1,109 @@ + .col-xs-12 > .row > .col-md-2:nth-child(6n+1), + .product-item-list-col-1-6 > .col-sm-6:nth-child(2n+1), + .product-item-list-col-6-1 > .col-sm-6:nth-child(2n+1), + .product-item-list-col-1-6 > .col-sm-6 > .row > .col-md-4:nth-child(3n+1), + .product-item-list-col-6-1 > .col-sm-6 > .row > .col-md-4:nth-child(3n+1), + /*4*/ + .product-item-list-col-4 > .col-xs-12 > .row > .col-md-3:nth-child(4n+1), + .product-item-list-col-1-4 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-4-1 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + /*3*/ + .product-item-list-col-3 > .col-xs-12 > .row > .col-sm-4:nth-child(3n+1), + /*2*/ + .product-item-list-col-2 > .col-xs-12 > .row > .col-xs-6:nth-child(2n+1), + /*1*/ + .product-item-list-col-1 > .col-xs-12 > .row > .col-xs-12:nth-child(1n){clear: both} +} +@media (min-width: 992px) and (max-width:1199px){ + /*md*/ + /*6*/ + .product-item-list-col-6 > .col-xs-12 > .row > .col-md-2:nth-child(6n+1), + .product-item-list-col-1-6 > .col-sm-6:nth-child(2n+1), + .product-item-list-col-6-1 > .col-sm-6:nth-child(2n+1), + .product-item-list-col-1-6 > .col-sm-6 > .row > .col-md-4:nth-child(3n+1), + .product-item-list-col-6-1 > .col-sm-6 > .row > .col-md-4:nth-child(3n+1), + /*4*/ + .product-item-list-col-4 > .col-xs-12 > .row > .col-md-3:nth-child(4n+1), + .product-item-list-col-1-4 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-4-1 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + /*3*/ + .product-item-list-col-3 > .col-xs-12 > .row > .col-sm-4:nth-child(3n+1), + /*2*/ + .product-item-list-col-2 > .col-xs-12 > .row > .col-xs-6:nth-child(2n+1), + /*1*/ + .product-item-list-col-1 > .col-xs-12 > .row > .col-xs-12:nth-child(1n){clear: both} +} +@media (min-width: 768px) and (max-width: 991px){ + /*sm*/ + /*6*/ + .product-item-list-col-6 > .col-xs-12 > .row > .col-sm-4:nth-child(3n+1), + .product-item-list-col-1-6 > .col-sm-6:nth-child(2n+1), + .product-item-list-col-6-1 > .col-sm-6:nth-child(2n+1), + .product-item-list-col-1-6 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-6-1 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + /*4*/ + .product-item-list-col-4 > .col-xs-12 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-1-4 > .col-sm-6:nth-child(2n+1), + .product-item-list-col-4-1 > .col-sm-6:nth-child(2n+1), + .product-item-list-col-1-4 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-4-1 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + /*3*/ + .product-item-list-col-3 > .col-xs-12 > .row > .col-sm-4:nth-child(3n+1), + /*2*/ + .product-item-list-col-2 > .col-xs-12 > .row > .col-xs-6:nth-child(2n+1), + /*1*/ + .product-item-list-col-1 > .col-xs-12 > .row > .col-xs-12:nth-child(1n){clear: both} +} +@media (max-width: 767px){ + /*xs*/ + /*6*/ + .product-item-list-col-6 > .col-xs-12 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-1-6 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-6-1 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + /*4*/ + .product-item-list-col-4 > .col-xs-12 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-1-4 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + .product-item-list-col-4-1 > .col-sm-6 > .row > .col-xs-6:nth-child(2n+1), + /*3*/ + .product-item-list-col-3 > .col-xs-12 > .row > .col-sm-4:nth-child(3n+1), + /*2*/ + .product-item-list-col-2 > .col-xs-12 > .row > .col-xs-6:nth-child(2n+1), + /*1*/ + .product-item-list-col-1 > .col-xs-12 > .row > .col-xs-12:nth-child(1n){clear: both} +} + +.catalog-section-header{ + font-size:14px; + font-weight: bold; + text-align: left; + margin:5px 0; + padding:5px 15px; + border-bottom: 2px solid #d9dee6; + color: #000; +} + +.row::before { + display: initial; +} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/old/style.min.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/old/style.min.css new file mode 100644 index 0000000..407e05c --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/old/style.min.css @@ -0,0 +1 @@ +@media(min-width:1200px){.product-item-list-col-6>.col-xs-12>.row>.col-md-2:nth-child(6n+1),.product-item-list-col-1-6>.col-sm-6:nth-child(2n+1),.product-item-list-col-6-1>.col-sm-6:nth-child(2n+1),.product-item-list-col-1-6>.col-sm-6>.row>.col-md-4:nth-child(3n+1),.product-item-list-col-6-1>.col-sm-6>.row>.col-md-4:nth-child(3n+1),.product-item-list-col-4>.col-xs-12>.row>.col-md-3:nth-child(4n+1),.product-item-list-col-1-4>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-4-1>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-3>.col-xs-12>.row>.col-sm-4:nth-child(3n+1),.product-item-list-col-2>.col-xs-12>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-1>.col-xs-12>.row>.col-xs-12:nth-child(1n){clear:both}}@media(min-width:992px) and (max-width:1199px){.product-item-list-col-6>.col-xs-12>.row>.col-md-2:nth-child(6n+1),.product-item-list-col-1-6>.col-sm-6:nth-child(2n+1),.product-item-list-col-6-1>.col-sm-6:nth-child(2n+1),.product-item-list-col-1-6>.col-sm-6>.row>.col-md-4:nth-child(3n+1),.product-item-list-col-6-1>.col-sm-6>.row>.col-md-4:nth-child(3n+1),.product-item-list-col-4>.col-xs-12>.row>.col-md-3:nth-child(4n+1),.product-item-list-col-1-4>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-4-1>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-3>.col-xs-12>.row>.col-sm-4:nth-child(3n+1),.product-item-list-col-2>.col-xs-12>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-1>.col-xs-12>.row>.col-xs-12:nth-child(1n){clear:both}}@media(min-width:768px) and (max-width:991px){.product-item-list-col-6>.col-xs-12>.row>.col-sm-4:nth-child(3n+1),.product-item-list-col-1-6>.col-sm-6:nth-child(2n+1),.product-item-list-col-6-1>.col-sm-6:nth-child(2n+1),.product-item-list-col-1-6>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-6-1>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-4>.col-xs-12>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-1-4>.col-sm-6:nth-child(2n+1),.product-item-list-col-4-1>.col-sm-6:nth-child(2n+1),.product-item-list-col-1-4>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-4-1>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-3>.col-xs-12>.row>.col-sm-4:nth-child(3n+1),.product-item-list-col-2>.col-xs-12>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-1>.col-xs-12>.row>.col-xs-12:nth-child(1n){clear:both}}@media(max-width:767px){.product-item-list-col-6>.col-xs-12>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-1-6>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-6-1>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-4>.col-xs-12>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-1-4>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-4-1>.col-sm-6>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-3>.col-xs-12>.row>.col-sm-4:nth-child(3n+1),.product-item-list-col-2>.col-xs-12>.row>.col-xs-6:nth-child(2n+1),.product-item-list-col-1>.col-xs-12>.row>.col-xs-12:nth-child(1n){clear:both}}.catalog-section-header{font-size:14px;font-weight:bold;text-align:left;margin:5px 0;padding:5px 15px;border-bottom:2px solid #d9dee6;color:#000}.row::before{display:initial} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/result_modifier.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/result_modifier.php new file mode 100644 index 0000000..ec7bbbf --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/result_modifier.php @@ -0,0 +1,9 @@ +getComponent(); +$arParams = $component->applyTemplateModifications(); \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.js b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.js new file mode 100644 index 0000000..5f264ce --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.js @@ -0,0 +1,359 @@ +(function() { + 'use strict'; + + if (!!window.JCCatalogSectionComponent) + return; + + window.JCCatalogSectionComponent = function(params) { + this.formPosting = false; + this.siteId = params.siteId || ''; + this.ajaxId = params.ajaxId || ''; + this.template = params.template || ''; + this.componentPath = params.componentPath || ''; + this.parameters = params.parameters || ''; + + if (params.navParams) + { + this.navParams = { + NavNum: params.navParams.NavNum || 1, + NavPageNomer: parseInt(params.navParams.NavPageNomer) || 1, + NavPageCount: parseInt(params.navParams.NavPageCount) || 1 + }; + } + + this.bigData = params.bigData || {enabled: false}; + this.container = document.querySelector('[data-entity="' + params.container + '"]'); + this.showMoreButton = null; + this.showMoreButtonMessage = null; + + if (this.bigData.enabled && BX.util.object_keys(this.bigData.rows).length > 0) + { + BX.cookie_prefix = this.bigData.js.cookiePrefix || ''; + BX.cookie_domain = this.bigData.js.cookieDomain || ''; + BX.current_server_time = this.bigData.js.serverTime; + + BX.ready(BX.delegate(this.bigDataLoad, this)); + } + + if (params.initiallyShowHeader) + { + BX.ready(BX.delegate(this.showHeader, this)); + } + + if (params.deferredLoad) + { + BX.ready(BX.delegate(this.deferredLoad, this)); + } + + if (params.lazyLoad) + { + this.showMoreButton = document.querySelector('[data-use="show-more-' + this.navParams.NavNum + '"]'); + this.showMoreButtonMessage = this.showMoreButton.innerHTML; + BX.bind(this.showMoreButton, 'click', BX.proxy(this.showMore, this)); + } + + if (params.loadOnScroll) + { + BX.bind(window, 'scroll', BX.proxy(this.loadOnScroll, this)); + } + }; + + window.JCCatalogSectionComponent.prototype = + { + checkButton: function() + { + if (this.showMoreButton) + { + if (this.navParams.NavPageNomer == this.navParams.NavPageCount) + { + BX.remove(this.showMoreButton); + } + else + { + this.container.appendChild(this.showMoreButton); + } + } + }, + + enableButton: function() + { + if (this.showMoreButton) + { + BX.removeClass(this.showMoreButton, 'disabled'); + this.showMoreButton.innerHTML = this.showMoreButtonMessage; + } + }, + + disableButton: function() + { + if (this.showMoreButton) + { + BX.addClass(this.showMoreButton, 'disabled'); + this.showMoreButton.innerHTML = BX.message('BTN_MESSAGE_LAZY_LOAD_WAITER'); + } + }, + + loadOnScroll: function() + { + var scrollTop = BX.GetWindowScrollPos().scrollTop, + containerBottom = BX.pos(this.container).bottom; + + if (scrollTop + window.innerHeight > containerBottom) + { + this.showMore(); + } + }, + + showMore: function() + { + if (this.navParams.NavPageNomer < this.navParams.NavPageCount) + { + var data = {}; + data['action'] = 'showMore'; + data['PAGEN_' + this.navParams.NavNum] = this.navParams.NavPageNomer + 1; + + if (!this.formPosting) + { + this.formPosting = true; + this.disableButton(); + this.sendRequest(data); + } + } + }, + + bigDataLoad: function() + { + var url = 'https://analytics.bitrix.info/crecoms/v1_0/recoms.php', + data = BX.ajax.prepareData(this.bigData.params); + + if (data) + { + url += (url.indexOf('?') !== -1 ? '&' : '?') + data; + } + + var onReady = BX.delegate(function(result){ + this.sendRequest({ + action: 'deferredLoad', + bigData: 'Y', + items: result && result.items || [], + rid: result && result.id, + count: this.bigData.count, + rowsRange: this.bigData.rowsRange, + shownIds: this.bigData.shownIds + }); + }, this); + + BX.ajax({ + method: 'GET', + dataType: 'json', + url: url, + timeout: 3, + onsuccess: onReady, + onfailure: onReady + }); + }, + + deferredLoad: function() + { + this.sendRequest({action: 'deferredLoad'}); + }, + + sendRequest: function(data) + { + var defaultData = { + siteId: this.siteId, + template: this.template, + parameters: this.parameters + }; + + if (this.ajaxId) + { + defaultData.AJAX_ID = this.ajaxId; + } + + BX.ajax({ + url: this.componentPath + '/ajax.php' + (document.location.href.indexOf('clear_cache=Y') !== -1 ? '?clear_cache=Y' : ''), + method: 'POST', + dataType: 'json', + timeout: 60, + data: BX.merge(defaultData, data), + onsuccess: BX.delegate(function(result){ + if (!result || !result.JS) + return; + + BX.ajax.processScripts( + BX.processHTML(result.JS).SCRIPT, + false, + BX.delegate(function(){this.showAction(result, data);}, this) + ); + }, this) + }); + }, + + showAction: function(result, data) + { + if (!data) + return; + + switch (data.action) + { + case 'showMore': + this.processShowMoreAction(result); + break; + case 'deferredLoad': + this.processDeferredLoadAction(result, data.bigData === 'Y'); + break; + } + }, + + processShowMoreAction: function(result) + { + this.formPosting = false; + this.enableButton(); + + if (result) + { + this.navParams.NavPageNomer++; + this.processItems(result.items); + this.processPagination(result.pagination); + this.processEpilogue(result.epilogue); + this.checkButton(); + } + }, + + processDeferredLoadAction: function(result, bigData) + { + if (!result) + return; + + var position = bigData ? this.bigData.rows : {}; + + this.processItems(result.items, BX.util.array_keys(position)); + }, + + processItems: function(itemsHtml, position) + { + if (!itemsHtml) + return; + + var processed = BX.processHTML(itemsHtml, false), + temporaryNode = BX.create('DIV'); + + var items, k, origRows; + + temporaryNode.innerHTML = processed.HTML; + items = temporaryNode.querySelectorAll('[data-entity="items-row"]'); + + if (items.length) + { + this.showHeader(true); + + for (k in items) + { + if (items.hasOwnProperty(k)) + { + origRows = position ? this.container.querySelectorAll('[data-entity="items-row"]') : false; + items[k].style.opacity = 0; + + if (origRows && BX.type.isDomNode(origRows[position[k]])) + { + origRows[position[k]].parentNode.insertBefore(items[k], origRows[position[k]]); + } + else + { + this.container.appendChild(items[k]); + } + } + } + + new BX.easing({ + duration: 2000, + start: {opacity: 0}, + finish: {opacity: 100}, + transition: BX.easing.makeEaseOut(BX.easing.transitions.quad), + step: function(state){ + for (var k in items) + { + if (items.hasOwnProperty(k)) + { + items[k].style.opacity = state.opacity / 100; + } + } + }, + complete: function(){ + for (var k in items) + { + if (items.hasOwnProperty(k)) + { + items[k].removeAttribute('style'); + } + } + } + }).animate(); + } + + BX.ajax.processScripts(processed.SCRIPT); + }, + + processPagination: function(paginationHtml) + { + if (!paginationHtml) + return; + + var pagination = document.querySelectorAll('[data-pagination-num="' + this.navParams.NavNum + '"]'); + for (var k in pagination) + { + if (pagination.hasOwnProperty(k)) + { + pagination[k].innerHTML = paginationHtml; + } + } + }, + + processEpilogue: function(epilogueHtml) + { + if (!epilogueHtml) + return; + + var processed = BX.processHTML(epilogueHtml, false); + BX.ajax.processScripts(processed.SCRIPT); + }, + + showHeader: function(animate) + { + var parentNode = BX.findParent(this.container, {attr: {'data-entity': 'parent-container'}}), + header; + + if (parentNode && BX.type.isDomNode(parentNode)) + { + header = parentNode.querySelector('[data-entity="header"]'); + + if (header && header.getAttribute('data-showed') != 'true') + { + header.style.display = ''; + + if (animate) + { + new BX.easing({ + duration: 2000, + start: {opacity: 0}, + finish: {opacity: 100}, + transition: BX.easing.makeEaseOut(BX.easing.transitions.quad), + step: function(state){ + header.style.opacity = state.opacity / 100; + }, + complete: function(){ + header.removeAttribute('style'); + header.setAttribute('data-showed', 'true'); + } + }).animate(); + } + else + { + header.style.opacity = 100; + } + } + } + } + }; +})(); \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.map.js b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.map.js new file mode 100644 index 0000000..2beed40 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.map.js @@ -0,0 +1 @@ +{"version":3,"sources":["script.js"],"names":["window","JCCatalogSectionComponent","params","this","formPosting","siteId","ajaxId","template","componentPath","parameters","navParams","NavNum","NavPageNomer","parseInt","NavPageCount","bigData","enabled","container","document","querySelector","showMoreButton","showMoreButtonMessage","BX","util","object_keys","rows","length","cookie_prefix","js","cookiePrefix","cookie_domain","cookieDomain","current_server_time","serverTime","ready","delegate","bigDataLoad","initiallyShowHeader","showHeader","deferredLoad","lazyLoad","innerHTML","bind","proxy","showMore","loadOnScroll","prototype","checkButton","remove","appendChild","enableButton","removeClass","disableButton","addClass","message","scrollTop","GetWindowScrollPos","containerBottom","pos","bottom","innerHeight","data","sendRequest","url","ajax","prepareData","indexOf","onReady","result","action","items","rid","id","count","rowsRange","shownIds","method","dataType","timeout","onsuccess","onfailure","defaultData","AJAX_ID","location","href","merge","JS","processScripts","processHTML","SCRIPT","showAction","processShowMoreAction","processDeferredLoadAction","processItems","processPagination","pagination","processEpilogue","epilogue","position","array_keys","itemsHtml","processed","temporaryNode","create","k","origRows","HTML","querySelectorAll","hasOwnProperty","style","opacity","type","isDomNode","parentNode","insertBefore","easing","duration","start","finish","transition","makeEaseOut","transitions","quad","step","state","complete","removeAttribute","animate","paginationHtml","epilogueHtml","findParent","attr","data-entity","header","getAttribute","display","setAttribute"],"mappings":"CAAA,WACC,aAEA,KAAMA,OAAOC,0BACZ,OAEDD,OAAOC,0BAA4B,SAASC,GAC3CC,KAAKC,YAAc,MACnBD,KAAKE,OAASH,EAAOG,QAAU,GAC/BF,KAAKG,OAASJ,EAAOI,QAAU,GAC/BH,KAAKI,SAAWL,EAAOK,UAAY,GACnCJ,KAAKK,cAAgBN,EAAOM,eAAiB,GAC7CL,KAAKM,WAAaP,EAAOO,YAAc,GAEvC,GAAIP,EAAOQ,UACX,CACCP,KAAKO,WACJC,OAAQT,EAAOQ,UAAUC,QAAU,EACnCC,aAAcC,SAASX,EAAOQ,UAAUE,eAAiB,EACzDE,aAAcD,SAASX,EAAOQ,UAAUI,eAAiB,GAI3DX,KAAKY,QAAUb,EAAOa,UAAYC,QAAS,OAC3Cb,KAAKc,UAAYC,SAASC,cAAc,iBAAmBjB,EAAOe,UAAY,MAC9Ed,KAAKiB,eAAiB,KACtBjB,KAAKkB,sBAAwB,KAE7B,GAAIlB,KAAKY,QAAQC,SAAWM,GAAGC,KAAKC,YAAYrB,KAAKY,QAAQU,MAAMC,OAAS,EAC5E,CACCJ,GAAGK,cAAgBxB,KAAKY,QAAQa,GAAGC,cAAgB,GACnDP,GAAGQ,cAAgB3B,KAAKY,QAAQa,GAAGG,cAAgB,GACnDT,GAAGU,oBAAsB7B,KAAKY,QAAQa,GAAGK,WAEzCX,GAAGY,MAAMZ,GAAGa,SAAShC,KAAKiC,YAAajC,OAGxC,GAAID,EAAOmC,oBACX,CACCf,GAAGY,MAAMZ,GAAGa,SAAShC,KAAKmC,WAAYnC,OAGvC,GAAID,EAAOqC,aACX,CACCjB,GAAGY,MAAMZ,GAAGa,SAAShC,KAAKoC,aAAcpC,OAGzC,GAAID,EAAOsC,SACX,CACCrC,KAAKiB,eAAiBF,SAASC,cAAc,wBAA0BhB,KAAKO,UAAUC,OAAS,MAC/FR,KAAKkB,sBAAwBlB,KAAKiB,eAAeqB,UACjDnB,GAAGoB,KAAKvC,KAAKiB,eAAgB,QAASE,GAAGqB,MAAMxC,KAAKyC,SAAUzC,OAG/D,GAAID,EAAO2C,aACX,CACCvB,GAAGoB,KAAK1C,OAAQ,SAAUsB,GAAGqB,MAAMxC,KAAK0C,aAAc1C,SAIxDH,OAAOC,0BAA0B6C,WAEhCC,YAAa,WAEZ,GAAI5C,KAAKiB,eACT,CACC,GAAIjB,KAAKO,UAAUE,cAAgBT,KAAKO,UAAUI,aAClD,CACCQ,GAAG0B,OAAO7C,KAAKiB,oBAGhB,CACCjB,KAAKc,UAAUgC,YAAY9C,KAAKiB,mBAKnC8B,aAAc,WAEb,GAAI/C,KAAKiB,eACT,CACCE,GAAG6B,YAAYhD,KAAKiB,eAAgB,YACpCjB,KAAKiB,eAAeqB,UAAYtC,KAAKkB,wBAIvC+B,cAAe,WAEd,GAAIjD,KAAKiB,eACT,CACCE,GAAG+B,SAASlD,KAAKiB,eAAgB,YACjCjB,KAAKiB,eAAeqB,UAAYnB,GAAGgC,QAAQ,kCAI7CT,aAAc,WAEb,IAAIU,EAAYjC,GAAGkC,qBAAqBD,UACvCE,EAAkBnC,GAAGoC,IAAIvD,KAAKc,WAAW0C,OAE1C,GAAIJ,EAAYvD,OAAO4D,YAAcH,EACrC,CACCtD,KAAKyC,aAIPA,SAAU,WAET,GAAIzC,KAAKO,UAAUE,aAAeT,KAAKO,UAAUI,aACjD,CACC,IAAI+C,KACJA,EAAK,UAAY,WACjBA,EAAK,SAAW1D,KAAKO,UAAUC,QAAUR,KAAKO,UAAUE,aAAe,EAEvE,IAAKT,KAAKC,YACV,CACCD,KAAKC,YAAc,KACnBD,KAAKiD,gBACLjD,KAAK2D,YAAYD,MAKpBzB,YAAa,WAEZ,IAAI2B,EAAM,wDACTF,EAAOvC,GAAG0C,KAAKC,YAAY9D,KAAKY,QAAQb,QAEzC,GAAI2D,EACJ,CACCE,IAAQA,EAAIG,QAAQ,QAAU,EAAI,IAAM,KAAOL,EAGhD,IAAIM,EAAU7C,GAAGa,SAAS,SAASiC,GAClCjE,KAAK2D,aACJO,OAAQ,eACRtD,QAAS,IACTuD,MAAOF,GAAUA,EAAOE,UACxBC,IAAKH,GAAUA,EAAOI,GACtBC,MAAOtE,KAAKY,QAAQ0D,MACpBC,UAAWvE,KAAKY,QAAQ2D,UACxBC,SAAUxE,KAAKY,QAAQ4D,YAEtBxE,MAEHmB,GAAG0C,MACFY,OAAQ,MACRC,SAAU,OACVd,IAAKA,EACLe,QAAS,EACTC,UAAWZ,EACXa,UAAWb,KAIb5B,aAAc,WAEbpC,KAAK2D,aAAaO,OAAQ,kBAG3BP,YAAa,SAASD,GAErB,IAAIoB,GACH5E,OAAQF,KAAKE,OACbE,SAAUJ,KAAKI,SACfE,WAAYN,KAAKM,YAGlB,GAAIN,KAAKG,OACT,CACC2E,EAAYC,QAAU/E,KAAKG,OAG5BgB,GAAG0C,MACFD,IAAK5D,KAAKK,cAAgB,aAAeU,SAASiE,SAASC,KAAKlB,QAAQ,oBAAsB,EAAI,iBAAmB,IACrHU,OAAQ,OACRC,SAAU,OACVC,QAAS,GACTjB,KAAMvC,GAAG+D,MAAMJ,EAAapB,GAC5BkB,UAAWzD,GAAGa,SAAS,SAASiC,GAC/B,IAAKA,IAAWA,EAAOkB,GACtB,OAEDhE,GAAG0C,KAAKuB,eACPjE,GAAGkE,YAAYpB,EAAOkB,IAAIG,OAC1B,MACAnE,GAAGa,SAAS,WAAWhC,KAAKuF,WAAWtB,EAAQP,IAAS1D,QAEvDA,SAILuF,WAAY,SAAStB,EAAQP,GAE5B,IAAKA,EACJ,OAED,OAAQA,EAAKQ,QAEZ,IAAK,WACJlE,KAAKwF,sBAAsBvB,GAC3B,MACD,IAAK,eACJjE,KAAKyF,0BAA0BxB,EAAQP,EAAK9C,UAAY,KACxD,QAIH4E,sBAAuB,SAASvB,GAE/BjE,KAAKC,YAAc,MACnBD,KAAK+C,eAEL,GAAIkB,EACJ,CACCjE,KAAKO,UAAUE,eACfT,KAAK0F,aAAazB,EAAOE,OACzBnE,KAAK2F,kBAAkB1B,EAAO2B,YAC9B5F,KAAK6F,gBAAgB5B,EAAO6B,UAC5B9F,KAAK4C,gBAIP6C,0BAA2B,SAASxB,EAAQrD,GAE3C,IAAKqD,EACJ,OAED,IAAI8B,EAAWnF,EAAUZ,KAAKY,QAAQU,QAEtCtB,KAAK0F,aAAazB,EAAOE,MAAOhD,GAAGC,KAAK4E,WAAWD,KAGpDL,aAAc,SAASO,EAAWF,GAEjC,IAAKE,EACJ,OAED,IAAIC,EAAY/E,GAAGkE,YAAYY,EAAW,OACzCE,EAAgBhF,GAAGiF,OAAO,OAE3B,IAAIjC,EAAOkC,EAAGC,EAEdH,EAAc7D,UAAY4D,EAAUK,KACpCpC,EAAQgC,EAAcK,iBAAiB,6BAEvC,GAAIrC,EAAM5C,OACV,CACCvB,KAAKmC,WAAW,MAEhB,IAAKkE,KAAKlC,EACV,CACC,GAAIA,EAAMsC,eAAeJ,GACzB,CACCC,EAAWP,EAAW/F,KAAKc,UAAU0F,iBAAiB,6BAA+B,MACrFrC,EAAMkC,GAAGK,MAAMC,QAAU,EAEzB,GAAIL,GAAYnF,GAAGyF,KAAKC,UAAUP,EAASP,EAASM,KACpD,CACCC,EAASP,EAASM,IAAIS,WAAWC,aAAa5C,EAAMkC,GAAIC,EAASP,EAASM,SAG3E,CACCrG,KAAKc,UAAUgC,YAAYqB,EAAMkC,MAKpC,IAAIlF,GAAG6F,QACNC,SAAU,IACVC,OAAQP,QAAS,GACjBQ,QAASR,QAAS,KAClBS,WAAYjG,GAAG6F,OAAOK,YAAYlG,GAAG6F,OAAOM,YAAYC,MACxDC,KAAM,SAASC,GACd,IAAK,IAAIpB,KAAKlC,EACd,CACC,GAAIA,EAAMsC,eAAeJ,GACzB,CACClC,EAAMkC,GAAGK,MAAMC,QAAUc,EAAMd,QAAU,OAI5Ce,SAAU,WACT,IAAK,IAAIrB,KAAKlC,EACd,CACC,GAAIA,EAAMsC,eAAeJ,GACzB,CACClC,EAAMkC,GAAGsB,gBAAgB,cAI1BC,UAGJzG,GAAG0C,KAAKuB,eAAec,EAAUZ,SAGlCK,kBAAmB,SAASkC,GAE3B,IAAKA,EACJ,OAED,IAAIjC,EAAa7E,SAASyF,iBAAiB,yBAA2BxG,KAAKO,UAAUC,OAAS,MAC9F,IAAK,IAAI6F,KAAKT,EACd,CACC,GAAIA,EAAWa,eAAeJ,GAC9B,CACCT,EAAWS,GAAG/D,UAAYuF,KAK7BhC,gBAAiB,SAASiC,GAEzB,IAAKA,EACJ,OAED,IAAI5B,EAAY/E,GAAGkE,YAAYyC,EAAc,OAC7C3G,GAAG0C,KAAKuB,eAAec,EAAUZ,SAGlCnD,WAAY,SAASyF,GAEpB,IAAId,EAAa3F,GAAG4G,WAAW/H,KAAKc,WAAYkH,MAAOC,cAAe,sBACrEC,EAED,GAAIpB,GAAc3F,GAAGyF,KAAKC,UAAUC,GACpC,CACCoB,EAASpB,EAAW9F,cAAc,0BAElC,GAAIkH,GAAUA,EAAOC,aAAa,gBAAkB,OACpD,CACCD,EAAOxB,MAAM0B,QAAU,GAEvB,GAAIR,EACJ,CACC,IAAIzG,GAAG6F,QACNC,SAAU,IACVC,OAAQP,QAAS,GACjBQ,QAASR,QAAS,KAClBS,WAAYjG,GAAG6F,OAAOK,YAAYlG,GAAG6F,OAAOM,YAAYC,MACxDC,KAAM,SAASC,GACdS,EAAOxB,MAAMC,QAAUc,EAAMd,QAAU,KAExCe,SAAU,WACTQ,EAAOP,gBAAgB,SACvBO,EAAOG,aAAa,cAAe,WAElCT,cAGJ,CACCM,EAAOxB,MAAMC,QAAU,UAhW7B","file":"script.map.js"} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.min.js b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.min.js new file mode 100644 index 0000000..c775608 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/script.min.js @@ -0,0 +1,2 @@ +(function(){"use strict";if(!!window.JCCatalogSectionComponent)return;window.JCCatalogSectionComponent=function(t){this.formPosting=false;this.siteId=t.siteId||"";this.ajaxId=t.ajaxId||"";this.template=t.template||"";this.componentPath=t.componentPath||"";this.parameters=t.parameters||"";if(t.navParams){this.navParams={NavNum:t.navParams.NavNum||1,NavPageNomer:parseInt(t.navParams.NavPageNomer)||1,NavPageCount:parseInt(t.navParams.NavPageCount)||1}}this.bigData=t.bigData||{enabled:false};this.container=document.querySelector('[data-entity="'+t.container+'"]');this.showMoreButton=null;this.showMoreButtonMessage=null;if(this.bigData.enabled&&BX.util.object_keys(this.bigData.rows).length>0){BX.cookie_prefix=this.bigData.js.cookiePrefix||"";BX.cookie_domain=this.bigData.js.cookieDomain||"";BX.current_server_time=this.bigData.js.serverTime;BX.ready(BX.delegate(this.bigDataLoad,this))}if(t.initiallyShowHeader){BX.ready(BX.delegate(this.showHeader,this))}if(t.deferredLoad){BX.ready(BX.delegate(this.deferredLoad,this))}if(t.lazyLoad){this.showMoreButton=document.querySelector('[data-use="show-more-'+this.navParams.NavNum+'"]');this.showMoreButtonMessage=this.showMoreButton.innerHTML;BX.bind(this.showMoreButton,"click",BX.proxy(this.showMore,this))}if(t.loadOnScroll){BX.bind(window,"scroll",BX.proxy(this.loadOnScroll,this))}};window.JCCatalogSectionComponent.prototype={checkButton:function(){if(this.showMoreButton){if(this.navParams.NavPageNomer==this.navParams.NavPageCount){BX.remove(this.showMoreButton)}else{this.container.appendChild(this.showMoreButton)}}},enableButton:function(){if(this.showMoreButton){BX.removeClass(this.showMoreButton,"disabled");this.showMoreButton.innerHTML=this.showMoreButtonMessage}},disableButton:function(){if(this.showMoreButton){BX.addClass(this.showMoreButton,"disabled");this.showMoreButton.innerHTML=BX.message("BTN_MESSAGE_LAZY_LOAD_WAITER")}},loadOnScroll:function(){var t=BX.GetWindowScrollPos().scrollTop,e=BX.pos(this.container).bottom;if(t+window.innerHeight>e){this.showMore()}},showMore:function(){if(this.navParams.NavPageNomer + * | + * | + */ + +$this->setFrameMode(true); + + + + +if (!empty($arResult['NAV_RESULT'])) +{ + $navParams = array( + 'NavPageCount' => $arResult['NAV_RESULT']->NavPageCount, + 'NavPageNomer' => $arResult['NAV_RESULT']->NavPageNomer, + 'NavNum' => $arResult['NAV_RESULT']->NavNum + ); +} +else +{ + $navParams = array( + 'NavPageCount' => 1, + 'NavPageNomer' => 1, + 'NavNum' => $this->randString() + ); +} + +$showTopPager = false; +$showBottomPager = false; +$showLazyLoad = false; + +if ($arParams['PAGE_ELEMENT_COUNT'] > 0 && $navParams['NavPageCount'] > 1) +{ + $showTopPager = $arParams['DISPLAY_TOP_PAGER']; + $showBottomPager = $arParams['DISPLAY_BOTTOM_PAGER']; + $showLazyLoad = $arParams['LAZY_LOAD'] === 'Y' && $navParams['NavPageNomer'] != $navParams['NavPageCount']; +} + +$templateLibrary = array('popup', 'ajax', 'fx'); +$currencyList = ''; + +if (!empty($arResult['CURRENCIES'])) +{ + $templateLibrary[] = 'currency'; + $currencyList = CUtil::PhpToJSObject($arResult['CURRENCIES'], false, true, true); +} + +$templateData = array( + 'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'], + 'TEMPLATE_LIBRARY' => $templateLibrary, + 'CURRENCIES' => $currencyList, + 'USE_PAGINATION_CONTAINER' => $showTopPager || $showBottomPager, +); +unset($currencyList, $templateLibrary); + +$elementEdit = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_EDIT'); +$elementDelete = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_DELETE'); +$elementDeleteParams = array('CONFIRM' => GetMessage('CT_BCS_TPL_ELEMENT_DELETE_CONFIRM')); + +$positionClassMap = array( + 'left' => 'product-item-label-left', + 'center' => 'product-item-label-center', + 'right' => 'product-item-label-right', + 'bottom' => 'product-item-label-bottom', + 'middle' => 'product-item-label-middle', + 'top' => 'product-item-label-top' +); + +$discountPositionClass = ''; +if ($arParams['SHOW_DISCOUNT_PERCENT'] === 'Y' && !empty($arParams['DISCOUNT_PERCENT_POSITION'])) +{ + foreach (explode('-', $arParams['DISCOUNT_PERCENT_POSITION']) as $pos) + { + $discountPositionClass .= isset($positionClassMap[$pos]) ? ' '.$positionClassMap[$pos] : ''; + } +} + +$labelPositionClass = ''; +if (!empty($arParams['LABEL_PROP_POSITION'])) +{ + foreach (explode('-', $arParams['LABEL_PROP_POSITION']) as $pos) + { + $labelPositionClass .= isset($positionClassMap[$pos]) ? ' '.$positionClassMap[$pos] : ''; + } +} + +$arParams['~MESS_BTN_BUY'] = ($arParams['~MESS_BTN_BUY'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_BUY'); +$arParams['~MESS_BTN_DETAIL'] = ($arParams['~MESS_BTN_DETAIL'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_DETAIL'); +$arParams['~MESS_BTN_COMPARE'] = ($arParams['~MESS_BTN_COMPARE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_COMPARE'); +$arParams['~MESS_BTN_SUBSCRIBE'] = ($arParams['~MESS_BTN_SUBSCRIBE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_SUBSCRIBE'); +$arParams['~MESS_BTN_ADD_TO_BASKET'] = ($arParams['~MESS_BTN_ADD_TO_BASKET'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_ADD_TO_BASKET'); +$arParams['~MESS_NOT_AVAILABLE'] = ($arParams['~MESS_NOT_AVAILABLE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_PRODUCT_NOT_AVAILABLE'); +$arParams['~MESS_NOT_AVAILABLE_SERVICE'] = ($arParams['~MESS_NOT_AVAILABLE_SERVICE'] ?? '') ?: Loc::getMessage('CP_BCS_TPL_MESS_PRODUCT_NOT_AVAILABLE_SERVICE'); +$arParams['~MESS_SHOW_MAX_QUANTITY'] = ($arParams['~MESS_SHOW_MAX_QUANTITY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_SHOW_MAX_QUANTITY'); +$arParams['~MESS_RELATIVE_QUANTITY_MANY'] = ($arParams['~MESS_RELATIVE_QUANTITY_MANY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_MANY'); +$arParams['MESS_RELATIVE_QUANTITY_MANY'] = ($arParams['MESS_RELATIVE_QUANTITY_MANY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_MANY'); +$arParams['~MESS_RELATIVE_QUANTITY_FEW'] = ($arParams['~MESS_RELATIVE_QUANTITY_FEW'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_FEW'); +$arParams['MESS_RELATIVE_QUANTITY_FEW'] = ($arParams['MESS_RELATIVE_QUANTITY_FEW'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_FEW'); + +$arParams['MESS_BTN_LAZY_LOAD'] = $arParams['MESS_BTN_LAZY_LOAD'] ?: Loc::getMessage('CT_BCS_CATALOG_MESS_BTN_LAZY_LOAD'); + +$obName = 'ob'.preg_replace('/[^a-zA-Z0-9_]/', 'x', $this->GetEditAreaId($navParams['NavNum'])); +$containerName = 'container-'.$navParams['NavNum']; + +if ($showTopPager) +{ + ?> +
+ + + +
+ + + + + + +
+ $arParams['SHOW_DISCOUNT_PERCENT'], + 'PRODUCT_DISPLAY_MODE' => $arParams['PRODUCT_DISPLAY_MODE'], + 'SHOW_MAX_QUANTITY' => $arParams['SHOW_MAX_QUANTITY'], + 'RELATIVE_QUANTITY_FACTOR' => $arParams['RELATIVE_QUANTITY_FACTOR'], + 'MESS_SHOW_MAX_QUANTITY' => $arParams['~MESS_SHOW_MAX_QUANTITY'], + 'MESS_RELATIVE_QUANTITY_MANY' => $arParams['~MESS_RELATIVE_QUANTITY_MANY'], + 'MESS_RELATIVE_QUANTITY_FEW' => $arParams['~MESS_RELATIVE_QUANTITY_FEW'], + 'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'], + 'USE_PRODUCT_QUANTITY' => $arParams['USE_PRODUCT_QUANTITY'], + 'PRODUCT_QUANTITY_VARIABLE' => $arParams['PRODUCT_QUANTITY_VARIABLE'], + 'ADD_TO_BASKET_ACTION' => $arParams['ADD_TO_BASKET_ACTION'], + 'ADD_PROPERTIES_TO_BASKET' => $arParams['ADD_PROPERTIES_TO_BASKET'], + 'PRODUCT_PROPS_VARIABLE' => $arParams['PRODUCT_PROPS_VARIABLE'], + 'SHOW_CLOSE_POPUP' => $arParams['SHOW_CLOSE_POPUP'], + 'DISPLAY_COMPARE' => $arParams['DISPLAY_COMPARE'], + 'COMPARE_PATH' => $arParams['COMPARE_PATH'], + 'COMPARE_NAME' => $arParams['COMPARE_NAME'], + 'PRODUCT_SUBSCRIPTION' => $arParams['PRODUCT_SUBSCRIPTION'], + 'PRODUCT_BLOCKS_ORDER' => $arParams['PRODUCT_BLOCKS_ORDER'], + 'LABEL_POSITION_CLASS' => $labelPositionClass, + 'DISCOUNT_POSITION_CLASS' => $discountPositionClass, + 'SLIDER_INTERVAL' => $arParams['SLIDER_INTERVAL'], + 'SLIDER_PROGRESS' => $arParams['SLIDER_PROGRESS'], + '~BASKET_URL' => $arParams['~BASKET_URL'], + '~ADD_URL_TEMPLATE' => $arResult['~ADD_URL_TEMPLATE'], + '~BUY_URL_TEMPLATE' => $arResult['~BUY_URL_TEMPLATE'], + '~COMPARE_URL_TEMPLATE' => $arResult['~COMPARE_URL_TEMPLATE'], + '~COMPARE_DELETE_URL_TEMPLATE' => $arResult['~COMPARE_DELETE_URL_TEMPLATE'], + 'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'], + 'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'], + 'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'], + 'BRAND_PROPERTY' => $arParams['BRAND_PROPERTY'], + 'MESS_BTN_BUY' => $arParams['~MESS_BTN_BUY'], + 'MESS_BTN_DETAIL' => $arParams['~MESS_BTN_DETAIL'], + 'MESS_BTN_COMPARE' => $arParams['~MESS_BTN_COMPARE'], + 'MESS_BTN_SUBSCRIBE' => $arParams['~MESS_BTN_SUBSCRIBE'], + 'MESS_BTN_ADD_TO_BASKET' => $arParams['~MESS_BTN_ADD_TO_BASKET'], + ]; + + $areaIds = []; + $itemParameters = []; + + foreach ($arResult['ITEMS'] as $item) + { + $uniqueId = $item['ID'].'_'.md5($this->randString().$component->getAction()); + $areaIds[$item['ID']] = $this->GetEditAreaId($uniqueId); + $this->AddEditAction($uniqueId, $item['EDIT_LINK'], $elementEdit); + $this->AddDeleteAction($uniqueId, $item['DELETE_LINK'], $elementDelete, $elementDeleteParams); + + $itemParameters[$item['ID']] = [ + 'SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']], + 'MESS_NOT_AVAILABLE' => ($arResult['MODULES']['catalog'] && $item['PRODUCT']['TYPE'] === ProductTable::TYPE_SERVICE + ? $arParams['~MESS_NOT_AVAILABLE_SERVICE'] + : $arParams['~MESS_NOT_AVAILABLE'] + ), + ]; + } + ?> + + +
+
+
Сортировать
+ + + + +
+ + + +
+ + +
+
+ + + +
+ +

case 0

+
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+
+
+
+
+ +

case 1

+
+
+ +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+
+
+ +
+
+ + + + + IncludeComponent( + 'bitrix:catalog.item', + 'cat_item', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> + + + + + + + + IncludeComponent( + 'bitrix:catalog.item', + 'cat_item', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> + + + + +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ + +
+
+ +
+ + + + +
+ +sign($templateName, 'catalog.section'); +$signedParams = $signer->sign(base64_encode(serialize($arResult['ORIGINAL_PARAMETERS'])), 'catalog.section'); +?> + + diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/template2.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/template2.php new file mode 100644 index 0000000..8495543 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/template2.php @@ -0,0 +1,829 @@ + + * | + * | + */ + +$this->setFrameMode(true); + + + + +if (!empty($arResult['NAV_RESULT'])) +{ + $navParams = array( + 'NavPageCount' => $arResult['NAV_RESULT']->NavPageCount, + 'NavPageNomer' => $arResult['NAV_RESULT']->NavPageNomer, + 'NavNum' => $arResult['NAV_RESULT']->NavNum + ); +} +else +{ + $navParams = array( + 'NavPageCount' => 1, + 'NavPageNomer' => 1, + 'NavNum' => $this->randString() + ); +} + +$showTopPager = false; +$showBottomPager = false; +$showLazyLoad = false; + +if ($arParams['PAGE_ELEMENT_COUNT'] > 0 && $navParams['NavPageCount'] > 1) +{ + $showTopPager = $arParams['DISPLAY_TOP_PAGER']; + $showBottomPager = $arParams['DISPLAY_BOTTOM_PAGER']; + $showLazyLoad = $arParams['LAZY_LOAD'] === 'Y' && $navParams['NavPageNomer'] != $navParams['NavPageCount']; +} + +$templateLibrary = array('popup', 'ajax', 'fx'); +$currencyList = ''; + +if (!empty($arResult['CURRENCIES'])) +{ + $templateLibrary[] = 'currency'; + $currencyList = CUtil::PhpToJSObject($arResult['CURRENCIES'], false, true, true); +} + +$templateData = array( + 'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'], + 'TEMPLATE_LIBRARY' => $templateLibrary, + 'CURRENCIES' => $currencyList, + 'USE_PAGINATION_CONTAINER' => $showTopPager || $showBottomPager, +); +unset($currencyList, $templateLibrary); + +$elementEdit = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_EDIT'); +$elementDelete = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_DELETE'); +$elementDeleteParams = array('CONFIRM' => GetMessage('CT_BCS_TPL_ELEMENT_DELETE_CONFIRM')); + +$positionClassMap = array( + 'left' => 'product-item-label-left', + 'center' => 'product-item-label-center', + 'right' => 'product-item-label-right', + 'bottom' => 'product-item-label-bottom', + 'middle' => 'product-item-label-middle', + 'top' => 'product-item-label-top' +); + +$discountPositionClass = ''; +if ($arParams['SHOW_DISCOUNT_PERCENT'] === 'Y' && !empty($arParams['DISCOUNT_PERCENT_POSITION'])) +{ + foreach (explode('-', $arParams['DISCOUNT_PERCENT_POSITION']) as $pos) + { + $discountPositionClass .= isset($positionClassMap[$pos]) ? ' '.$positionClassMap[$pos] : ''; + } +} + +$labelPositionClass = ''; +if (!empty($arParams['LABEL_PROP_POSITION'])) +{ + foreach (explode('-', $arParams['LABEL_PROP_POSITION']) as $pos) + { + $labelPositionClass .= isset($positionClassMap[$pos]) ? ' '.$positionClassMap[$pos] : ''; + } +} + +$arParams['~MESS_BTN_BUY'] = ($arParams['~MESS_BTN_BUY'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_BUY'); +$arParams['~MESS_BTN_DETAIL'] = ($arParams['~MESS_BTN_DETAIL'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_DETAIL'); +$arParams['~MESS_BTN_COMPARE'] = ($arParams['~MESS_BTN_COMPARE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_COMPARE'); +$arParams['~MESS_BTN_SUBSCRIBE'] = ($arParams['~MESS_BTN_SUBSCRIBE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_SUBSCRIBE'); +$arParams['~MESS_BTN_ADD_TO_BASKET'] = ($arParams['~MESS_BTN_ADD_TO_BASKET'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_ADD_TO_BASKET'); +$arParams['~MESS_NOT_AVAILABLE'] = ($arParams['~MESS_NOT_AVAILABLE'] ?? '') ?: Loc::getMessage('CT_BCS_TPL_MESS_PRODUCT_NOT_AVAILABLE'); +$arParams['~MESS_NOT_AVAILABLE_SERVICE'] = ($arParams['~MESS_NOT_AVAILABLE_SERVICE'] ?? '') ?: Loc::getMessage('CP_BCS_TPL_MESS_PRODUCT_NOT_AVAILABLE_SERVICE'); +$arParams['~MESS_SHOW_MAX_QUANTITY'] = ($arParams['~MESS_SHOW_MAX_QUANTITY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_SHOW_MAX_QUANTITY'); +$arParams['~MESS_RELATIVE_QUANTITY_MANY'] = ($arParams['~MESS_RELATIVE_QUANTITY_MANY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_MANY'); +$arParams['MESS_RELATIVE_QUANTITY_MANY'] = ($arParams['MESS_RELATIVE_QUANTITY_MANY'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_MANY'); +$arParams['~MESS_RELATIVE_QUANTITY_FEW'] = ($arParams['~MESS_RELATIVE_QUANTITY_FEW'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_FEW'); +$arParams['MESS_RELATIVE_QUANTITY_FEW'] = ($arParams['MESS_RELATIVE_QUANTITY_FEW'] ?? '') ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_FEW'); + +$arParams['MESS_BTN_LAZY_LOAD'] = $arParams['MESS_BTN_LAZY_LOAD'] ?: Loc::getMessage('CT_BCS_CATALOG_MESS_BTN_LAZY_LOAD'); + +$obName = 'ob'.preg_replace('/[^a-zA-Z0-9_]/', 'x', $this->GetEditAreaId($navParams['NavNum'])); +$containerName = 'container-'.$navParams['NavNum']; + +if ($showTopPager) +{ + ?> +
+ + + +
+ + + + + + +
+ $arParams['SHOW_DISCOUNT_PERCENT'], + 'PRODUCT_DISPLAY_MODE' => $arParams['PRODUCT_DISPLAY_MODE'], + 'SHOW_MAX_QUANTITY' => $arParams['SHOW_MAX_QUANTITY'], + 'RELATIVE_QUANTITY_FACTOR' => $arParams['RELATIVE_QUANTITY_FACTOR'], + 'MESS_SHOW_MAX_QUANTITY' => $arParams['~MESS_SHOW_MAX_QUANTITY'], + 'MESS_RELATIVE_QUANTITY_MANY' => $arParams['~MESS_RELATIVE_QUANTITY_MANY'], + 'MESS_RELATIVE_QUANTITY_FEW' => $arParams['~MESS_RELATIVE_QUANTITY_FEW'], + 'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'], + 'USE_PRODUCT_QUANTITY' => $arParams['USE_PRODUCT_QUANTITY'], + 'PRODUCT_QUANTITY_VARIABLE' => $arParams['PRODUCT_QUANTITY_VARIABLE'], + 'ADD_TO_BASKET_ACTION' => $arParams['ADD_TO_BASKET_ACTION'], + 'ADD_PROPERTIES_TO_BASKET' => $arParams['ADD_PROPERTIES_TO_BASKET'], + 'PRODUCT_PROPS_VARIABLE' => $arParams['PRODUCT_PROPS_VARIABLE'], + 'SHOW_CLOSE_POPUP' => $arParams['SHOW_CLOSE_POPUP'], + 'DISPLAY_COMPARE' => $arParams['DISPLAY_COMPARE'], + 'COMPARE_PATH' => $arParams['COMPARE_PATH'], + 'COMPARE_NAME' => $arParams['COMPARE_NAME'], + 'PRODUCT_SUBSCRIPTION' => $arParams['PRODUCT_SUBSCRIPTION'], + 'PRODUCT_BLOCKS_ORDER' => $arParams['PRODUCT_BLOCKS_ORDER'], + 'LABEL_POSITION_CLASS' => $labelPositionClass, + 'DISCOUNT_POSITION_CLASS' => $discountPositionClass, + 'SLIDER_INTERVAL' => $arParams['SLIDER_INTERVAL'], + 'SLIDER_PROGRESS' => $arParams['SLIDER_PROGRESS'], + '~BASKET_URL' => $arParams['~BASKET_URL'], + '~ADD_URL_TEMPLATE' => $arResult['~ADD_URL_TEMPLATE'], + '~BUY_URL_TEMPLATE' => $arResult['~BUY_URL_TEMPLATE'], + '~COMPARE_URL_TEMPLATE' => $arResult['~COMPARE_URL_TEMPLATE'], + '~COMPARE_DELETE_URL_TEMPLATE' => $arResult['~COMPARE_DELETE_URL_TEMPLATE'], + 'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'], + 'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'], + 'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'], + 'BRAND_PROPERTY' => $arParams['BRAND_PROPERTY'], + 'MESS_BTN_BUY' => $arParams['~MESS_BTN_BUY'], + 'MESS_BTN_DETAIL' => $arParams['~MESS_BTN_DETAIL'], + 'MESS_BTN_COMPARE' => $arParams['~MESS_BTN_COMPARE'], + 'MESS_BTN_SUBSCRIBE' => $arParams['~MESS_BTN_SUBSCRIBE'], + 'MESS_BTN_ADD_TO_BASKET' => $arParams['~MESS_BTN_ADD_TO_BASKET'], + ]; + + $areaIds = []; + $itemParameters = []; + + foreach ($arResult['ITEMS'] as $item) + { + $uniqueId = $item['ID'].'_'.md5($this->randString().$component->getAction()); + $areaIds[$item['ID']] = $this->GetEditAreaId($uniqueId); + $this->AddEditAction($uniqueId, $item['EDIT_LINK'], $elementEdit); + $this->AddDeleteAction($uniqueId, $item['DELETE_LINK'], $elementDelete, $elementDeleteParams); + + $itemParameters[$item['ID']] = [ + 'SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']], + 'MESS_NOT_AVAILABLE' => ($arResult['MODULES']['catalog'] && $item['PRODUCT']['TYPE'] === ProductTable::TYPE_SERVICE + ? $arParams['~MESS_NOT_AVAILABLE_SERVICE'] + : $arParams['~MESS_NOT_AVAILABLE'] + ), + ]; + } + ?> + + +
+
+
Сортировать
+ + + + +
+ + + +
+ + +
+
+ + + +
+ +

case 0

+
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+
+
+
+
+ +

case 1

+
+
+ +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+
+
+ +
+
+ + + + + IncludeComponent( + 'bitrix:catalog.item', + 'cat_item', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> + + + + + + + + IncludeComponent( + 'bitrix:catalog.item', + 'cat_item', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> + + + + +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $rowItems[$i], + 'AREA_ID' => $areaIds[$rowItems[$i]['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$rowItems[$i]['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ +
+
+
+
+
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'Y' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + unset($item); + ?> +
+
+
+ +
+
+ +
+ IncludeComponent( + 'bitrix:catalog.item', + '', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> +
+ + +
+
+ +
+ + + + +
+ + sign($templateName, 'catalog.section'); +$signedParams = $signer->sign(base64_encode(serialize($arResult['ORIGINAL_PARAMETERS'])), 'catalog.section'); +?> + + diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/template_new.php b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/template_new.php new file mode 100644 index 0000000..f87a109 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/template_new.php @@ -0,0 +1,267 @@ +
+
+
+
Сортировать
+ + + + +
+ + + +
+ + +
+
+
+ + + + * | + * | + */ + + + $discountPositionClass = ''; + if ($arParams['SHOW_DISCOUNT_PERCENT'] === 'Y' && !empty($arParams['DISCOUNT_PERCENT_POSITION'])) + { + foreach (explode('-', $arParams['DISCOUNT_PERCENT_POSITION']) as $pos) + { + $discountPositionClass .= isset($positionClassMap[$pos]) ? ' '.$positionClassMap[$pos] : ''; + } + } + + $labelPositionClass = ''; + if (!empty($arParams['LABEL_PROP_POSITION'])) + { + foreach (explode('-', $arParams['LABEL_PROP_POSITION']) as $pos) + { + $labelPositionClass .= isset($positionClassMap[$pos]) ? ' '.$positionClassMap[$pos] : ''; + } + } + + if (!empty($arResult['ITEMS']) && !empty($arResult['ITEM_ROWS'])) + { + $generalParams = [ + 'SHOW_DISCOUNT_PERCENT' => $arParams['SHOW_DISCOUNT_PERCENT'], + 'PRODUCT_DISPLAY_MODE' => $arParams['PRODUCT_DISPLAY_MODE'], + 'SHOW_MAX_QUANTITY' => $arParams['SHOW_MAX_QUANTITY'], + 'RELATIVE_QUANTITY_FACTOR' => $arParams['RELATIVE_QUANTITY_FACTOR'], + 'MESS_SHOW_MAX_QUANTITY' => $arParams['~MESS_SHOW_MAX_QUANTITY'], + 'MESS_RELATIVE_QUANTITY_MANY' => $arParams['~MESS_RELATIVE_QUANTITY_MANY'], + 'MESS_RELATIVE_QUANTITY_FEW' => $arParams['~MESS_RELATIVE_QUANTITY_FEW'], + 'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'], + 'USE_PRODUCT_QUANTITY' => $arParams['USE_PRODUCT_QUANTITY'], + 'PRODUCT_QUANTITY_VARIABLE' => $arParams['PRODUCT_QUANTITY_VARIABLE'], + 'ADD_TO_BASKET_ACTION' => $arParams['ADD_TO_BASKET_ACTION'], + 'ADD_PROPERTIES_TO_BASKET' => $arParams['ADD_PROPERTIES_TO_BASKET'], + 'PRODUCT_PROPS_VARIABLE' => $arParams['PRODUCT_PROPS_VARIABLE'], + 'SHOW_CLOSE_POPUP' => $arParams['SHOW_CLOSE_POPUP'], + 'DISPLAY_COMPARE' => $arParams['DISPLAY_COMPARE'], + 'COMPARE_PATH' => $arParams['COMPARE_PATH'], + 'COMPARE_NAME' => $arParams['COMPARE_NAME'], + 'PRODUCT_SUBSCRIPTION' => $arParams['PRODUCT_SUBSCRIPTION'], + 'PRODUCT_BLOCKS_ORDER' => $arParams['PRODUCT_BLOCKS_ORDER'], + 'LABEL_POSITION_CLASS' => $labelPositionClass, + 'DISCOUNT_POSITION_CLASS' => $discountPositionClass, + 'SLIDER_INTERVAL' => $arParams['SLIDER_INTERVAL'], + 'SLIDER_PROGRESS' => $arParams['SLIDER_PROGRESS'], + '~BASKET_URL' => $arParams['~BASKET_URL'], + '~ADD_URL_TEMPLATE' => $arResult['~ADD_URL_TEMPLATE'], + '~BUY_URL_TEMPLATE' => $arResult['~BUY_URL_TEMPLATE'], + '~COMPARE_URL_TEMPLATE' => $arResult['~COMPARE_URL_TEMPLATE'], + '~COMPARE_DELETE_URL_TEMPLATE' => $arResult['~COMPARE_DELETE_URL_TEMPLATE'], + 'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'], + 'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'], + 'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'], + 'BRAND_PROPERTY' => $arParams['BRAND_PROPERTY'], + 'MESS_BTN_BUY' => $arParams['~MESS_BTN_BUY'], + 'MESS_BTN_DETAIL' => $arParams['~MESS_BTN_DETAIL'], + 'MESS_BTN_COMPARE' => $arParams['~MESS_BTN_COMPARE'], + 'MESS_BTN_SUBSCRIBE' => $arParams['~MESS_BTN_SUBSCRIBE'], + 'MESS_BTN_ADD_TO_BASKET' => $arParams['~MESS_BTN_ADD_TO_BASKET'], + ]; +} + $elementEdit = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_EDIT'); + $elementDelete = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_DELETE'); + $elementDeleteParams = array('CONFIRM' => GetMessage('CT_BCS_TPL_ELEMENT_DELETE_CONFIRM')); + + $areaIds = []; + $itemParameters = []; + + foreach ($arResult['ITEMS'] as $item) + { + $uniqueId = $item['ID'].'_'.md5($this->randString().$component->getAction()); + $areaIds[$item['ID']] = $this->GetEditAreaId($uniqueId); + $this->AddEditAction($uniqueId, $item['EDIT_LINK'], $elementEdit); + $this->AddDeleteAction($uniqueId, $item['DELETE_LINK'], $elementDelete, $elementDeleteParams); + + $itemParameters[$item['ID']] = [ + 'SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']], + 'MESS_NOT_AVAILABLE' => ($arResult['MODULES']['catalog'] && $item['PRODUCT']['TYPE'] === ProductTable::TYPE_SERVICE + ? $arParams['~MESS_NOT_AVAILABLE_SERVICE'] + : $arParams['~MESS_NOT_AVAILABLE'] + ), + ]; + } + ?> + + + + + + + + IncludeComponent( + 'bitrix:catalog.item', + 'cat_item', + array( + 'RESULT' => array( + 'ITEM' => $item, + 'AREA_ID' => $areaIds[$item['ID']], + 'TYPE' => $rowData['TYPE'], + 'BIG_LABEL' => 'N', + 'BIG_DISCOUNT_PERCENT' => 'N', + 'BIG_BUTTONS' => 'Y', + 'SCALABLE' => 'N' + ), + 'PARAMS' => $generalParams + $itemParameters[$item['ID']], + ), + $component, + array('HIDE_ICONS' => 'Y') + ); + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/images/x2border_active.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/images/x2border_active.png new file mode 100644 index 0000000..7eb3fee Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/images/x2border_active.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/style.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/style.css new file mode 100644 index 0000000..6b51eef --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/style.css @@ -0,0 +1,61 @@ +/* catalog.section */ +.bx_black.bx-section-desc{ + border-left-color:#0083d1; +} +.bx_catalog_list_home.bx_black .bx_bt_button { + background:#00a2df; + background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYTJkZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDZmY2IiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#00a2df),color-stop(100%,#006fcb)); + background:-webkit-linear-gradient(top,#00a2df 0%,#006fcb 100%); + background: -moz-linear-gradient(top,#00a2df 0%,#006fcb 100%); + background: -ms-linear-gradient(top,#00a2df 0%,#006fcb 100%); + background: -o-linear-gradient(top,#00a2df 0%,#006fcb 100%); + background: linear-gradient(to bottom,#00a2df 0%,#006fcb 100%); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00a2df',endColorstr='#006fcb',GradientType=0); + + color:#fff; + text-shadow: 0 1px 0 #165c99; + display:inline-block; + border-radius:3px; + text-align:center; + text-decoration:none; + font-size:14px; + cursor:pointer; +} +.bx_catalog_list_home.bx_black .bx_bt_button:hover { + background:#26b0e4; + background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzI2YjBlNCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMyNjg0ZDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#26b0e4),color-stop(100%,#2684d3)); + background:-webkit-linear-gradient(top,#26b0e4 0%,#2684d3 100%); + background: -moz-linear-gradient(top,#26b0e4 0%,#2684d3 100%); + background: -ms-linear-gradient(top,#26b0e4 0%,#2684d3 100%); + background: -o-linear-gradient(top,#26b0e4 0%,#2684d3 100%); + background: linear-gradient(to bottom,#26b0e4 0%,#2684d3 100%); + filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#26b0e4',endColorstr='#2684d3',GradientType=0 ); +} +.bx_catalog_list_home.bx_black .bx_bt_button:active { + background:#0052bf; + background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwNTJiZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDg1ZDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#0052bf),color-stop(100%,#0085d3)); + background:-webkit-linear-gradient(top,#0052bf 0%,#0085d3 100%); + background: -moz-linear-gradient(top,#0052bf 0%,#0085d3 100%); + background: -ms-linear-gradient(top,#0052bf 0%,#0085d3 100%); + background: -o-linear-gradient(top,#0052bf 0%,#0085d3 100%); + background:linear-gradient(to bottom,#0052bf 0%,#0085d3 100%); + filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#0052bf',endColorstr='#0085d3',GradientType=0 ); +} + +/* scu_detail_size */ +.bx-retina .bx_catalog_list_home.bx_black .bx_item_detail_size ul li.bx_active .cnt{ + -webkit-border-image: url(images/x2border_active.png) 2 stretch; + -moz-border-image: url(images/x2border_active.png) 2 stretch; + -o-border-image: url(images/x2border_active.png) 2 stretch; + border-image: url(images/x2border_active.png) 2 fill stretch; +} +/* scu_detail_scu */ +.bx-retina .bx_catalog_list_home.bx_black .bx_item_detail_scu .bx_scu ul li.bx_active .cnt{ + -webkit-border-image: url(images/x2border_active.png) 2 stretch; + -moz-border-image: url(images/x2border_active.png) 2 stretch; + -o-border-image: url(images/x2border_active.png) 2 stretch; + border-image: url(images/x2border_active.png) 2 fill stretch; +} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/style.min.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/style.min.css new file mode 100644 index 0000000..9c34b2a --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/black/style.min.css @@ -0,0 +1 @@ +.bx_black.bx-section-desc{border-left-color:#0083d1}.bx_catalog_list_home.bx_black .bx_bt_button{background:#00a2df;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYTJkZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDZmY2IiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#00a2df),color-stop(100%,#006fcb));background:-webkit-linear-gradient(top,#00a2df 0,#006fcb 100%);background:-moz-linear-gradient(top,#00a2df 0,#006fcb 100%);background:-ms-linear-gradient(top,#00a2df 0,#006fcb 100%);background:-o-linear-gradient(top,#00a2df 0,#006fcb 100%);background:linear-gradient(to bottom,#00a2df 0,#006fcb 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00a2df',endColorstr='#006fcb',GradientType=0);color:#fff;text-shadow:0 1px 0 #165c99;display:inline-block;border-radius:3px;text-align:center;text-decoration:none;font-size:14px;cursor:pointer}.bx_catalog_list_home.bx_black .bx_bt_button:hover{background:#26b0e4;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzI2YjBlNCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMyNjg0ZDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#26b0e4),color-stop(100%,#2684d3));background:-webkit-linear-gradient(top,#26b0e4 0,#2684d3 100%);background:-moz-linear-gradient(top,#26b0e4 0,#2684d3 100%);background:-ms-linear-gradient(top,#26b0e4 0,#2684d3 100%);background:-o-linear-gradient(top,#26b0e4 0,#2684d3 100%);background:linear-gradient(to bottom,#26b0e4 0,#2684d3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#26b0e4',endColorstr='#2684d3',GradientType=0)}.bx_catalog_list_home.bx_black .bx_bt_button:active{background:#0052bf;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwNTJiZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDg1ZDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#0052bf),color-stop(100%,#0085d3));background:-webkit-linear-gradient(top,#0052bf 0,#0085d3 100%);background:-moz-linear-gradient(top,#0052bf 0,#0085d3 100%);background:-ms-linear-gradient(top,#0052bf 0,#0085d3 100%);background:-o-linear-gradient(top,#0052bf 0,#0085d3 100%);background:linear-gradient(to bottom,#0052bf 0,#0085d3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0052bf',endColorstr='#0085d3',GradientType=0)}.bx-retina .bx_catalog_list_home.bx_black .bx_item_detail_size ul li.bx_active .cnt{-webkit-border-image:url(images/x2border_active.png) 2 stretch;-moz-border-image:url(images/x2border_active.png) 2 stretch;-o-border-image:url(images/x2border_active.png) 2 stretch;border-image:url(images/x2border_active.png) 2 fill stretch}.bx-retina .bx_catalog_list_home.bx_black .bx_item_detail_scu .bx_scu ul li.bx_active .cnt{-webkit-border-image:url(images/x2border_active.png) 2 stretch;-moz-border-image:url(images/x2border_active.png) 2 stretch;-o-border-image:url(images/x2border_active.png) 2 stretch;border-image:url(images/x2border_active.png) 2 fill stretch} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/images/x2border.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/images/x2border.png new file mode 100644 index 0000000..e7b32cf Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/images/x2border.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/images/x2border_active.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/images/x2border_active.png new file mode 100644 index 0000000..7eb3fee Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/images/x2border_active.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/style.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/style.css new file mode 100644 index 0000000..707d22e --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/style.css @@ -0,0 +1,25 @@ +/* catalog.section */ + +/* +#3052bf +#26b0e4 +#00a2df +*/ + +/* Slider */ +.bx-blue .product-item-image-slider-progress-bar { background-color: #0083d1;} +.bx-blue .product-item-image-slider-control:hover{ background-color: rgba(0,131,209,.8);} +.bx-blue .product-item-image-slider-control.active, +.bx-blue .product-item-image-slider-control:hover{ background-color: #0083d1;} + +/* SCU */ +.bx-blue .product-item-scu-item-text-block:hover, +.bx-blue .product-item-scu-item-color-block:hover, +.bx-blue .product-item-scu-item-text-container.selected .product-item-scu-item-text-block, +.bx-blue .product-item-scu-item-color-container.selected .product-item-scu-item-color-block{ outline-color: #006cc0;} + +/* Amount */ +.bx-blue .product-item-amount-field:focus{border-color: #006cc0;} + + +.bx-blue .catalog-section-header{border-color:#006cc0;} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/style.min.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/style.min.css new file mode 100644 index 0000000..c0f4105 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/blue/style.min.css @@ -0,0 +1 @@ +.bx-blue .product-item-image-slider-progress-bar{background-color:#0083d1}.bx-blue .product-item-image-slider-control:hover{background-color:rgba(0,131,209,.8)}.bx-blue .product-item-image-slider-control.active,.bx-blue .product-item-image-slider-control:hover{background-color:#0083d1}.bx-blue .product-item-scu-item-text-block:hover,.bx-blue .product-item-scu-item-color-block:hover,.bx-blue .product-item-scu-item-text-container.selected .product-item-scu-item-text-block,.bx-blue .product-item-scu-item-color-container.selected .product-item-scu-item-color-block{outline-color:#006cc0}.bx-blue .product-item-amount-field:focus{border-color:#006cc0}.bx-blue .catalog-section-header{border-color:#006cc0} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/images/x2border.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/images/x2border.png new file mode 100644 index 0000000..e7b32cf Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/images/x2border.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/images/x2border_active.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/images/x2border_active.png new file mode 100644 index 0000000..96c4255 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/images/x2border_active.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/style.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/style.css new file mode 100644 index 0000000..e33fb06 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/style.css @@ -0,0 +1,26 @@ +/* catalog.section */ + +/* +#63aa28 +#6fb32d +#7ab748 +#a8d95b +*/ + +/* Slider */ +.bx-green .product-item-image-slider-progress-bar { background-color: #5b9f0b;} +.bx-green .product-item-image-slider-control:hover{ background-color: rgba(91,159,11,.8);} +.bx-green .product-item-image-slider-control.active, +.bx-green .product-item-image-slider-control:hover{ background-color: #5b9f0b;} + +/* SCU */ +.bx-green .product-item-scu-item-text-block:hover, +.bx-green .product-item-scu-item-color-block:hover, +.bx-green .product-item-scu-item-text-container.selected .product-item-scu-item-text-block, +.bx-green .product-item-scu-item-color-container.selected .product-item-scu-item-color-block{ outline-color: #63aa28;} + +/* Amount */ +.bx-green .product-item-amount-field:focus{border-color: #63aa28;} + + +.bx-green .catalog-section-header{border-color:#63aa28;} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/style.min.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/style.min.css new file mode 100644 index 0000000..623432e --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/green/style.min.css @@ -0,0 +1 @@ +.bx-green .product-item-image-slider-progress-bar{background-color:#5b9f0b}.bx-green .product-item-image-slider-control:hover{background-color:rgba(91,159,11,.8)}.bx-green .product-item-image-slider-control.active,.bx-green .product-item-image-slider-control:hover{background-color:#5b9f0b}.bx-green .product-item-scu-item-text-block:hover,.bx-green .product-item-scu-item-color-block:hover,.bx-green .product-item-scu-item-text-container.selected .product-item-scu-item-text-block,.bx-green .product-item-scu-item-color-container.selected .product-item-scu-item-color-block{outline-color:#63aa28}.bx-green .product-item-amount-field:focus{border-color:#63aa28}.bx-green .catalog-section-header{border-color:#63aa28} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/images/x2border_active.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/images/x2border_active.png new file mode 100644 index 0000000..0fe7892 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/images/x2border_active.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/style.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/style.css new file mode 100644 index 0000000..6fb672c --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/style.css @@ -0,0 +1,26 @@ +/* catalog.section */ + +/* +#651c0d +#a9331c +#772c1c +#bd4b35 +*/ + +/* Slider */ +.bx-red .product-item-image-slider-progress-bar { background-color: #F42C2C;} +.bx-red .product-item-image-slider-control:hover{ background-color: rgba(244,44,44,.8);} +.bx-red .product-item-image-slider-control.active, +.bx-red .product-item-image-slider-control:hover{ background-color: #F42C2C;} + +/* SCU */ +.bx-red .product-item-scu-item-text-block:hover, +.bx-red .product-item-scu-item-color-block:hover, +.bx-red .product-item-scu-item-text-container.selected .product-item-scu-item-text-block, +.bx-red .product-item-scu-item-color-container.selected .product-item-scu-item-color-block{ outline-color: #da3737;} + +/* Amount */ +.bx-red .product-item-amount-field:focus{border-color: #da3737;} + + +.bx-red .catalog-section-header{border-color:#da3737;} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/style.min.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/style.min.css new file mode 100644 index 0000000..4c71fe4 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/red/style.min.css @@ -0,0 +1 @@ +.bx-red .product-item-image-slider-progress-bar{background-color:#f42c2c}.bx-red .product-item-image-slider-control:hover{background-color:rgba(244,44,44,.8)}.bx-red .product-item-image-slider-control.active,.bx-red .product-item-image-slider-control:hover{background-color:#f42c2c}.bx-red .product-item-scu-item-text-block:hover,.bx-red .product-item-scu-item-color-block:hover,.bx-red .product-item-scu-item-text-container.selected .product-item-scu-item-text-block,.bx-red .product-item-scu-item-color-container.selected .product-item-scu-item-color-block{outline-color:#da3737}.bx-red .product-item-amount-field:focus{border-color:#da3737}.bx-red .catalog-section-header{border-color:#da3737} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/images/x2border.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/images/x2border.png new file mode 100644 index 0000000..e7b32cf Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/images/x2border.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/images/x2border_active.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/images/x2border_active.png new file mode 100644 index 0000000..7eb3fee Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/images/x2border_active.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/style.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/style.css new file mode 100644 index 0000000..1094d99 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/style.css @@ -0,0 +1,62 @@ +/* catalog.section */ +.bx_wood.bx-section-desc{ + border-left-color:#0083d1; +} +.bx_catalog_list_home.bx_wood .bx_bt_button { + background:#00a2df; + background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYTJkZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDZmY2IiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#00a2df),color-stop(100%,#006fcb)); + background:-webkit-linear-gradient(top,#00a2df 0%,#006fcb 100%); + background: -moz-linear-gradient(top,#00a2df 0%,#006fcb 100%); + background: -ms-linear-gradient(top,#00a2df 0%,#006fcb 100%); + background: -o-linear-gradient(top,#00a2df 0%,#006fcb 100%); + background: linear-gradient(to bottom,#00a2df 0%,#006fcb 100%); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00a2df',endColorstr='#006fcb',GradientType=0); + + color:#fff; + text-shadow: 0 1px 0 #165c99; + display:inline-block; + border-radius:3px; + text-align:center; + text-decoration:none; + font-size:14px; + cursor:pointer; +} +.bx_catalog_list_home.bx_wood .bx_bt_button:hover { + background:#26b0e4; + background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzI2YjBlNCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMyNjg0ZDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#26b0e4),color-stop(100%,#2684d3)); + background:-webkit-linear-gradient(top,#26b0e4 0%,#2684d3 100%); + background: -moz-linear-gradient(top,#26b0e4 0%,#2684d3 100%); + background: -ms-linear-gradient(top,#26b0e4 0%,#2684d3 100%); + background: -o-linear-gradient(top,#26b0e4 0%,#2684d3 100%); + background: linear-gradient(to bottom,#26b0e4 0%,#2684d3 100%); + filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#26b0e4',endColorstr='#2684d3',GradientType=0 ); +} +.bx_catalog_list_home.bx_wood .bx_bt_button:active { + background:#0052bf; + background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwNTJiZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDg1ZDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#0052bf),color-stop(100%,#0085d3)); + background:-webkit-linear-gradient(top,#0052bf 0%,#0085d3 100%); + background: -moz-linear-gradient(top,#0052bf 0%,#0085d3 100%); + background: -ms-linear-gradient(top,#0052bf 0%,#0085d3 100%); + background: -o-linear-gradient(top,#0052bf 0%,#0085d3 100%); + background:linear-gradient(to bottom,#0052bf 0%,#0085d3 100%); + filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#0052bf',endColorstr='#0085d3',GradientType=0 ); +} + +/* scu_detail_size */ +.bx-retina .bx_catalog_list_home.bx_wood .bx_item_detail_size ul li.bx_active .cnt{ + -webkit-border-image: url(images/x2border_active.png) 2 stretch; + -moz-border-image: url(images/x2border_active.png) 2 stretch; + -o-border-image: url(images/x2border_active.png) 2 stretch; + border-image: url(images/x2border_active.png) 2 fill stretch; +} + +/* scu_detail_scu */ +.bx-retina .bx_catalog_list_home.bx_wood .bx_item_detail_scu .bx_scu ul li.bx_active .cnt{ + -webkit-border-image: url(images/x2border_active.png) 2 stretch; + -moz-border-image: url(images/x2border_active.png) 2 stretch; + -o-border-image: url(images/x2border_active.png) 2 stretch; + border-image: url(images/x2border_active.png) 2 fill stretch; +} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/style.min.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/style.min.css new file mode 100644 index 0000000..469534b --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/wood/style.min.css @@ -0,0 +1 @@ +.bx_wood.bx-section-desc{border-left-color:#0083d1}.bx_catalog_list_home.bx_wood .bx_bt_button{background:#00a2df;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYTJkZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDZmY2IiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#00a2df),color-stop(100%,#006fcb));background:-webkit-linear-gradient(top,#00a2df 0,#006fcb 100%);background:-moz-linear-gradient(top,#00a2df 0,#006fcb 100%);background:-ms-linear-gradient(top,#00a2df 0,#006fcb 100%);background:-o-linear-gradient(top,#00a2df 0,#006fcb 100%);background:linear-gradient(to bottom,#00a2df 0,#006fcb 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00a2df',endColorstr='#006fcb',GradientType=0);color:#fff;text-shadow:0 1px 0 #165c99;display:inline-block;border-radius:3px;text-align:center;text-decoration:none;font-size:14px;cursor:pointer}.bx_catalog_list_home.bx_wood .bx_bt_button:hover{background:#26b0e4;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzI2YjBlNCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMyNjg0ZDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#26b0e4),color-stop(100%,#2684d3));background:-webkit-linear-gradient(top,#26b0e4 0,#2684d3 100%);background:-moz-linear-gradient(top,#26b0e4 0,#2684d3 100%);background:-ms-linear-gradient(top,#26b0e4 0,#2684d3 100%);background:-o-linear-gradient(top,#26b0e4 0,#2684d3 100%);background:linear-gradient(to bottom,#26b0e4 0,#2684d3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#26b0e4',endColorstr='#2684d3',GradientType=0)}.bx_catalog_list_home.bx_wood .bx_bt_button:active{background:#0052bf;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwNTJiZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDg1ZDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#0052bf),color-stop(100%,#0085d3));background:-webkit-linear-gradient(top,#0052bf 0,#0085d3 100%);background:-moz-linear-gradient(top,#0052bf 0,#0085d3 100%);background:-ms-linear-gradient(top,#0052bf 0,#0085d3 100%);background:-o-linear-gradient(top,#0052bf 0,#0085d3 100%);background:linear-gradient(to bottom,#0052bf 0,#0085d3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0052bf',endColorstr='#0085d3',GradientType=0)}.bx-retina .bx_catalog_list_home.bx_wood .bx_item_detail_size ul li.bx_active .cnt{-webkit-border-image:url(images/x2border_active.png) 2 stretch;-moz-border-image:url(images/x2border_active.png) 2 stretch;-o-border-image:url(images/x2border_active.png) 2 stretch;border-image:url(images/x2border_active.png) 2 fill stretch}.bx-retina .bx_catalog_list_home.bx_wood .bx_item_detail_scu .bx_scu ul li.bx_active .cnt{-webkit-border-image:url(images/x2border_active.png) 2 stretch;-moz-border-image:url(images/x2border_active.png) 2 stretch;-o-border-image:url(images/x2border_active.png) 2 stretch;border-image:url(images/x2border_active.png) 2 fill stretch} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/images/x2border.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/images/x2border.png new file mode 100644 index 0000000..e7b32cf Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/images/x2border.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/images/x2border_active.png b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/images/x2border_active.png new file mode 100644 index 0000000..e107b68 Binary files /dev/null and b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/images/x2border_active.png differ diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/style.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/style.css new file mode 100644 index 0000000..150a2b2 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/style.css @@ -0,0 +1,26 @@ +/* catalog.section */ + +/* +#f4b236 +#f6c042 +#f7c95e +#f9d857 +*/ + +/* Slider */ +.bx-yellow .product-item-image-slider-progress-bar { background-color: #f9a91d;} +.bx-yellow .product-item-image-slider-control:hover{ background-color: rgba(249,169,29,.8);} +.bx-yellow .product-item-image-slider-control.active, +.bx-yellow .product-item-image-slider-control:hover{ background-color: #f9a91d;} + +/* SCU */ +.bx-yellow .product-item-scu-item-text-block:hover, +.bx-yellow .product-item-scu-item-color-block:hover, +.bx-yellow .product-item-scu-item-text-container.selected .product-item-scu-item-text-block, +.bx-yellow .product-item-scu-item-color-container.selected .product-item-scu-item-color-block{ outline-color: #f4b236;} + +/* Amount */ +.bx-yellow .product-item-amount-field:focus{border-color: #f4b236;} + + +.bx-yellow .catalog-section-header{border-color:#f4b236;} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/style.min.css b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/style.min.css new file mode 100644 index 0000000..e2c2ec0 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/bitrix/!catalog.section/cat_section/themes/yellow/style.min.css @@ -0,0 +1 @@ +.bx-yellow .product-item-image-slider-progress-bar{background-color:#f9a91d}.bx-yellow .product-item-image-slider-control:hover{background-color:rgba(249,169,29,.8)}.bx-yellow .product-item-image-slider-control.active,.bx-yellow .product-item-image-slider-control:hover{background-color:#f9a91d}.bx-yellow .product-item-scu-item-text-block:hover,.bx-yellow .product-item-scu-item-color-block:hover,.bx-yellow .product-item-scu-item-text-container.selected .product-item-scu-item-text-block,.bx-yellow .product-item-scu-item-color-container.selected .product-item-scu-item-color-block{outline-color:#f4b236}.bx-yellow .product-item-amount-field:focus{border-color:#f4b236}.bx-yellow .catalog-section-header{border-color:#f4b236} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/section_page.php b/local/templates/.default/components/bitrix/catalog/main/section_page.php new file mode 100644 index 0000000..bf6ace4 --- /dev/null +++ b/local/templates/.default/components/bitrix/catalog/main/section_page.php @@ -0,0 +1,80 @@ +setFrameMode(true); + +if (!isset($arParams['FILTER_VIEW_MODE']) || (string)$arParams['FILTER_VIEW_MODE'] == '') + $arParams['FILTER_VIEW_MODE'] = 'VERTICAL'; +$arParams['USE_FILTER'] = (isset($arParams['USE_FILTER']) && $arParams['USE_FILTER'] == 'Y' ? 'Y' : 'N'); + +$isVerticalFilter = ('Y' == $arParams['USE_FILTER'] && $arParams["FILTER_VIEW_MODE"] == "VERTICAL"); +$isSidebar = ($arParams["SIDEBAR_SECTION_SHOW"] == "Y" && isset($arParams["SIDEBAR_PATH"]) && !empty($arParams["SIDEBAR_PATH"])); +$isFilter = ($arParams['USE_FILTER'] == 'Y'); + +if ($isFilter) +{ + $arFilter = array( + "IBLOCK_ID" => $arParams["IBLOCK_ID"], + "ACTIVE" => "Y", + "GLOBAL_ACTIVE" => "Y", + ); + if (0 < intval($arResult["VARIABLES"]["SECTION_ID"])) + $arFilter["ID"] = $arResult["VARIABLES"]["SECTION_ID"]; + elseif ('' != $arResult["VARIABLES"]["SECTION_CODE"]) + $arFilter["=CODE"] = $arResult["VARIABLES"]["SECTION_CODE"]; + + $obCache = new CPHPCache(); + if ($obCache->InitCache(36000, serialize($arFilter), "/iblock/catalog")) + { + $arCurSection = $obCache->GetVars(); + } + elseif ($obCache->StartDataCache()) + { + $arCurSection = array(); + if (Loader::includeModule("iblock")) + { + $dbRes = CIBlockSection::GetList(array(), $arFilter, false, array("ID")); + + if(defined("BX_COMP_MANAGED_CACHE")) + { + global $CACHE_MANAGER; + $CACHE_MANAGER->StartTagCache("/iblock/catalog"); + + if ($arCurSection = $dbRes->Fetch()) + $CACHE_MANAGER->RegisterTag("iblock_id_".$arParams["IBLOCK_ID"]); + + $CACHE_MANAGER->EndTagCache(); + } + else + { + if(!$arCurSection = $dbRes->Fetch()) + $arCurSection = array(); + } + } + $obCache->EndDataCache($arCurSection); + } + if (!isset($arCurSection)) + $arCurSection = array(); +} + +// Добавляем номер страницы в заголовок +if (isset($arResult["VARIABLES"]["PAGE"]) && intval($arResult["VARIABLES"]["PAGE"]) > 1) { + $APPLICATION->SetPageProperty("title", $APPLICATION->GetTitle() . " - страница " . $arResult["VARIABLES"]["PAGE"]); + $APPLICATION->SetTitle($APPLICATION->GetTitle() . " - страница " . $arResult["VARIABLES"]["PAGE"]); +} +?> +GetFolder() . "/section_vertical.php"); +?> \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/.parameters.php b/local/templates/.default/components/bitrix/menu/catalog_left_menu/.parameters.php new file mode 100644 index 0000000..b941f61 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/.parameters.php @@ -0,0 +1,33 @@ + GetMessage("F_THEME_BLUE"), + "wood" => GetMessage("F_THEME_WOOD"), + "yellow" => GetMessage("F_THEME_YELLOW"), + "green" => GetMessage("F_THEME_GREEN"), + "red" => GetMessage("F_THEME_RED"), + "black" => GetMessage("F_THEME_BLACK") +); +$dir = trim(preg_replace("'[\\\\/]+'", "/", __DIR__."/themes/")); +if (is_dir($dir) && $directory = opendir($dir)) +{ + while (($file = readdir($directory)) !== false) + { + if ($file != "." && $file != ".." && is_dir($dir.$file)) + $arThemes[$file] = (!empty($arThemesMessages[$file]) ? $arThemesMessages[$file] : mb_strtoupper(mb_substr($file, 0, 1)).mb_strtolower(mb_substr($file, 1))); + } + closedir($directory); +} +$arTemplateParameters = array( + "MENU_THEME"=>array( + "NAME" => GetMessage("MENU_THEME"), + "TYPE" => "LIST", + "VALUES" => $arThemes, + "PARENT" => "BASE", + ) +); +?> diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/images/spacer.png b/local/templates/.default/components/bitrix/menu/catalog_left_menu/images/spacer.png new file mode 100644 index 0000000..52456a6 Binary files /dev/null and b/local/templates/.default/components/bitrix/menu/catalog_left_menu/images/spacer.png differ diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/de/.parameters.php b/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/de/.parameters.php new file mode 100644 index 0000000..2dfe572 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/de/.parameters.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/en/.parameters.php b/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/en/.parameters.php new file mode 100644 index 0000000..a87cc39 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/en/.parameters.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/ru/.parameters.php b/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/ru/.parameters.php new file mode 100644 index 0000000..ad72a12 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/lang/ru/.parameters.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/result_modifier.php b/local/templates/.default/components/bitrix/menu/catalog_left_menu/result_modifier.php new file mode 100644 index 0000000..d722ad7 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/result_modifier.php @@ -0,0 +1,254 @@ +$arLevels2) + { + if (!$arAllItems[$itemIdLevel_1]["PARAMS"]["picture_src"] || !$arAllItems[$itemIdLevel_1]["PARAMS"]["description"]) + { + foreach($arLevels2 as $itemIdLevel_2=>$arLevels3) + { + if (!$arAllItems[$itemIdLevel_1]["PARAMS"]["picture_src"] && $arAllItems[$itemIdLevel_2]["PARAMS"]["picture_src"]) + { + $arAllItems[$itemIdLevel_1]["PARAMS"]["picture_src"] = $arAllItems[$itemIdLevel_2]["PARAMS"]["picture_src"]; + } + if (!$arAllItems[$itemIdLevel_1]["PARAMS"]["description"] && $arAllItems[$itemIdLevel_2]["PARAMS"]["description"]) + { + $arAllItems[$itemIdLevel_1]["PARAMS"]["description"] = $arAllItems[$itemIdLevel_2]["PARAMS"]["description"]; + } + if ($arAllItems[$itemIdLevel_1]["PARAMS"]["picture_src"] && $arAllItems[$itemIdLevel_1]["PARAMS"]["description"]) + break; + } + if (!$arAllItems[$itemIdLevel_1]["PARAMS"]["picture_src"] || !$arAllItems[$itemIdLevel_1]["PARAMS"]["description"]) + { + foreach($arLevels2 as $itemIdLevel_2=>$arLevels3) + { + foreach($arLevels3 as $itemIdLevel_3) + { + if (!$arAllItems[$itemIdLevel_1]["PARAMS"]["picture_src"] && $arAllItems[$itemIdLevel_3]["PARAMS"]["picture_src"]) + { + $arAllItems[$itemIdLevel_1]["PARAMS"]["picture_src"] = $arAllItems[$itemIdLevel_3]["PARAMS"]["picture_src"]; + } + if (!$arAllItems[$itemIdLevel_1]["PARAMS"]["description"] && $arAllItems[$itemIdLevel_3]["PARAMS"]["description"]) + { + $arAllItems[$itemIdLevel_1]["PARAMS"]["description"] = $arAllItems[$itemIdLevel_3]["PARAMS"]["description"]; + } + if ($arAllItems[$itemIdLevel_1]["PARAMS"]["picture_src"] && $arAllItems[$itemIdLevel_1]["PARAMS"]["description"]) + { + break 2; + } + } + } + } + } + } + + $pictureLevel_1 = ""; + $descriptionLevel_1 = ""; + $pictureLevel_2 = ""; + $descriptionLevel_2 = ""; + + foreach($arAllItems as $itemID=>$arItem) + { + if ($arItem["DEPTH_LEVEL"] == "1") + { + if ($arItem["IS_PARENT"]) + { + $pictureLevel_1 = $arItem["PARAMS"]["picture_src"]; + $descriptionLevel_1 = $arItem["PARAMS"]["description"]; + } + $arAllItems[$itemID] = $arItem; + } + elseif($arItem["DEPTH_LEVEL"] == "2") + { + if (!$arItem["PARAMS"]["picture_src"]) + $arItem["PARAMS"]["picture_src"] = $pictureLevel_1; + if (!$arItem["PARAMS"]["description"]) + $arItem["PARAMS"]["description"] = $descriptionLevel_1; + if ($arItem["IS_PARENT"]) + { + $pictureLevel_2 = $arItem["PARAMS"]["picture_src"]; + $descriptionLevel_2 = $arItem["PARAMS"]["description"]; + } + $arAllItems[$itemID] = $arItem; + } + elseif($arItem["DEPTH_LEVEL"] == "3") + { + if (!$arItem["PARAMS"]["picture_src"]) + $arItem["PARAMS"]["picture_src"] = $pictureLevel_2; + if (!$arItem["PARAMS"]["description"]) + $arItem["PARAMS"]["description"] = $descriptionLevel_2; + $arAllItems[$itemID] = $arItem; + } + } + } +} + +$arSectionsInfo = array(); +if (CModule::IncludeModule("iblock")) +{ + $arFilter = array( + "TYPE"=>"catalog", + "SITE_ID"=>SITE_ID, + "ACTIVE" => "Y" + ); + + $obCache = new CPHPCache(); + if ($obCache->InitCache(36000, serialize($arFilter), "/iblock/menu")) + { + $arSectionsInfo = $obCache->GetVars(); + } + elseif ($obCache->StartDataCache()) + { + $dbIBlock = CIBlock::GetList(array('SORT' => 'ASC', 'ID' => 'ASC'), $arFilter); + $dbIBlock = new CIBlockResult($dbIBlock); + $curIblockID = 0; + if ($arIBlock = $dbIBlock->GetNext()) + { + $dbSections = CIBlockSection::GetList(array(), array("IBLOCK_ID" => $arIBlock["ID"]), false, array("ID", "SECTION_PAGE_URL", "PICTURE", "DESCRIPTION")); + while($arSections = $dbSections->GetNext()) + { + $pictureSrc = CFile::GetFileArray($arSections["PICTURE"]); + + if ($pictureSrc) + $arResizePicture = CFile::ResizeImageGet( + $arSections["PICTURE"], + array("width" => 240, 'height'=>700), + BX_RESIZE_IMAGE_PROPORTIONAL, + true + ); + + $arSectionsInfo[crc32($arSections["SECTION_PAGE_URL"])]["PICTURE"] = $pictureSrc ? $arResizePicture["src"] : false; + $arSectionsInfo[crc32($arSections["SECTION_PAGE_URL"])]["DESCRIPTION"] = $arSections["DESCRIPTION"]; + } + if(defined("BX_COMP_MANAGED_CACHE")) + { + global $CACHE_MANAGER; + $CACHE_MANAGER->StartTagCache("/iblock/menu"); + $CACHE_MANAGER->RegisterTag("iblock_id_".$arIBlock["ID"]); + $CACHE_MANAGER->EndTagCache(); + } + } + $obCache->EndDataCache($arSectionsInfo); + } +} + +$arMenuItemsIDs = array(); +$arAllItems = array(); +foreach($arResult as $key=>$arItem) +{ + if($arItem["DEPTH_LEVEL"] > $arParams["MAX_LEVEL"]) + { + unset($arResult[$key]); + continue; + } + + $arItem["PARAMS"]["item_id"] = crc32($arItem["LINK"]); + $arItem["PARAMS"]["picture_src"] = $arSectionsInfo[$arItem["PARAMS"]["item_id"]]["PICTURE"]; + $arItem["PARAMS"]["description"] = $arSectionsInfo[$arItem["PARAMS"]["item_id"]]["DESCRIPTION"]; + + if ($arItem["DEPTH_LEVEL"] == "1") + { + $arMenuItemsIDs[$arItem["PARAMS"]["item_id"]] = array(); + if ($arItem["IS_PARENT"]) + { + $curItemLevel_1 = $arItem["PARAMS"]["item_id"]; + } + $arAllItems[$arItem["PARAMS"]["item_id"]] = $arItem; + } + elseif($arItem["DEPTH_LEVEL"] == "2") + { + $arMenuItemsIDs[$curItemLevel_1][$arItem["PARAMS"]["item_id"]] = array(); + if ($arItem["IS_PARENT"]) + { + $curItemLevel_2 = $arItem["PARAMS"]["item_id"]; + } + $arAllItems[$arItem["PARAMS"]["item_id"]] = $arItem; + } + elseif($arItem["DEPTH_LEVEL"] == "3") + { + $arMenuItemsIDs[$curItemLevel_1][$curItemLevel_2][] = $arItem["PARAMS"]["item_id"]; + $arAllItems[$arItem["PARAMS"]["item_id"]] = $arItem; + } +} + +FillAllPicturesAndDescriptionsVertical($arAllItems, $arMenuItemsIDs); + +$arMenuStructure = array(); +foreach ($arMenuItemsIDs as $itemIdLevel_1=>$arLevels2) +{ + $countItemsInRow = 18; + $arMenuStructure[$itemIdLevel_1] = array(); + $countLevels2 = count($arLevels2); + + if ($countLevels2 > 0) + { + for ($i=1; $i<=3; $i++) + { + $sumElementsInRow = 0; + foreach($arLevels2 as $itemIdLevel_2=>$arLevels3) + { + $sumElementsInRow+= count($arLevels3) + 1; + $arMenuStructure[$itemIdLevel_1][$i][$itemIdLevel_2] = $arLevels3; + if ($sumElementsInRow > $countItemsInRow) + $countItemsInRow = $sumElementsInRow; + + unset($arLevels2[$itemIdLevel_2]); + $tmpCount = 0; + foreach($arLevels2 as $tmpItemIdLevel_2=>$arTmpLevels3) + { + $tmpCount+= 1 + count($arTmpLevels3); + } + + if ($tmpCount <= $countItemsInRow*(3-$i) && $countItemsInRow<=$sumElementsInRow) + break; + } + } + } +} + +$arResult = array(); +$arResult["ALL_ITEMS"] = $arAllItems; +$arResult["ALL_ITEMS_ID"] = $arMenuItemsIDs; +$arResult["MENU_STRUCTURE"] = $arMenuStructure; +?> + diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.js b/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.js new file mode 100644 index 0000000..b9466ba --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.js @@ -0,0 +1,124 @@ +(function(window) { + + if (!window.BX || BX.CatalogVertMenu) + return; + + BX.CatalogVertMenu = { + items : {}, + idCnt : 1, + currentItem : null, + overItem : null, + outItem : null, + timeoutOver : null, + timeoutOut : null, + + getItem : function(item) + { + if (!BX.type.isDomNode(item)) + return null; + + var id = !item.id || !BX.type.isNotEmptyString(item.id) ? (item.id = "menu-item-vert-" + this.idCnt++) : item.id; + + if (!this.items[id]) + this.items[id] = new CatalogVertMenuItem(item); + + return this.items[id]; + }, + + itemOver : function(item) + { + var menuItem = this.getItem(item); + if (!menuItem) + return; + + if (this.outItem == menuItem) + { + clearTimeout(menuItem.timeoutOut); + } + + this.overItem = menuItem; + + if (menuItem.timeoutOver) + { + clearTimeout(menuItem.timeoutOver); + } + + menuItem.timeoutOver = setTimeout(function() { + if (BX.CatalogVertMenu.overItem == menuItem) + { + menuItem.itemOver(); + } + }, 100); + }, + + itemOut : function(item) + { + var menuItem = this.getItem(item); + if (!menuItem) + return; + + this.outItem = menuItem; + + if (menuItem.timeoutOut) + { + clearTimeout(menuItem.timeoutOut); + } + + menuItem.timeoutOut = setTimeout(function() { + + if (menuItem != BX.CatalogVertMenu.overItem) + { + menuItem.itemOut(); + } + if (menuItem == BX.CatalogVertMenu.outItem) + { + menuItem.itemOut(); + } + + }, 100); + }, + + changeSectionPicture : function(element) + { + var descrSpan = BX.nextSibling(element); + var curDescr = descrSpan.innerHTML || ''; + if (descrSpan) + { + var curImgWrapObj = BX.nextSibling(descrSpan); + var curImgObj = BX.clone(BX.firstChild(curImgWrapObj)); + } + var parentObj = BX.hasClass(element, 'bx_hma_one_lvl') ? element : BX.findParent(element, {className:'bx_hma_one_lvl'}); + var sectionImgObj = BX.findChild(parentObj, {className:'bx_section_picture'}, true, false); + sectionImgObj.innerHTML = ""; + if (curImgObj) + { + sectionImgObj.appendChild(curImgObj); + } + var sectionDescrObj = BX.findChild(parentObj, {className:'bx_section_description'}, true, false); + sectionDescrObj.innerHTML = curDescr; + BX.previousSibling(sectionDescrObj).innerHTML = element.innerHTML; + sectionImgObj.parentNode.href = element.href; + } + }; + + var CatalogVertMenuItem = function(item) + { + this.element = item; + this.popup = BX.findChild(item, { className: "bx_children_container" }, false, false); + }; + + CatalogVertMenuItem.prototype.itemOver = function() + { + if (!BX.hasClass(this.element, "hover")) + { + BX.addClass(this.element, "hover"); + } + }; + + CatalogVertMenuItem.prototype.itemOut = function() + { + BX.removeClass(this.element, "hover"); + }; + +})(window); + diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.map.js b/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.map.js new file mode 100644 index 0000000..8e3a057 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.map.js @@ -0,0 +1 @@ +{"version":3,"file":"script.min.js","sources":["script.js"],"names":["window","BX","CatalogVertMenu","items","idCnt","currentItem","overItem","outItem","timeoutOver","timeoutOut","getItem","item","type","isDomNode","id","isNotEmptyString","this","CatalogVertMenuItem","itemOver","menuItem","clearTimeout","setTimeout","itemOut","changeSectionPicture","element","descrSpan","nextSibling","curDescr","innerHTML","curImgWrapObj","curImgObj","clone","firstChild","parentObj","hasClass","findParent","className","sectionImgObj","findChild","appendChild","sectionDescrObj","previousSibling","parentNode","href","popup","prototype","addClass","removeClass"],"mappings":"CAAA,SAAUA,GAET,IAAKA,EAAOC,IAAMA,GAAGC,gBACpB,MAEDD,IAAGC,iBACFC,SACAC,MAAQ,EACRC,YAAc,KACdC,SAAW,KACXC,QAAU,KACVC,YAAc,KACdC,WAAa,KAEbC,QAAU,SAASC,GAElB,IAAKV,GAAGW,KAAKC,UAAUF,GACtB,MAAO,KAER,IAAIG,IAAMH,EAAKG,KAAOb,GAAGW,KAAKG,iBAAiBJ,EAAKG,IAAOH,EAAKG,GAAK,kBAAoBE,KAAKZ,QAAWO,EAAKG,EAE9G,KAAKE,KAAKb,MAAMW,GACfE,KAAKb,MAAMW,GAAM,GAAIG,GAAoBN,EAE1C,OAAOK,MAAKb,MAAMW,IAGnBI,SAAW,SAASP,GAEnB,GAAIQ,GAAWH,KAAKN,QAAQC,EAC5B,KAAKQ,EACJ,MAED,IAAIH,KAAKT,SAAWY,EACpB,CACCC,aAAaD,EAASV,YAGvBO,KAAKV,SAAWa,CAEhB,IAAIA,EAASX,YACb,CACCY,aAAaD,EAASX,aAGvBW,EAASX,YAAca,WAAW,WACjC,GAAIpB,GAAGC,gBAAgBI,UAAYa,EACnC,CACCA,EAASD,aAER,MAGJI,QAAU,SAASX,GAElB,GAAIQ,GAAWH,KAAKN,QAAQC,EAC5B,KAAKQ,EACJ,MAEDH,MAAKT,QAAUY,CAEf,IAAIA,EAASV,WACb,CACCW,aAAaD,EAASV,YAGvBU,EAASV,WAAaY,WAAW,WAEhC,GAAIF,GAAYlB,GAAGC,gBAAgBI,SACnC,CACCa,EAASG,UAEV,GAAIH,GAAYlB,GAAGC,gBAAgBK,QACnC,CACCY,EAASG,YAGR,MAGJC,qBAAuB,SAASC,GAE/B,GAAIC,GAAYxB,GAAGyB,YAAYF,EAC/B,IAAIG,GAAWF,EAAUG,WAAa,EACtC,IAAIH,EACJ,CACC,GAAII,GAAgB5B,GAAGyB,YAAYD,EACnC,IAAIK,GAAY7B,GAAG8B,MAAM9B,GAAG+B,WAAWH,IAExC,GAAII,GAAYhC,GAAGiC,SAASV,EAAS,kBAAoBA,EAAUvB,GAAGkC,WAAWX,GAAUY,UAAU,kBACrG,IAAIC,GAAgBpC,GAAGqC,UAAUL,GAAYG,UAAU,sBAAuB,KAAM,MACpFC,GAAcT,UAAY,EAC1B,IAAIE,EACJ,CACCO,EAAcE,YAAYT,GAE3B,GAAIU,GAAkBvC,GAAGqC,UAAUL,GAAYG,UAAU,0BAA2B,KAAM,MAC1FI,GAAgBZ,UAAYD,CAC5B1B,IAAGwC,gBAAgBD,GAAiBZ,UAAYJ,EAAQI,SACxDS,GAAcK,WAAWC,KAAOnB,EAAQmB,MAI1C,IAAI1B,GAAsB,SAASN,GAElCK,KAAKQ,QAAUb,CACfK,MAAK4B,MAAQ3C,GAAGqC,UAAU3B,GAAQyB,UAAW,yBAA2B,MAAO,OAGhFnB,GAAoB4B,UAAU3B,SAAW,WAExC,IAAKjB,GAAGiC,SAASlB,KAAKQ,QAAS,SAC/B,CACCvB,GAAG6C,SAAS9B,KAAKQ,QAAS,UAI5BP,GAAoB4B,UAAUvB,QAAU,WAEvCrB,GAAG8C,YAAY/B,KAAKQ,QAAS,YAG5BxB"} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.min.js b/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.min.js new file mode 100644 index 0000000..cb81fb0 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/script.min.js @@ -0,0 +1,2 @@ +(function(t){if(!t.BX||BX.CatalogVertMenu)return;BX.CatalogVertMenu={items:{},idCnt:1,currentItem:null,overItem:null,outItem:null,timeoutOver:null,timeoutOut:null,getItem:function(t){if(!BX.type.isDomNode(t))return null;var i=!t.id||!BX.type.isNotEmptyString(t.id)?t.id="menu-item-vert-"+this.idCnt++:t.id;if(!this.items[i])this.items[i]=new e(t);return this.items[i]},itemOver:function(t){var e=this.getItem(t);if(!e)return;if(this.outItem==e){clearTimeout(e.timeoutOut)}this.overItem=e;if(e.timeoutOver){clearTimeout(e.timeoutOver)}e.timeoutOver=setTimeout(function(){if(BX.CatalogVertMenu.overItem==e){e.itemOver()}},100)},itemOut:function(t){var e=this.getItem(t);if(!e)return;this.outItem=e;if(e.timeoutOut){clearTimeout(e.timeoutOut)}e.timeoutOut=setTimeout(function(){if(e!=BX.CatalogVertMenu.overItem){e.itemOut()}if(e==BX.CatalogVertMenu.outItem){e.itemOut()}},100)},changeSectionPicture:function(t){var e=BX.nextSibling(t);var i=e.innerHTML||"";if(e){var n=BX.nextSibling(e);var r=BX.clone(BX.firstChild(n))}var u=BX.hasClass(t,"bx_hma_one_lvl")?t:BX.findParent(t,{className:"bx_hma_one_lvl"});var o=BX.findChild(u,{className:"bx_section_picture"},true,false);o.innerHTML="";if(r){o.appendChild(r)}var m=BX.findChild(u,{className:"bx_section_description"},true,false);m.innerHTML=i;BX.previousSibling(m).innerHTML=t.innerHTML;o.parentNode.href=t.href}};var e=function(t){this.element=t;this.popup=BX.findChild(t,{className:"bx_children_container"},false,false)};e.prototype.itemOver=function(){if(!BX.hasClass(this.element,"hover")){BX.addClass(this.element,"hover")}};e.prototype.itemOut=function(){BX.removeClass(this.element,"hover")}})(window); +//# sourceMappingURL=script.map.js \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/style.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/style.css new file mode 100644 index 0000000..e1aafd0 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/style.css @@ -0,0 +1,222 @@ +.bx_vertical_menu_advanced{ + border-left:7px solid #e3eaef; + background:#f1f4f7; + border-radius:4px; + position:relative; + box-shadow:0 0 1px 1px #dcdcdc; +} +.bx_vertical_menu_advanced>ul{ + display:block; + margin:0 0 10px 0; + padding:0; + width:100%; + border-radius:5px; + background:#fff; + list-style:none; +} + +/* 1 уровень */ +.bx_vertical_menu_advanced .bx_hma_one_lvl{ + display:block; + padding:0; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl>a{ + position:relative; + z-index:105; + display:block; + padding:10px 0 10px 12px; + border-bottom: 1px solid #e3eaef; + color:#000; + vertical-align:middle; + text-align:left; + text-decoration:none; + text-shadow:0 1px 1px rgba(255,255,255,.8); + font-size:14px; + line-height:16px; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl:first-child, +.bx_vertical_menu_advanced .bx_hma_one_lvl:first-child>a{border-radius:0 4px 0 0} +.bx_vertical_menu_advanced .bx_hma_one_lvl:last-child, +.bx_vertical_menu_advanced .bx_hma_one_lvl:last-child>a {border-radius:0 0 4px 0} +.bx_vertical_menu_advanced ul:last-child .bx_hma_one_lvl:last-child>a{border-bottom:none} + +.bx_vertical_menu_advanced .bx_hma_one_lvl>a{ + -webkit-transition: border-color 0s ease; + -moz-transition: border-color 0s ease; + -o-transition: border-color 0s ease; + -ms-transition: border-color 0s ease; + transition: border-color 0s ease; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl.hover{ + padding:1px 0 0; + border:none; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl.hover>a{ + margin-left:-11px; + padding:10px 0 10px 12px; + width:100%; + border:none; + border-right:2px; + background:#fff; + box-shadow:-1px 2px 3px 0px rgba(1,1,1,.22); + font-weight:bold; + line-height:16px; + box-sizing:content-box; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl.dropdown.hover{} +.bx_vertical_menu_advanced .bx_hma_one_lvl.dropdown.hover>a{z-index:1500} + +.bx_vertical_menu_advanced .bx_hma_one_lvl>a:active, +.bx_vertical_menu_advanced .bx_hma_one_lvl.current>a{} +/* // 1й уровень */ +/* Контейнер*/ +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container{ + position:absolute; + top:-1px; + left:100%; + z-index:1300; + display:none; + overflow:hidden; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + border-top:1px solid rgba(1,1,1,.1); + border-radius:2px; + background:#fff; + box-shadow:0 5px 10px 0 rgba(1,1,1,.29); +} +.bx_vertical_menu_advanced .bx_hma_one_lvl.hover .bx_children_container{display:block} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block{ + float:left; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + margin-bottom:-20000px; + padding:10px 12px; + padding-bottom:20000px; + min-width:130px; + max-width:280px; + border-left:1px solid #f2f2f2; + background:#fff; +} +.bx_shadow_fix{display:none} +.bx_vertical_menu_advanced .dropdown:hover .bx_shadow_fix, +.bx_vertical_menu_advanced .dropdown.hover .bx_shadow_fix{ + position: absolute; + top: -1px; + right: -2px; + bottom: 0; + z-index: 1500; + display: block; + width: 5px; + background: #fff; + opacity: 1; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b1{min-width:180px} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b2{min-width:360px} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b3{min-width:540px} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b4{min-width:720px} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block:first-child{border-left:none} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b1 .bx_children_block{width:100%} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b2 .bx_children_block{width:50%} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b3 .bx_children_block{width:33.3%} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b4 .bx_children_block{width:25%} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block.advanced{ + border-left:none; + background:#f7fafb; + box-shadow:inset 5px 0 7px -5px rgba(0,0,0,.12); +} +/*// Контейнер*/ +/* 2й уровень*/ +.bx_vertical_menu_advanced .bx_hma_one_lvl ul{ + display:block; + margin:0; + padding:0 0 14px 0; + list-style:none; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_advanced_panel { + display: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + text-align: center; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{ + display:block; + padding:5px 10px; +} + +/*.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{ + color: #366181; +}*/ +/* //2й уровень*/ +/* 3й уровень */ +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul{border-bottom:1px solid #f2f2f2} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent:last-child ul{border-bottom:none} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul li{line-height:24px} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a{ + display:block; + padding:5px 10px; +} +/*.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{ + background:#f0f6f8; + box-shadow:inset 0 1px 1px 0 #e3e9eb; +}*/ +/* // 3й уровень */ + +/* Панель */ +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_advanced_panel{ + display:none; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + text-align:center; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_block.advanced .bx_children_advanced_panel{display:block !important} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_advanced_panel img{ + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + max-width:100%; + max-height:220px; + border:1px solid #e7e9ea; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_advanced_panel .bx_item_description{ + max-width:100%; + max-height:220px; + color:#000; + text-align:left; + white-space:normal; + font-weight:normal; + font-size:12px; + line-height:18px; +} + +/* // Панель*/ +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block>ul>li{ + display:block; + background:#fff; +} +.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block>ul>li>a{ + display:block; + color:#20394c; + text-decoration:none; + font-weight:bold; + font-size:15px; + line-height:23px; +} + +.bx_vertical_menu_advanced .bx_hma_one_lvl ul li ul li a{ + color:#000; + text-decoration:none; + font-size:13px; + line-height:16px; +} + +@media (max-width:569px) { + .bx_vertical_menu_advanced{display:none} + .header_inner_bottom_line{ + overflow:hidden; + height:auto; + } +} diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/style.min.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/style.min.css new file mode 100644 index 0000000..b62627d --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/style.min.css @@ -0,0 +1 @@ +.bx_vertical_menu_advanced{border-left:7px solid #e3eaef;background:#f1f4f7;border-radius:4px;position:relative;box-shadow:0 0 1px 1px #dcdcdc}.bx_vertical_menu_advanced>ul{display:block;margin:0 0 10px 0;padding:0;width:100%;border-radius:5px;background:#fff;list-style:none}.bx_vertical_menu_advanced .bx_hma_one_lvl{display:block;padding:0}.bx_vertical_menu_advanced .bx_hma_one_lvl>a{position:relative;z-index:105;display:block;padding:10px 0 10px 12px;border-bottom:1px solid #e3eaef;color:#000;vertical-align:middle;text-align:left;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,.8);font-size:14px;line-height:16px}.bx_vertical_menu_advanced .bx_hma_one_lvl:first-child,.bx_vertical_menu_advanced .bx_hma_one_lvl:first-child>a{border-radius:0 4px 0 0}.bx_vertical_menu_advanced .bx_hma_one_lvl:last-child,.bx_vertical_menu_advanced .bx_hma_one_lvl:last-child>a{border-radius:0 0 4px 0}.bx_vertical_menu_advanced ul:last-child .bx_hma_one_lvl:last-child>a{border-bottom:0}.bx_vertical_menu_advanced .bx_hma_one_lvl>a{-webkit-transition:border-color 0 ease;-moz-transition:border-color 0 ease;-o-transition:border-color 0 ease;-ms-transition:border-color 0 ease;transition:border-color 0 ease}.bx_vertical_menu_advanced .bx_hma_one_lvl.hover{padding:1px 0 0;border:0}.bx_vertical_menu_advanced .bx_hma_one_lvl.hover>a{margin-left:-11px;padding:10px 0 10px 12px;width:100%;border:0;border-right:2px;background:#fff;box-shadow:-1px 2px 3px 0 rgba(1,1,1,.22);font-weight:bold;line-height:16px;box-sizing:content-box}.bx_vertical_menu_advanced .bx_hma_one_lvl.dropdown.hover>a{z-index:1500}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container{position:absolute;top:-1px;left:100%;z-index:1300;display:none;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-top:1px solid rgba(1,1,1,.1);border-radius:2px;background:#fff;box-shadow:0 5px 10px 0 rgba(1,1,1,.29)}.bx_vertical_menu_advanced .bx_hma_one_lvl.hover .bx_children_container{display:block}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:-20000px;padding:10px 12px;padding-bottom:20000px;min-width:130px;max-width:280px;border-left:1px solid #f2f2f2;background:#fff}.bx_shadow_fix{display:none}.bx_vertical_menu_advanced .dropdown:hover .bx_shadow_fix,.bx_vertical_menu_advanced .dropdown.hover .bx_shadow_fix{position:absolute;top:-1px;right:-2px;bottom:0;z-index:1500;display:block;width:5px;background:#fff;opacity:1}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b1{min-width:180px}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b2{min-width:360px}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b3{min-width:540px}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b4{min-width:720px}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block:first-child{border-left:0}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b1 .bx_children_block{width:100%}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b2 .bx_children_block{width:50%}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b3 .bx_children_block{width:33.3%}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container.b4 .bx_children_block{width:25%}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block.advanced{border-left:0;background:#f7fafb;box-shadow:inset 5px 0 7px -5px rgba(0,0,0,.12)}.bx_vertical_menu_advanced .bx_hma_one_lvl ul{display:block;margin:0;padding:0 0 14px 0;list-style:none}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_advanced_panel{display:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-align:center}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{display:block;padding:5px 10px}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul{border-bottom:1px solid #f2f2f2}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent:last-child ul{border-bottom:0}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul li{line-height:24px}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a{display:block;padding:5px 10px}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_advanced_panel{display:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-align:center}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_block.advanced .bx_children_advanced_panel{display:block !important}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_advanced_panel img{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%;max-height:220px;border:1px solid #e7e9ea}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_advanced_panel .bx_item_description{max-width:100%;max-height:220px;color:#000;text-align:left;white-space:normal;font-weight:normal;font-size:12px;line-height:18px}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block>ul>li{display:block;background:#fff}.bx_vertical_menu_advanced .bx_hma_one_lvl .bx_children_container .bx_children_block>ul>li>a{display:block;color:#20394c;text-decoration:none;font-weight:bold;font-size:15px;line-height:23px}.bx_vertical_menu_advanced .bx_hma_one_lvl ul li ul li a{color:#000;text-decoration:none;font-size:13px;line-height:16px}@media(max-width:569px){.bx_vertical_menu_advanced{display:none}.header_inner_bottom_line{overflow:hidden;height:auto}} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/template.php b/local/templates/.default/components/bitrix/menu/catalog_left_menu/template.php new file mode 100644 index 0000000..b171908 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/template.php @@ -0,0 +1,48 @@ +GetFolder().'/themes/'.$arParams["MENU_THEME"].'/colors.css')) + $APPLICATION->SetAdditionalCSS($this->GetFolder().'/themes/'.$arParams["MENU_THEME"].'/colors.css'); + +CJSCore::Init(); + +$menuBlockId = "catalog_menu_".$this->randString(); +//debug($arResult); +?> + +
+ + $arColumns):?> + + + " > + + + + + + $arRow):?> + + + $arLevel_3):?> + + "> + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/black/colors.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/black/colors.css new file mode 100644 index 0000000..0225d38 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/black/colors.css @@ -0,0 +1,27 @@ +/* 1st level */ +.bx_vertical_menu_advanced.bx_black{ + border-left:7px solid #e3eaef; + background:#f1f4f7; +} +/* // 1st level */ +.bx_vertical_menu_advanced.bx_black .bx_hma_one_lvl>a{ + border-bottom: 1px solid #e3eaef; +} +/* The Container */ +/*// Container */ + +/* 2nd level*/ +.bx_vertical_menu_advanced.bx_black .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color: #20394C} +.bx_vertical_menu_advanced.bx_black .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color: #366181} +/* // 2nd level*/ + +/* 3rd level */ +.bx_vertical_menu_advanced.bx_black .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{ + background: #F0F6F8; + box-shadow: inset 0 1px 1px 0 #E3E9EB; +} +/* // 3rd level */ + +/* Panel */ +/* // The Panel*/ + diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/black/colors.min.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/black/colors.min.css new file mode 100644 index 0000000..c6b3716 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/black/colors.min.css @@ -0,0 +1 @@ +.bx_vertical_menu_advanced.bx_black{border-left:7px solid #e3eaef;background:#f1f4f7}.bx_vertical_menu_advanced.bx_black .bx_hma_one_lvl>a{border-bottom:1px solid #e3eaef}.bx_vertical_menu_advanced.bx_black .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color:#20394c}.bx_vertical_menu_advanced.bx_black .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color:#366181}.bx_vertical_menu_advanced.bx_black .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{background:#f0f6f8;box-shadow:inset 0 1px 1px 0 #e3e9eb} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/blue/colors.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/blue/colors.css new file mode 100644 index 0000000..73f601b --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/blue/colors.css @@ -0,0 +1,25 @@ +/* 1st level */ +.bx_vertical_menu_advanced.bx_blue{ + border-left:7px solid #e4f0f7; + background:#f6f9fb; +} +/* // 1st level */ + +/* The Container */ +/*// Container */ + +/* 2nd level*/ +.bx_vertical_menu_advanced.bx_blue .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color: #20394C} +.bx_vertical_menu_advanced.bx_blue .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color: #366181} +/* // 2nd level*/ + +/* 3rd level */ +.bx_vertical_menu_advanced.bx_blue .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{ + background: #F0F6F8; + box-shadow: inset 0 1px 1px 0 #E3E9EB; +} +/* // 3rd level */ + +/* Panel */ +/* // The Panel*/ + diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/blue/colors.min.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/blue/colors.min.css new file mode 100644 index 0000000..d5aacd6 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/blue/colors.min.css @@ -0,0 +1 @@ +.bx_vertical_menu_advanced.bx_blue{border-left:7px solid #e4f0f7;background:#f6f9fb}.bx_vertical_menu_advanced.bx_blue .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color:#20394c}.bx_vertical_menu_advanced.bx_blue .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color:#366181}.bx_vertical_menu_advanced.bx_blue .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{background:#f0f6f8;box-shadow:inset 0 1px 1px 0 #e3e9eb} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/green/colors.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/green/colors.css new file mode 100644 index 0000000..b9191b2 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/green/colors.css @@ -0,0 +1,25 @@ +/* 1st level */ +.bx_vertical_menu_advanced.bx_green{ + border-left:7px solid #a7d380; + background:#bdeb94; +} +/* // 1st level */ + +/* The Container */ +/*// Container */ + +/* 2nd level*/ +.bx_vertical_menu_advanced.bx_green .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color: #746b21} +.bx_vertical_menu_advanced.bx_green .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color: #564f17} +/* // 2nd level*/ + +/* 3rd level */ +.bx_vertical_menu_advanced.bx_green .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{ + background:#f7f3e0; + box-shadow:inset 0 1px 1px 0 #ebe9e3 +} +/* // 3rd level */ + +/* Panel */ +/* // The Panel*/ + diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/green/colors.min.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/green/colors.min.css new file mode 100644 index 0000000..720beab --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/green/colors.min.css @@ -0,0 +1 @@ +.bx_vertical_menu_advanced.bx_green{border-left:7px solid #a7d380;background:#bdeb94}.bx_vertical_menu_advanced.bx_green .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color:#746b21}.bx_vertical_menu_advanced.bx_green .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color:#564f17}.bx_vertical_menu_advanced.bx_green .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{background:#f7f3e0;box-shadow:inset 0 1px 1px 0 #ebe9e3} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/red/colors.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/red/colors.css new file mode 100644 index 0000000..ae6cca8 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/red/colors.css @@ -0,0 +1,26 @@ +/* 1st level */ +.bx_vertical_menu_advanced.bx_red{ + border-left:7px solid #f0bdb5; + background:#fbf1f0; +} +/* // 1st level */ +.bx_vertical_menu_advanced.bx_red .bx_hma_one_lvl>a{ + border-bottom: 1px solid #f9e6e3; +} +/* The Container */ +/*// Container */ + +/* 2nd level*/ +.bx_vertical_menu_advanced.bx_red .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color: #742B21} +.bx_vertical_menu_advanced.bx_red .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color: #742121} +/* // 2nd level*/ + +/* 3rd level */ +.bx_vertical_menu_advanced.bx_red .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{ + background:#f7f3e0; + box-shadow:inset 0 1px 1px 0 #ebe9e3 +} +/* // 3rd level */ + +/* Panel */ +/* // The Panel*/ diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/red/colors.min.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/red/colors.min.css new file mode 100644 index 0000000..6111f73 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/red/colors.min.css @@ -0,0 +1 @@ +.bx_vertical_menu_advanced.bx_red{border-left:7px solid #f0bdb5;background:#fbf1f0}.bx_vertical_menu_advanced.bx_red .bx_hma_one_lvl>a{border-bottom:1px solid #f9e6e3}.bx_vertical_menu_advanced.bx_red .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color:#742b21}.bx_vertical_menu_advanced.bx_red .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color:#742121}.bx_vertical_menu_advanced.bx_red .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{background:#f7f3e0;box-shadow:inset 0 1px 1px 0 #ebe9e3} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/wood/colors.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/wood/colors.css new file mode 100644 index 0000000..88f2228 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/wood/colors.css @@ -0,0 +1,25 @@ +/* 1st level */ +.bx_vertical_menu_advanced.bx_wood{ + border-left:7px solid #e4f0f7; + background:#f6f9fb; +} +/* // 1st level */ + +/* The Container */ +/*// Container */ + +/* 2nd level*/ +.bx_vertical_menu_advanced.bx_wood .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color: #20394C} +.bx_vertical_menu_advanced.bx_wood .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color: #366181} +/* // 2nd level*/ + +/* 3rd level */ +.bx_vertical_menu_advanced.bx_wood .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{ + background: #F0F6F8; + box-shadow: inset 0 1px 1px 0 #E3E9EB; +} +/* // 3rd level */ + +/* Panel */ +/* // The Panel*/ + diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/wood/colors.min.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/wood/colors.min.css new file mode 100644 index 0000000..c32abcb --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/wood/colors.min.css @@ -0,0 +1 @@ +.bx_vertical_menu_advanced.bx_wood{border-left:7px solid #e4f0f7;background:#f6f9fb}.bx_vertical_menu_advanced.bx_wood .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color:#20394c}.bx_vertical_menu_advanced.bx_wood .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color:#366181}.bx_vertical_menu_advanced.bx_wood .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{background:#f0f6f8;box-shadow:inset 0 1px 1px 0 #e3e9eb} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/yellow/colors.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/yellow/colors.css new file mode 100644 index 0000000..65044f1 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/yellow/colors.css @@ -0,0 +1,25 @@ +/* 1st level */ +.bx_vertical_menu_advanced.bx_yellow{ + border-left:7px solid #F2E9B2; + background:#FEFAD5; +} +/* // 1st level */ + +/* The Container */ +/*// Container */ + +/* 2nd level*/ +.bx_vertical_menu_advanced.bx_yellow .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color: #746b21} +.bx_vertical_menu_advanced.bx_yellow .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color: #564f17} +/* // 2nd level*/ + +/* 3rd level */ +.bx_vertical_menu_advanced.bx_yellow .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{ + background:#f7f3e0; + box-shadow:inset 0 1px 1px 0 #ebe9e3 +} +/* // 3rd level */ + +/* Panel */ +/* // The Panel*/ + diff --git a/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/yellow/colors.min.css b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/yellow/colors.min.css new file mode 100644 index 0000000..4609036 --- /dev/null +++ b/local/templates/.default/components/bitrix/menu/catalog_left_menu/themes/yellow/colors.min.css @@ -0,0 +1 @@ +.bx_vertical_menu_advanced.bx_yellow{border-left:7px solid #f2e9b2;background:#fefad5}.bx_vertical_menu_advanced.bx_yellow .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a{color:#746b21}.bx_vertical_menu_advanced.bx_yellow .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent>a:hover{color:#564f17}.bx_vertical_menu_advanced.bx_yellow .bx_hma_one_lvl .bx_children_container .bx_children_block li.parent ul a:hover{background:#f7f3e0;box-shadow:inset 0 1px 1px 0 #ebe9e3} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/news/services/.description.php b/local/templates/.default/components/bitrix/news/services/.description.php new file mode 100644 index 0000000..92e66fc --- /dev/null +++ b/local/templates/.default/components/bitrix/news/services/.description.php @@ -0,0 +1,5 @@ + "Услуги (кастомный шаблон)", + "DESCRIPTION" => "Шаблон для компонента bitrix:news (услуги)", +); \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/news/services/style.css b/local/templates/.default/components/bitrix/news/services/style.css new file mode 100644 index 0000000..bf00845 --- /dev/null +++ b/local/templates/.default/components/bitrix/news/services/style.css @@ -0,0 +1,43 @@ +.services-list { + display: flex; + flex-wrap: wrap; + gap: 24px; +} +.service-item { + border: 1px solid #e0e0e0; + border-radius: 8px; + padding: 16px; + width: 300px; + box-shadow: 0 2px 8px rgba(0,0,0,0.04); + background: #fff; + display: flex; + flex-direction: column; + align-items: flex-start; +} +.service-item h2 { + font-size: 1.2em; + margin: 0 0 8px 0; +} +.service-item img { + max-width: 100%; + border-radius: 4px; + margin-bottom: 8px; +} +.service-desc { + margin-bottom: 8px; + color: #444; +} +.service-price { + font-weight: bold; + color: #1a7f37; + margin-bottom: 8px; +} +.service-item a { + margin-top: auto; + color: #1976d2; + text-decoration: none; + font-weight: 500; +} +.service-item a:hover { + text-decoration: underline; +} \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/news/services/template.php b/local/templates/.default/components/bitrix/news/services/template.php new file mode 100644 index 0000000..c2fc9bd --- /dev/null +++ b/local/templates/.default/components/bitrix/news/services/template.php @@ -0,0 +1,21 @@ + +
+ +
+

+ + " alt=""> + +
+ +
+ +
+ Цена: +
+ + ">Подробнее +
+ +
\ No newline at end of file diff --git a/local/templates/.default/css/custom.css b/local/templates/.default/css/custom.css index 8e52388..8805774 100644 --- a/local/templates/.default/css/custom.css +++ b/local/templates/.default/css/custom.css @@ -9,10 +9,194 @@ display: none; } +.success-order__content{ + display: flex + ; + flex-direction: column; + align-items: center; + gap: 30px; +} + +.product__btns{ + flex-wrap: nowrap; +} + .cart-page--empty .cart-empty{ display: flex !important; } +.footer-widget-icons{ + position: fixed; + right: 28px; + bottom: 68px; + display: flex; + gap: 15px; + flex-direction: column; +} + +.footer-widget-icons img{ + margin: 0; + cursor: pointer; +} + + +.footer-popup { + position: fixed; + z-index: 1100; + left: 0; top: 0; right: 0; bottom: 0; + background: rgba(0,0,0,0.45); + display: flex; + align-items: center; + justify-content: center; + transition: opacity 0.2s; + } + .footer-popup__content { + background: #fff; + border-radius: 16px; + padding: 40px; + max-width: 480px; + width: 100%; + box-shadow: 0 8px 32px rgba(0,0,0,0.18); + position: relative; + display: flex; + flex-direction: column; + align-items: stretch; + } + .footer-popup__close { + position: absolute; + top: 12px; + right: 12px; + background: none; + border: none; + font-size: 28px; + color: #888; + cursor: pointer; + line-height: 1; + } + .footer-popup__title { + font-size: 40Px; + font-weight: 900; + margin: 0 auto 40px; + width:70%; + text-align: center; + } + .footer-popup__form .input { + margin-bottom: 20px; + padding: 10px 12px; + border: 1px solid #e0e0e0; + border-radius: 12px; + font-size: 1rem; + width: 100%; + background: #fff; + box-sizing: border-box; + } + .footer-popup__form .button--orange { + margin-top: 40px; + height: 48px; + width: 100%; + } + .footer-popup__personal { + font-size: 0.85rem; + color: #888; + margin-top: 10px; + } + + .footer-popup__personal a{ + + color: #FF7F23; + + } + + @media (max-width: 600px) { + .footer-popup__content { + max-width: 95vw; + padding: 18px 6vw 18px 6vw; + } + .footer-widget-icons { + right: 10px; + bottom: 10px; + } +} + +.cookie-banner { + position: fixed; + left: 0; + right: 0; + bottom: 0; + background: #13795b; + color: #fff; + padding: 12px 0 12px 0; + display: flex; + align-items: center; + justify-content: center; + gap: 16px; + font-size: 15px; + z-index: 1200; + box-shadow: 0 -2px 12px rgba(0,0,0,0.10); + } + .cookie-banner a { + color: #fff; + text-decoration: underline; + } + .cookie-banner .button--orange { + margin-left: 12px; + padding: 6px 18px; + font-size: 15px; + } + +.search-result-img{ + width: 50px; +} + +.search-result-item{ + gap: 16px; + display: flex +; + align-items: center; + border-bottom: 1px solid #E2E2E2; + padding: 16px 0; +} + +.header__search-block { + display: none; +} +.header__search-block.active { + display: block; +} + +.search-result-item span{ +font-weight: 400; +font-size: 16px; +line-height: 130%; +flex: 1; +letter-spacing: 0%; + +} + +.search-result-price{ +font-weight: 400; +font-size: 16px; +line-height: 130%; +letter-spacing: 0%; + +color: #939393; + +} + +.calc__actions { + margin-top: 20px; + text-align: center; +} + +.calc__actions .button { + min-width: 200px; +} + +/* Изначально скрываем контейнер с результатами */ +#calculator-container { + display: none; +} + .cart-page__item-quantity { padding: 0; width: 79px; @@ -182,10 +366,268 @@ max-width: 100%; } } +@media (max-width: 980px) { +.reviews__list .iframe-box{ + width: 100% !important; +} +} -.success-order__content{ - display: flex; - flex-direction: column; - align-items: center; - gap: 16px; + +.completed-objects__list { + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 52px 60px; + display: grid; +} + +@media (width <= 1024px) { + .completed-objects__list { + gap: 44px 32px; + } +} + +@media (width <= 744px) { + .completed-objects__list { + grid-template-columns: auto; + grid-auto-flow: row; + row-gap: 65px; + } +} + +@media (width <= 540px) { + .completed-objects__list { + row-gap: 40px; + } +} + +.completed-objects__item { + box-sizing: border-box; +} + +.completed-objects__item:hover .completed-objects__image:before, .completed-objects__item:hover .completed-objects__image .completed-objects__image-details { + opacity: 1; +} + +.completed-objects__item:hover .completed-objects__title { + color: #ff7f23; +} + +.completed-objects__item--green { + color: #fff; + background-color: #097359; + border-radius: 24px; + flex-direction: column; + justify-content: space-between; + height: max-content; + min-height: 280px; + padding: 28px; + display: flex; + position: relative; + overflow: hidden; +} + +@media (width <= 540px) { + .completed-objects__item--green { + min-height: 192px; + padding: 24px; + } +} + +.completed-objects__item--green:hover:after { + transform: rotate(0)translate(0); +} + +.completed-objects__item--green:hover .completed-objects__title { + color: inherit; +} + +.completed-objects__item--green:after { + content: ""; + pointer-events: none; + background-image: url("/local/templates/EraSeptik/build/svg/blocknote.svg"); + background-position: 100% 100%; + background-repeat: no-repeat; + background-size: contain; + width: 227px; + height: 185px; + transition: transform .5s ease-in-out; + position: absolute; + bottom: 0; + right: 0; + transform: rotate(15deg)translate(70px, 50px); +} + +@media (width <= 540px) { + .completed-objects__item--green:after { + content: none; + } +} + +.completed-objects__item--green .completed-objects__link { + z-index: 1; + font-size: 20px; + position: relative; +} + +@media (width <= 1024px) { + .completed-objects__item--green .completed-objects__link { + font-size: 16px; + } +} + +@media (width <= 540px) { + .completed-objects__item--green .completed-objects__link { + display: block; + } +} + +.completed-objects__item--green .completed-objects__link:after { + height: 20px; + top: 5px; +} + +@media (width <= 1024px) { + .completed-objects__item--green .completed-objects__link:after { + height: 14px; + top: 2px; + } +} + +.completed-objects__image { + box-sizing: border-box; + background-position: center; + background-repeat: no-repeat; + background-size: cover; + border-radius: 24px; + align-items: flex-end; + min-height: 280px; + margin-bottom: 20px; + padding: 32px; + display: flex; + position: relative; +} + +@media (width <= 540px) { + .completed-objects__image { + border-radius: 20px; + margin-bottom: 12px; + padding: 20px; + } +} + +.completed-objects__image:before { + content: ""; + border-radius: inherit; + opacity: 0; + background-image: linear-gradient(#0000 0%, #000c 100%); + transition: opacity .2s ease-out; + position: absolute; + inset: 0; +} + +@media (width <= 540px) { + .completed-objects__image:before { + opacity: 1; + background-image: linear-gradient(#0000 0%, #0006 100%); + } +} + +.completed-objects__image-details { + color: #fff; + opacity: 0; + justify-content: space-between; + align-items: center; + width: 100%; + transition: opacity .2s ease-out; + display: flex; + position: relative; +} + +@media (width <= 540px) { + .completed-objects__image-details { + opacity: 1; + } +} + +.completed-objects__link { + font-weight: 700; +} + +@media (width <= 540px) { + .completed-objects__link { + display: none; + } +} + +.completed-objects__link:after { + content: ""; + background-image: url("/local/templates/EraSeptik/build/svg/arrow-category.svg"); + background-repeat: no-repeat; + background-size: contain; + width: 20px; + height: 14px; + margin-left: 8px; + display: inline-block; + position: relative; + top: 2px; +} + +@media (width <= 1024px) { + .completed-objects__link:after { + width: 14px; + height: 16px; + } +} + +.completed-objects__title { + margin-bottom: 8px; + font-size: 24px; + transition: color .2s ease-out; +} + +@media (width <= 540px) { + .completed-objects__title { + font-size: 20px; + } +} + +.completed-objects__info { + margin-bottom: 16px; + line-height: 1.3em; +} + +.completed-objects__sub { + color: #939393; + margin-bottom: 8px; + line-height: 1.3em; +} + +@media (width <= 540px) { + .completed-objects__sub { + margin-bottom: 10px; + } +} + +.completed-objects__data { + color: #939393; + max-height: 2.6em; + margin: 0; + padding: 0; + list-style: none; + overflow: hidden; +} + +.completed-objects__data-item { + line-height: 1.3; +} + +.completed-objects__data-item:before { + content: "-"; + margin-right: 3px; + display: inline-block; +} + +@media (width <= 540px) { + .completed-objects__date { + display: block; + } } \ No newline at end of file diff --git a/local/templates/.default/js/custom.js b/local/templates/.default/js/custom.js index c431dad..09a0294 100644 --- a/local/templates/.default/js/custom.js +++ b/local/templates/.default/js/custom.js @@ -259,7 +259,7 @@ function showSearchResults(results, blockId) { `${item.title}${item.title}${item.price ? `
${item.price}
` : ''}
` ).join('') + ''; } else { - html = '
Ничего не найдено
'; + html = '
По вашему запросу ничего не найдено
'; } block.insertAdjacentHTML('beforeend', html); } diff --git a/local/templates/.default/js/main.js b/local/templates/.default/js/main.js index 3342548..cdd7f8d 100644 --- a/local/templates/.default/js/main.js +++ b/local/templates/.default/js/main.js @@ -140,35 +140,25 @@ parcelRegister("6aHKA", function(module, exports) { const cartContent = document.querySelector(".js-cart__page"); const cartOrderSuccess = document.querySelector(".js-cart__success-order"); const cartBreadcrumbs = document.querySelector(".js-cart__breadcrumbs"); - if (orderBtn){ - orderBtn.addEventListener("click", ()=>{ - cartPopup.classList.remove("cart-popup__wrapper--hidden"); - }); - } - if (closeBtn){ + orderBtn.addEventListener("click", ()=>{ + cartPopup.classList.remove("cart-popup__wrapper--hidden"); + }); closeBtn.addEventListener("click", ()=>{ cartPopup.classList.add("cart-popup__wrapper--hidden"); }); - } - if (submitBtn){ - submitBtn.addEventListener("click", (e)=>{ + submitBtn.addEventListener("click", (e)=>{ e.preventDefault(); cartPopup.classList.add("cart-popup__wrapper--hidden"); cartContent.classList.add("cart-page--hidden"); cartOrderSuccess.classList.add("success-order--visible"); cartBreadcrumbs.remove(); - }); - } - if (cartPopup){ - cartPopup.addEventListener("click", (e)=>{ + }); + cartPopup.addEventListener("click", (e)=>{ if (!document.querySelector(".cart-popup").contains(e.target)) cartPopup.classList.add("cart-popup__wrapper--hidden"); }); - } - const cartSelect = document.querySelector(".js-cart__order-select"); const cartSelfDelivery = document.querySelector(".js-cart__self-delivery"); const cartServiceDelivery = document.querySelectorAll(".js-cart__service-delivery"); - if (cartSelect){ cartSelect.addEventListener("change", ()=>{ const selectedValue = cartSelect.value; if (selectedValue === "self-delivery") { @@ -183,8 +173,6 @@ parcelRegister("6aHKA", function(module, exports) { }); } }); - } - }); diff --git a/local/templates/EraSeptik/footer.php b/local/templates/EraSeptik/footer.php index af6abfc..bf92b73 100644 --- a/local/templates/EraSeptik/footer.php +++ b/local/templates/EraSeptik/footer.php @@ -1,20 +1,46 @@ +
-

Нужна консультация?

-
- - - -
-
- Нажимая кнопку «Получить консультацию», вы соглашаетесь с условиями - конфиденциальности +

Нужна консультация?

+
+ + + +
+
+ Нажимая кнопку «Получить консультацию», вы соглашаетесь с условиями + конфиденциальности +
+
+ + + +
+
+
+ +

+ Рассчитать септик за 5 минут! +

+

Наш менеджер свяжется с вами в ближайшее время

+ + + +

+ Нажимая кнопку «Заказать звонок», вы подтверждаете свое согласие на + обработку персональных данных +

+
+ +
+ + + addJs(DEFAULT_TEMPLATE_PATH . '/js/libs/fancybox.umd.js'); Asset::getInstance()->addJs(DEFAULT_TEMPLATE_PATH . '/js/custom.js'); ?> +
@@ -336,5 +426,6 @@
+ diff --git a/local/templates/EraSeptik/header.php b/local/templates/EraSeptik/header.php index 27b7d44..743e815 100644 --- a/local/templates/EraSeptik/header.php +++ b/local/templates/EraSeptik/header.php @@ -5,6 +5,7 @@ $curPage = $APPLICATION->GetCurPage(false); $assets = Asset::getInstance(); $body_class = []; + global $serv; if ($curPage == '/') { $body_class[] = 'page-index'; @@ -12,6 +13,9 @@ if ($curPage == '/cart/') { $body_class[] = 'cart'; } + if ($serv){ + $body_class[] = 'services-page'; + } ?> @@ -36,13 +40,14 @@ Asset::getInstance()->addCss(DEFAULT_TEMPLATE_PATH . '/css/custom.css'); $APPLICATION->ShowHead(); ?> +
ShowPanel(); ?>
- +
@@ -99,29 +104,21 @@ > - - IncludeComponent("bitrix:search.title", "main", Array( - "CATEGORY_0" => array( // Ограничение области поиска - 0 => "iblock_catalog", - ), - "CATEGORY_0_TITLE" => "", // Название категории - "CATEGORY_0_iblock_catalog" => array( // Искать в информационных блоках типа "iblock_catalog" - 0 => "4", - ), - "CHECK_DATES" => "N", // Искать только в активных по дате документах - "CONTAINER_ID" => "title-search", // ID контейнера, по ширине которого будут выводиться результаты - "INPUT_ID" => "title-search-input", // ID строки ввода поискового запроса - "NUM_CATEGORIES" => "1", // Количество категорий поиска - "ORDER" => "date", // Сортировка результатов - "PAGE" => "", // Страница выдачи результатов поиска (доступен макрос #SITE_DIR#) - "SHOW_INPUT" => "Y", // Показывать форму ввода поискового запроса - "SHOW_OTHERS" => "N", // Показывать категорию "прочее" - "TOP_COUNT" => "50", // Количество результатов в каждой категории - "USE_LANGUAGE_GUESS" => "Y", // Включить автоопределение раскладки клавиатуры - "COMPONENT_TEMPLATE" => ".default" - ), - false - );?> + +
+ +
IncludeComponent( "bitrix:main.include", "", @@ -154,14 +151,14 @@
-
+
IncludeComponent( "bitrix:menu", @@ -198,66 +195,16 @@ ) );?> -
+