diff --git a/api/index.php b/api/index.php index 654937d..08327f4 100644 --- a/api/index.php +++ b/api/index.php @@ -406,6 +406,13 @@ switch($PARAM_1) { switch($PARAM_2) { + case "test": + { + if($auth['username'] !== 'crm') { header('HTTP/1.0 401 Unauthorized'); print json_encode(["status" => "error", "error" => "unauthorized", "message" => "Unauthorized"]); die(); } + die("OK"); + } + break; + case "registration": { if($auth['username'] !== 'crm') { header('HTTP/1.0 401 Unauthorized'); print json_encode(["status" => "error", "error" => "unauthorized", "message" => "Unauthorized"]); die(); } @@ -465,6 +472,9 @@ switch($PARAM_1) if($user_registered_id !== null) { //user exists + /* + пользователь с указанным $REQ['email'] сущестуют + */ if($company_registered_id === null) { @@ -490,55 +500,6 @@ switch($PARAM_1) ]); } - $user_properties = [ - 'COMPANY' => $REQ['org_title'], - 'INN' => (string)$REQ['inn'], - 'KPP' => (string)$REQ['kpp'], - 'OGRN' => (string)$REQ['ogrn'], - 'ADMINS' => [ $ID ], - 'USERS' => [ $ID ], - ]; - - $ar_new_client = [ - 'IBLOCK_ID' => IBLOCK_ID_CLIENTS, - 'NAME' => $REQ['org_title'], - 'CODE' => $REQ['crm_id'], - 'PROPERTY_VALUES' => $user_properties, - 'ACTIVE' => 'Y', // активен - ]; - - $new_client = new CIBlockElement; - if($new_client_id = $new_client->Add($ar_new_client)) - { - } - else - { - $existed_client_res = CIBlockElement::GetList([ 'id' => 'desc' ], [ 'IBLOCK_ID' => IBLOCK_ID_CLIENTS, 'CODE' => $REQ['crm_id'] ], false, []); - while ($existed_client_element = $existed_client_res->GetNextElement()) - { - $existed_client_record = $existed_client_element->GetFields(); - $existed_client_record['PROPERTIES'] = $existed_client_element->GetProperties(); - - $admins = $existed_client_record['PROPERTIES']['ADMINS']['VALUE']; - $users = $existed_client_record['PROPERTIES']['USERS']['VALUE']; - - array_push($admins, $ID); - array_push($users, $ID); - - $admins = array_unique($admins); - $users = array_unique($users); - - $updated_fields = [ - 'PROPERTY_VALUES' => [ - 'ADMINS' => $admins, - 'USERS' => $users, - ] - ]; - - CIBlockElement::SetPropertyValuesEx($existed_client_record['ID'], IBLOCK_ID_CLIENTS, [ 'ADMINS' => $admins, 'USERS' => $users, ]); - } - } - print json_encode([ "status" => "success" ]); @@ -664,14 +625,23 @@ switch($PARAM_1) if($user_registered !== null) { // user exists + /* + пользователь с указанным $REQ['email'] сущестуют + */ if($company_registered_id !== null) { //existed company + /* + компания с указанным $REQ['crm_id'] сущестуют + */ $profile["PASSWORD"] = $REQ['password']; $profile["CONFIRM_PASSWORD"] = $REQ['password']; + /* + устанавливаем указанному юзеру параметры из сфрормрованного пакета (из данных из CRM) + */ $user = new \CUser; $user->Update($user_registered, $profile); @@ -689,6 +659,8 @@ switch($PARAM_1) ]); } + setCompanyForUser($user_registered, $REQ, true); + print json_encode([ "status" => "success" ]); @@ -711,6 +683,9 @@ switch($PARAM_1) else { // new user + /* + новый пользователь + */ if($company_registered_id !== null) { diff --git a/local/components/evolution/calculator/templates/.default/template.php b/local/components/evolution/calculator/templates/.default/template.php index 4f9e7b6..f93836a 100644 --- a/local/components/evolution/calculator/templates/.default/template.php +++ b/local/components/evolution/calculator/templates/.default/template.php @@ -19,12 +19,12 @@ $this->setFrameMode(true); });
- - - - + + + +
-

Калькулятор расчета лизинга

+

diff --git a/local/components/evolution/preapproval/templates/.default/script.js b/local/components/evolution/preapproval/templates/.default/script.js index 848ea40..39f78dc 100644 --- a/local/components/evolution/preapproval/templates/.default/script.js +++ b/local/components/evolution/preapproval/templates/.default/script.js @@ -113,6 +113,9 @@ function preapproval_form_check_errors() (function InitApprove() { + const wrap = $("#preapproval_block"); + const form = $(wrap).find("form"); + if(window.innerWidth > 540) { $("#preapproval_block").find(".block_toggle") @@ -127,13 +130,18 @@ function preapproval_form_check_errors() setTimeout(function() { + $("#preapproval_block").css("width", "100px"); $("#preapproval_block_span_wrapper").css("margin-left", "-500px"); $(".span_animate_out").removeClass("span_animate_out").addClass("span_hidden"); }, 2000); } - - const wrap = $("#preapproval_block"); - const form = $(wrap).find("form"); + else + { + setTimeout(function() + { + $("#preapproval_block").css("width", "100px"); + }, 2000); + } const checkFields = () => { @@ -150,6 +158,21 @@ function preapproval_form_check_errors() return inputsFilled; } + $(wrap).on("click", ".block_open", function(e) + { + $("#preapproval_block").css("width", "initial"); + $(wrap).find(".block_open").css("width", "initial"); + }); + + $(wrap).on("click", ".block_close", function(e) + { + setTimeout(function() + { + $("#preapproval_block").css("width", "100px"); + $(wrap).find(".block_open").css("width", "100px"); + }, 2000); + }); + $(wrap).on("click", ".block_toggle", function(e) { $(".preapproval_exists").css("display", "none"); @@ -464,4 +487,34 @@ $(document).ready(function() } }, }); + + waitForElement('#chat21-launcher-button').then(() => + { + $("#chat21-launcher-button").css("z-index", 999); + }); }); + +function waitForElement(selector) +{ + return new Promise(resolve => + { + if (document.querySelector(selector)) + { + return resolve(document.querySelector(selector)); + } + + const observer = new MutationObserver(mutations => + { + if (document.querySelector(selector)) + { + observer.disconnect(); + resolve(document.querySelector(selector)); + } + }); + + observer.observe(document.body, { + childList: true, + subtree: true + }); + }); +} \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.brands.list/component.php b/local/components/evolution/programs.aggregations.brands.list/component.php new file mode 100644 index 0000000..d401c0a --- /dev/null +++ b/local/components/evolution/programs.aggregations.brands.list/component.php @@ -0,0 +1,78 @@ +StartResultCache(60*60*24, md5(var_export($_POST, true)))) +{ + if(CModule::IncludeModule('iblock')) + { + $arResult = [ + 'SECTIONS' => [], + ]; + + $sort = [ "SORT" => "ASC" ]; + $filter = [ "ACTIVE" => "Y", "IBLOCK_ID" => $arParams['IBLOCK_ID'] ]; + $options = false; + + $brands_ids = []; + + if(isset($arParams['TYPE'])) + { + $res_filter = CIBlockElement::GetList( + [ "SORT" => "ASC" ], + [ "ACTIVE" => "Y", "IBLOCK_ID" => IBLOCK_ID_PROGRAMS_AGGREGATION_RULES_SPECIAL, "PROPERTY_VEHICLE_TYPE" => $arParams['TYPE'], "!PROPERTY_VEHICLE_BRAND" => false, ], + false, false, ['ID', 'NAME', 'PROPERTY_VEHICLE_BRAND'] + ); + while ($element_filter = $res_filter->GetNextElement()) + { + $ar_res_filter = $element_filter->GetFields(); + array_push($brands_ids, $ar_res_filter['PROPERTY_VEHICLE_BRAND_VALUE']); + } + } + + if(count($brands_ids) > 0) + { + $filter['ID'] = $brands_ids; + } + +/* $sec_res = CIBlockSection::GetList($sort, $filter, false, [], false); + while ($section = $sec_res->GetNext()) + { + if(!empty($section['PICTURE'])) + { + } + + $section['ITEMS'] = []; + $filter = array_merge($filter, [ "SECTION_ID" => $section['ID'] ]); + */ + + $res = CIBlockElement::GetList($sort, $filter, false, $options); + while ($element = $res->GetNextElement()) + { + $ar_res = $element->GetFields(); + $ar_res['PREVIEW_PICTURE'] = CFile::GetPath($ar_res['PREVIEW_PICTURE']); + $arResult['ITEMS'][] = $ar_res; + } + + //if(count($section['ITEMS']) > 0) + //{ +// $arResult['SECTIONS'][] = $section; + //} +// } + + $this->IncludeComponentTemplate(); + } +} \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.brands.list/lang/ru/.description.php b/local/components/evolution/programs.aggregations.brands.list/lang/ru/.description.php new file mode 100644 index 0000000..be2db3e --- /dev/null +++ b/local/components/evolution/programs.aggregations.brands.list/lang/ru/.description.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.brands.list/templates/.default/template.php b/local/components/evolution/programs.aggregations.brands.list/templates/.default/template.php new file mode 100644 index 0000000..3aee193 --- /dev/null +++ b/local/components/evolution/programs.aggregations.brands.list/templates/.default/template.php @@ -0,0 +1,37 @@ +setFrameMode(true); +?> + 0): ?> + +
+

+ +
+ + \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.offers.list/component.php b/local/components/evolution/programs.aggregations.offers.list/component.php new file mode 100644 index 0000000..8f5f75e --- /dev/null +++ b/local/components/evolution/programs.aggregations.offers.list/component.php @@ -0,0 +1,46 @@ +StartResultCache(60*60*24, md5(var_export($_POST, true)))) +{ + if(CModule::IncludeModule('iblock')) + { + $arResult = [ + 'OFFERS' => [], + ]; + + $sort = [ "SORT" => "ASC" ]; + $filter = [ "ACTIVE" => "Y", "IBLOCK_ID" => IBLOCK_ID_SPECIALS, "ID" => $arParams['IDS'] ]; + $options = false; + + $res = CIBlockElement::GetList($sort, $filter, false, $options); + while ($element = $res->GetNextElement()) + { + $ar_res = $element->GetFields(); + $ar_res['PROPERTIES'] = $element->GetProperties(); + + if(isset($ar_res['PREVIEW_PICTURE'])) + { + $ar_res['PREVIEW_PICTURE'] = CFile::GetPath($ar_res['PREVIEW_PICTURE']); + } + + $arResult['OFFERS'][] = $ar_res; + } + + $this->IncludeComponentTemplate(); + } +} \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.offers.list/lang/ru/.description.php b/local/components/evolution/programs.aggregations.offers.list/lang/ru/.description.php new file mode 100644 index 0000000..ef724d2 --- /dev/null +++ b/local/components/evolution/programs.aggregations.offers.list/lang/ru/.description.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.offers.list/templates/.default/template.php b/local/components/evolution/programs.aggregations.offers.list/templates/.default/template.php new file mode 100644 index 0000000..72c4c1d --- /dev/null +++ b/local/components/evolution/programs.aggregations.offers.list/templates/.default/template.php @@ -0,0 +1,33 @@ +setFrameMode(true); +?> +Спецпредложения и акции на тракторы в лизинг*/?> + 0): ?> + +
+

Популярная специальная техника в лизинг

+
+ + + +
+
+ + \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.types/component.php b/local/components/evolution/programs.aggregations.types/component.php new file mode 100644 index 0000000..21215b0 --- /dev/null +++ b/local/components/evolution/programs.aggregations.types/component.php @@ -0,0 +1,86 @@ +StartResultCache(60*60*24, md5(var_export($_POST, true)))) +{ + if(CModule::IncludeModule('iblock')) + { + $arResult = [ + 'SECTIONS' => [], + ]; + + $sort = [ "SORT" => "ASC" ]; + $filter = [ "ACTIVE" => "Y", "IBLOCK_ID" => $arParams['IBLOCK_ID'] ]; + $options = false; + + $types_ids = []; + + if(isset($arParams['BRAND'])) + { + $res_filter = CIBlockElement::GetList( + [ "SORT" => "ASC" ], + [ "ACTIVE" => "Y", "IBLOCK_ID" => $arParams['IBLOCK_ID_RULES'], "PROPERTY_VEHICLE_BRAND" => $arParams['BRAND'], "!PROPERTY_VEHICLE_TYPE" => false, ], + false, false, ['ID', 'NAME', 'PROPERTY_VEHICLE_TYPE'] + ); + while ($element_filter = $res_filter->GetNextElement()) + { + $ar_res_filter = $element_filter->GetFields(); + array_push($types_ids, $ar_res_filter['PROPERTY_VEHICLE_TYPE_VALUE']); + } + + //print_r($types_ids); + //die(); + } + + $sec_res = CIBlockSection::GetList($sort, $filter, false, [], false); + while ($section = $sec_res->GetNext()) + { + if(!empty($section['PICTURE'])) + { + $section['PICTURE'] = CFile::GetPath($section['PICTURE']); + } + + $section['ITEMS'] = []; + $filter = array_merge($filter, [ "SECTION_ID" => $section['ID'] ]); + + $res = CIBlockElement::GetList($sort, $filter, false, $options); + while ($element = $res->GetNextElement()) + { + $ar_res = $element->GetFields(); + + if(isset($arParams['BRAND'])) + { + if(in_array($ar_res['ID'], $types_ids)) + { + $section['ITEMS'][] = $ar_res; + } + } + else + { + $section['ITEMS'][] = $ar_res; + } + } + + if(count($section['ITEMS']) > 0) + { + $arResult['SECTIONS'][] = $section; + } + } + + $this->IncludeComponentTemplate(); + } +} \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.types/lang/ru/.description.php b/local/components/evolution/programs.aggregations.types/lang/ru/.description.php new file mode 100644 index 0000000..06571a3 --- /dev/null +++ b/local/components/evolution/programs.aggregations.types/lang/ru/.description.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations.types/templates/.default/template.php b/local/components/evolution/programs.aggregations.types/templates/.default/template.php new file mode 100644 index 0000000..c12067c --- /dev/null +++ b/local/components/evolution/programs.aggregations.types/templates/.default/template.php @@ -0,0 +1,36 @@ +setFrameMode(true); +?> + 0): ?> + +
+

+
+ +
+

+
    + +
  • + "> +
  • + +
+ <?= $section['NAME']; ?> +
+ +
+
+ + \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations/component.php b/local/components/evolution/programs.aggregations/component.php new file mode 100644 index 0000000..d21cff8 --- /dev/null +++ b/local/components/evolution/programs.aggregations/component.php @@ -0,0 +1,193 @@ +StartResultCache(60*60*24, md5(var_export($_POST, true)))) +{ + if(CModule::IncludeModule('iblock')) + { + $sort = [ "SORT" => "ASC" ]; + $filter = [ "ACTIVE" => "Y", "IBLOCK_ID" => $arParams['IBLOCK_ID_RULES'], ]; + $options = false; + + $brand = null; + $brand_name = null; + $brand_slug = null; + + $type = null; + $type_name = null; + $type_plural = null; + $type_genitive = null; + $type_slug = null; + + if(isset($_REQUEST['TYPE']) && isset($_REQUEST['BRAND'])) + { + $res_type = CIBlockElement::GetList( + [ "SORT" => "ASC" ], + [ "ACTIVE" => "Y", "IBLOCK_ID" => $arParams['IBLOCK_ID_PROGRAMS_AGGREGATION'], "CODE" => $_REQUEST['TYPE'], ], + false, false + ); + + while ($element_type = $res_type->GetNextElement()) + { + $ar_res_type = $element_type->GetFields(); + $ar_res_type['PROPERTIES'] = $element_type->GetProperties(); + + $type = $ar_res_type['ID']; + $type_name = $ar_res_type['NAME']; + $type_plural = $ar_res_type['PROPERTIES']['PLURAL_NAME']['VALUE']; + $type_genitive = $ar_res_type['PROPERTIES']['GENITIVE_NAME']['VALUE']; + $type_slug = $ar_res_type['CODE']; + $type_gender = $ar_res_type['PROPERTIES']['NAME_GENDER']['VALUE_XML_ID']; + } + + $res_brand = CIBlockElement::GetList( + [ "SORT" => "ASC" ], + [ "ACTIVE" => "Y", "IBLOCK_ID" => $arParams['IBLOCK_ID_PROGRAMS_AGGREGATION_BRANDS'], "CODE" => $_REQUEST['BRAND'], ], + false, false + ); + + while ($element_brand = $res_brand->GetNextElement()) + { + $ar_res_brand = $element_brand->GetFields(); + $brand = $ar_res_brand['ID']; + $brand_name = $ar_res_brand['NAME']; + $brand_slug = $ar_res_brand['CODE']; + } + } + elseif(isset($_REQUEST['CHUNK'])) + { + $res_type = CIBlockElement::GetList( + [ "SORT" => "ASC" ], + [ "ACTIVE" => "Y", "IBLOCK_ID" => $arParams['IBLOCK_ID_PROGRAMS_AGGREGATION'], "CODE" => $_REQUEST['CHUNK'], ], + false, false + ); + + while ($element_type = $res_type->GetNextElement()) + { + $ar_res_type = $element_type->GetFields(); + $ar_res_type['PROPERTIES'] = $element_type->GetProperties(); + + $type = $ar_res_type['ID']; + $type_name = $ar_res_type['NAME']; + $type_plural = $ar_res_type['PROPERTIES']['PLURAL_NAME']['VALUE']; + $type_genitive = $ar_res_type['PROPERTIES']['GENITIVE_NAME']['VALUE']; + $type_slug = $ar_res_type['CODE']; + $type_gender = $ar_res_type['PROPERTIES']['NAME_GENDER']['VALUE_XML_ID']; + } + + $res_brand = CIBlockElement::GetList( + [ "SORT" => "ASC" ], + [ "ACTIVE" => "Y", "IBLOCK_ID" => $arParams['IBLOCK_ID_PROGRAMS_AGGREGATION_BRANDS'], "CODE" => $_REQUEST['CHUNK'], ], + false, false + ); + + while ($element_brand = $res_brand->GetNextElement()) + { + $ar_res_brand = $element_brand->GetFields(); + $brand = $ar_res_brand['ID']; + $brand_name = $ar_res_brand['NAME']; + $brand_slug = $ar_res_brand['CODE']; + } + } + + if($type !== null) + { + $filter['PROPERTY_VEHICLE_TYPE'] = $type; + } + else + { + $filter['PROPERTY_VEHICLE_TYPE'] = false; + } + + if($brand !== null) + { + $filter['PROPERTY_VEHICLE_BRAND'] = $brand; + } + else + { + $filter['PROPERTY_VEHICLE_BRAND'] = false; + } + + $res = CIBlockElement::GetList($sort, $filter, false, $options); + //print_r($filter); + while ($element = $res->GetNextElement()) + { + $ar_res = $element->GetFields(); + $ar_res['PROPERTIES'] = $element->GetProperties(); + + $arResult = $ar_res; + $arResult['BANNER'] = CFile::GetPath($ar_res['PREVIEW_PICTURE']); + $arResult['DETAIL_PICTURE'] = CFile::GetPath($ar_res['DETAIL_PICTURE']); + + $arResult['BRAND'] = $brand; + $arResult['BRAND_NAME'] = $brand_name; + $arResult['BRAND_SLUG'] = $brand_slug; + + $arResult['TYPE'] = $type; + $arResult['TYPE_PLURAL'] = $type_plural; + $arResult['TYPE_GENITIVE'] = $type_genitive; + } + + $APPLICATION->AddChainItem($arParams['TITLE'], "/programs/special/"); + $APPLICATION->SetPageProperty("title", "Лизинг ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." для юридических лиц и ИП в Москве - купить новую ".mb_strtolower($arParams['SHORT_TITLE_ACCUSATIVE'])." в лизинг | Эволюция"); + $APPLICATION->SetPageProperty("keywords", "Новая ".mb_strtolower($arParams['SHORT_TITLE'])." в лизинг для юридических лиц и ИП в Москве и в других регионах России. Вы можете купить ".mb_strtolower($arParams['SHORT_TITLE_ACCUSATIVE'])." в лизинг от официальных дилеров на выгодных условиях со скидкой. Телефон горячей линии 8 (800) 333-75-75 - звонок по России бесплатный."); + $APPLICATION->SetPageProperty("description", "".$arParams['SHORT_TITLE']." в лизинг, лизинг ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." для юридических лиц, лизинг ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." для ип"); + + if(empty($arResult['NAME'])) { define('ERROR_404', 'Y'); } + else + { + if($type !== null) + { + $APPLICATION->SetPageProperty("title", "".$type_plural." в лизинг для юридических лиц и ИП в Москве - купить ".($type_gender === "M" ? "новый" : ($type_gender === "F" ? "новую" : "новые" ))." ".$type_name." в лизинг | Эволюция"); + $APPLICATION->SetPageProperty("keywords", "Новые ".mb_strtolower($type_plural)." в лизинг для юридических лиц и ИП в Москве и в других регионах России. Вы можете купить ".$type_name." в лизинг от официальных дилеров на выгодных условиях со скидкой. Телефон горячей линии 8 (800) 333-75-75 - звонок по России бесплатный."); + $APPLICATION->SetPageProperty("description", "".$type_plural." в лизинг, купить ".$type_name." в лизинг, ".$type_name." в лизинг для юридических лиц, ".$type_name." в лизинг для ип"); + + $APPLICATION->AddChainItem($type_name, "/programs/special/".$type_slug."/"); + if($brand !== null) + { + $APPLICATION->AddChainItem($brand_name, "/programs/special/".$type_slug."/".$brand_slug."/"); + + $APPLICATION->SetPageProperty("title", "".$type_plural." ".$brand_name." в лизинг для юридических лиц и ИП в Москве - купить ".($type_gender === "M" ? "новый" : ($type_gender === "F" ? "новую" : "новые" ))." ".$type_name." ".$brand_name." в лизинг | Эволюция"); + $APPLICATION->SetPageProperty("keywords", "Новые ".mb_strtolower($type_plural)." ".$brand_name." в лизинг для юридических лиц и ИП в Москве и в других регионах России. Вы можете купить ".$type_name." ".$brand_name." в лизинг от официальных дилеров на выгодных условиях со скидкой. Телефон горячей линии 8 (800) 333-75-75 - звонок по России бесплатный."); + $APPLICATION->SetPageProperty("description", "".$type_plural." ".$brand_name." в лизинг, купить ".$type_name." ".$brand_name." в лизинг, ".$type_name." ".$brand_name." в лизинг для юридических лиц, ".$type_name." ".$brand_name." в лизинг для ип"); + } + } + else + { + if($brand !== null) + { + $APPLICATION->AddChainItem($brand_name, "/programs/special/".$brand_slug."/"); + + $APPLICATION->SetPageProperty("title", "".$arParams['SHORT_TITLE']." ".$brand_name." в лизинг для юридических лиц и ИП в Москве - купить новую ".mb_strtolower($arParams['SHORT_TITLE_ACCUSATIVE'])." ".$brand_name." в лизинг | Эволюция"); + $APPLICATION->SetPageProperty("keywords", "Новая ".mb_strtolower($arParams['SHORT_TITLE'])." ".$brand_name." в лизинг для юридических лиц и ИП в Москве и в других регионах России. Вы можете купить ".mb_strtolower($arParams['SHORT_TITLE_ACCUSATIVE'])." ".$brand_name." в лизинг от официальных дилеров на выгодных условиях со скидкой. Телефон горячей линии 8 (800) 333-75-75 - звонок по России бесплатный."); + $APPLICATION->SetPageProperty("description", "".$brand_name." в лизинг, купить ".$brand_name." в лизинг, ".$brand_name." в лизинг для юридических лиц, ".$brand_name." в лизинг для ип, ".mb_strtolower($arParams['SHORT_TITLE'])." ".$brand_name." в лизинг"); + } + } + + $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arResult['IBLOCK_ID'], $arResult["ID"]); + $meta = $ipropValues->getValues(); + +// $APPLICATION->SetPageProperty("title", $meta['ELEMENT_META_TITLE']); +// $APPLICATION->SetPageProperty("keywords", $meta['ELEMENT_META_KEYWORDS']); +// $APPLICATION->SetPageProperty("description", $meta['ELEMENT_META_DESCRIPTION']); + +// $APPLICATION->AddHeadString(''); + } + + $this->IncludeComponentTemplate(); + } +} \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations/lang/ru/.description.php b/local/components/evolution/programs.aggregations/lang/ru/.description.php new file mode 100644 index 0000000..3269472 --- /dev/null +++ b/local/components/evolution/programs.aggregations/lang/ru/.description.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/local/components/evolution/programs.aggregations/templates/.default/template.php b/local/components/evolution/programs.aggregations/templates/.default/template.php new file mode 100644 index 0000000..01da63e --- /dev/null +++ b/local/components/evolution/programs.aggregations/templates/.default/template.php @@ -0,0 +1,221 @@ +setFrameMode(true); +?> +".$arResult['NAME']." в лизинг для юридических лиц и ИП"; + $rules_title = "Условия лизинга ".mb_strtolower($arResult['TYPE_GENITIVE'])." ".$arResult['BRAND_NAME']; + } + else + { + $title = $arParams['SHORT_TITLE']." ".$arResult['NAME']." в лизинг для юридических лиц и ИП"; + $rules_title = "Условия лизинга ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." ".mb_strtolower($arResult['TYPE_GENITIVE']); + } + } + elseif($arResult['TYPE'] !== null) + { + $title = "".$arResult['NAME']." в лизинг для юридических лиц и ИП"; + $rules_title = "Условия лизинга ".mb_strtolower($arResult['TYPE_GENITIVE']); + } + else + { + $title = "".$arResult['NAME']." ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." для юридических лиц и ИП"; + $rules_title = "Условия лизинга ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE']); + } +?> +
+
+
+
+

+
+ <?= strip_tags($title); ?> +
+
+
+ + 0): ?> +
+
+
+ +
+ +
+ +
+
+
+ + +
+
+
+ 0): ?> + +
+ +
+ + + +
+
+
+ + + +
+
+

Преимущества

+
+
+ +
+
+ <?= $arResult['NAME']; ?> +
+
+
+
+ + + +
+IncludeComponent( + "evolution:programs.aggregations.offers.list", + "", + [ + "IDS" => $arResult['PROPERTIES']['OFFERS']['VALUE'], + ] + ); +?> + + + IncludeComponent( + "evolution:programs.aggregations.types", + "", + [ + "IBLOCK_ID" => $arParams['IBLOCK_ID_PROGRAMS_AGGREGATION'], + "TITLE" => "Виды ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." ".$arResult['BRAND_NAME']." в лизинг", + "IBLOCK_ID_RULES" => $arParams['IBLOCK_ID_RULES'], + "BRAND" => $arResult['BRAND'], + "BRAND_SLUG" => $arResult['BRAND_SLUG'], + "PATH" => "/programs/".$arParams['PATH']."/", + ] + ); + ?> + + + 0): ?> + +
+

+
+ + + +
+
+ + + +IncludeComponent( + "evolution:programs.aggregations.types", + "", + [ + "IBLOCK_ID" => $arParams['IBLOCK_ID_PROGRAMS_AGGREGATION'], + "TITLE" => "Виды ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." в лизинг", + "PATH" => "/programs/".$arParams['PATH']."/", + ] + ); +?> + +IncludeComponent( + "evolution:programs.aggregations.brands.list", + "", + [ + "IBLOCK_ID" => $arParams['IBLOCK_ID_PROGRAMS_AGGREGATION_BRANDS'], + "TITLE" => isset($arResult['TYPE']) + ? (isset($arResult['BRAND']) ? "Рекомендуем производителей ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." в лизинг" : "Выберите производителя для просмотра каталога ".mb_strtolower($arResult['TYPE_GENITIVE'])) + : "Бренды ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." в лизинг", + "TYPE" => isset($arResult['BRAND']) ? null : $arResult['TYPE'], + "PATH" => "/programs/".$arParams['PATH']."/", + ] + ); +?> + +IncludeComponent( + "evolution:calculator", + "", + Array( + "car_price" => 2500000, + "initial_payment" => 20, + "lease_period" => 36, + "redemption_payment" => 5, + "CAR_PRICE_MIN" => 500000, + "CAR_PRICE_MAX" => 30000000, + "INITIAL_PAYMENT_MIN" => 5, + "INITIAL_PAYMENT_MAX" => 50, + "LEASE_PERIOD_MIN" => 13, + "LEASE_PERIOD_MAX" => 60, + "REDEMPTION_PAYMENT_MIN" => 1, + "REDEMPTION_PAYMENT_MAX" => 5, + "TITLE" => + isset($arResult['TYPE']) && isset($arResult['BRAND']) + ? "Калькулятор лизинга ".mb_strtolower($arResult['TYPE_GENITIVE'])." ".$arResult['BRAND_NAME'] + : (isset($arResult['BRAND']) + ? "Калькулятор лизинга ".mb_strtolower($arParams['SHORT_TITLE_GENITIVE'])." ".$arResult['BRAND_NAME'] + : "Калькулятор расчета лизинга" + ), + ) +); ?> + + + +
+

Преимущества работы с компанией “Эволюция”

+
+
+

Таким образом, внедрение современных методик требует определения и уточнения новых предложений! В рамках спецификации современных стандартов, действия представителей оппозиции, инициированные исключительно синтетически, преданы социально-демократической анафеме.

+

Однозначно, ключевые особенности структуры проекта лишь добавляют фракционных разногласий и объективно рассмотрены соответствующими инстанциями. Не следует, однако, забывать, что разбавленное изрядной долей эмпатии, рациональное мышление выявляет срочную потребность дальнейших направлений развития.

+

Однозначно, акционеры крупнейших компаний, вне зависимости от их уровня, должны быть в равной степени предоставлены сами себе. Безусловно, понимание сути ресурсосберегающих технологий однозначно фиксирует необходимость стандартных подходов. Современные технологии достигли такого уровня, что начало повседневной работы по формированию позиции создаёт необходимость включения в производственный план целого ряда внеочередных мероприятий с учётом комплекса благоприятных перспектив.

+
+
+ +
+
+
+ + +
+IncludeComponent( + "evolution:form.leasing", + "", + [], + ); +?> diff --git a/local/templates/evolution/css/main/style.css b/local/templates/evolution/css/main/style.css index 0f8d80c..4989568 100644 --- a/local/templates/evolution/css/main/style.css +++ b/local/templates/evolution/css/main/style.css @@ -22,6 +22,9 @@ main { main section.gray { background: var(--inactive); } +main section.blue { + background: var(--blue); +} main .title_wrapper { display: flex; justify-content: space-between; @@ -1362,18 +1365,28 @@ main .special_list { display: flex; flex-wrap: wrap; justify-content: space-between; + gap: 80px 0; +} +@media all and (max-width: 1600px) and (min-width: 1280px) { + main .special_list { + gap: 40px 0; + } +} +@media all and (max-width: 1279px) { + main .special_list { + gap: 30px 0; + } } main .special_list .special_item { position: relative; width: calc(50% - 18px); min-width: calc(50% - 18px); - margin-bottom: 80px; + margin-bottom: 0px; min-height: 310px; } @media all and (max-width: 1600px) and (min-width: 1280px) { main .special_list .special_item { min-height: 270px; - margin-bottom: 40px; } } main .special_list .special_item a { @@ -1485,7 +1498,7 @@ main .special_list .special_item img { main .special_list .special_item { width: calc(50% - 15px); min-width: calc(50% - 15px); - margin-bottom: 30px; + margin-bottom: 0px; } main .special_list .special_item a { padding: 30px 0 0 0; @@ -3126,23 +3139,47 @@ article #choose_region { display: flex; justify-content: space-between; margin-top: 60px; + gap: 0 30px; } .leasing_offers_list .offer_item { - width: calc(33.333% - 20px); - padding-left: 80px; + width: 100%; position: relative; } +.leasing_offers_list .offer_item:not(.no_padding) { + padding-left: 80px; +} .leasing_offers_list .offer_item p { margin-bottom: 15px; } +.leasing_offers_list .offer_item p:last-child { + margin-bottom: 0; +} +.leasing_offers_list .offer_item .button { + width: 100%; + max-width: 350px; + margin-left: auto; +} +.leasing_offers_list .offer_item big { + color: var(--blue); +} .leasing_offers_list .offer_item img { - position: absolute; top: 0; left: 0; } .leasing_offers_list .offer_item ul li:not(:last-child) { margin-bottom: 6px; } +.leasing_offers_list .offer_item big { + font-weight: 700; + display: block; + font-size: 34px; + line-height: 1.3; +} +@media all and (max-width: 767px) { + .leasing_offers_list .offer_item big { + font-size: 28px; + } +} @media all and (max-width: 1600px) and (min-width: 1280px) { .leasing_offers_list { margin-top: 35px; @@ -3152,15 +3189,14 @@ article #choose_region { .leasing_offers_list { flex-wrap: wrap; margin-top: 50px; + gap: 20px 40px; } .leasing_offers_list .offer_item { - width: 50%; - padding-left: 52px; + width: calc(50% - 45px); margin-bottom: 0; } - .leasing_offers_list .offer_item:last-child { - width: auto; - margin-top: 30px; + .leasing_offers_list .offer_item:not(.no_padding) { + padding-left: 52px; } .leasing_offers_list .offer_item img { width: 32px; @@ -3178,6 +3214,19 @@ article #choose_region { margin-bottom: 0; } } +.leasing_offers_list--no_margin { + margin-top: 0 !important; +} +.leasing_offers_list--white { + margin-top: 0; +} +.leasing_offers_list--white .offer_item { + padding-left: 0; + color: #fff; +} +.leasing_offers_list--white .offer_item big { + color: #fff; +} .catalog_sort { display: flex; align-items: center; @@ -6267,3 +6316,248 @@ main .dropdown_blocks_list .dropdown_block .block_body .transaction_detail ul li .chat21-window.chat21-sheet { width: 376px !important; } +.content_columns { + display: flex; + align-items: flex-start; + gap: 0 30px; + margin: 10px 0 10px 0; +} +.content_columns .column { + width: 50%; +} +.content_columns .column p:not(:last-child) { + margin-bottom: 20px; +} +.content_columns .column img { + width: 100%; +} +@media all and (max-width: 767px) { + .content_columns { + flex-wrap: wrap; + gap: 15px 0; + } + .content_columns .column { + width: 100%; + } +} +.types_grid { + display: flex; + flex-wrap: wrap; + gap: 60px 30px; + margin: 30px 0; +} +.types_grid .grid_item { + width: calc(50% - 15px); + padding: 25px 20px; + background: var(--inactive); + position: relative; +} +.types_grid .grid_item .h2 { + max-width: 65%; +} +.types_grid .grid_item ul { + column-count: 2; + break-inside: avoid; + max-width: 65%; + margin-top: 12px; +} +.types_grid .grid_item ul li { + margin-bottom: 8px; + word-break: break-word; +} +.types_grid .grid_item ul li a { + color: #0C0C0C; +} +.types_grid .grid_item ul li a:hover { + color: var(--blue); +} +.types_grid .grid_item img { + pointer-events: none; + position: absolute; + right: 0; + bottom: 0; + top: 0; + height: 100%; +} +@media all and (max-width: 1279px) { + .types_grid .grid_item img { + height: 65%; + top: auto; + } +} +@media all and (max-width: 767px) { + .types_grid { + gap: 20px 0; + } + .types_grid .grid_item { + width: 100%; + } + .types_grid .grid_item .h2 { + max-width: 100%; + font-size: 18px; + line-height: 1.3; + } + .types_grid .grid_item img { + top: auto; + height: 55%; + } +} +.logos_list { + display: flex; + flex-wrap: wrap; + margin: 30px 0; + overflow: hidden; +} +.logos_list .list_item { + border: 1px solid var(--inactive); + margin: 0px 0px -1px -1px; + width: 20%; +} +@media all and (min-width: 768px) { + .logos_list .list_item:nth-child(5n) { + border-right: 0; + } + .logos_list .list_item:nth-child(-n+5) { + border-top: 0; + } +} +@media all and (max-width: 767px) { + .logos_list .list_item { + width: 50%; + } + .logos_list .list_item:nth-child(1), + .logos_list .list_item:nth-child(2) { + border-top: 0; + } + .logos_list .list_item:nth-child(2n) { + border-right: 0; + } +} +.logos_list .list_item a { + padding: 30px 20px; + display: block; +} +.logos_list .list_item a img { + display: block; + height: 60px; + max-width: 100%; + object-fit: contain; + object-position: center; + margin: auto; +} +.logos_list .list_item.other_item { + display: flex; + justify-content: center; + align-items: center; +} +.logos_list .list_item.other_item a { + color: var(--blue); + background: var(--inactive); + font-weight: 600; + width: 100%; + height: 100%; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; +} +.info_list { + display: flex; + gap: 0 30px; + margin-bottom: 0px; +} +.info_list .list_item { + width: 100%; + background: var(--green); + padding: 24px; +} +@media all and (max-width: 767px) { + .info_list .list_item { + padding: 15px; + } +} +.info_list .list_item svg, +.info_list .list_item img { + margin-bottom: 16px; + display: block; +} +@media all and (max-width: 960px) { + .info_list .list_item svg, + .info_list .list_item img { + margin-bottom: 8px; + max-width: 38px; + height: auto; + } +} +.info_list .list_item p, +.info_list .list_item ul { + color: #fff; + font-size: 15px; +} +.info_list .list_item p.h2, +.info_list .list_item ul.h2, +.info_list .list_item p.h3, +.info_list .list_item ul.h3 { + margin-top: 0; + margin-bottom: 8px; +} +@media all and (max-width: 960px) { + .info_list .list_item p, + .info_list .list_item ul { + font-size: 13px; + } +} +.info_list .list_item ul li:before { + background: #fff; +} +@media all and (max-width: 767px) { + .info_list { + flex-wrap: wrap; + gap: 20px 0; + } +} +.content_header { + display: flex; + align-items: center; + gap: 0 50px; + position: relative; +} +.content_header:after { + content: ""; + display: block; + position: absolute; + z-index: -1; + pointer-events: none; + left: calc(50% - 200px); + top: 80px; + bottom: 80px; + right: -100%; + background: var(--inactive); +} +@media all and (max-width: 1200px) { + .content_header:after { + top: 15%; + bottom: 15%; + } +} +.content_header div, +.content_header img { + width: 50%; +} +@media all and (max-width: 767px) { + .content_header { + flex-wrap: wrap; + } + .content_header:after { + width: 182px; + left: auto; + right: 0; + top: 0; + bottom: 50px; + z-index: -1; + } + .content_header div, + .content_header img { + width: 100%; + } +} diff --git a/local/templates/evolution/css/main/style.less b/local/templates/evolution/css/main/style.less index ed7cd7e..667b303 100644 --- a/local/templates/evolution/css/main/style.less +++ b/local/templates/evolution/css/main/style.less @@ -25,6 +25,10 @@ main { &.gray { background: var(--inactive); } + + &.blue { + background: var(--blue); + } } .title_wrapper { @@ -1238,17 +1242,26 @@ main { display: flex; flex-wrap: wrap; justify-content: space-between; + gap: 80px 0; + + @media all and (max-width: 1600px) and (min-width: 1280px) { + gap: 40px 0; + } + + @media all and (max-width: 1279px) { + gap: 30px 0; + } + .special_item { position: relative; width: calc(50% - 18px); min-width: calc(50% - 18px); - margin-bottom: 80px; + margin-bottom: 0px; min-height: 310px; @media all and (max-width: 1600px) and (min-width: 1280px) { min-height: 270px; - margin-bottom: 40px; } a { @@ -1378,7 +1391,7 @@ main { @media all and (max-width: 1279px) { width: calc(50% - 15px); min-width: calc(50% - 15px); - margin-bottom: 30px; + margin-bottom: 0px; a { padding: 30px 0 0 0; @@ -3355,18 +3368,37 @@ article #choose_region { display: flex; justify-content: space-between; margin-top: 60px; + gap: 0 30px; .offer_item { - width: calc(33.333% - 20px); - padding-left: 80px; + //width: calc(33.333% - 20px); + width: 100%; position: relative; + &:not(.no_padding) { + padding-left: 80px; + } + p { margin-bottom: 15px; + + &:last-child { + margin-bottom: 0; + } + } + + .button { + width: 100%; + max-width: 350px; + margin-left: auto; + } + + big { + color: var(--blue); } img { - position: absolute; + //position: absolute; top: 0; left: 0; } @@ -3378,6 +3410,17 @@ article #choose_region { } } } + + big { + font-weight: 700; + display: block; + font-size: 34px; + line-height: 1.3; + + @media all and (max-width: 767px) { + font-size: 28px; + } + } } @media all and (max-width: 1600px) and (min-width: 1280px) { @@ -3387,15 +3430,15 @@ article #choose_region { @media all and (max-width: 1279px) { flex-wrap: wrap; margin-top: 50px; + gap: 20px 40px; .offer_item { - width: 50%; - padding-left: 52px; + width: calc(50% - 45px); + margin-bottom: 0; - &:last-child { - width: auto; - margin-top: 30px; + &:not(.no_padding) { + padding-left: 52px; } img { @@ -3417,6 +3460,23 @@ article #choose_region { } } } + + &--no_margin { + margin-top: 0 !important; + } + + &--white { + margin-top: 0; + + .offer_item { + padding-left: 0; + color: #fff; + + big { + color: #fff; + } + } + } } // Сортировка @@ -6740,17 +6800,17 @@ main .dropdown_blocks_list .dropdown_block .block_body { } #chat21-launcher-button circle { - fill: #1c01a9 !important; + fill: #1c01a9 !important; } #chat21-launcher-button { - bottom: -5px !important; + bottom: -5px !important; } @media screen and (max-width: 1279px) { - #chat21-launcher-button { - bottom: 69px !important; - } + #chat21-launcher-button { + bottom: 69px !important; + } } // Виджет AutoFaq @@ -6768,7 +6828,7 @@ main .dropdown_blocks_list .dropdown_block .block_body { font-family: 'Montserrat', sans-serif !important; } -.chat21-sheet-header{ +.chat21-sheet-header { box-shadow: none !important; webkit-box-shadow: none !important; } @@ -6778,7 +6838,7 @@ main .dropdown_blocks_list .dropdown_block .block_body { } #chat21-launcher-button image { - display:none !important; + display: none !important; } .chat-21-channels-list-item { @@ -6789,19 +6849,297 @@ main .dropdown_blocks_list .dropdown_block .block_body { // Ниже этой линии фикс ширины для публичной части #chat21-launcher-button circle { fill: #1c01a9 !important; - } -#chat21-launcher-button - { - bottom: -5px !important; - margin-right: -10px !important; - } -@media screen and (max-width: 1279px) { +} + #chat21-launcher-button { - bottom: 69px !important; - margin-right: -10px !important; + bottom: -5px !important; + margin-right: -10px !important; +} + +@media screen and (max-width: 1279px) { + #chat21-launcher-button { + bottom: 69px !important; + margin-right: -10px !important; } - } +} + .chat21-window.chat21-sheet { - width: 376px !important; - } -// Закончили упражнение с виджетом AutoFaq \ No newline at end of file + width: 376px !important; +} + +// Закончили упражнение с виджетом AutoFaq + +.content_columns { + display: flex; + align-items: flex-start; + gap: 0 30px; + margin: 10px 0 10px 0; + + .column { + width: 50%; + + p:not(:last-child) { + margin-bottom: 20px; + } + + img { + width: 100%; + } + } + + @media all and (max-width: 767px) { + flex-wrap: wrap; + gap: 15px 0; + + .column { + width: 100%; + } + } +} + +.types_grid { + display: flex; + flex-wrap: wrap; + gap: 60px 30px; + margin: 30px 0; + + .grid_item { + width: calc(50% - 15px); + padding: 25px 20px; + background: var(--inactive); + position: relative; + + .h2 { + max-width: 65%; + + } + + ul { + column-count: 2; + break-inside: avoid; + max-width: 65%; + margin-top: 12px; + + li { + margin-bottom: 8px; + word-break: break-word; + + a { + color: #0C0C0C; + + &:hover { + color: var(--blue); + } + } + } + } + + img { + position: absolute; + pointer-events: none; + position: absolute; + right: 0; + bottom: 0; + top: 0; + height: 100%; + + @media all and (max-width: 1279px) { + height: 65%; + top: auto; + } + } + } + + @media all and (max-width: 767px) { + gap: 20px 0; + + .grid_item { + width: 100%; + + .h2 { + max-width: 100%; + font-size: 18px; + line-height: 1.3; + } + + img { + top: auto; + height: 55%; + } + } + } +} + +.logos_list { + display: flex; + flex-wrap: wrap; + margin: 30px 0; + overflow: hidden; + + .list_item { + border: 1px solid var(--inactive); + margin: 0px 0px -1px -1px; + width: 20%; + + @media all and (min-width: 768px) { + &:nth-child(5n) { + border-right: 0; + } + + &:nth-child(-n+5) { + border-top: 0; + } + } + + @media all and (max-width: 767px) { + width: 50%; + + &:nth-child(1), + &:nth-child(2) { + border-top: 0; + ; + } + + &:nth-child(2n) { + border-right: 0; + } + } + + a { + padding: 30px 20px; + display: block; + + img { + display: block; + height: 60px; + max-width: 100%; + object-fit: contain; + object-position: center; + margin: auto; + } + } + + &.other_item { + display: flex; + justify-content: center; + align-items: center; + + a { + color: var(--blue); + background: var(--inactive); + font-weight: 600; + width: 100%; + height: 100%; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; + } + } + } +} + +.info_list { + display: flex; + gap: 0 30px; + margin-bottom: 0px; + + .list_item { + width: 100%; + background: var(--green); + padding: 24px; + + @media all and (max-width: 767px) { + padding: 15px; + } + + + svg, img { + margin-bottom: 16px; + display: block; + + @media all and (max-width: 960px) { + margin-bottom: 8px; + max-width: 38px; + height: auto; + } + } + + p, + ul { + color: #fff; + font-size: 15px; + + &.h2, + &.h3 { + margin-top: 0; + margin-bottom: 8px; + } + + @media all and (max-width: 960px) { + font-size: 13px; + } + } + + ul { + li:before { + background: #fff; + } + } + } + + @media all and (max-width: 767px) { + flex-wrap: wrap; + gap: 20px 0; + + + } +} + +.content_header { + display: flex; + align-items: center; + gap: 0 50px; + position: relative; + + &:after { + content: ""; + display: block; + position: absolute; + z-index: -1; + pointer-events: none; + left: calc(50% - 200px); + top: 80px; + bottom: 80px; + right: -100%; + background: var(--inactive); + + @media all and (max-width: 1200px) { + top: 15%; + bottom: 15%; + } + } + + div, + img { + width: 50%; + } + + @media all and (max-width: 767px) { + flex-wrap: wrap; + + &:after { + width: 182px; + left: auto; + right: 0; + top: 0; + bottom: 50px; + z-index: -1; + } + + div, + img { + width: 100%; + } + } +} \ No newline at end of file diff --git a/local/templates/evolution/css/var.css b/local/templates/evolution/css/var.css index 46871f1..09cc7ef 100644 --- a/local/templates/evolution/css/var.css +++ b/local/templates/evolution/css/var.css @@ -155,7 +155,7 @@ body { @media all and (max-width: 1600px) and (min-width: 1280px) { .container { padding-top: 45px; - padding-bottom: 85px; + padding-bottom: 45px; } } @media all and (max-width: 960px) { @@ -491,23 +491,29 @@ body { padding-right: 0; } } -h1 { +h1, +.h1 { font-size: 32px; line-height: 40px; + font-weight: 700; } -h2 { +h2, +.h2 { font-size: 24px; line-height: 28px; margin-top: 1.5em; - margin-bottom: 10px; + margin-bottom: 25px; + font-weight: 700; } @media all and (max-width: 1600px) and (min-width: 1280px) { - h2 { + h2, + .h2 { font-size: 22px; line-height: 26px; } } -h2.model { +h2.model, +.h2.model { font-size: 26px; line-height: 35px; color: var(--text_not_active); @@ -515,30 +521,38 @@ h2.model { margin-bottom: 0; } @media all and (max-width: 767px) { - h2.model { + h2.model, + .h2.model { font-size: 19px; line-height: 26px; } } -h2:first-child { +h2:first-child, +.h2:first-child { margin-top: 0; } -h3 { +h3, +.h3 { font-size: 17px; line-height: 24px; margin-top: 1.5em; margin-bottom: 10px; + font-weight: 700; } -h3:first-child { +h3:first-child, +.h3:first-child { margin-top: 0; } -h4 { +h4, +.h4 { font-size: 15px; line-height: 20px; margin-top: 1.5em; margin-bottom: 10px; + font-weight: 700; } -h4:first-child { +h4:first-child, +.h4:first-child { margin-top: 0; } .secondary { @@ -573,17 +587,20 @@ div { clear: both; } @media all and (max-width: 1279px) { - h2 { + h2, + .h2 { font-size: 20px; line-height: 24px; } } @media all and (max-width: 736px) { - h1 { + h1, + .h1 { font-size: 24px; line-height: 32px; } - h2 { + h2, + .h2 { font-size: 20px; line-height: 24px; } @@ -926,7 +943,7 @@ section[data-page][data-page="catalog"] .container .catalog_list:before { left: 30px; right: 0; margin: auto; - width: calc(33.333% + 13px); + width: calc(33.333% + 12px); top: 40px; bottom: -200px; } @@ -1198,6 +1215,17 @@ section[data-page][data-page="special"] + #order .container:after { display: none; } } +[data-page="aggregation"] .container { + padding-bottom: 0; +} +[data-page="aggregation"] #calc { + padding-top: 80px; +} +@media all and (max-width: 960px) { + [data-page="aggregation"] #calc { + padding-top: 40px; + } +} #main_slider { position: relative; } @@ -1374,3 +1402,17 @@ section[data-page][data-page="special"] + #order .container:after { right: 0px !important; top: 0px !important; } +.spacer { + height: 60px; + width: 100%; +} +@media all and (max-width: 767px) { + .spacer { + height: 25px; + } +} +mark { + background: var(--blue); + color: #fff; + padding: 2px 18px; +} diff --git a/local/templates/evolution/css/var.less b/local/templates/evolution/css/var.less index b1f5768..5f2f4bb 100644 --- a/local/templates/evolution/css/var.less +++ b/local/templates/evolution/css/var.less @@ -115,7 +115,7 @@ body { @media all and (max-width: 1600px) and (min-width: 1280px) { padding-top: 45px; - padding-bottom: 85px; + padding-bottom: 45px; } @media all and (max-width: 960px) { @@ -450,16 +450,18 @@ body { } } -h1 { +h1, .h1 { font-size: 32px; line-height: 40px; + font-weight: 700; } -h2 { +h2, .h2 { font-size: 24px; line-height: 28px; margin-top: 1.5em; - margin-bottom: 10px; + margin-bottom: 25px; + font-weight: 700; @media all and (max-width: 1600px) and (min-width: 1280px) { font-size: 22px; @@ -484,22 +486,24 @@ h2 { } } -h3 { +h3, .h3 { font-size: 17px; line-height: 24px; margin-top: 1.5em; margin-bottom: 10px; + font-weight: 700; &:first-child { margin-top: 0; } } -h4 { +h4, .h4 { font-size: 15px; line-height: 20px; margin-top: 1.5em; margin-bottom: 10px; + font-weight: 700; &:first-child { margin-top: 0; @@ -546,19 +550,19 @@ div { } @media all and (max-width: 1279px) { - h2 { + h2, .h2 { font-size: 20px; line-height: 24px; } } @media all and (max-width: 736px) { - h1 { + h1, .h1 { font-size: 24px; line-height: 32px; } - h2 { + h2, .h2 { font-size: 20px; line-height: 24px; } @@ -780,7 +784,7 @@ section[data-page] { left: 30px; right: 0; margin: auto; - width: calc(33.333% + 13px); + width: calc(33.333% + 12px); top: 40px; bottom: -200px; } @@ -848,6 +852,7 @@ section[data-page] { } } + &[data-page="position"] { .container:before { border-right: 0 !important; @@ -992,6 +997,22 @@ section[data-page] { } } +&[data-page="aggregation"] { + + .container { + padding-bottom: 0; + } + + #calc { + padding-top: 80px; + + @media all and (max-width: 960px) { + padding-top: 40px; + } + } + +} + #main_slider { position: relative; @@ -1185,4 +1206,19 @@ section[data-page] { .adv_button_news_article { right: 0px !important; top: 0px !important; +} + +.spacer { + height: 60px; + width: 100%; + + @media all and (max-width: 767px) { + height: 25px; + } +} + +mark { + background: var(--blue); + color: #fff; + padding: 2px 18px; } \ No newline at end of file diff --git a/programs/cargo/index.php b/programs/cargo/index.php new file mode 100644 index 0000000..851e647 --- /dev/null +++ b/programs/cargo/index.php @@ -0,0 +1,31 @@ +SetTitle("Сервисы"); +$APPLICATION->AddHeadString(''); +?> +IncludeComponent("bitrix:breadcrumb", "evolution", Array( + "PATH" => "", // Путь, для которого будет построена навигационная цепочка (по умолчанию, текущий путь) + "SITE_ID" => "s1", // Cайт (устанавливается в случае многосайтовой версии, когда DOCUMENT_ROOT у сайтов разный) + "START_FROM" => "0", // Номер пункта, начиная с которого будет построена навигационная цепочка + ), + false + ); +?> +IncludeComponent( + "evolution:programs.aggregations", + "", + [ + "TITLE" => "Грузовая техника", + "SHORT_TITLE" => "Грузовая техника", + "SHORT_TITLE_GENITIVE" => "Грузовой техники", + "SHORT_TITLE_ACCUSATIVE" => "Грузовую технику", + "IBLOCK_ID_RULES" => IBLOCK_ID_PROGRAMS_AGGREGATION_RULES_CARGO, + "IBLOCK_ID_PROGRAMS_AGGREGATION" => IBLOCK_ID_PROGRAMS_AGGREGATION_CARGO, + "IBLOCK_ID_PROGRAMS_AGGREGATION_BRANDS" => IBLOCK_ID_PROGRAMS_AGGREGATION_BRANDS_CARGO, + "PATH" => "cargo", + ] + ); +?> + \ No newline at end of file diff --git a/programs/special/index.php b/programs/special/index.php new file mode 100644 index 0000000..7f953ea --- /dev/null +++ b/programs/special/index.php @@ -0,0 +1,31 @@ +SetTitle("Сервисы"); +$APPLICATION->AddHeadString(''); +?> +IncludeComponent("bitrix:breadcrumb", "evolution", Array( + "PATH" => "", // Путь, для которого будет построена навигационная цепочка (по умолчанию, текущий путь) + "SITE_ID" => "s1", // Cайт (устанавливается в случае многосайтовой версии, когда DOCUMENT_ROOT у сайтов разный) + "START_FROM" => "0", // Номер пункта, начиная с которого будет построена навигационная цепочка + ), + false + ); +?> +IncludeComponent( + "evolution:programs.aggregations", + "", + [ + "TITLE" => "Специальная техника", + "SHORT_TITLE" => "Спецтехника", + "SHORT_TITLE_GENITIVE" => "Спецтехники", + "SHORT_TITLE_ACCUSATIVE" => "Спецтехнику", + "IBLOCK_ID_RULES" => IBLOCK_ID_PROGRAMS_AGGREGATION_RULES_SPECIAL, + "IBLOCK_ID_PROGRAMS_AGGREGATION" => IBLOCK_ID_PROGRAMS_AGGREGATION_SPECIAL, + "IBLOCK_ID_PROGRAMS_AGGREGATION_BRANDS" => IBLOCK_ID_PROGRAMS_AGGREGATION_BRANDS_SPECIAL, + "PATH" => "special", + ] + ); +?> + \ No newline at end of file diff --git a/urlrewrite.php b/urlrewrite.php index a998015..4fd4e55 100644 --- a/urlrewrite.php +++ b/urlrewrite.php @@ -1,38 +1,96 @@ - array ( + array ( 'CONDITION' => '#^/api/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)/\\??.*$#', 'RULE' => 'PARAM_1=$1&PARAM_2=$2&PARAM_3=$3', 'ID' => '', 'PATH' => '/api/index.php', 'SORT' => 1, ), - 1 => - array ( + array ( 'CONDITION' => '#^/api/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)/\\??.*$#', 'RULE' => 'PARAM_1=$1&PARAM_2=$2&PARAM_3=$3', 'ID' => '', 'PATH' => '/api/index.php', 'SORT' => 2, ), - 2 => - array ( + array ( 'CONDITION' => '#^/api/([A-Za-z0-9]+)/([A-Za-z0-9]+)/\\??.*$#', 'RULE' => 'PARAM_1=$1&PARAM_2=$2', 'ID' => '', 'PATH' => '/api/index.php', 'SORT' => 3, ), - 3 => - array ( + array ( 'CONDITION' => '#^/api/([A-Za-z0-9]+)/\\??.*$#', 'RULE' => 'PARAM_1=$1', 'ID' => '', 'PATH' => '/api/index.php', 'SORT' => 4, ), - 4 => + array ( + 'CONDITION' => '#^/programs/special/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/\\??.*$#', + 'RULE' => 'TYPE=$1&BRAND=$2', + 'ID' => '', + 'PATH' => '/programs/special/index.php', + 'SORT' => 5, + ), + array ( + 'CONDITION' => '#^/programs/special/([a-zA-Z0-9_-]+)/\\??.*$#', + 'RULE' => 'CHUNK=$1', + 'ID' => '', + 'PATH' => '/programs/special/index.php', + 'SORT' => 5, + ), + array ( + 'CONDITION' => '#^/programs/special/\\??.*$#', + 'RULE' => '', + 'ID' => '', + 'PATH' => '/programs/special/index.php', + 'SORT' => 5, + ), + array ( + 'CONDITION' => '#^/programs/cargo/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/\\??.*$#', + 'RULE' => 'TYPE=$1&BRAND=$2', + 'ID' => '', + 'PATH' => '/programs/cargo/index.php', + 'SORT' => 5, + ), + array ( + 'CONDITION' => '#^/programs/cargo/([a-zA-Z0-9_-]+)/\\??.*$#', + 'RULE' => 'CHUNK=$1', + 'ID' => '', + 'PATH' => '/programs/cargo/index.php', + 'SORT' => 5, + ), + array ( + 'CONDITION' => '#^/programs/cargo/\\??.*$#', + 'RULE' => '', + 'ID' => '', + 'PATH' => '/programs/cargo/index.php', + 'SORT' => 5, + ), + array ( + 'CONDITION' => '#^/programs/taxi/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', + 'RULE' => 'PROGRAM=lizing-taksi&BRAND=$1&PAGEN_1=$2', + 'ID' => '', + 'PATH' => '/programs/custom.php', + 'SORT' => 5, + ), + array ( + 'CONDITION' => '#^/programs/taxi/([a-zA-Z0-9_-]+)/\\??.*$#', + 'RULE' => 'PROGRAM=lizing-taksi&BRAND=$1', + 'ID' => '', + 'PATH' => '/programs/custom.php', + 'SORT' => 5, + ), + array ( + 'CONDITION' => '#^/programs/taxi/\\??.*$#', + 'RULE' => 'PROGRAM=lizing-taksi', + 'ID' => '', + 'PATH' => '/programs/custom.php', + 'SORT' => 5, + ), array ( 'CONDITION' => '#^/programs/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'PROGRAM=$1&BRAND=$2&MODEL=$3&PAGEN_1=$4', @@ -40,39 +98,34 @@ $arUrlRewrite=array ( 'PATH' => '/programs/entry.php', 'SORT' => 5, ), - 5 => - array ( + array ( 'CONDITION' => '#^/programs/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'PROGRAM=$1&BRAND=$2&PAGEN_1=$3', 'ID' => '', 'PATH' => '/programs/entry.php', 'SORT' => 6, ), - 6 => - array ( + array ( 'CONDITION' => '#^/programs/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'PROGRAM=$1&PAGEN_1=$2', 'ID' => '', 'PATH' => '/programs/entry.php', 'SORT' => 7, ), - 7 => - array ( + array ( 'CONDITION' => '#^/programs/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/\\??.*$#', 'RULE' => 'PROGRAM=$1&BRAND=$2&MODEL=$3', 'ID' => '', 'PATH' => '/programs/entry.php', 'SORT' => 8, ), - 8 => - array ( + array ( 'CONDITION' => '#^/programs/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/\\??.*$#', 'RULE' => 'PROGRAM=$1&BRAND=$2', 'ID' => '', 'PATH' => '/programs/entry.php', 'SORT' => 9, ), - 9 => array ( 'CONDITION' => '#^/programs/([a-zA-Z0-9_-]+)/\\??.*$#', 'RULE' => 'PROGRAM=$1', @@ -80,312 +133,273 @@ $arUrlRewrite=array ( 'PATH' => '/programs/entry.php', 'SORT' => 10, ), - 12 => - array ( + array ( 'CONDITION' => '#^/catalog/electric-car/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'ENGINE_FUEL=электричество&BRAND=$1&MODEL=$2&PAGEN_1=$3', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 11, ), - 18 => - array ( + array ( 'CONDITION' => '#^/catalog/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'BRAND=$1&MODEL=$2&PAGEN_1=$3', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 11, ), - 24 => - array ( + array ( 'CONDITION' => '#^/used/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'BRAND=$1&MODEL=$2&PAGEN_1=$3', 'ID' => '', 'PATH' => '/used/index.php', 'SORT' => 11, ), - 11 => - array ( + array ( 'CONDITION' => '#^/catalog/dvigatel-([a-zA-Z0-9_-]+)/(|\\?(.+))$#', 'RULE' => 'TYPE=engine_fuel&ENGINE_FUEL_SLUG=$1', 'ID' => '', 'PATH' => '/catalog/landing.php', 'SORT' => 11, ), - 10 => - array ( + array ( 'CONDITION' => '#^/catalog/kuzov-([a-zA-Z0-9_-]+)/(|\\?(.+))$#', 'RULE' => 'TYPE=body&BODY_SLUG=$1', 'ID' => '', 'PATH' => '/catalog/landing.php', 'SORT' => 11, ), - 13 => - array ( + array ( 'CONDITION' => '#^/catalog/electric-car/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'ENGINE_FUEL=электричество&BRAND=$1&PAGEN_1=$2', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 12, ), - 19 => - array ( + array ( 'CONDITION' => '#^/catalog/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'BRAND=$1&PAGEN_1=$2', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 12, ), - 25 => - array ( + array ( 'CONDITION' => '#^/used/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'BRAND=$1&PAGEN_1=$2', 'ID' => '', 'PATH' => '/used/index.php', 'SORT' => 12, ), - 14 => - array ( + array ( 'CONDITION' => '#^/catalog/electric-car/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'ENGINE_FUEL=электричество&BRAND=$1&MODEL=$2', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 13, ), - 20 => - array ( + array ( 'CONDITION' => '#^/catalog/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'BRAND=$1&MODEL=$2', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 13, ), - 26 => - array ( + array ( 'CONDITION' => '#^/used/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'BRAND=$1&MODEL=$2', 'ID' => '', 'PATH' => '/used/index.php', 'SORT' => 13, ), - 15 => - array ( + array ( 'CONDITION' => '#^/catalog/electric-car/page-([0-9]+)/\\??.*$#', 'RULE' => 'ENGINE_FUEL=электричество&PAGEN_1=$1', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 14, ), - 21 => - array ( + array ( 'CONDITION' => '#^/catalog/page-([0-9]+)/\\??.*$#', 'RULE' => 'PAGEN_1=$1', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 14, ), - 27 => - array ( + array ( 'CONDITION' => '#^/used/page-([0-9]+)/\\??.*$#', 'RULE' => 'PAGEN_1=$1', 'ID' => '', 'PATH' => '/used/index.php', 'SORT' => 14, ), - 16 => - array ( + array ( 'CONDITION' => '#^/catalog/electric-car/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'ENGINE_FUEL=электричество&BRAND=$1', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 15, ), - 22 => - array ( + array ( 'CONDITION' => '#^/catalog/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'BRAND=$1', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 15, ), - 28 => - array ( + array ( 'CONDITION' => '#^/used/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'BRAND=$1', 'ID' => '', 'PATH' => '/used/index.php', 'SORT' => 15, ), - 17 => - array ( + array ( 'CONDITION' => '#^/catalog/electric-car/#', 'RULE' => 'ENGINE_FUEL=электричество', 'ID' => '', 'PATH' => '/catalog/index.php', 'SORT' => 15, ), - 23 => - array ( + array ( 'CONDITION' => '#^/car/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'OFFER=$1', 'ID' => '', 'PATH' => '/catalog/position.php', 'SORT' => 16, ), - 29 => - array ( + array ( 'CONDITION' => '#^/izt/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'OFFER=$1', 'ID' => '', 'PATH' => '/used/position.php', 'SORT' => 16, ), - 30 => - array ( + array ( 'CONDITION' => '#^/about/career/page-([0-9]+)/\\??.*$#', 'RULE' => 'PAGEN_1=$1', 'ID' => '', 'PATH' => '/about/career/index.php', 'SORT' => 20, ), - 31 => - array ( + array ( 'CONDITION' => '#^/about/career/vacancy-([0-9]+)/\\??.*$#', 'RULE' => 'ID=$1', 'ID' => '', 'PATH' => '/about/career/vacancy.php', 'SORT' => 21, ), - 32 => - array ( + array ( 'CONDITION' => '#^/about/news/page-([0-9]+)/\\??.*$#', 'RULE' => 'PAGEN_1=$1', 'ID' => '', 'PATH' => '/about/news/index.php', 'SORT' => 30, ), - 33 => - array ( + array ( 'CONDITION' => '#^/search/page-([0-9]+)/\\??.*$#', 'RULE' => 'PAGEN_1=$1', 'ID' => '', 'PATH' => '/search/index.php', 'SORT' => 30, ), - 34 => - array ( + array ( 'CONDITION' => '#^/about/news/([a-zA-Z0-9_-]+)\\??.*$#', 'RULE' => 'CODE=$1', 'ID' => '', 'PATH' => '/about/news/detail.php', 'SORT' => 31, ), - 35 => - array ( + array ( 'CONDITION' => '#^/services/([a-zA-Z0-9_-]+)/\\??.*$#', 'RULE' => 'CODE=$1', 'ID' => '', 'PATH' => '/services/entry.php', 'SORT' => 40, ), - 36 => - array ( + array ( 'CONDITION' => '#^/special/([a-zA-Z0-9_-]+)/\\??.*$#', 'RULE' => 'OFFER=$1', 'ID' => '', 'PATH' => '/special/offer.php', 'SORT' => 50, ), - 37 => - array ( + array ( 'CONDITION' => '#^/revocation/page-([0-9]+)/\\??.*$#', 'RULE' => 'PAGEN_1=$1', 'ID' => '', 'PATH' => '/about/revocation/index.php', 'SORT' => 60, ), - 38 => - array ( + array ( 'CONDITION' => '#^/revocation/\\??.*$#', 'RULE' => '', 'ID' => '', 'PATH' => '/about/revocation/index.php', 'SORT' => 70, ), - 41 => - array ( + array ( 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/dvigatel-([a-zA-Z0-9_-]+)/(|\\?(.+))$#', 'RULE' => 'TYPE=engine_fuel®ION=$1&ENGINE_FUEL_SLUG=$2', 'ID' => '', 'PATH' => '/regions/landing.php', 'SORT' => 80, ), - 40 => - array ( + array ( 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/kuzov-([a-zA-Z0-9_-]+)/(|\\?(.+))$#', 'RULE' => 'TYPE=body®ION=$1&BODY_SLUG=$2', 'ID' => '', 'PATH' => '/regions/landing.php', 'SORT' => 80, ), - 39 => - array ( + array ( 'CONDITION' => '#^/general-terms/\\??.*$#', 'RULE' => '', 'ID' => '', 'PATH' => '/about/rules/index.php', 'SORT' => 80, ), - 42 => - array ( + array ( 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'REGION=$1&BRAND=$2&MODEL=$3&PAGEN_1=$4', 'ID' => '', 'PATH' => '/regions/region.php', 'SORT' => 81, ), - 43 => - array ( + array ( 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'REGION=$1&BRAND=$2&MODEL=$3', 'ID' => '', 'PATH' => '/regions/region.php', 'SORT' => 82, ), - 44 => - array ( + array ( 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/page-([0-9]+)/\\??.*$#', 'RULE' => 'REGION=$1&BRAND=$2&PAGEN_1=$3', 'ID' => '', 'PATH' => '/regions/region.php', 'SORT' => 83, ), - 45 => - array ( + array ( 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/\\??.*$#', 'RULE' => 'REGION=$1&BRAND=$2', 'ID' => '', 'PATH' => '/regions/region.php', 'SORT' => 84, ), - 46 => - array ( + array ( 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/(\\?(.*))?$#', 'RULE' => 'REGION=$1', 'ID' => '', 'PATH' => '/regions/region.php', 'SORT' => 85, ), - 47 => - array ( + array ( 'CONDITION' => '#^\\/?\\/mobileapp/jn\\/(.*)\\/.*#', 'RULE' => 'componentName=$1', 'ID' => NULL, 'PATH' => '/bitrix/services/mobileapp/jn.php', 'SORT' => 90, ), - 48 => - array ( + array ( 'CONDITION' => '#^/rest/#', 'RULE' => '', 'ID' => NULL,