diff --git a/local/components/evolution/catalog/component.php b/local/components/evolution/catalog/component.php
index c54d963..d125137 100644
--- a/local/components/evolution/catalog/component.php
+++ b/local/components/evolution/catalog/component.php
@@ -22,6 +22,8 @@ if($this->StartResultCache(60*60*24, md5(var_export($_POST, true))))
{
if(CModule::IncludeModule('iblock'))
{
+ $breadcrumbs = [];
+
$arResult = [
'SELECTED' => [],
'TITLES' => [],
@@ -106,7 +108,10 @@ if($this->StartResultCache(60*60*24, md5(var_export($_POST, true))))
$arResult['SHOW_PROMO_BRANDS'] = false;
- $APPLICATION->AddChainItem($brands_ar_res['NAME'], "https://".SITE_SERVER_NAME."/catalog/".$arResult['SELECTED']['BRAND']."/");
+ array_push($breadcrumbs, [
+ "NAME" => $brands_ar_res['NAME'],
+ "URL" => "https://".SITE_SERVER_NAME.$arParams['PATH'].$arResult['SELECTED']['BRAND']."/",
+ ]);
}
$arResult['EXTENDED'] = true;
@@ -141,7 +146,10 @@ if($this->StartResultCache(60*60*24, md5(var_export($_POST, true))))
$arResult['SHOW_PROMO_BRANDS'] = false;
}
- $APPLICATION->AddChainItem($models_ar_res['NAME'], "https://".SITE_SERVER_NAME."/catalog/".$arResult['SELECTED']['BRAND']."/".$arResult['SELECTED']['MODEL']."/");
+ array_push($breadcrumbs, [
+ "NAME" => $models_ar_res['NAME'],
+ "URL" => "https://".SITE_SERVER_NAME.$arParams['PATH'].$arResult['SELECTED']['BRAND']."/".$arResult['SELECTED']['MODEL']."/",
+ ]);
}
$arResult['EXTENDED'] = true;
@@ -187,7 +195,7 @@ if($this->StartResultCache(60*60*24, md5(var_export($_POST, true))))
}
else
{
- LocalRedirect("https://".SITE_SERVER_NAME."/catalog/".$arResult['SELECTED']['BRAND']."/".$arResult['SELECTED']['MODEL']."/", true, "301 Moved permanently");
+ LocalRedirect("https://".SITE_SERVER_NAME.$arParams['PATH'].$arResult['SELECTED']['BRAND']."/".$arResult['SELECTED']['MODEL']."/", true, "301 Moved permanently");
}
}
@@ -487,6 +495,93 @@ if($this->StartResultCache(60*60*24, md5(var_export($_POST, true))))
$arResult['SHOW_SPECIAL_OFFERS'] = false;
}
+ if(!is_null($arParams['REGION']))
+ {
+ if($arParams['REGION'] === "root")
+ {
+ $arResult['TITLE'] = "Лизинг в регионах России";
+ $arResult['SUBTITLE'] = " для юридических лиц и ИП";
+
+ $APPLICATION->SetPageProperty("title", "Лизинг в регионах России для юридических лиц и ИП | Эволюция");
+ $APPLICATION->SetPageProperty("description", "Лизинговая компания Эволюция предлагает быстрое оформление авто в лизинг в регионах России для юридических лиц и ИП. Выгодные цены, спецпредложения, простое оформление, консультирование и сопровождение.");
+ $APPLICATION->SetPageProperty("keywords", "Лизинг в России, лизинг в регионах России");
+ }
+ 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']['OFFICES']['RELATED'][0]['PROPERTIES']['LEADER_CRM_ID']['VALUE'];
+
+ /*
+ $ar_city['LEADER_NAME'] = $ar_city['PROPERTIES']['OFFICES']['RELATED'][0]['PROPERTIES']['LEADER_NAME']['VALUE'];
+ $ar_city['LEADER_POSITION'] = $ar_city['PROPERTIES']['OFFICES']['RELATED'][0]['PROPERTIES']['LEADER_POSITION']['VALUE'];
+
+ if(!empty($ar_city['PROPERTIES']['OFFICES']['RELATED'][0]['PROPERTIES']['LEADER_POSITION']['VALUE']))
+ {
+ $ar_city['LEADER_PHOTO'] = CFile::GetPath($ar_city['PROPERTIES']['OFFICES']['RELATED'][0]['PROPERTIES']['LEADER_PHOTO']['VALUE']);
+ }
+ */
+ }
+
+ $arResult['CITY'] = $ar_city;
+
+ array_unshift($breadcrumbs, [
+ "NAME" => $ar_city['NAME'],
+ "URL" => "https://".SITE_SERVER_NAME."/regions/".$ar_city['CODE']."/",
+ ]);
+
+ if(!empty($arResult['SELECTED']['MODEL']))
+ {
+ //array_unshift($breadcrumbs, [
+ // "NAME" => $ar_city['NAME'],
+ // "URL" => "https://".SITE_SERVER_NAME."/regions/".$ar_city['CODE']."/".$arResult['SELECTED']['BRAND']."/".$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']))
+ {
+ //array_unshift($breadcrumbs, [
+ // "NAME" => $ar_city['NAME'],
+ // "URL" => "https://".SITE_SERVER_NAME."/regions/".$ar_city['CODE']."/".$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
+ {
+ //array_unshift($breadcrumbs, [
+ // "NAME" => $ar_city['NAME'],
+ // "URL" => "https://".SITE_SERVER_NAME."/regions/".$ar_city['CODE']."/",
+ //]);
+
+ $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']."");
+ }
+ }
+ }
+ }
+
+ foreach($breadcrumbs AS $breadcrumb)
+ {
+ $APPLICATION->AddChainItem($breadcrumb['NAME'], $breadcrumb['URL']);
+ }
+
if(isset($_REQUEST['ajax']))
{
$GLOBALS['APPLICATION']->RestartBuffer();
diff --git a/local/components/evolution/catalog/templates/.default/template.php b/local/components/evolution/catalog/templates/.default/template.php
index 507162f..74b044d 100644
--- a/local/components/evolution/catalog/templates/.default/template.php
+++ b/local/components/evolution/catalog/templates/.default/template.php
@@ -13,15 +13,54 @@
$this->setFrameMode(true);
$title = "";
-if(!empty($arResult['TITLES']['BRAND']))
+$subtitle = "";
+
+if(!empty($arParams['REGION']) && $arParams['REGION'] !== "root")
{
- $title .= "Новые автомобили ".$arResult['TITLES']['BRAND'];
+ //$title = "Лизинг";
+
+ if(!empty($arResult['TITLES']['BRAND']))
+ {
+ $title .= " ".$arResult['TITLES']['BRAND'];
+
+ if(!empty($arResult['TITLES']['MODEL']))
+ {
+ $title = $arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL'];
+ }
+ $title = $title." в ".$arResult['CITY']['PROPERTIES']['CASE']['VALUE']." в лизинг";
+ $subtitle = " для юридических лиц и ИП";
+ }
+ else
+ {
+ $title = "Лизинг в ".$arResult['CITY']['PROPERTIES']['CASE']['VALUE'];
+ $subtitle = " для юридических лиц и ИП";
+ }
+}
+else
+{
+ if(!empty($arResult['TITLES']['BRAND']))
+ {
+ $title .= "Новые автомобили ".$arResult['TITLES']['BRAND'];
+
+ if(!empty($arResult['TITLES']['MODEL']))
+ {
+ $title = $arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL'];
+ }
+
+ $subtitle = " в лизинг";
+ }
}
-if(!empty($arResult['TITLES']['MODEL']))
+if(!empty($arResult['TITLE']))
{
- $title = $arResult['TITLES']['BRAND']." ".$arResult['TITLES']['MODEL'];
+ $title = $arResult['TITLE'];
}
+
+if(!empty($arResult['SUBTITLE']))
+{
+ $subtitle = $arResult['SUBTITLE'];
+}
+
?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/regions/region.php b/regions/region.php
new file mode 100644
index 0000000..33b1b0e
--- /dev/null
+++ b/regions/region.php
@@ -0,0 +1,48 @@
+
+require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
+$APPLICATION->SetTitle("Новые автомобили в лизинг");
+//$APPLICATION->AddHeadString('
');
+?>
+
+ $APPLICATION->IncludeComponent("bitrix:breadcrumb", "evolution", Array(
+ "PATH" => "", // Путь, для которого будет построена навигационная цепочка (по умолчанию, текущий путь)
+ "SITE_ID" => "s1", // Cайт (устанавливается в случае многосайтовой версии, когда DOCUMENT_ROOT у сайтов разный)
+ "START_FROM" => "0", // Номер пункта, начиная с которого будет построена навигационная цепочка
+ ),
+ false
+ );
+?>
+
+ $APPLICATION->IncludeComponent(
+ "evolution:catalog",
+ isset($_REQUEST['ajax']) ? "ajax" : "",
+ array(
+ "top_banners" => false,
+ "PAGINATION" => "Y",
+ "COUNT_PER_PAGE" => 12,
+ "BRAND" => $_REQUEST['BRAND'],
+ "MODEL" => $_REQUEST['MODEL'],
+ "MODIFICATION" => $_REQUEST['MODIFICATION'],
+ "DRIVE" => $_REQUEST['DRIVE'],
+ "BODY" => $_REQUEST['BODY'],
+ "GEAR" => $_REQUEST['GEAR'],
+ "ENGINE_FUEL" => $_REQUEST['ENGINE_FUEL'],
+ "ENGINE_POWER_FROM" => $_REQUEST['ENGINE_POWER_FROM'],
+ "ENGINE_POWER_TO" => $_REQUEST['ENGINE_POWER_TO'],
+ "ENGINE_VOLUME_FROM" => $_REQUEST['ENGINE_VOLUME_FROM'],
+ "ENGINE_VOLUME_TO" => $_REQUEST['ENGINE_VOLUME_TO'],
+ "SORT" => $_REQUEST['SORT'],
+ "PATH" => "/regions/".$_REQUEST['REGION']."/",
+ "PROGRAM" => null,
+ "REGION" => $_REQUEST['REGION'],
+ )
+ );
+?>
+
+ $APPLICATION->IncludeComponent(
+ "evolution:form.leasing",
+ "",
+ Array()
+ );
+?>
+
\ No newline at end of file
diff --git a/regions/scripts.js b/regions/scripts.js
new file mode 100644
index 0000000..a822afe
--- /dev/null
+++ b/regions/scripts.js
@@ -0,0 +1,151 @@
+
+window.onload = function() {
+ ymaps.ready(function () {
+ var map = new ymaps.Map('map', {
+ center: [55.751574, 37.573856],
+ zoom: 9,
+ controls: []
+ });
+
+
+
+ // Создание макета балуна на основе Twitter Bootstrap.
+ MyBalloonLayout = ymaps.templateLayoutFactory.createClass(
+ '
' +
+ '
× ' +
+ '
' +
+ '
' +
+ '$[[options.contentLayout observeSize minWidth=235 maxWidth=500 maxHeight=350]]' +
+ '
' +
+ '
', {
+ /**
+ * Строит экземпляр макета на основе шаблона и добавляет его в родительский HTML-элемент.
+ * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/layout.templateBased.Base.xml#build
+ * @function
+ * @name build
+ */
+ build: function () {
+ this.constructor.superclass.build.call(this);
+
+ this._$element = $('.popover', this.getParentElement());
+
+ this.applyElementOffset();
+
+ this._$element.find('.close')
+ .on('click', $.proxy(this.onCloseClick, this));
+ },
+
+ /**
+ * Удаляет содержимое макета из DOM.
+ * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/layout.templateBased.Base.xml#clear
+ * @function
+ * @name clear
+ */
+ clear: function () {
+ this._$element.find('.close')
+ .off('click');
+
+ this.constructor.superclass.clear.call(this);
+ },
+
+ /**
+ * Метод будет вызван системой шаблонов АПИ при изменении размеров вложенного макета.
+ * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/IBalloonLayout.xml#event-userclose
+ * @function
+ * @name onSublayoutSizeChange
+ */
+ onSublayoutSizeChange: function () {
+ MyBalloonLayout.superclass.onSublayoutSizeChange.apply(this, arguments);
+
+ if (!this._isElement(this._$element)) {
+ return;
+ }
+
+ this.applyElementOffset();
+
+ this.events.fire('shapechange');
+ },
+
+ /**
+ * Сдвигаем балун, чтобы "хвостик" указывал на точку привязки.
+ * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/IBalloonLayout.xml#event-userclose
+ * @function
+ * @name applyElementOffset
+ */
+ applyElementOffset: function () {
+ this._$element.css({
+ left: -(this._$element[0].offsetWidth / 2),
+ top: -(this._$element[0].offsetHeight + this._$element.find('.arrow')[0].offsetHeight)
+ });
+ },
+
+ /**
+ * Закрывает балун при клике на крестик, кидая событие "userclose" на макете.
+ * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/IBalloonLayout.xml#event-userclose
+ * @function
+ * @name onCloseClick
+ */
+ onCloseClick: function (e) {
+ e.preventDefault();
+
+ this.events.fire('userclose');
+ },
+
+ /**
+ * Используется для автопозиционирования (balloonAutoPan).
+ * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ILayout.xml#getClientBounds
+ * @function
+ * @name getClientBounds
+ * @returns {Number[][]} Координаты левого верхнего и правого нижнего углов шаблона относительно точки привязки.
+ */
+ getShape: function () {
+ if (!this._isElement(this._$element)) {
+ return MyBalloonLayout.superclass.getShape.call(this);
+ }
+
+ var position = this._$element.position();
+
+ return new ymaps.shape.Rectangle(new ymaps.geometry.pixel.Rectangle([
+ [position.left, position.top], [
+ position.left + this._$element[0].offsetWidth,
+ position.top + this._$element[0].offsetHeight + this._$element.find('.arrow')[0].offsetHeight
+ ]
+ ]));
+ },
+
+ /**
+ * Проверяем наличие элемента (в ИЕ и Опере его еще может не быть).
+ * @function
+ * @private
+ * @name _isElement
+ * @param {jQuery} [element] Элемент.
+ * @returns {Boolean} Флаг наличия.
+ */
+ _isElement: function (element) {
+ return element && element[0] && element.find('.arrow')[0];
+ }
+ }),
+
+ MyBalloonContentLayout = ymaps.templateLayoutFactory.createClass(
+ '
$[properties.balloonHeader] ' +
+ '
$[properties.balloonContent]
'
+ ),
+
+ myPlacemark = window.myPlacemark = new ymaps.Placemark(map.getCenter(), {
+ balloonContent: '
Горячая линия: 8 800 333 75 75
Телефон центрального офиса: +7 495 146 67 67
Адрес: г. Москва, Котляковская ул., д. 8
Часы работы: с понедельника по пятницу с 9:00 до 18:00
'
+ }, {
+ balloonShadow: false,
+ balloonLayout: MyBalloonLayout,
+ balloonContentLayout: MyBalloonContentLayout,
+ balloonPanelMaxMapArea: 0,
+ balloonOffset: [3, 40],
+ iconLayout: 'default#imageWithContent',
+ iconImageHref: '/images/pin.svg',
+ iconImageSize: [43, 54],
+ iconImageOffset: [-21, -27],
+ iconContentOffset: [15, 15]
+ });
+
+ map.geoObjects.add(myPlacemark);
+ });
+ };
\ No newline at end of file
diff --git a/urlrewrite.php b/urlrewrite.php
index ba5103f..54cb52d 100644
--- a/urlrewrite.php
+++ b/urlrewrite.php
@@ -209,6 +209,46 @@ $arUrlRewrite=array (
'SORT' => 80,
),
26 =>
+ 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,
+ ),
+ 27 =>
+ 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,
+ ),
+ 28 =>
+ 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,
+ ),
+ 29 =>
+ array (
+ 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/\\??.*$#',
+ 'RULE' => 'REGION=$1&BRAND=$2',
+ 'ID' => '',
+ 'PATH' => '/regions/region.php',
+ 'SORT' => 84,
+ ),
+ 30 =>
+ array (
+ 'CONDITION' => '#^/regions/([a-zA-Z0-9_-]+)/(\\?(.*))?$#',
+ 'RULE' => 'REGION=$1',
+ 'ID' => '',
+ 'PATH' => '/regions/region.php',
+ 'SORT' => 85,
+ ),
+ 31 =>
array (
'CONDITION' => '#^\\/?\\/mobileapp/jn\\/(.*)\\/.*#',
'RULE' => 'componentName=$1',
@@ -216,7 +256,7 @@ $arUrlRewrite=array (
'PATH' => '/bitrix/services/mobileapp/jn.php',
'SORT' => 90,
),
- 27 =>
+ 32 =>
array (
'CONDITION' => '#^/rest/#',
'RULE' => '',
Обращайтесь к нам по номеру телефона ">= $arParams['CITY']['PROPERTIES']['OFFICES']['RELATED'][0]['PROPERTIES']['PHONE']['VALUE']; ?>, либо на почту buy@evoleasing.ru Будем рады помочь вам купить = !is_null($arParams['BRAND']) ? $arParams['BRAND'] : "автомобиль"; ?>= !is_null($arParams['MODEL']) ? " ".$arParams['MODEL'] : ""; ?> в лизинг в = $arParams['CITY']['PROPERTIES']['CASE']['VALUE']; ?> на лучших условиях. Наш офис находится по адресу = $arParams['CITY']['PROPERTIES']['OFFICES']['RELATED'][0]['PROPERTIES']['ADDRESS']['VALUE']; ?>.
++ = $arResult['LEADER']['firstName']; ?> = $arResult['LEADER']['secondName']; ?> + = $arResult['LEADER']['post']; ?> +
+