diff --git a/catalog/index.php b/catalog/index.php index aec047d..44895dc 100644 --- a/catalog/index.php +++ b/catalog/index.php @@ -1,20 +1,74 @@ -SetTitle("Каталог"); -?>IncludeComponent( - "bitrix:catalog", +SetTitle(""); + +// Получаем текущую страницу из URL +$page = 1; +if (preg_match('/page-(\d+)/', $APPLICATION->GetCurPage(), $matches)) { + $page = intval($matches[1]); +} + +// Получаем название раздела, если мы находимся в разделе +$baseTitle = "Каталог"; +if ($APPLICATION->GetCurDir() !== '/catalog/') { + $nav = CIBlockSection::GetNavChain(4, CIBlockFindTools::GetSectionID($APPLICATION->GetCurDir(), "", "catalog")); + if ($nav->SelectedRowsCount() > 0) { + $section = $nav->Fetch(); + $baseTitle = $section['NAME']; + } +} + +// Устанавливаем заголовок с учетом пагинации +if ($page > 1) { + $APPLICATION->SetPageProperty("title", $baseTitle . " - страница " . $page); + $APPLICATION->SetTitle($baseTitle . " - страница " . $page); +} else { + $APPLICATION->SetTitle($baseTitle); +} + +// Определяем параметры сортировки +$sortField = "sort"; +$sortOrder = "desc"; + +if (isset($_GET['sorting'])) { + if ($_GET['sorting'] === 'price_up') { + $sortField = "CATALOG_PRICE_1"; + $sortOrder = "asc"; + } elseif ($_GET['sorting'] === 'price_down') { + $sortField = "CATALOG_PRICE_1"; + $sortOrder = "desc"; + } elseif ($_GET['sorting'] === 'default') { + $sortField = "sort"; + $sortOrder = "desc"; + } elseif ($_GET['sorting'] === 'reviews') { + $sortField = "PROPERTY_82"; + $sortOrder = "desc"; + } +} + +?>IncludeComponent( + "bitrix:catalog", "main", array( + "SEF_MODE" => "Y", + "SEF_FOLDER" => "/", + "SEF_URL_TEMPLATES" => array( + "sections" => "catalog/", + "section" => "#SECTION_CODE_PATH#/", // нельзя слеш ставить в начале + "element" => "#ELEMENT_CODE#/", // нельзя слеш ставить в начале + "compare" => "compare/", + ), "ACTION_VARIABLE" => "action", "ADD_ELEMENT_CHAIN" => "Y", "ADD_PICT_PROP" => "-", "ADD_PROPERTIES_TO_BASKET" => "Y", "ADD_SECTIONS_CHAIN" => "Y", + // "AJAX_MODE" => "Y", "AJAX_MODE" => "N", "AJAX_OPTION_ADDITIONAL" => "", - "AJAX_OPTION_HISTORY" => "N", + "AJAX_OPTION_HISTORY" => "Y", "AJAX_OPTION_JUMP" => "N", - "AJAX_OPTION_STYLE" => "N", + "AJAX_OPTION_STYLE" => "Y", "BASKET_URL" => "/personal/basket.php", "CACHE_FILTER" => "N", "CACHE_GROUPS" => "Y", @@ -23,24 +77,20 @@ $APPLICATION->SetTitle("Каталог"); "COMMON_ADD_TO_BASKET_ACTION" => "ADD", "COMMON_SHOW_CLOSE_POPUP" => "N", "COMPATIBLE_MODE" => "N", + "COMPONENT_TEMPLATE" => "main", "CONVERT_CURRENCY" => "N", "DETAIL_ADD_DETAIL_TO_SLIDER" => "N", - "DETAIL_ADD_TO_BASKET_ACTION" => array( - 0 => "BUY", - ), - "DETAIL_ADD_TO_BASKET_ACTION_PRIMARY" => array( - 0 => "BUY", - ), + "DETAIL_ADD_TO_BASKET_ACTION" => array(0 => "BUY", ), + "DETAIL_ADD_TO_BASKET_ACTION_PRIMARY" => array(0 => "BUY", ), "DETAIL_BACKGROUND_IMAGE" => "-", "DETAIL_BRAND_USE" => "N", "DETAIL_BROWSER_TITLE" => "-", "DETAIL_CHECK_SECTION_ID_VARIABLE" => "N", - "DETAIL_DETAIL_PICTURE_MODE" => array( - 0 => "MAGNIFIER", - ), + "DETAIL_DETAIL_PICTURE_MODE" => array(0 => "MAGNIFIER", ), "DETAIL_DISPLAY_NAME" => "Y", "DETAIL_DISPLAY_PREVIEW_TEXT_MODE" => "E", "DETAIL_IMAGE_RESOLUTION" => "16by9", + "DETAIL_MAIN_BLOCK_PROPERTY_CODE" => array(), "DETAIL_META_DESCRIPTION" => "-", "DETAIL_META_KEYWORDS" => "-", "DETAIL_PRODUCT_INFO_BLOCK_ORDER" => "sku,props", @@ -56,12 +106,13 @@ $APPLICATION->SetTitle("Каталог"); "DISABLE_INIT_JS_IN_COMPONENT" => "N", "DISPLAY_BOTTOM_PAGER" => "Y", "DISPLAY_TOP_PAGER" => "N", - "ELEMENT_SORT_FIELD" => "sort", + "ELEMENT_SORT_FIELD" => $sortField, "ELEMENT_SORT_FIELD2" => "id", - "ELEMENT_SORT_ORDER" => "desc", + "ELEMENT_SORT_ORDER" => $sortOrder, "ELEMENT_SORT_ORDER2" => "desc", "FILE_404" => "", "FILTER_HIDE_ON_MOBILE" => "N", + "FILTER_NAME" => "", "FILTER_VIEW_MODE" => "VERTICAL", "GIFTS_DETAIL_BLOCK_TITLE" => "Выберите один из подарков", "GIFTS_DETAIL_HIDE_BLOCK_TITLE" => "N", @@ -85,8 +136,7 @@ $APPLICATION->SetTitle("Каталог"); "IBLOCK_TYPE" => "catalog", "INCLUDE_SUBSECTIONS" => "Y", "INSTANT_RELOAD" => "N", - "LABEL_PROP" => array( - ), + "LABEL_PROP" => array(), "LAZY_LOAD" => "Y", "LINE_ELEMENT_COUNT" => "3", "LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#", @@ -99,6 +149,7 @@ $APPLICATION->SetTitle("Каталог"); "LIST_META_KEYWORDS" => "-", "LIST_PRODUCT_BLOCKS_ORDER" => "price,props,sku,quantityLimit,quantity,buttons", "LIST_PRODUCT_ROW_VARIANTS" => "[{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false}]", + "LIST_PROPERTY_CODE_MOBILE" => array(), "LIST_SHOW_SLIDER" => "N", "LIST_SLIDER_INTERVAL" => "3000", "LIST_SLIDER_PROGRESS" => "N", @@ -123,10 +174,9 @@ $APPLICATION->SetTitle("Каталог"); "PAGER_SHOW_ALWAYS" => "N", "PAGER_TEMPLATE" => ".default", "PAGER_TITLE" => "Товары", - "PAGE_ELEMENT_COUNT" => "12", + "PAGE_ELEMENT_COUNT" => "9", "PARTIAL_PRODUCT_PROPERTIES" => "N", - "PRICE_CODE" => array( - ), + "PRICE_CODE" => array(), "PRICE_VAT_INCLUDE" => "Y", "PRICE_VAT_SHOW_VALUE" => "N", "PRODUCT_ID_VARIABLE" => "id", @@ -144,6 +194,7 @@ $APPLICATION->SetTitle("Каталог"); "SECTION_ADD_TO_BASKET_ACTION" => "ADD", "SECTION_BACKGROUND_IMAGE" => "-", "SECTION_COUNT_ELEMENTS" => "N", + "SECTION_ID" => isset($_REQUEST["SECTION_ID"]) ? $_REQUEST["SECTION_ID"] : "", "SECTION_ID_VARIABLE" => "SECTION_ID", "SECTION_TOP_DEPTH" => "3", "SET_LAST_MODIFIED" => "N", @@ -193,28 +244,6 @@ $APPLICATION->SetTitle("Каталог"); "USE_PRODUCT_QUANTITY" => "N", "USE_SALE_BESTSELLERS" => "N", "USE_STORE" => "N", - "COMPONENT_TEMPLATE" => "main", - "LIST_PROPERTY_CODE_MOBILE" => array( - ), - "DETAIL_MAIN_BLOCK_PROPERTY_CODE" => array( - ), - "FILTER_NAME" => "", - "SECTION_ID" => $_REQUEST["SECTION_ID"], // или SECTION_CODE, если ЧПУ - "SECTION_CODE" => $_REQUEST["SECTION_CODE"], // если URL вида /category/phones/ - "SEF_MODE" => "Y", - "SEF_FOLDER" => "/", - "SEF_URL_TEMPLATES" => array( - "sections" => "catalog/", - "section" => "#SECTION_CODE_PATH#/", // нельзя слеш ставить в начале - "element"=>"#ELEMENT_CODE#/", // нельзя слеш ставить в начале - "compare" => "compare/", - "smart_filter" => "#SMART_FILTER_PATH#/apply/" - ), - "VARIABLE_ALIASES" => array( - "compare" => array( - "ACTION_CODE" => "action", - ), - ) - ), - false -);?> \ No newline at end of file + "VARIABLE_ALIASES" => array("compare" => array("ACTION_CODE" => "action", ), ) + ) +); ?> \ No newline at end of file diff --git a/catalog/novaya-stranitsa.php b/catalog/novaya-stranitsa.php deleted file mode 100644 index 02c9044..0000000 --- a/catalog/novaya-stranitsa.php +++ /dev/null @@ -1,221 +0,0 @@ -SetTitle("Новая страница"); -?>IncludeComponent( - "bitrix:catalog.smart.filter", - "bootstrap_v4", - Array( - "CACHE_GROUPS" => "Y", - "CACHE_TIME" => "36000000", - "CACHE_TYPE" => "A", - "CONVERT_CURRENCY" => "N", - "DISPLAY_ELEMENT_COUNT" => "Y", - "FILTER_NAME" => "arrFilter", - "FILTER_VIEW_MODE" => "vertical", - "HIDE_NOT_AVAILABLE" => "N", - "IBLOCK_ID" => "4", - "IBLOCK_TYPE" => "catalog", - "PAGER_PARAMS_NAME" => "arrPager", - "POPUP_POSITION" => "left", - "PREFILTER_NAME" => "smartPreFilter", - "PRICE_CODE" => array(), - "SAVE_IN_SESSION" => "N", - "SECTION_CODE" => "", - "SECTION_DESCRIPTION" => "-", - "SECTION_ID" => $_REQUEST["SECTION_ID"], - "SECTION_TITLE" => "-", - "SEF_MODE" => "N", - "TEMPLATE_THEME" => "blue", - "XML_EXPORT" => "N" - ) -);?>
-IncludeComponent( - "bitrix:catalog", - "bootstrap_v4", - Array( - "ACTION_VARIABLE" => "action", - "ADD_ELEMENT_CHAIN" => "N", - "ADD_PROPERTIES_TO_BASKET" => "Y", - "ADD_SECTIONS_CHAIN" => "Y", - "AJAX_MODE" => "N", - "AJAX_OPTION_ADDITIONAL" => "", - "AJAX_OPTION_HISTORY" => "N", - "AJAX_OPTION_JUMP" => "N", - "AJAX_OPTION_STYLE" => "Y", - "BASKET_URL" => "/personal/basket.php", - "CACHE_FILTER" => "N", - "CACHE_GROUPS" => "Y", - "CACHE_TIME" => "36000000", - "CACHE_TYPE" => "A", - "COMMON_ADD_TO_BASKET_ACTION" => "ADD", - "COMMON_SHOW_CLOSE_POPUP" => "N", - "COMPATIBLE_MODE" => "N", - "CONVERT_CURRENCY" => "N", - "DETAIL_ADD_DETAIL_TO_SLIDER" => "N", - "DETAIL_ADD_TO_BASKET_ACTION" => array("BUY"), - "DETAIL_ADD_TO_BASKET_ACTION_PRIMARY" => array("BUY"), - "DETAIL_BACKGROUND_IMAGE" => "-", - "DETAIL_BRAND_USE" => "N", - "DETAIL_BROWSER_TITLE" => "-", - "DETAIL_CHECK_SECTION_ID_VARIABLE" => "N", - "DETAIL_DETAIL_PICTURE_MODE" => array("POPUP","MAGNIFIER"), - "DETAIL_DISPLAY_NAME" => "Y", - "DETAIL_DISPLAY_PREVIEW_TEXT_MODE" => "E", - "DETAIL_IMAGE_RESOLUTION" => "16by9", - "DETAIL_META_DESCRIPTION" => "-", - "DETAIL_META_KEYWORDS" => "-", - "DETAIL_PRODUCT_INFO_BLOCK_ORDER" => "sku,props", - "DETAIL_PRODUCT_PAY_BLOCK_ORDER" => "rating,price,priceRanges,quantityLimit,quantity,buttons", - "DETAIL_SET_CANONICAL_URL" => "N", - "DETAIL_SET_VIEWED_IN_COMPONENT" => "N", - "DETAIL_SHOW_POPULAR" => "Y", - "DETAIL_SHOW_SLIDER" => "N", - "DETAIL_SHOW_VIEWED" => "Y", - "DETAIL_STRICT_SECTION_CHECK" => "N", - "DETAIL_USE_COMMENTS" => "N", - "DETAIL_USE_VOTE_RATING" => "N", - "DISABLE_INIT_JS_IN_COMPONENT" => "N", - "DISPLAY_BOTTOM_PAGER" => "Y", - "DISPLAY_TOP_PAGER" => "N", - "ELEMENT_SORT_FIELD" => "sort", - "ELEMENT_SORT_FIELD2" => "id", - "ELEMENT_SORT_ORDER" => "asc", - "ELEMENT_SORT_ORDER2" => "desc", - "FILTER_HIDE_ON_MOBILE" => "N", - "FILTER_VIEW_MODE" => "VERTICAL", - "GIFTS_DETAIL_BLOCK_TITLE" => "Выберите один из подарков", - "GIFTS_DETAIL_HIDE_BLOCK_TITLE" => "N", - "GIFTS_DETAIL_PAGE_ELEMENT_COUNT" => "4", - "GIFTS_DETAIL_TEXT_LABEL_GIFT" => "Подарок", - "GIFTS_MAIN_PRODUCT_DETAIL_BLOCK_TITLE" => "Выберите один из товаров, чтобы получить подарок", - "GIFTS_MAIN_PRODUCT_DETAIL_HIDE_BLOCK_TITLE" => "N", - "GIFTS_MAIN_PRODUCT_DETAIL_PAGE_ELEMENT_COUNT" => "4", - "GIFTS_MESS_BTN_BUY" => "Выбрать", - "GIFTS_SECTION_LIST_BLOCK_TITLE" => "Подарки к товарам этого раздела", - "GIFTS_SECTION_LIST_HIDE_BLOCK_TITLE" => "N", - "GIFTS_SECTION_LIST_PAGE_ELEMENT_COUNT" => "4", - "GIFTS_SECTION_LIST_TEXT_LABEL_GIFT" => "Подарок", - "GIFTS_SHOW_DISCOUNT_PERCENT" => "Y", - "GIFTS_SHOW_IMAGE" => "Y", - "GIFTS_SHOW_NAME" => "Y", - "GIFTS_SHOW_OLD_PRICE" => "Y", - "HIDE_NOT_AVAILABLE" => "N", - "HIDE_NOT_AVAILABLE_OFFERS" => "N", - "IBLOCK_ID" => "", - "IBLOCK_TYPE" => "catalog", - "INCLUDE_SUBSECTIONS" => "Y", - "INSTANT_RELOAD" => "N", - "LAZY_LOAD" => "N", - "LINE_ELEMENT_COUNT" => "3", - "LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#", - "LINK_IBLOCK_ID" => "", - "LINK_IBLOCK_TYPE" => "", - "LINK_PROPERTY_SID" => "", - "LIST_BROWSER_TITLE" => "-", - "LIST_META_DESCRIPTION" => "-", - "LIST_META_KEYWORDS" => "-", - "LOAD_ON_SCROLL" => "N", - "MESSAGE_404" => "", - "MESS_BTN_ADD_TO_BASKET" => "В корзину", - "MESS_BTN_BUY" => "Купить", - "MESS_BTN_COMPARE" => "Сравнение", - "MESS_BTN_DETAIL" => "Подробнее", - "MESS_BTN_LAZY_LOAD" => "Показать ещё", - "MESS_BTN_SUBSCRIBE" => "Подписаться", - "MESS_COMMENTS_TAB" => "Комментарии", - "MESS_DESCRIPTION_TAB" => "Описание", - "MESS_NOT_AVAILABLE" => "Нет в наличии", - "MESS_NOT_AVAILABLE_SERVICE" => "Недоступно", - "MESS_PRICE_RANGES_TITLE" => "Цены", - "MESS_PROPERTIES_TAB" => "Характеристики", - "PAGER_BASE_LINK_ENABLE" => "N", - "PAGER_DESC_NUMBERING" => "N", - "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", - "PAGER_SHOW_ALL" => "N", - "PAGER_SHOW_ALWAYS" => "N", - "PAGER_TEMPLATE" => ".default", - "PAGER_TITLE" => "Товары", - "PAGE_ELEMENT_COUNT" => "30", - "PARTIAL_PRODUCT_PROPERTIES" => "N", - "PRICE_CODE" => array(), - "PRICE_VAT_INCLUDE" => "Y", - "PRICE_VAT_SHOW_VALUE" => "N", - "PRODUCT_ID_VARIABLE" => "id", - "PRODUCT_PROPS_VARIABLE" => "prop", - "PRODUCT_QUANTITY_VARIABLE" => "quantity", - "PRODUCT_SUBSCRIPTION" => "Y", - "SEARCH_CHECK_DATES" => "Y", - "SEARCH_NO_WORD_LOGIC" => "Y", - "SEARCH_PAGE_RESULT_COUNT" => "50", - "SEARCH_RESTART" => "N", - "SEARCH_USE_LANGUAGE_GUESS" => "Y", - "SEARCH_USE_SEARCH_RESULT_ORDER" => "N", - "SECTIONS_SHOW_PARENT_NAME" => "Y", - "SECTIONS_VIEW_MODE" => "LIST", - "SECTION_ADD_TO_BASKET_ACTION" => "ADD", - "SECTION_BACKGROUND_IMAGE" => "-", - "SECTION_COUNT_ELEMENTS" => "Y", - "SECTION_ID_VARIABLE" => "SECTION_ID", - "SECTION_TOP_DEPTH" => "2", - "SEF_MODE" => "N", - "SET_LAST_MODIFIED" => "N", - "SET_STATUS_404" => "N", - "SET_TITLE" => "Y", - "SHOW_404" => "N", - "SHOW_DEACTIVATED" => "N", - "SHOW_DISCOUNT_PERCENT" => "N", - "SHOW_MAX_QUANTITY" => "N", - "SHOW_OLD_PRICE" => "N", - "SHOW_PRICE_COUNT" => "1", - "SHOW_SKU_DESCRIPTION" => "N", - "SHOW_TOP_ELEMENTS" => "Y", - "SIDEBAR_DETAIL_POSITION" => "right", - "SIDEBAR_DETAIL_SHOW" => "N", - "SIDEBAR_PATH" => "", - "SIDEBAR_SECTION_POSITION" => "right", - "SIDEBAR_SECTION_SHOW" => "Y", - "TEMPLATE_THEME" => "blue", - "TOP_ADD_TO_BASKET_ACTION" => "ADD", - "TOP_ELEMENT_COUNT" => "9", - "TOP_ELEMENT_SORT_FIELD" => "sort", - "TOP_ELEMENT_SORT_FIELD2" => "id", - "TOP_ELEMENT_SORT_ORDER" => "asc", - "TOP_ELEMENT_SORT_ORDER2" => "desc", - "TOP_ENLARGE_PRODUCT" => "STRICT", - "TOP_LINE_ELEMENT_COUNT" => "3", - "TOP_PRODUCT_BLOCKS_ORDER" => "price,props,sku,quantityLimit,quantity,buttons", - "TOP_PRODUCT_ROW_VARIANTS" => "[{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false}]", - "TOP_SHOW_SLIDER" => "Y", - "TOP_SLIDER_INTERVAL" => "3000", - "TOP_SLIDER_PROGRESS" => "N", - "TOP_VIEW_MODE" => "SECTION", - "USER_CONSENT" => "N", - "USER_CONSENT_ID" => "0", - "USER_CONSENT_IS_CHECKED" => "Y", - "USER_CONSENT_IS_LOADED" => "N", - "USE_COMMON_SETTINGS_BASKET_POPUP" => "N", - "USE_COMPARE" => "N", - "USE_ELEMENT_COUNTER" => "Y", - "USE_ENHANCED_ECOMMERCE" => "N", - "USE_FILTER" => "N", - "USE_GIFTS_DETAIL" => "Y", - "USE_GIFTS_MAIN_PR_SECTION_LIST" => "Y", - "USE_GIFTS_SECTION" => "Y", - "USE_MAIN_ELEMENT_SECTION" => "N", - "USE_PRICE_COUNT" => "N", - "USE_PRODUCT_QUANTITY" => "N", - "USE_SALE_BESTSELLERS" => "Y", - "USE_STORE" => "N", - "VARIABLE_ALIASES" => Array("ELEMENT_ID"=>"ELEMENT_ID","SECTION_ID"=>"SECTION_ID") - ) -);?>IncludeComponent( - "sotbit:seo.meta", - "", - Array( - "CACHE_TIME" => "36000000", - "CACHE_TYPE" => "A", - "FILTER_NAME" => "", - "KOMBOX_FILTER" => "N", - "SECTION_ID" => $_REQUEST["SECTION_ID"] - ) -);?> \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog.item/.default/template.php b/local/templates/.default/components/bitrix/catalog.item/.default/template.php index 8daac2e..4ebe973 100644 --- a/local/templates/.default/components/bitrix/catalog.item/.default/template.php +++ b/local/templates/.default/components/bitrix/catalog.item/.default/template.php @@ -112,12 +112,12 @@ $this->setFrameMode(true); " value="ADD2BASKET"> " value="" class="id-offer"> - - + + diff --git a/local/templates/.default/components/bitrix/catalog.item/mainpage/template.php b/local/templates/.default/components/bitrix/catalog.item/mainpage/template.php index 25f73d7..fa1f713 100644 --- a/local/templates/.default/components/bitrix/catalog.item/mainpage/template.php +++ b/local/templates/.default/components/bitrix/catalog.item/mainpage/template.php @@ -64,7 +64,7 @@ if (isset($arResult['ITEM'])): Купить diff --git a/local/templates/.default/components/bitrix/catalog.smart.filter/cat_filter/template.php b/local/templates/.default/components/bitrix/catalog.smart.filter/cat_filter/template.php index 4bda267..4909bbb 100644 --- a/local/templates/.default/components/bitrix/catalog.smart.filter/cat_filter/template.php +++ b/local/templates/.default/components/bitrix/catalog.smart.filter/cat_filter/template.php @@ -26,7 +26,7 @@ if (isset($templateData['TEMPLATE_THEME'])) { $this->addExternalCss($templateData['TEMPLATE_THEME']); } -$arResult['FORM_ACTION'] = '/catalog'. preg_replace('~^/catalog/(.+?)filter/~i', "/", $arResult['FORM_ACTION']); +// $arResult['FORM_ACTION'] = '/catalog'. preg_replace('~^/catalog/(.+?)filter/~i', "/", $arResult['FORM_ACTION']); //$this->addExternalCss("/bitrix/css/main/bootstrap.css"); //$this->addExternalCss("/bitrix/css/main/font-awesome.css"); ?> @@ -954,12 +954,15 @@ $arResult['FORM_ACTION'] = '/catalog'. preg_replace('~^/catalog/(.+?)filter/~i', - + diff --git a/local/templates/.default/components/bitrix/catalog/main/section_vertical.php b/local/templates/.default/components/bitrix/catalog/main/section_vertical.php index 7ae2ad1..02e42e7 100644 --- a/local/templates/.default/components/bitrix/catalog/main/section_vertical.php +++ b/local/templates/.default/components/bitrix/catalog/main/section_vertical.php @@ -102,15 +102,7 @@ $APPLICATION->IncludeComponent( IncludeComponent( "bitrix:catalog.section", @@ -118,8 +110,8 @@ $intSectionID = $APPLICATION->IncludeComponent( array( "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], - "ELEMENT_SORT_FIELD" => $sortField, -"ELEMENT_SORT_ORDER" => $sortOrder, + "ELEMENT_SORT_FIELD" => $arParams["ELEMENT_SORT_FIELD"], + "ELEMENT_SORT_ORDER" => $arParams["ELEMENT_SORT_ORDER"], "ELEMENT_SORT_FIELD2" => $arParams["ELEMENT_SORT_FIELD2"], "ELEMENT_SORT_ORDER2" => $arParams["ELEMENT_SORT_ORDER2"], "PROPERTY_CODE" => (isset($arParams["LIST_PROPERTY_CODE"]) ? $arParams["LIST_PROPERTY_CODE"] : []), diff --git a/local/templates/.default/js/main.js b/local/templates/.default/js/main.js index cdd7f8d..72e16d0 100644 --- a/local/templates/.default/js/main.js +++ b/local/templates/.default/js/main.js @@ -133,47 +133,70 @@ parcelRegister("jUaIl", function(module, exports) { }); parcelRegister("6aHKA", function(module, exports) { - const cartPopup = document.querySelector(".cart-popup__wrapper"); - const orderBtn = document.querySelector(".js-cart__order-btn"); - const closeBtn = document.querySelector(".js-cart__popup-close"); - const submitBtn = document.querySelector(".js-cart__popup-submit"); - const cartContent = document.querySelector(".js-cart__page"); - const cartOrderSuccess = document.querySelector(".js-cart__success-order"); - const cartBreadcrumbs = document.querySelector(".js-cart__breadcrumbs"); - orderBtn.addEventListener("click", ()=>{ - cartPopup.classList.remove("cart-popup__wrapper--hidden"); - }); - closeBtn.addEventListener("click", ()=>{ - cartPopup.classList.add("cart-popup__wrapper--hidden"); - }); - 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(); - }); - 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"); - cartSelect.addEventListener("change", ()=>{ - const selectedValue = cartSelect.value; - if (selectedValue === "self-delivery") { - cartSelfDelivery.classList.remove("cart-popup__self-delivery--hidden"); - cartServiceDelivery.forEach((item)=>{ - item.classList.add("cart-popup__label-delivery--hidden"); - }); + const cartPopup = document.querySelector(".cart-popup__wrapper"); + const closeBtn = document.querySelector(".js-cart__popup-close"); + const cartOrderSuccess = document.querySelector(".js-cart__success-order"); + const cartBreadcrumbs = document.querySelector(".js-cart__breadcrumbs"); + const cartForm = document.getElementById("cart-form"); + + // Закрытие попапа крестом и кликом по фону + closeBtn.addEventListener("click", e => { + e.stopPropagation(); + cartPopup.classList.add("cart-popup__wrapper--hidden"); + }); + cartPopup.addEventListener("click", e => { + if (!e.target.closest(".cart-popup")) { + 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"); + cartSelect.addEventListener("change", () => { + if (cartSelect.value === "self-delivery") { + cartSelfDelivery.classList.remove("cart-popup__self-delivery--hidden"); + cartServiceDelivery.forEach(i => i.classList.add("cart-popup__label-delivery--hidden")); + } else { + cartSelfDelivery.classList.add("cart-popup__self-delivery--hidden"); + cartServiceDelivery.forEach(i => i.classList.remove("cart-popup__label-delivery--hidden")); + } + }); + + // AJAX-отправка формы + if (cartForm) { + cartForm.addEventListener("submit", function(e) { + e.preventDefault(); + + const form = this; + const submitBtn = form.querySelector("button[type=submit]"); + submitBtn.disabled = true; + submitBtn.classList.add("is-loading"); + + fetch(form.action, { + method: form.method || "POST", + body: new FormData(form) + }) + .then(res => res.json()) + .then(data => { + if (data.success) { + cartPopup.classList.add("cart-popup__wrapper--hidden"); + cartOrderSuccess.classList.add("success-order--visible"); + cartBreadcrumbs?.remove(); } else { - cartSelfDelivery.classList.add("cart-popup__self-delivery--hidden"); - cartServiceDelivery.forEach((item)=>{ - item.classList.remove("cart-popup__label-delivery--hidden"); - }); - } - }); - + alert(data.message || "Ошибка при оформлении заказа"); + } + }) + .catch(() => { + alert("Не удалось связаться с сервером"); + }) + .finally(() => { + submitBtn.disabled = false; + submitBtn.classList.remove("is-loading"); + }); + }); + } }); /** diff --git a/local/templates/EraSeptik/footer.php b/local/templates/EraSeptik/footer.php index bf92b73..c20fc58 100644 --- a/local/templates/EraSeptik/footer.php +++ b/local/templates/EraSeptik/footer.php @@ -363,7 +363,7 @@ document.querySelectorAll('[data-product]').forEach(function(button) {

Оформление заказа

-
+