From 19d6a11432c2181c132db3782ad745be4e0ba8c9 Mon Sep 17 00:00:00 2001 From: merelendor Date: Thu, 25 Jul 2024 10:44:41 +0300 Subject: [PATCH] taxi program SEO refactoring --- .../evolution/catalog.models/component.php | 5 + .../evolution/catalog.program/component.php | 149 +++++++++++------- .../templates/.default/template.php | 70 +++++--- .../leasing.programs.taxi/component.php | 3 +- .../templates/.default/template.php | 37 +---- local/ilsa_update.php | 54 +++++++ programs/custom.php | 50 +++++- urlrewrite.php | 17 +- 8 files changed, 267 insertions(+), 118 deletions(-) diff --git a/local/components/evolution/catalog.models/component.php b/local/components/evolution/catalog.models/component.php index 99e9134..e0e4b58 100644 --- a/local/components/evolution/catalog.models/component.php +++ b/local/components/evolution/catalog.models/component.php @@ -49,6 +49,11 @@ use Bitrix\Main\Context, //$models_filter["PROPERTY_PROMO_VALUE"] = "Да"; } + if($arParams['MODELS_FILTER'] !== null) + { + $models_filter = array_merge($models_filter, $arParams['MODELS_FILTER']); + } + $models_res = CIBlockElement::GetList([ "NAME" => "ASC" ], $models_filter, false, []); while ($models_ob_element = $models_res->GetNextElement()) { diff --git a/local/components/evolution/catalog.program/component.php b/local/components/evolution/catalog.program/component.php index 81d89dd..682db6d 100644 --- a/local/components/evolution/catalog.program/component.php +++ b/local/components/evolution/catalog.program/component.php @@ -411,80 +411,109 @@ if($this->StartResultCache(60*60*24, md5(var_export($_POST, true)))) $arResult['PAGE_CURRENT'] = $res->NavPageNomer; $arResult['PAGE_COUNT'] = $res->NavPageCount; - if(!is_null($arParams['REGION'])) + if(!isset($_REQUEST['ajax'])) { - if($arParams['REGION'] === "root") + if(!is_null($arParams['REGION'])) { - $arResult['TITLE'] = "Лизинг в регионах России"; - $arResult['SUBTITLE'] = " для юридических лиц и ИП"; + if($arParams['REGION'] === "root") + { + $arResult['NAME'] = $arParams['NAME_REGIONS']; + $arResult['TITLE'] = "Лизинг в регионах России"; + $arResult['SUBTITLE'] = " для юридических лиц и ИП"; - $APPLICATION->SetPageProperty("title", "Лизинг в регионах России для юридических лиц и ИП | Эволюция"); - $APPLICATION->SetPageProperty("description", "Лизинговая компания Эволюция предлагает быстрое оформление авто в лизинг в регионах России для юридических лиц и ИП. Выгодные цены, спецпредложения, простое оформление, консультирование и сопровождение."); - $APPLICATION->SetPageProperty("keywords", "Лизинг в России, лизинг в регионах России"); + $APPLICATION->SetPageProperty("title", $arParams['TITLE_REGIONS']); + $APPLICATION->SetPageProperty("description", $arParams['DESCRIPTION_REGIONS']); + $APPLICATION->SetPageProperty("keywords", $arParams['KEYWORDS_REGIONS']); - $APPLICATION->AddHeadString(''); + $APPLICATION->AddHeadString(''); + } + else + { + //IBLOCK_ID_CITIES + $res_city = CIBlockElement::GetList([], [ "ACTIVE" => "Y", "IBLOCK_ID" => IBLOCK_ID_CITIES, "CODE" => $arParams['REGION'] ], false, []); + + while ($city_element = $res_city->GetNextElement()) + { + $ar_city = $city_element->GetFields(); + $ar_city['PROPERTIES'] = $city_element->GetProperties(); + + $ar_city['PROPERTIES']['OFFICES']['RELATED'] = get_related_array(IBLOCK_ID_CONTACTS, $ar_city['PROPERTIES']['OFFICES']['VALUE']); + + if(isset($ar_city['PROPERTIES']['OFFICES']['RELATED'][0])) + { + $ar_city['LEADER_CRM_ID'] = $ar_city['PROPERTIES']['LEADER_CRM_ID']['VALUE']; + } + + $arResult['CITY'] = $ar_city; + + array_unshift($breadcrumbs, [ + "NAME" => $ar_city['NAME'], + "URL" => "https://".SITE_SERVER_NAME."/regions/".$ar_city['CODE']."/", + ]); + + array_unshift($canonical, $ar_city['CODE']); + + if(!empty($arResult['SELECTED']['MODEL'])) + { + $arResult['NAME'] = strtr($arParams['NAME_MODEL_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%MODEL" => $arResult['TITLES']['MODEL'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'], ]); + $APPLICATION->SetPageProperty("title", strtr($arParams['TITLE_MODEL_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%MODEL" => $arResult['TITLES']['MODEL'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + $APPLICATION->SetPageProperty("description", strtr($arParams['DESCRIPTION_MODEL_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%MODEL" => $arResult['TITLES']['MODEL'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + $APPLICATION->SetPageProperty("keywords", strtr($arParams['KEYWORDS_MODEL_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%MODEL" => $arResult['TITLES']['MODEL'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + } + elseif(!empty($arResult['SELECTED']['BRAND'])) + { + $arResult['NAME'] = strtr($arParams['NAME_BRAND_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ]); + $APPLICATION->SetPageProperty("title", strtr($arParams['TITLE_BRAND_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + $APPLICATION->SetPageProperty("description", strtr($arParams['DESCRIPTION_BRAND_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + $APPLICATION->SetPageProperty("keywords", strtr($arParams['KEYWORDS_BRAND_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + } + else + { + $arResult['NAME'] = $arParams['NAME_CITY']; + $APPLICATION->SetPageProperty("title", strtr($arParams['TITLE_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + $APPLICATION->SetPageProperty("description", strtr($arParams['DESCRIPTION_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + $APPLICATION->SetPageProperty("keywords", strtr($arParams['KEYWORDS_CITY'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%CITY" => $ar_city['PROPERTIES']['CASE']['VALUE'] ])); + } + + $APPLICATION->AddHeadString(' 0 ? "/" : "").'"/>'); + } + + if(!isset($ar_city)) + { + define('ERROR_404', 'Y'); + } + } } else { - //IBLOCK_ID_CITIES - $res_city = CIBlockElement::GetList([], [ "ACTIVE" => "Y", "IBLOCK_ID" => IBLOCK_ID_CITIES, "CODE" => $arParams['REGION'] ], false, []); - - while ($city_element = $res_city->GetNextElement()) + if(!empty($arResult['SELECTED']['MODEL'])) { - $ar_city = $city_element->GetFields(); - $ar_city['PROPERTIES'] = $city_element->GetProperties(); - - $ar_city['PROPERTIES']['OFFICES']['RELATED'] = get_related_array(IBLOCK_ID_CONTACTS, $ar_city['PROPERTIES']['OFFICES']['VALUE']); - - if(isset($ar_city['PROPERTIES']['OFFICES']['RELATED'][0])) - { - $ar_city['LEADER_CRM_ID'] = $ar_city['PROPERTIES']['LEADER_CRM_ID']['VALUE']; - } - - $arResult['CITY'] = $ar_city; - - array_unshift($breadcrumbs, [ - "NAME" => $ar_city['NAME'], - "URL" => "https://".SITE_SERVER_NAME."/regions/".$ar_city['CODE']."/", - ]); - - array_unshift($canonical, $ar_city['CODE']); - - if(!empty($arResult['SELECTED']['MODEL'])) - { - $APPLICATION->SetPageProperty("title", $arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL']." в ".$ar_city['PROPERTIES']['CASE']['VALUE']." в лизинг для юридических лиц и ИП | Эволюция"); - $APPLICATION->SetPageProperty("description", "Новые автомобили ".$arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL']." в ".$ar_city['PROPERTIES']['CASE']['VALUE']." в лизинг для юридических лиц и ИП. Вы можете купить ".$arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL']." в ".$ar_city['PROPERTIES']['CASE']['VALUE']." в лизинг от официальных дилеров, автосалонов на выгодных условиях со скидкой. Телефон горячей линии ".CENTRAL_PHONE_FORMATTED." - звонок по России бесплатный."); - $APPLICATION->SetPageProperty("keywords", $arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL']." ".$ar_city['NAME']." в лизинг, купить ".$arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL']." ".$ar_city['NAME']." в лизинг"); - } - elseif(!empty($arResult['SELECTED']['BRAND'])) - { - $APPLICATION->SetPageProperty("title", $arResult['TITLES']['BRAND']." в ".$ar_city['PROPERTIES']['CASE']['VALUE']." в лизинг для юридических лиц и ИП | Эволюция"); - $APPLICATION->SetPageProperty("description", "Новые автомобили ".$arResult['TITLES']['BRAND']." в ".$ar_city['PROPERTIES']['CASE']['VALUE']." в лизинг для юридических лиц и ИП. Вы можете купить ".$arResult['TITLES']['BRAND']." в ".$ar_city['PROPERTIES']['CASE']['VALUE']." в лизинг от официальных дилеров, автосалонов на выгодных условиях со скидкой. Телефон горячей линии ".CENTRAL_PHONE_FORMATTED." - звонок по России бесплатный."); - $APPLICATION->SetPageProperty("keywords", $arResult['TITLES']['BRAND']." ".$ar_city['NAME']." в лизинг, купить ".$arResult['TITLES']['BRAND']." ".$ar_city['NAME']." в лизинг"); - } - else - { - $APPLICATION->SetPageProperty("title", "Лизинг в ".$ar_city['PROPERTIES']['CASE']['VALUE']." для юридических лиц и ИП | Эволюция"); - $APPLICATION->SetPageProperty("description", "Лизинговая компания Эволюция предлагает быстрое оформление авто в лизинг в ".$ar_city['PROPERTIES']['CASE']['VALUE']." для юридических лиц и ИП. Выгодные цены, спецпредложения, простое оформление, консультирование и сопровождение."); - $APPLICATION->SetPageProperty("keywords", "Лизинг в ".$ar_city['PROPERTIES']['CASE']['VALUE'].", лизинг авто ".$ar_city['NAME'].", купить машину в лизинг ".$ar_city['NAME'].""); - } - - $APPLICATION->AddHeadString(' 0 ? "/" : "").'"/>'); + $arResult['NAME'] = strtr($arParams['NAME_MODEL'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%MODEL" => $arResult['TITLES']['MODEL'], ]); + $APPLICATION->SetPageProperty("title", strtr($arParams['TITLE_MODEL'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%MODEL" => $arResult['TITLES']['MODEL'], ])); + $APPLICATION->SetPageProperty("description", strtr($arParams['DESCRIPTION_MODEL'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%MODEL" => $arResult['TITLES']['MODEL'], ])); + $APPLICATION->SetPageProperty("keywords", strtr($arParams['KEYWORDS_MODEL'], [ "%BRAND" => $arResult['TITLES']['BRAND'], "%MODEL" => $arResult['TITLES']['MODEL'], ])); + } + elseif(!empty($arResult['SELECTED']['BRAND'])) + { + $arResult['NAME'] = strtr($arParams['NAME_BRAND'], [ "%BRAND" => $arResult['TITLES']['BRAND'], ]); + $APPLICATION->SetPageProperty("title", strtr($arParams['TITLE_BRAND'], [ "%BRAND" => $arResult['TITLES']['BRAND'], ])); + $APPLICATION->SetPageProperty("description", strtr($arParams['DESCRIPTION_BRAND'], [ "%BRAND" => $arResult['TITLES']['BRAND'], ])); + $APPLICATION->SetPageProperty("keywords", strtr($arParams['KEYWORDS_BRAND'], [ "%BRAND" => $arResult['TITLES']['BRAND'], ])); + } + else + { + $arResult['NAME'] = $arParams['NAME']; + $APPLICATION->SetPageProperty("title", strtr($arParams['TITLE'], [ "%BRAND" => $arResult['TITLES']['BRAND'], ])); + $APPLICATION->SetPageProperty("description", strtr($arParams['DESCRIPTION'], [ "%BRAND" => $arResult['TITLES']['BRAND'], ])); + $APPLICATION->SetPageProperty("keywords", strtr($arParams['KEYWORDS'], [ "%BRAND" => $arResult['TITLES']['BRAND'], ])); } - if(!isset($ar_city)) + if(!isset($arParams['PROGRAM'])) { - define('ERROR_404', 'Y'); + $APPLICATION->AddHeadString(' 0 ? "/" : "").'"/>'); } } } - else - { - if(!isset($arParams['PROGRAM'])) - { - $APPLICATION->AddHeadString(' 0 ? "/" : "").'"/>'); - } - } if($arResult['MODEL_DISABLED']) { diff --git a/local/components/evolution/catalog.program/templates/.default/template.php b/local/components/evolution/catalog.program/templates/.default/template.php index cef1a38..e9f9bb3 100644 --- a/local/components/evolution/catalog.program/templates/.default/template.php +++ b/local/components/evolution/catalog.program/templates/.default/template.php @@ -12,6 +12,7 @@ /** @var CBitrixComponent $component */ $this->setFrameMode(true); +$program_title = ""; $title = ""; $subtitle = ""; @@ -38,28 +39,29 @@ if(!empty($arParams['REGION']) && $arParams['REGION'] !== "root") } else { + $title = "Новые автомобили"; + if(!empty($arResult['TITLES']['BRAND'])) { - $title .= "Новые автомобили ".$arResult['TITLES']['BRAND']; + $title .= " ".$arResult['TITLES']['BRAND']; if(!empty($arResult['TITLES']['MODEL'])) { - $title = $arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL']; + $title .= " ".$arResult['TITLES']['MODEL']; } - - $subtitle = " в лизинг для юридических лиц и ИП"; } } -if(!empty($arResult['TITLE'])) -{ - $title = $arResult['TITLE']; -} +$subtitle = " в лизинг для юридических лиц и ИП"; +//if(!empty($arResult['TITLE'])) +//{ +// $title = $arResult['TITLE']; +//} -if(!empty($arResult['SUBTITLE'])) -{ - $subtitle = $arResult['SUBTITLE']; -} +//if(!empty($arResult['SUBTITLE'])) +//{ +// $subtitle = $arResult['SUBTITLE']; +//} ?>