diff --git a/catalog/index.php b/catalog/index.php index 44895dc..8365485 100644 --- a/catalog/index.php +++ b/catalog/index.php @@ -47,23 +47,17 @@ if (isset($_GET['sorting'])) { } ?>IncludeComponent( - "bitrix:catalog", - "main", + "bitrix:catalog", + "main", // отсюда перенести верстку в чистый шаблон на базе .default + // ".default", 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" => "Y", @@ -77,20 +71,27 @@ if (isset($_GET['sorting'])) { "COMMON_ADD_TO_BASKET_ACTION" => "ADD", "COMMON_SHOW_CLOSE_POPUP" => "N", "COMPATIBLE_MODE" => "N", - "COMPONENT_TEMPLATE" => "main", + "COMPONENT_TEMPLATE" => ".default", "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_MAIN_BLOCK_PROPERTY_CODE" => array( + ), "DETAIL_META_DESCRIPTION" => "-", "DETAIL_META_KEYWORDS" => "-", "DETAIL_PRODUCT_INFO_BLOCK_ORDER" => "sku,props", @@ -136,7 +137,8 @@ if (isset($_GET['sorting'])) { "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#", @@ -149,7 +151,8 @@ if (isset($_GET['sorting'])) { "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_PROPERTY_CODE_MOBILE" => array( + ), "LIST_SHOW_SLIDER" => "N", "LIST_SLIDER_INTERVAL" => "3000", "LIST_SLIDER_PROGRESS" => "N", @@ -176,7 +179,8 @@ if (isset($_GET['sorting'])) { "PAGER_TITLE" => "Товары", "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", @@ -194,7 +198,7 @@ if (isset($_GET['sorting'])) { "SECTION_ADD_TO_BASKET_ACTION" => "ADD", "SECTION_BACKGROUND_IMAGE" => "-", "SECTION_COUNT_ELEMENTS" => "N", - "SECTION_ID" => isset($_REQUEST["SECTION_ID"]) ? $_REQUEST["SECTION_ID"] : "", + "SECTION_ID" => isset($_REQUEST["SECTION_ID"])?$_REQUEST["SECTION_ID"]:"", "SECTION_ID_VARIABLE" => "SECTION_ID", "SECTION_TOP_DEPTH" => "3", "SET_LAST_MODIFIED" => "N", @@ -244,6 +248,15 @@ if (isset($_GET['sorting'])) { "USE_PRODUCT_QUANTITY" => "N", "USE_SALE_BESTSELLERS" => "N", "USE_STORE" => "N", - "VARIABLE_ALIASES" => array("compare" => array("ACTION_CODE" => "action", ), ) - ) + "SIDEBAR_SECTION_POSITION" => "right", + "SIDEBAR_DETAIL_POSITION" => "right", + "SEF_URL_TEMPLATES" => array( + "sections" => "catalog/", + "section" => "#SECTION_CODE_PATH#/", + "element" => "#ELEMENT_CODE#/", + "compare" => "compare/", + "smart_filter" => "#SECTION_CODE_PATH#/filter/#SMART_FILTER_PATH#/apply/", + ) + ), + false ); ?> \ No newline at end of file diff --git a/local/templates/.default/components/bitrix/catalog/main/section_horizontal.php b/local/templates/.default/components/bitrix/catalog/main/section_horizontal.php index 00b3865..90625ae 100644 --- a/local/templates/.default/components/bitrix/catalog/main/section_horizontal.php +++ b/local/templates/.default/components/bitrix/catalog/main/section_horizontal.php @@ -24,7 +24,7 @@ else
- IncludeComponent( "bitrix:catalog.smart.filter", "", @@ -54,7 +54,7 @@ else ), $component, array('HIDE_ICONS' => 'Y') - ); + );*/ ?>
diff --git a/local/templates/.default/css/custom.css b/local/templates/.default/css/custom.css index 8805774..06790d1 100644 --- a/local/templates/.default/css/custom.css +++ b/local/templates/.default/css/custom.css @@ -1,3 +1,9 @@ +/* Start | Maks fix catalog */ +.catalog-page__filter-wrap{ + height: 100vh; +} +/* End| Maks fix catalog */ + .footer-items { display: flex; flex-direction: column; diff --git a/local/templates/.default/js/custom.js b/local/templates/.default/js/custom.js index 09a0294..99a6906 100644 --- a/local/templates/.default/js/custom.js +++ b/local/templates/.default/js/custom.js @@ -381,4 +381,23 @@ document.addEventListener('DOMContentLoaded', function() { toggleSearchTopAndHistory('mobile-search-input', 'mobile-search-top', 'mobile-search-histories'); setupResultClickToHistory('header-search-input', 'header-search-histories'); setupResultClickToHistory('mobile-search-input', 'mobile-search-histories'); -}); \ No newline at end of file +}); + + + + +// From main.js +// const filter = document.querySelector(".catalog-page__filter"); +// if (filter) { +// const openFilterBtn = document.querySelector(".js-show-filter"); +// const hideFilterBtn = document.querySelector(".js-close-filter"); +// const html = document.querySelector("html"); +// if (openFilterBtn) openFilterBtn.addEventListener("click", ()=>{ +// filter.classList.add("is-active"); +// html.style.overflow = "hidden"; +// }); +// if (hideFilterBtn) hideFilterBtn.addEventListener("click", ()=>{ +// filter.classList.remove("is-active"); +// html.removeAttribute("style"); +// }); +// } \ No newline at end of file diff --git a/local/templates/.default/js/main.js b/local/templates/.default/js/main.js index 72e16d0..1c6c58f 100644 --- a/local/templates/.default/js/main.js +++ b/local/templates/.default/js/main.js @@ -167,35 +167,38 @@ parcelRegister("6aHKA", function(module, exports) { // 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 { - alert(data.message || "Ошибка при оформлении заказа"); - } - }) - .catch(() => { - alert("Не удалось связаться с сервером"); - }) - .finally(() => { - submitBtn.disabled = false; - submitBtn.classList.remove("is-loading"); - }); - }); + e.preventDefault(); + + const form = this; + const submitBtn = form.querySelector("button[type=submit]"); + submitBtn.disabled = true; + submitBtn.classList.add("is-loading"); + + fetch(form.action, { + method: "POST", + body: new FormData(form) + }) + .then(res => { + if (!res.ok) throw new Error(`HTTP ${res.status}`); + return res.json(); + }) + .then(data => { + if (data.success) { + showCartToast("Заявка успешно отправлена", 3000, 'success'); + form.reset(); // <<< правильное имя + } else { + showCartToast("Ошибка при отправке заявки", 3000, 'error'); + } + }) + .catch(err => { + console.error(err); + showCartToast("Произошла ошибка при отправке", 3000, 'error'); + }) + .finally(() => { + submitBtn.disabled = false; // <<< то же самое + submitBtn.classList.remove("is-loading"); + }); +}); } }); @@ -8250,6 +8253,8 @@ $d4ee7d94a63ba5b5$var$groups.forEach((group)=>{ group.classList.remove("is-opened"); }); }); + +// Открытие фильтра const $d4ee7d94a63ba5b5$var$filter = document.querySelector(".catalog-page__filter"); if ($d4ee7d94a63ba5b5$var$filter) { const openFilterBtn = document.querySelector(".js-show-filter");