Merge branch 'master' of github.com:merelendor/evoleasing-site

This commit is contained in:
merelendor 2024-05-14 22:25:05 +03:00
commit 8e4e21d16d
17 changed files with 359 additions and 375 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@ local/*.json
local/*.txt
local/commands/
!local/sitemap.php
element_add.txt

View File

@ -31,12 +31,12 @@ $APPLICATION->AddHeadString('<link rel="canonical" href="https://'.SITE_SERVER_N
"",
Array(
"TOP" => "ТОП 5",
"DEALS" => "> 100 млрд&nbsp;₽",
"CONTRACTS" => "16 000+",
"DEALS" => "> 123 млрд&nbsp;₽",
"CONTRACTS" => "24 000+",
"CITIES" => "35",
"PERIOD" => "> 10 лет",
"DIVISIONS" => "61",
"CLIENTS" => "8 000+",
"CLIENTS" => "11 000+",
)
);
?>

View File

@ -43,7 +43,7 @@ $APPLICATION->SetTitle("Эволюция автолизинга: Реквизи
</div>
<div class="requisites_row">
<p>КПП</p>
<p>772401001</p>
<p>770501001</p>
</div>
<div class="requisites_row">
<p>ОГРН</p>
@ -51,11 +51,11 @@ $APPLICATION->SetTitle("Эволюция автолизинга: Реквизи
</div>
<div class="requisites_row">
<p>Юридический адрес</p>
<p>115201, г. Москва, ул. Котляковская, дом 8, эт. 3, пом. 337</p>
<p>115054, г. Москва, вн. тер. г. муниципальный округ Замоскворечье, наб. Космодамианская, д. 52, стр. 5</p>
</div>
<div class="requisites_row">
<p>Почтовый адрес</p>
<p>115201, г. Москва, ул. Котляковская, дом 8, эт. 3, пом. 337</p>
<p>115054, г. Москва, вн. тер. г. муниципальный округ Замоскворечье, наб. Космодамианская, д. 52, стр. 5</p>
</div>
<div class="requisites_row">
<p>Банк</p>

View File

@ -283,7 +283,15 @@ function setCompanyForUser($ID, $REQ, $replace = false)
помечаем админов на удаление из этой компании
*/
$admins_to_remove = $existed_client_record['PROPERTIES']['ADMINS']['VALUE'];
$current_admins = $existed_client_record['PROPERTIES']['ADMINS']['VALUE'];
foreach($current_admins AS $ca_id)
{
if(intval($ID) !== intval($ca_id))
{
array_push($admins_to_remove, $ca_id);
}
}
}
else
{
@ -1352,7 +1360,7 @@ switch($PARAM_1)
$filter['><PROPERTY_MILEAGE'] = [ !empty($REQ['MILEAGE_FROM']) ? $REQ['MILEAGE_FROM'] : 0, !empty($REQ['MILEAGE_TO']) ? $REQ['MILEAGE_TO'] : 10000000 ];
}
$total = CIBlockElement::GetList([ "SORT" => "ASC", "NAME" => "ASC" ], array_merge([ "IBLOCK_ID" => USED ? IBLOCK_ID_CATALOG_CARS_USED : IBLOCK_ID_CATALOG_CARS_NEW ], $filter), [], []);
$total = CIBlockElement::GetList([ "SORT" => "ASC", "NAME" => "ASC" ], array_merge([ "IBLOCK_ID" => USED ? IBLOCK_ID_CATALOG_CARS_USED : IBLOCK_ID_CATALOG_CARS_NEW ], $filter), [], false, []);
$result = [
"total" => $total,
"possible_volumes" => [],
@ -1549,7 +1557,7 @@ switch($PARAM_1)
}
//filter for modifications
if(!empty($REQ['MODEL_ID']))
if(!empty($REQ['MODEL_ID']) && !USED)
{
$filter_modifications = $filter;
unset($filter_modifications['PROPERTY_MODIFICATION']);

View File

@ -168,8 +168,12 @@ function OnEpilogHandler()
\Bitrix\Main\Application::getInstance()->getExceptionHandler()->setHandlerOutput(new HttpExceptionHandlerOutput());
function zerof_request($path, $query)
function zerof_request($path, $query, $timeout = 900)
{
print "zerof_request | ".$path."\n";
print_r($query);
print "\n";
$key_sha1 = strtoupper(sha1(ZEROF_PASSWORD, false));
$date = gmdate('D, d M Y H:i:s T');
@ -196,24 +200,44 @@ function zerof_request($path, $query)
}
$request = curl_init();
curl_setopt($request, CURLOPT_TIMEOUT, 900);
curl_setopt($request, CURLOPT_TIMEOUT, $timeout);
curl_setopt($request, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($request, CURLOPT_URL, $url);
curl_setopt($request, CURLOPT_CONNECTTIMEOUT, 300);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request) or die(curl_error($request));
$response = curl_exec($request);
$http_code = curl_getinfo($request, CURLINFO_HTTP_CODE);
print "ZEROF response code ".$http_code."\n";
if($http_code != 200)
{
print_r($response);
print "\n";
$check = md5($path.var_export($query, true));
$check_file = file_get_contents($_SERVER['DOCUMENT_ROOT']."/zerof-500.txt");
if(strpos($check_file, $check) < 0)
{
file_put_contents($_SERVER['DOCUMENT_ROOT']."/zerof-500.txt", $path."\n".var_export($query, true)."\n".$http_code." | ".$response."\n\n");
print "response with error logged\n";
}
print "\n";
//die();
}
curl_close($request);
sleep(1);
return $http_code === 200 ? $response : false;
}
function zerof_get_images($task_uid)
{
print "zerof_get_images | ".$task_uid."\n";
$images = [];
$tasks_car_in_new = zerof_request("/v2/tasks/find", [ "status" => "new", "value" => $task_uid, "profile" => 703 ]);
$tasks_car_in_process = zerof_request("/v2/tasks/find", [ "status" => "process", "value" => $task_uid, "profile" => 703 ]);
$tasks_car_in_pass = zerof_request("/v2/tasks/find", [ "status" => "pass", "value" => $task_uid, "profile" => 703 ]);
@ -228,6 +252,13 @@ function zerof_get_images($task_uid)
$tasks_trucks_in_pass_data = json_decode(html_entity_decode($tasks_trucks_in_pass), true);
$tasks_trucks_in_new_data = json_decode(html_entity_decode($tasks_trucks_in_new), true);
$tasks_car_in_process_data = is_array($tasks_car_in_process_data) ? $tasks_car_in_process_data : [];
$tasks_car_in_pass_data = is_array($tasks_car_in_pass_data) ? $tasks_car_in_pass_data : [];
$tasks_car_in_new_data = is_array($tasks_car_in_new_data) ? $tasks_car_in_new_data : [];
$tasks_trucks_in_process_data = is_array($tasks_trucks_in_process_data) ? $tasks_trucks_in_process_data : [];
$tasks_trucks_in_pass_data = is_array($tasks_trucks_in_pass_data) ? $tasks_trucks_in_pass_data : [];
$tasks_trucks_in_new_data = is_array($tasks_trucks_in_new_data) ? $tasks_trucks_in_new_data : [];
$tasks = array_merge(
$tasks_car_in_process_data[array_keys($tasks_car_in_process_data)[0]],
$tasks_car_in_pass_data[array_keys($tasks_car_in_pass_data)[0]],
@ -238,10 +269,14 @@ function zerof_get_images($task_uid)
);
print "\n".$task_uid." TASKS:\n";
print_r($tasks[0]);
if(isset($tasks[0]))
foreach($tasks AS $task_entry)
{
$task_string = zerof_request("/v2/tasks/".$tasks[0]['id'], null);
if(trim($task_entry['title']) === trim($task_uid))
{
print_r($task_entry);
$task_string = zerof_request("/v2/tasks/".$task_entry['id'], null);
$task = json_decode(html_entity_decode($task_string), true);
print "TASK:\n";
@ -249,9 +284,16 @@ function zerof_get_images($task_uid)
foreach($task['views'][0]['files'] AS $file)
{
$image = zerof_request("/v2/tasks/downloadfile", [ "id" => $tasks[0]['id'], "name" => $file['name'] ]);
$image = false;
$retry = 0;
while($image === false && $retry < 2)
{
$image = zerof_request("/v2/tasks/downloadfile", [ "id" => $task_entry['id'], "name" => $file['name'] ], 30);
$retry++;
}
print_r("DOWNLOADED LEN OF IMAGE FILE: ".strlen($image));
print "\n";
if(strlen($image) < 100)
{
print "IMAGE ???? ".$image."\n\n";
@ -264,8 +306,12 @@ function zerof_get_images($task_uid)
}
print "\n";
print "\n";
break;
}
}
print "zerof_get_images | ".$task_uid." END\n";
print "\n";
return $images;

View File

@ -1,101 +0,0 @@
<?
$_SERVER['DOCUMENT_ROOT'] = '/home/bitrix/www/'; // на один уровень выше, чем /cron/
define('NO_KEEP_STATISTIC', true);
define('NOT_CHECK_PERMISSIONS',true);
define('SITE_ID', 's1');
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
require($DOCUMENT_ROOT.'/bitrix/modules/main/include/prolog_before.php');
?>
<?
$xmlbody = '<?xml version="1.0" encoding="UTF-8"?><companies>';
$i = 0;
$today = date("d.m.Y");
CModule::IncludeModule("iblock");
$arSelect = Array("ID", "NAME", "PROPERTY_PHONE", "PROPERTY_PHONE_CENTRAL","PROPERTY_ADDRESS","PROPERTY_HOURS","PROPERTY_GEO", "PROPERTY_YAADRESS1","PROPERTY_YAADRESS2","PROPERTY_YADATA","PROPERTY_YAID",);
$arFilter = Array("IBLOCK_ID"=>5, "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, false, Array("nPageSize"=>333), $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$geo = explode(",", $arFields["PROPERTY_GEO_VALUE"]);
$xmlbody .= '<company>
<company-id>'.$arFields["PROPERTY_YAID_VALUE"].'</company-id>
<name lang="ru">Эволюция Автолизинга</name>
<shortname lang="ru">ЛК Эволюция</shortname>
<address lang="ru">'.$arFields["PROPERTY_YAADRESS1_VALUE"].'</address>
<country lang="ru">Россия</country>
<address-add lang="ru">'.$arFields["PROPERTY_YAADRESS2_VALUE"].'</address-add>
<phone>
<number>'.$arFields["PROPERTY_PHONE_VALUE"].'</number>
<info>Горячая линия</info>
<type>phone</type>
</phone>
<email>buy@evoleasing.ru</email>
<url>https://www.evoleasing.ru</url>
<add-url>https://t.me/evoleasingru</add-url>
<add-url>https://vk.com/evoleasing</add-url>
<info-page>https://www.evoleasing.ru/about/contacts/</info-page>
<working-time lang="ru">пн-пт 9:00-18:00</working-time>
<scheduled-working-time holiday="true">
<date>01.01.2024</date>
</scheduled-working-time>
<scheduled-working-time holiday="true">
<date>02.01.2024</date>
</scheduled-working-time>
<scheduled-working-time holiday="true">
<date>03.01.2024</date>
</scheduled-working-time>
<scheduled-working-time holiday="true">
<date>04.01.2024</date>
</scheduled-working-time>
<scheduled-working-time holiday="true">
<date>05.01.2024</date>
</scheduled-working-time>
<scheduled-working-time holiday="true">
<date>06.01.2024</date>
</scheduled-working-time>
<scheduled-working-time holiday="true">
<date>07.01.2024</date>
</scheduled-working-time>
<scheduled-working-time holiday="true">
<date>08.01.2024</date>
</scheduled-working-time>
<rubric-id>184105576</rubric-id>
<inn>9724016636</inn>
<ogrn>1207700245037</ogrn>
<actualization-date>'.$today.'</actualization-date>
<photos>
<photo url="https://www.evoleasing.ru/upload/img/logo.png" alt="Лого Эволюция Автолизинга" type="LOGO"></photo>
</photos>
<coordinates>
<lon>'.$geo[1].'</lon>
<lat>'.$geo[0].'</lat>
</coordinates>
</company>
';
?><pre><?
$i++;
print_r($i." => ".$arFields["PROPERTY_YAID_VALUE"]);
?></pre><?
}
?><pre><?
//print_r($arFields);
?></pre><?
$xmlbody .= '</companies>';
?><pre><?//print_r($xmlbody);?></pre><?
$file = $DOCUMENT_ROOT . "/upload/docs/yasprav.xml";
$handle = fopen($file, "w+");//Открываем для записи в конец.
if (!$handle) {
echo "Oшибка: файл не создался-".$text;
} else {
fputs ($handle, $xmlbody);
fclose($handle);
echo "Ok! Сохранено по <a href='https://www.evoleasing.ru/upload/docs/yasprav.xml'>ссылке!</a> ".$today;
}
?>
<?require($DOCUMENT_ROOT.'/bitrix/modules/main/include/epilog_after.php');?>

View File

@ -1,128 +0,0 @@
array (
'ACTIVE' => 'Y',
'MODIFIED_BY' => '1',
'IBLOCK_ID' => 14,
'ACTIVE_FROM' => '',
'ACTIVE_TO' => '',
'SORT' => '2',
'NAME' => 'Sollers Atlant',
'CODE' => '',
'TAGS' => '',
'PREVIEW_PICTURE' =>
array (
'name' => 'red-car.jpg',
'type' => 'image/jpeg',
'tmp_name' => '/home/bitrix/.bx_temp/sitemanager/BXTEMP-2024-02-26/22/bxu/main/31779c4299b38fe66bd226bf54868991/file1708933784318/default',
'size' => '49129',
'error' => 0,
'description' => '',
'COPY_FILE' => 'Y',
'MODULE_ID' => 'iblock',
),
'PREVIEW_TEXT' => '<div>
Выгода до
</div>
<h2><span style="font-size: 4rem;">220&nbsp;000&nbsp;₽</span></h2>
<p>
</p>
<ul class="list-column">
<li>Полноприводный пикап</li>
</ul>
<p>
</p>',
'PREVIEW_TEXT_TYPE' => 'html',
'DETAIL_TEXT' => '',
'DETAIL_TEXT_TYPE' => 'text',
'TMP_ID' => 0,
'PROPERTY_VALUES' =>
array (
39 =>
array (
'n0' =>
array (
'VALUE' => 'Sollers',
),
),
28 =>
array (
'n0' =>
array (
'VALUE' => '',
),
),
32 =>
array (
'n0' =>
array (
'VALUE' => 'Выгода до 220 000 ₽',
),
),
27 =>
array (
'n3' =>
array (
'VALUE' =>
array (
'name' => 'red-car.jpg',
'type' => 'image/jpeg',
'tmp_name' => '/home/bitrix/.bx_temp/sitemanager/BXTEMP-2024-02-26/22/bxu/main/31779c4299b38fe66bd226bf54868991/file1708933082416/default',
'size' => '49129',
'error' => 0,
),
),
'n0' =>
array (
'VALUE' =>
array (
'name' => 'gal2.jpg',
'type' => 'image/jpeg',
'tmp_name' => '/home/bitrix/.bx_temp/sitemanager/BXTEMP-2024-02-26/22/bxu/main/31779c4299b38fe66bd226bf54868991/file1708933804999/default',
'size' => '40669',
'error' => 0,
),
),
'n1' =>
array (
'VALUE' =>
array (
'name' => 'gal4.webp.jpg',
'type' => 'image/jpeg',
'tmp_name' => '/home/bitrix/.bx_temp/sitemanager/BXTEMP-2024-02-26/22/bxu/main/31779c4299b38fe66bd226bf54868991/file1708933211925/default',
'size' => '38936',
'error' => 0,
),
),
'n2' =>
array (
'VALUE' =>
array (
'name' => 'gal6.jpg',
'type' => 'image/jpeg',
'tmp_name' => '/home/bitrix/.bx_temp/sitemanager/BXTEMP-2024-02-26/22/bxu/main/31779c4299b38fe66bd226bf54868991/file1708933384717/default',
'size' => '29826',
'error' => 0,
),
),
),
),
'IPROPERTY_TEMPLATES' =>
array (
'ELEMENT_META_TITLE' => '',
'ELEMENT_META_KEYWORDS' => '',
'ELEMENT_META_DESCRIPTION' => '',
'ELEMENT_PAGE_TITLE' => '',
'ELEMENT_PREVIEW_PICTURE_FILE_ALT' => '',
'ELEMENT_PREVIEW_PICTURE_FILE_TITLE' => '',
'ELEMENT_PREVIEW_PICTURE_FILE_NAME' => '',
'ELEMENT_DETAIL_PICTURE_FILE_ALT' => '',
'ELEMENT_DETAIL_PICTURE_FILE_TITLE' => '',
'ELEMENT_DETAIL_PICTURE_FILE_NAME' => '',
),
'SEARCHABLE_CONTENT' => 'SOLLERS ATLANT
ВЫГОДА ДО 220&NBSP;000&NBSP;₽
- ПОЛНОПРИВОДНЫЙ ПИКАП
',
)

View File

@ -58,7 +58,7 @@ $this->setFrameMode(true);
stroke="white" stroke-width="2" />
</svg>
<p class="title"><?= $arParams['TOP']; ?></p>
<p>В России по лизингу легковых автомобилей по рэнкингу Эксперт РА по результатам 2022 года</p>
<p>В России по лизингу легковых автомобилей для МСБ по рэнкингу Эксперт РА по результатам 2023 года</p>
</div>
</div>
<div class="column">

View File

@ -12,8 +12,7 @@
/** @var CBitrixComponent $component */
$this->setFrameMode(true);
?>
<? if(count($arResult['ITEMS']) > 0): ?>
<? if(is_array($arResult['ITEMS']) && count($arResult['ITEMS']) > 0): ?>
<div class="container">
<h2 class="h2"><?= $arParams['TITLE']; ?></h2>
<div class="logos_list">
@ -33,5 +32,4 @@ $this->setFrameMode(true);
<?*/?>
</div>
</div>
<? endif; ?>

View File

@ -13,8 +13,7 @@
$this->setFrameMode(true);
?>
<?/*<h2 class="h2">Спецпредложения и акции на тракторы в лизинг</h2>*/?>
<? if(count($arResult['OFFERS']) > 0): ?>
<? if(is_array($arResult['OFFERS']) && count($arResult['OFFERS']) > 0): ?>
<div class="container">
<h2 class="h2">Популярная специальная техника в лизинг</h2>
<div class="special_list">
@ -29,5 +28,4 @@ $this->setFrameMode(true);
<? endforeach; ?>
</div>
</div>
<? endif; ?>

View File

@ -12,8 +12,7 @@
/** @var CBitrixComponent $component */
$this->setFrameMode(true);
?>
<? if(count($arResult['SECTIONS']) > 0): ?>
<? if(is_array($arResult['SECTIONS']) && count($arResult['SECTIONS']) > 0): ?>
<div class="container">
<h2 class="h2"><?= $arParams['TITLE']; ?></h2>
<div class="types_grid">
@ -21,16 +20,17 @@ $this->setFrameMode(true);
<div class="grid_item">
<p class="h2"><?= $section['NAME']; ?></p>
<ul>
<? if(is_array($section['ITEMS'])): ?>
<? foreach($section['ITEMS'] AS $item): ?>
<li>
<a href="<?= $arParams['PATH']; ?><?= $item['CODE']; ?><?= isset($arParams['BRAND']) ? "/".$arParams['BRAND_SLUG']."/" : ""; ?>"><?= $item['NAME']; ?></a>
</li>
<? endforeach; ?>
<? endif; ?>
</ul>
<img src="<?= $section['PICTURE']; ?>" alt="<?= $section['NAME']; ?>"/>
</div>
<? endforeach; ?>
</div>
</div>
<? endif; ?>

View File

@ -194,24 +194,31 @@ $this->setFrameMode(true);
)
); ?>
<? if(!empty($arResult['DETAIL_TEXT'])): ?>
<? if(!isset($arResult['TYPE']) || !isset(($arResult['BRAND']))): ?>
<section>
<div class="container">
<h2 class="h2">Преимущества работы с компанией “Эволюция”</h2>
<?/*
<h2 class="h2">Преимущества <?= mb_strtolower($arResult['TYPE_GENITIVE']); ?> <?= $arResult['BRAND_NAME']; ?></h2>
*/?>
<h2 class="h2"><?= $arResult['PROPERTIES']['MARKETING_TEXT_TITLE']['VALUE']; ?></h2>
<div class="content_columns">
<div class="column">
<p>Таким образом, внедрение современных методик требует определения и уточнения новых предложений! В рамках спецификации современных стандартов, действия представителей оппозиции, инициированные исключительно синтетически, преданы социально-демократической анафеме.</p>
<p>Однозначно, ключевые особенности структуры проекта лишь добавляют фракционных разногласий и объективно рассмотрены соответствующими инстанциями. Не следует, однако, забывать, что разбавленное изрядной долей эмпатии, рациональное мышление выявляет срочную потребность дальнейших направлений развития.</p>
<p>Однозначно, акционеры крупнейших компаний, вне зависимости от их уровня, должны быть в равной степени предоставлены сами себе. Безусловно, понимание сути ресурсосберегающих технологий однозначно фиксирует необходимость стандартных подходов. Современные технологии достигли такого уровня, что начало повседневной работы по формированию позиции создаёт необходимость включения в производственный план целого ряда внеочередных мероприятий с учётом комплекса благоприятных перспектив.</p>
<?= $arResult['DETAIL_TEXT']; ?>
</div>
<? if(!empty($arResult['DETAIL_PICTURE'])): ?>
<div class="column">
<img src="/images/thumb_content.jpg" alt="" />
</div>
<img src="<?= $arResult['DETAIL_PICTURE']; ?>" alt="<?= $arResult['NAME']; ?>"/>
</div>
<? endif; ?>
</div>
</div>
</section>
<? endif; ?>
</section>
<? endif; ?>
<?
$APPLICATION->IncludeComponent(
"evolution:form.leasing",

View File

@ -65,13 +65,16 @@
<svg data-name="Layer 21" height="32" id="Layer_21" viewBox="0 0 24 24" width="32" xmlns="https://www.w3.org/2000/svg"><path fill="#0077FF" d="M21.54736,7H18.25688a.74281.74281,0,0,0-.65452.39156s-1.31237,2.41693-1.73392,3.231C14.73438,12.8125,14,12.125,14,11.10863V7.60417A1.10417,1.10417,0,0,0,12.89583,6.5h-2.474a1.9818,1.9818,0,0,0-1.751.8125s1.25626-.20312,1.25626,1.48958c0,.41974.02162,1.62723.04132,2.64a.72943.72943,0,0,1-1.273.50431,21.54029,21.54029,0,0,1-2.4982-4.54359A.69314.69314,0,0,0,5.5668,7C4.8532,7,3.42522,7,2.57719,7a.508.508,0,0,0-.47969.68481C3.00529,10.17487,6.91576,18,11.37917,18h1.87865A.74219.74219,0,0,0,14,17.25781V16.12342a.7293.7293,0,0,1,1.22868-.5315l2.24861,2.1127A1.08911,1.08911,0,0,0,18.223,18h2.95281c1.42415,0,1.42415-.98824.64768-1.75294-.54645-.53817-2.51832-2.61663-2.51832-2.61663A1.01862,1.01862,0,0,1,19.2268,12.307c.63737-.83876,1.67988-2.21175,2.122-2.79993C21.95313,8.70313,23.04688,7,21.54736,7Z"/></svg>
</a>
</div>
<p style="line-height: 18px; padding-bottom: 10px;">© ООО "ЛК Эволюция"<br>г. Москва, Котляковская ул., д. 8</p>
<p style="line-height: 18px; padding-bottom: 10px;">© ООО "ЛК Эволюция"<br>115054, г. Москва, наб. Космодамианская, д. 52, стр. 5</p>
<div>
<a href="/upload/docs/personal_date_policy.pdf" target="_blank">Обработка персональных данных</a>
</div>
<div>
<a href="/general-terms/">Общие условия договора лизинга</a>
</div>
<div>
<a href="/upload/docs/antifraud.pdf" target="_blank">Противодействие&nbsp;мошенничеству</a>
</div>
</div>
</div>
</footer>

View File

@ -814,3 +814,6 @@
.carrotquest-messenger-button-position {
bottom: 60px!important;
}
.carrotquest-messenger-right_bottom {
display: none;
}

View File

@ -970,3 +970,7 @@
.carrotquest-messenger-button-position {
bottom: 60px!important;
}
.carrotquest-messenger-right_bottom {
display: none;
}

View File

@ -23,6 +23,9 @@ use Bitrix\Seo\SitemapRuntimeTable;
Main\Loader::includeModule('seo');
ob_get_clean();
error_reporting(E_ERROR);
$arrContextOptions = [
"ssl" => [
"verify_peer"=>false,
@ -209,13 +212,13 @@ while($model_search_ob = $models_search_res->GetNextElement())
$bitrix_existed_models[] = $model_existed['ID'];
}
print "bitrix_existed_models:\n";
print_r($bitrix_existed_models);
print "\n\n";
//print "bitrix_existed_models:\n";
//print_r($bitrix_existed_models);
//print "\n\n";
print "bitrix_models:\n";
print_r($bitrix_models);
print "\n\n";
//print "bitrix_models:\n";
//print_r($bitrix_models);
//print "\n\n";
//добавляем новые марки из api
@ -226,7 +229,7 @@ foreach($api_data AS $brand_uid => $brand)
$brand_element = new CIBlockElement;
$brand_payload = [ "IBLOCK_ID" => IBLOCK_ID_BRANDS_USED, "NAME" => $brand['name'], "CODE" => $code, "PROPERTY_VALUES" => [ "UID" => $brand_uid ], "ACTIVE" => "Y", ];
print $brand['name']." - ".$brand_uid."\n";
// print $brand['name']." - ".$brand_uid."\n";
if($brand_new_id = $brand_element->Add($brand_payload))
{
$bitrix_brands[ $brand_uid ] = $brand_new_id;
@ -243,11 +246,11 @@ foreach($api_data AS $brand_uid => $brand)
$el->Update($brand_existed['ID'], ["ACTIVE" => "Y"]);
}
}
print "\n";
// print "\n";
print_r($brand['models']);
print "\n";
print "\n";
// print_r($brand['models']);
// print "\n";
// print "\n";
//добавляем новые модели из api
foreach($brand['models'] AS $model_uid => $model)
@ -273,12 +276,14 @@ foreach($api_data AS $brand_uid => $brand)
$el->Update($model_existed['ID'], ["ACTIVE" => "Y"]);
}
}
print "\n";
// print "\n";
}
}
function resize_image($image, $filename, $width, $height, $quality)
{
print "resize_image ".$filename." | ".$width."x".$height."\n";
$tempfile = tmpfile();
fwrite($tempfile, $image);
$tempfile_metadata = stream_get_meta_data($tempfile);
@ -305,8 +310,12 @@ function resize_image($image, $filename, $width, $height, $quality)
imagedestroy($resized);
imagedestroy($panel);
print "resize_image | make file array\n";
$file = CFile::MakeFileArray($tempfile_filename);
$file['name'] = $filename.".".$ext;
print "resize_image | make file array\n";
$saved_file_id = CFile::SaveFile($file, "used");
fclose($tempfile);
@ -314,6 +323,83 @@ function resize_image($image, $filename, $width, $height, $quality)
return $saved_file_id;
}
function set_images($code, $car_id, $delete = false, $properties = [])
{
if($delete)
{
if($properties['PHOTO']['PROPERTY_VALUE_ID'] !== "")
{
CIBlockElement::SetPropertyValueCode($car_id, "PHOTO", [ $properties['PHOTO']['PROPERTY_VALUE_ID'] => [ "VALUE" => [ "MODULE_ID" => "iblock", "del" => "Y" ] ] ] );
}
if(is_array($properties['PHOTOS_1080']['PROPERTY_VALUE_ID']) && count($properties['PHOTOS_1080']['PROPERTY_VALUE_ID']) > 0)
{
$photos = [];
foreach($properties['PHOTOS_1080']['PROPERTY_VALUE_ID'] AS $k => $v)
{
$photos[ $v ] = [ "VALUE" => [ "MODULE_ID" => "iblock", "del" => "Y" ] ];
}
CIBlockElement::SetPropertyValueCode($car_id, "PHOTOS_1080", $photos );
}
if(is_array($properties['PHOTOS_480']['PROPERTY_VALUE_ID']) && count($properties['PHOTOS_480']['PROPERTY_VALUE_ID']) > 0)
{
$photos = [];
foreach($properties['PHOTOS_480']['PROPERTY_VALUE_ID'] AS $k => $v)
{
$photos[ $v ] = [ "VALUE" => [ "MODULE_ID" => "iblock", "del" => "Y" ] ];
}
CIBlockElement::SetPropertyValueCode($car_id, "PHOTOS_480", $photos );
}
if(is_array($properties['PHOTOS_120']['PROPERTY_VALUE_ID']) && count($properties['PHOTOS_120']['PROPERTY_VALUE_ID']) > 0)
{
$photos = [];
foreach($properties['PHOTOS_120']['PROPERTY_VALUE_ID'] AS $k => $v)
{
$photos[ $v ] = [ "VALUE" => [ "MODULE_ID" => "iblock", "del" => "Y" ] ];
}
CIBlockElement::SetPropertyValueCode($car_id, "PHOTOS_120", $photos );
}
}
$images = zerof_get_images($code);
if(count($images) > 0)
{
$photo_property_value = null;
$photos_1080_property_values = [];
$photos_480_property_values = [];
$photos_120_property_values = [];
foreach($images AS $k => $image)
{
$saved_file_id_1080 = resize_image($image, $code."_".($k + 1)."_1080", 1440, 1080, 60);
$saved_file_id_480 = resize_image($image, $code."_".($k + 1)."_480", 640, 480, 60);
$saved_file_id_120 = resize_image($image, $code."_".($k + 1)."_120", 160, 120, 60);
$photos_1080_property_values[] = [ "VALUE" => $saved_file_id_1080, ];
$photos_480_property_values[] = [ "VALUE" => $saved_file_id_480, ];
$photos_120_property_values[] = [ "VALUE" => $saved_file_id_120, ];
if($k === 0)
{
$photo_property_value = resize_image($image, $code."_".($k + 1)."_500", 500, 300, 60);
}
}
print "set images | ".$code."\n";
CIBlockElement::SetPropertyValueCode($car_id, "PHOTO", $photo_property_value);
CIBlockElement::SetPropertyValueCode($car_id, "PHOTOS_1080", $photos_1080_property_values);
CIBlockElement::SetPropertyValueCode($car_id, "PHOTOS_480", $photos_480_property_values);
CIBlockElement::SetPropertyValueCode($car_id, "PHOTOS_120", $photos_120_property_values);
}
print "set_images END\n";
return;
}
$c = 0;
foreach($json as $car)
{
@ -369,36 +455,7 @@ foreach($json as $car)
if($new_used_car_id = $used_car_element->Add($used_car_payload))
{
//добавляем новое предложение в bitrix
$images = zerof_get_images($code);
if(count($images) > 0)
{
$photo_property_value = null;
$photos_1080_property_values = [];
$photos_480_property_values = [];
$photos_120_property_values = [];
foreach($images AS $k => $image)
{
$saved_file_id_1080 = resize_image($image, $code."_".($k + 1)."_1080", 1440, 1080, 60);
$saved_file_id_480 = resize_image($image, $code."_".($k + 1)."_480", 640, 480, 60);
$saved_file_id_120 = resize_image($image, $code."_".($k + 1)."_120", 160, 120, 60);
$photos_1080_property_values[] = [ "VALUE" => $saved_file_id_1080, ];
$photos_480_property_values[] = [ "VALUE" => $saved_file_id_480, ];
$photos_120_property_values[] = [ "VALUE" => $saved_file_id_120, ];
if($k === 0)
{
$photo_property_value = resize_image($image, $code."_".($k + 1)."_500", 500, 300, 60);
}
}
CIBlockElement::SetPropertyValueCode($new_used_car_id, "PHOTO", $photo_property_value);
CIBlockElement::SetPropertyValueCode($new_used_car_id, "PHOTOS_1080", $photos_1080_property_values);
CIBlockElement::SetPropertyValueCode($new_used_car_id, "PHOTOS_480", $photos_480_property_values);
CIBlockElement::SetPropertyValueCode($new_used_car_id, "PHOTOS_120", $photos_120_property_values);
}
set_images($code, $new_used_car_id, false);
print "\n";
}
@ -409,10 +466,16 @@ foreach($json as $car)
while($car_search_ob = $cars_search_res->GetNextElement())
{
$car_existed = $car_search_ob->GetFields();
$car_existed['PROPERTIES'] = $car_search_ob->GetProperties();
$el = new CIBlockElement;
$el->Update($car_existed['ID'], ["ACTIVE" => "Y", "NAME" => $name, "SORT" => 500]);
if(in_array("updateimages", $argv))
{
set_images($code, $car_existed['ID'], true, $car_existed['PROPERTIES']);
}
CIBlockElement::SetPropertyValuesEx($car_existed['ID'], IBLOCK_ID_CATALOG_CARS_USED, $PROPERTY_VALUES, []);
}
}
@ -423,9 +486,10 @@ foreach($json as $car)
//скрываем предложения, которые есть в bitrix но которых более нет в api
foreach($bitrix_cars AS $code => $car_id)
{
print "CAR ".$code." => ".$car_id."\n";
if(!in_array($code, $api_cars))
{
print "HIDE CAR ".$code." => ".$car_id."\n";
$el = new CIBlockElement;
$el->Update($car_id, ["ACTIVE" => "N", "SORT" => 1]);
}
@ -434,9 +498,10 @@ foreach($bitrix_cars AS $code => $car_id)
//скрываем марки, которые есть в bitrix но которых более нет в api
foreach($bitrix_existed_brands AS $brand_id)
{
print "BRAND ".$ibrand_idd."\n";
if(!in_array($brand_id, $api_existed_brands))
{
print "HIDE BRAND ".$ibrand_id."\n";
$el = new CIBlockElement;
$el->Update($brand_id, ["ACTIVE" => "N"]);
}
@ -445,9 +510,10 @@ foreach($bitrix_existed_brands AS $brand_id)
//скрываем модели, которые есть в bitrix но которых более нет в api
foreach($bitrix_existed_models AS $model_id)
{
print "MODEL ".$model_id."\n";
if(!in_array($model_id, $api_existed_models))
{
print "HIDE MODEL ".$model_id."\n";
$el = new CIBlockElement;
$el->Update($model_id, ["ACTIVE" => "N"]);
}

79
local/usedxml.php Normal file
View File

@ -0,0 +1,79 @@
<?#!/usr/bin/php -q
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("БУ фид");
$xmlbody = '<?xml version="1.0" encoding="UTF-8"?><data><cars>';
$i = 0;
$today = date("d.m.Y");
CModule::IncludeModule("iblock");
// $arSelect = Array("ID", "NAME", "PROPERTY_CONTRACT", "PROPERTY_VEHICLE_TYPE","PROPERTY_VEHICLE_SUBTYPE","PROPERTY_BRAND","PROPERTY_MODEL", "PROPERTY_MODIFICATION","PROPERTY_VIN","PROPERTY_YEAR","PROPERTY_MILEAGE","PROPERTY_MILEAGE","PROPERTY_ENGINE_HOURS","PROPERTY_ENGINE_POWER","PROPERTY_ENGINE_VOLUME","PROPERTY_ENGINE_FUEL","PROPERTY_PARKING_CITY","PROPERTY_PARKING_REGION","PROPERTY_PRICE","PROPERTY_PRICE_WITH_DISCOUNT","PROPERTY_RESERVE_DATE","PROPERTY_SPECIAL_OFFER","PROPERTY_LEASING_AVAILABLE","PROPERTY_AFTER_ACCIDENT","PROPERTY_DESCRIPTION","PROPERTY_PHOTO","PROPERTY_PHOTOS_1080","PROPERTY_PHOTOS_480","PROPERTY_PHOTOS_120");
$arSelect = Array("ID", "NAME", "PROPERTY_CONTRACT", "PROPERTY_VEHICLE_TYPE","PROPERTY_VEHICLE_SUBTYPE","PROPERTY_BRAND","PROPERTY_MODEL", "PROPERTY_MODIFICATION","PROPERTY_VIN","PROPERTY_YEAR","PROPERTY_MILEAGE","PROPERTY_MILEAGE","PROPERTY_ENGINE_HOURS","PROPERTY_ENGINE_POWER","PROPERTY_ENGINE_VOLUME","PROPERTY_ENGINE_FUEL","PROPERTY_PARKING_CITY","PROPERTY_PARKING_REGION","PROPERTY_PRICE","PROPERTY_PRICE_WITH_DISCOUNT","PROPERTY_RESERVE_DATE","PROPERTY_SPECIAL_OFFER","PROPERTY_LEASING_AVAILABLE","PROPERTY_AFTER_ACCIDENT","PROPERTY_DESCRIPTION","PROPERTY_PHOTO");
$arFilter = Array("IBLOCK_ID"=>2, "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, false, Array("nPageSize"=>1000), $arSelect);
while ($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$arFields['PROPERTIES'] = $ob->GetProperties();
$brand = CIBlockElement::GetByID($arFields["PROPERTY_BRAND_VALUE"]);
$ar_brand = $brand->GetNext();
$model = CIBlockElement::GetByID($arFields["PROPERTY_MODEL_VALUE"]);
$ar_model = $model->GetNext();
$mainfoto = CFile::GetPath($arFields["PROPERTY_PHOTO_VALUE"]);
if ($arFields["PROPERTY_PRICE_WITH_DISCOUNT_VALUE"]!=0){
$money = $arFields["PROPERTY_PRICE_WITH_DISCOUNT_VALUE"];
}
else {
$money = $arFields["PROPERTY_PRICE_VALUE"];
}
$xmlbody .= '
<car>
<mark_id>'.$ar_brand['NAME'].'</mark_id>
<folder_id>'.$ar_model['NAME'].'</folder_id>
<modification_id>'.$arFields["PROPERTY_MODIFICATION_VALUE"].'</modification_id>
<url>https://www.evoleasing.ru/izt/'.$arFields["PROPERTY_CONTRACT_VALUE"].'/</url>
<availability>в наличии</availability>
<custom>растаможен</custom>
<run>'.$arFields["PROPERTY_MILEAGE_VALUE"].'</run>
<year>'.$arFields["PROPERTY_YEAR_VALUE"].'</year>
<price>'.$money.'</price>
<currency>RUR</currency>
<vin>'.$arFields["PROPERTY_VIN_VALUE"].'</vin>
<images>
<image>https://www.evoleasing.ru'.$mainfoto.'</image>
</images>
</car>';
$i++;
// print $arFields["ID"]." => ".$arFields["NAME"]."<br/>";
?><pre><?
print_r($i." => ".$arFields["NAME"]);
// print_r("mainfoto => ".$mainfoto);
?></pre><?
}
?><pre><?
//print_r($arFields);
?></pre><?
$xmlbody .= '</cars></data>';
?><pre><?//print_r($xmlbody);?></pre><?
$file = $_SERVER["DOCUMENT_ROOT"] . "/upload/docs/usedxml.xml";
$handle = fopen($file, "w+");//Открываем для записи в конец.
if (!$handle) {
echo "Oшибка: файл не создался-".$text;
} else {
fputs ($handle, $xmlbody);
fclose($handle);
echo "Ok! Сохранено по <a href='https://www.evoleasing.ru/upload/docs/usedxml.xml'>ссылке!</a> ".$today;
}
?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>