fixes for ERIR creation process, new template for main page slider

This commit is contained in:
merelendor 2024-06-10 08:37:19 +03:00
parent 3abc215186
commit 2d7542cbce
7 changed files with 159 additions and 157 deletions

View File

@ -1,42 +1,53 @@
<? <?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
?> ?>
<? <? if(isset($_GET['slide'])): ?>
$APPLICATION->IncludeComponent( <?
"evolution:special.offers.cars", $APPLICATION->IncludeComponent(
"", "evolution:slider.main",
[] "single",
); [],
?> );
<section data-page="leasing_special"> ?>
<div class="container"> <? endif; ?>
<? <? if(!isset($_GET['slide'])): ?>
$APPLICATION->IncludeComponent( <?
"evolution:programs.offers.banners", $APPLICATION->IncludeComponent(
"", "evolution:special.offers.cars",
Array( "",
"BANNERS" => [], []
"PAGINATION" => "N", );
) ?>
); <section data-page="leasing_special">
?> <div class="container">
</div> <?
</section> $APPLICATION->IncludeComponent(
<section data-page="catalog" id="catalog"> "evolution:programs.offers.banners",
<div class="container">
<div id="view"></div>
<div class="pageWithSide">
<div class="leftColumn">
</div>
<aside class="rightColumn">
<? $APPLICATION->IncludeComponent(
"evolution:banners.inner",
"", "",
Array( Array(
"BANNERS" => [],
"PAGINATION" => "N",
) )
); ?> );
</aside> ?>
</div> </div>
</div> </section>
</section> <section data-page="catalog" id="catalog">
<div class="container">
<div id="view"></div>
<div class="pageWithSide">
<div class="leftColumn">
</div>
<aside class="rightColumn">
<? $APPLICATION->IncludeComponent(
"evolution:banners.inner",
"",
Array(
)
); ?>
</aside>
</div>
</div>
</section>
<? endif; ?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

View File

@ -422,10 +422,9 @@ function prepare_advertiser_request($arFields, $properties)
return $response; return $response;
} }
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "OnBeforeIBlockElementAddHandler"); AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "OnBeforeIBlockElementAddHandler");
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler"); AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler");
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "OnBeforeIBlockElementUpdateHandler"); AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "OnBeforeIBlockElementUpdateHandler");
//AddEventHandler("iblock", "OnIBlockElementSetPropertyValuesEx", "OnIBlockElementSetPropertyValuesExHandler");
function OnBeforeIBlockElementAddHandler(&$arFields) function OnBeforeIBlockElementAddHandler(&$arFields)
{ {
@ -450,7 +449,6 @@ function OnBeforeIBlockElementAddHandler(&$arFields)
if(!is_null($arFields['PROPERTY_VALUES']['ADVERTISING'])) if(!is_null($arFields['PROPERTY_VALUES']['ADVERTISING']))
{ {
//if($arFields['IBLOCK_ID'] === IBLOCK_ID_CATALOG_CARS_USED && is_null($arFields['PROPERTY_VALUES']['SPECIAL_OFFER']))
if($arFields['IBLOCK_ID'] === IBLOCK_ID_CATALOG_CARS_USED) if($arFields['IBLOCK_ID'] === IBLOCK_ID_CATALOG_CARS_USED)
{ {
return true; return true;
@ -486,62 +484,56 @@ function OnAfterIBlockElementAddHandler(&$arFields)
$properties[$res_arr['CODE']] = $res_arr['ID']; $properties[$res_arr['CODE']] = $res_arr['ID'];
} }
/* ????????
if(isset($properties['ADVERTISING'])) if(isset($properties['ADVERTISING']))
{ {
if(is_array($arFields['PROPERTY_VALUES'][$properties['ADVERTISING']])) if(DEBUG_IBLOCK_CYCLE)
{ {
if(!is_array($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']])) file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add_after_adv_".$arFields['IBLOCK_ID'].".txt", var_export($arFields, true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
{ file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add_after_adv_".$arFields['IBLOCK_ID']."_check_flag.txt", var_export($arFields['PROPERTY_VALUES'][$properties['ADVERTISING']], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
//если ERIR пуст
//запускаем получение ЕРИР
$arFields['ACTIVE'] = "Y";
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']] = [ array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']])[0] => [ 'VALUE' => '' ]];
}
} }
}
*/
if(isset($properties['ADVERTISING'])) if(!is_null($arFields['PROPERTY_VALUES']['ADVERTISING']) || (isset($arFields['PROPERTY_VALUES'][$properties['ADVERTISING']][0]['VALUE']) && $arFields['PROPERTY_VALUES'][$properties['ADVERTISING']][0]['VALUE'] !== ""))
{
if(!is_null($arFields['PROPERTY_VALUES']['ADVERTISING']))
{ {
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add_after_adv_".$arFields['IBLOCK_ID'].".txt", var_export($arFields['CODE'], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
//if($arFields['IBLOCK_ID'] === IBLOCK_ID_CATALOG_CARS_USED && is_null($arFields['PROPERTY_VALUES']['SPECIAL_OFFER']))
if(method_exists('\CIBlock', 'clearIblockTagCache')) if(method_exists('\CIBlock', 'clearIblockTagCache'))
{ {
if(DEBUG_IBLOCK_CYCLE)
{
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add_after_cc_1_".$arFields['IBLOCK_ID'].".txt", var_export($arFields['IBLOCK_ID'], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
}
\CIBlock::enableClearTagCache(); \CIBlock::enableClearTagCache();
\CIBlock::clearIblockTagCache($arFields['IBLOCK_ID']); \CIBlock::clearIblockTagCache($arFields['IBLOCK_ID']);
\CIBlock::DisableClearTagCache(); \CIBlock::DisableClearTagCache();
} }
else
{
BXClearCache(true);
(new \Bitrix\Main\Data\ManagedCache())->cleanAll(); BXClearCache(true);
(new \CStackCacheManager())->CleanAll();
} (new \Bitrix\Main\Data\ManagedCache())->cleanAll();
(new \CStackCacheManager())->CleanAll();
if(method_exists('\CHTMLPagesCache', 'IsCompositeEnabled') && \CHTMLPagesCache::IsCompositeEnabled()) if(method_exists('\CHTMLPagesCache', 'IsCompositeEnabled') && \CHTMLPagesCache::IsCompositeEnabled())
{ {
\CHTMLPagesCache::CleanAll(); \CHTMLPagesCache::CleanAll();
} }
BXClearCache(true);
$GLOBALS["CACHE_MANAGER"]->CleanAll();
$GLOBALS["stackCacheManager"]->CleanAll();
$taggedCache = \Bitrix\Main\Application::getInstance()->getTaggedCache();
$taggedCache->deleteAllTags();
$page = \Bitrix\Main\Composite\Page::getInstance();
$page->deleteAll();
if($arFields['IBLOCK_ID'] === IBLOCK_ID_CATALOG_CARS_USED) if($arFields['IBLOCK_ID'] === IBLOCK_ID_CATALOG_CARS_USED)
{ {
return true; return true;
} }
//запускаем получение ЕРИР //запускаем получение ЕРИР
sleep(10);
$advertiser_response = prepare_advertiser_request($arFields, $properties); $advertiser_response = prepare_advertiser_request($arFields, $properties);
if($advertiser_response['status'] === "success") if($advertiser_response['status'] === "success")
{ {
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_arfields.txt", var_export($arFields, true));
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_properties.txt", var_export($properties, true));
if(DEBUG_ADV_CYCLE) if(DEBUG_ADV_CYCLE)
{ {
file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_response.txt", var_export(["ID" => $arFields['ID'], "response" => $advertiser_response], true)); file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_response.txt", var_export(["ID" => $arFields['ID'], "response" => $advertiser_response], true));
@ -561,18 +553,8 @@ function OnAfterIBlockElementAddHandler(&$arFields)
$arFields['ACTIVE'] = 'N'; $arFields['ACTIVE'] = 'N';
} }
/*
$element = new CIBlockElement; $element = new CIBlockElement;
$result = $element->Update($arFields['ID'], [ "ACTIVE" => "Y" ]); $result = $element->Update($arFields['ID'], [ "ACTIVE" => "Y", "PROPERTY_VALUES" => $arFields['PROPERTY_VALUES'], ]);
CIBlockElement::SetPropertyValuesEx($arFields['ID'], $arFields['IBLOCK_ID'], [
"ADVERTISING_ERIR" => "12345",
"ADVERTISING_SAMPLE_URL" => "67890",
], []);
//ставим элемент на публикацию
$arFields['ACTIVE'] = "Y";
*/
} }
} }
} }
@ -604,46 +586,58 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
if(is_array($arFields['PROPERTY_VALUES'][$properties['ADVERTISING']])) if(is_array($arFields['PROPERTY_VALUES'][$properties['ADVERTISING']]))
{ {
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_adv_2.txt", var_export([ "ID" => $arFields['ID'], ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND); file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_adv_2.txt", var_export([ "ID" => $arFields['ID'], ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_adv_values_on_update.txt", var_export($arFields, true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
if($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']][array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']])[0]]['VALUE'] === "") if($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']][array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']])[0]]['VALUE'] === "")
{ {
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_adv_3.txt", var_export([ "ID" => $arFields['ID'], ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND); if(isset($arFields['PROPERTY_VALUES']['ADVERTISING_ERIR']) && !empty($arFields['PROPERTY_VALUES']['ADVERTISING_ERIR']))
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_update_before_".$arFields['IBLOCK_ID'].".txt", var_export([ "ID" => $arFields['ID'], ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND); {
//проверка для избежания двойного запроса из-за особенностей архитектуры передачи параметров Битрикса
return true;
}
if(DEBUG_ADV_CYCLE)
{
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_adv_3.txt", var_export([ "ID" => $arFields['ID'], ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_update_before_".$arFields['IBLOCK_ID'].".txt", var_export([ "ID" => $arFields['ID'], ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
}
//это реклама, ЕРИР нет и его надо получить //это реклама, ЕРИР нет и его надо получить
/*
CIBlockElement::SetPropertyValuesEx($arFields['ID'], $arFields['IBLOCK_ID'], [
"ADVERTISING_ERIR" => "12345",
"ADVERTISING_SAMPLE_URL" => "67890",
], []);
*/
if(method_exists('\CIBlock', 'clearIblockTagCache')) if(method_exists('\CIBlock', 'clearIblockTagCache'))
{ {
if(DEBUG_IBLOCK_CYCLE)
{
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add_after_cc_1_".$arFields['IBLOCK_ID'].".txt", var_export($arFields['IBLOCK_ID'], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
}
\CIBlock::enableClearTagCache(); \CIBlock::enableClearTagCache();
\CIBlock::clearIblockTagCache($arFields['IBLOCK_ID']); \CIBlock::clearIblockTagCache($arFields['IBLOCK_ID']);
\CIBlock::DisableClearTagCache(); \CIBlock::DisableClearTagCache();
} }
else
{
BXClearCache(true);
(new \Bitrix\Main\Data\ManagedCache())->cleanAll(); BXClearCache(true);
(new \CStackCacheManager())->CleanAll();
} (new \Bitrix\Main\Data\ManagedCache())->cleanAll();
(new \CStackCacheManager())->CleanAll();
if(method_exists('\CHTMLPagesCache', 'IsCompositeEnabled') && \CHTMLPagesCache::IsCompositeEnabled()) if(method_exists('\CHTMLPagesCache', 'IsCompositeEnabled') && \CHTMLPagesCache::IsCompositeEnabled())
{ {
\CHTMLPagesCache::CleanAll(); \CHTMLPagesCache::CleanAll();
} }
BXClearCache(true);
$GLOBALS["CACHE_MANAGER"]->CleanAll();
$GLOBALS["stackCacheManager"]->CleanAll();
$taggedCache = \Bitrix\Main\Application::getInstance()->getTaggedCache();
$taggedCache->deleteAllTags();
$page = \Bitrix\Main\Composite\Page::getInstance();
$page->deleteAll();
$advertiser_response = prepare_advertiser_request($arFields, $properties); $advertiser_response = prepare_advertiser_request($arFields, $properties);
if($advertiser_response['status'] === "success") if($advertiser_response['status'] === "success")
{ {
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_arfields.txt", var_export($arFields, true));
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_properties.txt", var_export($properties, true));
if(DEBUG_ADV_CYCLE) if(DEBUG_ADV_CYCLE)
{ {
file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_response.txt", var_export(["ID" => $arFields['ID'], "response" => $advertiser_response], true)); file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_response.txt", var_export(["ID" => $arFields['ID'], "response" => $advertiser_response], true));
@ -662,32 +656,6 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_ID']] = ''; $arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_ID']] = '';
$arFields['ACTIVE'] = 'N'; $arFields['ACTIVE'] = 'N';
} }
/* в изменение, принудительный сброс кеша
if (method_exists('\CIBlock', 'clearIblockTagCache'))
{
\CIBlock::enableClearTagCache();
foreach ($iblockIds as $iblockId)
{
\CIBlock::clearIblockTagCache($iblockId);
}
\CIBlock::DisableClearTagCache();
}
else
{
BXClearCache(true);
(new \Bitrix\Main\Data\ManagedCache())->cleanAll();
(new \CStackCacheManager())->CleanAll();
}
if (method_exists('\CHTMLPagesCache', 'IsCompositeEnabled') && \CHTMLPagesCache::IsCompositeEnabled())
{
\CHTMLPagesCache::CleanAll();
}
*/
} }
} }
else else
@ -709,31 +677,7 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
} }
} }
/*
$res = CIBlock::GetProperties($arFields['IBLOCK_ID'], [], []);
$properties = [];
while($res_arr = $res->GetNext())
{
$properties[$res_arr['CODE']] = $res_arr['ID'];
}
if(isset($properties['ADVERTISING']))
{
if(is_array($arFields['PROPERTY_VALUES'][$properties['ADVERTISING']]))
{
}
}
file_put_contents($_SERVER['DOCUMENT_ROOT']."/iblock_properties.txt", var_export($properties, true));
*/
return true; return true;
} }
function OnIBlockElementSetPropertyValuesExHandler()
{
}
?> ?>

View File

@ -23,6 +23,7 @@ if($this->StartResultCache(60*60*24, md5(var_export($_POST, true))))
$sort = Array("SORT" => "ASC", "NAME" => "ASC"); $sort = Array("SORT" => "ASC", "NAME" => "ASC");
$filter = [ "IBLOCK_ID" => 11 ]; $filter = [ "IBLOCK_ID" => 11 ];
if(!isset($_GET['advertise'])) { $filter['ACTIVE'] = "Y"; } if(!isset($_GET['advertise'])) { $filter['ACTIVE'] = "Y"; }
if(isset($_GET['advertise'])) { $filter['ID'] = $_GET['slide']; }
$options = Array("nPageSize" => 1000); $options = Array("nPageSize" => 1000);
$res = CIBlockElement::GetList($sort, $filter, false, $options); $res = CIBlockElement::GetList($sort, $filter, false, $options);

View File

@ -42,10 +42,7 @@ $(document).ready(function()
}); });
if(document.location.href.indexOf("advertise") < 0) $('#main_slider .slider_item:first-child').click();
{
$('#main_slider .slider_item:first-child').click();
}
let item_width = $("#main_slider .slider_item").outerWidth(); let item_width = $("#main_slider .slider_item").outerWidth();

View File

@ -0,0 +1,49 @@
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponentTemplate $this */
/** @var string $templateName */
/** @var string $templateFile */
/** @var string $templateFolder */
/** @var string $componentPath */
/** @var CBitrixComponent $component */
$this->setFrameMode(true);
?>
<? $colors = ["#1C01A9", "#A8026B", "#04A8A4", ]; ?>
<section id="main_slider">
<div class="container">
<div class="main_slider_swiper">
<p class="slider_active_title"><?= str_replace("", "<span style='font-family: montserrat; font-weight: 200;'>₽</span>", $arResult['SLIDES'][0]['NAME']); ?></p>
</div>
<?/*
<div class="slider_list">
<div class="scrolled">
<div
id="slider_button_<?= $arResult['SLIDES'][0]['ID']; ?>"
class="slider_item erid active"
data-title="<?= str_replace("", "<span style='font-family: montserrat; font-weight: 200;'></span>", $arResult['SLIDES'][0]['NAME']); ?>"
style="color: <?= $colors[0]; ?>;"
data-image="<?= $arResult['SLIDES'][0]['DETAIL_PICTURE']; ?>"
data-tb-image="<?= $arResult['SLIDES'][0]['DETAIL_PICTURE']; ?>"
data-sm-image="<?= $arResult['SLIDES'][0]['PREVIEW_PICTURE']; ?>"
data-erid="<?= !isset($_GET['advertise']) ? $arResult['SLIDES'][0]['PROPERTIES']['ADVERTISING_ERIR']['VALUE'] : ""; ?>"
data-creative="<?= $arResult['SLIDES'][0]['PROPERTIES']['ADVERTISING_SAMPLE_ID']['VALUE']; ?>"
>
<p class="item_name"><?= $arResult['SLIDES'][0]['PROPERTIES']['TAGLINE']['VALUE']; ?></p>
<span href="<?= $arResult['SLIDES'][0]['PROPERTIES']['URL']['VALUE']; ?>" class="item_link">Подробнее</span>
<a href="<?= $arResult['SLIDES'][0]['PROPERTIES']['URL']['VALUE']; ?>" class="item_link"></a>
</div>
</div>
</div>
*/?>
</div>
<img src="<?= $arResult['SLIDES'][0]['DETAIL_PICTURE']; ?>" class="main_slider-image" alt="Специальное предложение" />
<div class="advblock adv_button_slider">Реклама
<div class="adv_content">ООО "ЛК Эволюция"</div>
<div class="adv_content">ИНН 9724016636</div>
<div id="main_slider_erid" class="adv_content"></div>
</div>
</section>