ERID creation updates & fixes
This commit is contained in:
parent
8120194329
commit
1cfe60458f
@ -344,24 +344,97 @@ function advertiser_request($url, $payload)
|
||||
//return $http_code === 200 ? $response : false;
|
||||
}
|
||||
|
||||
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "OnBeforeIBlockElementAddHandler");
|
||||
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler");
|
||||
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "OnBeforeIBlockElementUpdateHandler");
|
||||
function prepare_advertiser_request($arFields, $properties)
|
||||
{
|
||||
if(DEBUG_ADV_CYCLE)
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_request.txt", var_export([ "arFields" => $arFields, "properties" => $properties ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND );
|
||||
}
|
||||
|
||||
$payload = [
|
||||
"id" => $arFields['ID'],
|
||||
"name" => $arFields['NAME'],
|
||||
];
|
||||
|
||||
switch($arFields['IBLOCK_ID'])
|
||||
{
|
||||
case IBLOCK_ID_SLIDER:
|
||||
{
|
||||
$k = array_keys($arFields['PROPERTY_VALUES'][$properties['URL']])[0];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."".$arFields['PROPERTY_VALUES'][$properties['URL']][$k]['VALUE'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_SPECIALS:
|
||||
{
|
||||
$payload['code'] = $arFields['CODE'];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."/special/".$arFields['CODE'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_NEWS:
|
||||
{
|
||||
$payload['code'] = $arFields['CODE'];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."/news/".$arFields['CODE'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_SPECIAL_OFFERS_BANNERS:
|
||||
{
|
||||
$k = array_keys($arFields['PROPERTY_VALUES'][$properties['OFFER']])[0];
|
||||
$offer = get_related(IBLOCK_ID_SPECIALS, $arFields['PROPERTY_VALUES'][$properties['OFFER']][$k]['VALUE']);
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN.$offer['DETAIL_PAGE_URL'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_SPECIAL_OFFERS_CARS:
|
||||
{
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."/special/";
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_BANNERS_INNER:
|
||||
{
|
||||
$k = array_keys($arFields['PROPERTY_VALUES'][$properties['URL']])[0];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."".$arFields['PROPERTY_VALUES'][$properties['URL']][$k]['VALUE'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_CATALOG_CARS_USED:
|
||||
{
|
||||
$payload['id'] = $arFields['ID'];
|
||||
$payload['code'] = $arFields['CODE'];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."/izt/".$arFields['CODE'];
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(DEBUG_ADV_CYCLE)
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_request_payload.txt", var_export([ "ADVERTISER_URL" => ADVERTISER_URL, "ADVERTISING_IBLOCK_ARRAY[arFields['IBLOCK_ID']]" => ADVERTISING_IBLOCK_ARRAY[$arFields['IBLOCK_ID']], "payload" => $payload ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND );
|
||||
}
|
||||
|
||||
$response = advertiser_request(ADVERTISER_URL."/".ADVERTISING_IBLOCK_ARRAY[$arFields['IBLOCK_ID']], $payload);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "OnBeforeIBlockElementAddHandler");
|
||||
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler");
|
||||
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "OnBeforeIBlockElementUpdateHandler");
|
||||
//AddEventHandler("iblock", "OnIBlockElementSetPropertyValuesEx", "OnIBlockElementSetPropertyValuesExHandler");
|
||||
|
||||
function OnBeforeIBlockElementAddHandler(&$arFields)
|
||||
{
|
||||
$iblocks_array = [
|
||||
IBLOCK_ID_SPECIALS => "specials",
|
||||
IBLOCK_ID_NEWS => "news",
|
||||
IBLOCK_ID_SLIDER => "slider",
|
||||
IBLOCK_ID_SPECIAL_OFFERS_BANNERS => "special_offers_banner",
|
||||
IBLOCK_ID_SPECIAL_OFFERS_CARS => "special_offers_car_banner",
|
||||
IBLOCK_ID_BANNERS_INNER => "banner_inner",
|
||||
];
|
||||
|
||||
if(array_key_exists($arFields['IBLOCK_ID'], $iblocks_array))
|
||||
if(array_key_exists($arFields['IBLOCK_ID'], is_array(ADVERTISING_IBLOCK_ARRAY) ? ADVERTISING_IBLOCK_ARRAY : []))
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add.txt", var_export($arFields, true));
|
||||
if(DEBUG_IBLOCK_CYCLE)
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add_before_".$arFields['IBLOCK_ID'].".txt", var_export($arFields, true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
|
||||
}
|
||||
|
||||
$res = CIBlock::GetProperties($arFields['IBLOCK_ID'], [], []);
|
||||
$properties = [];
|
||||
@ -373,8 +446,16 @@ function OnBeforeIBlockElementAddHandler(&$arFields)
|
||||
|
||||
if(isset($properties['ADVERTISING']))
|
||||
{
|
||||
if(is_array($arFields['PROPERTY_VALUES'][$properties['ADVERTISING']]))
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add_before_adv_".$arFields['IBLOCK_ID'].".txt", var_export([ "CODE" => $arFields['CODE'], ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
|
||||
|
||||
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)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
//снимаем элемент с публикации по умолчанию
|
||||
$arFields['ACTIVE'] = "N";
|
||||
}
|
||||
@ -390,17 +471,22 @@ function OnBeforeIBlockElementAddHandler(&$arFields)
|
||||
|
||||
function OnAfterIBlockElementAddHandler(&$arFields)
|
||||
{
|
||||
$iblocks_array = [
|
||||
IBLOCK_ID_SPECIALS => "specials",
|
||||
IBLOCK_ID_NEWS => "news",
|
||||
IBLOCK_ID_SLIDER => "slider",
|
||||
IBLOCK_ID_SPECIAL_OFFERS_BANNERS => "special_offers_banner",
|
||||
IBLOCK_ID_SPECIAL_OFFERS_CARS => "special_offers_car_banner",
|
||||
IBLOCK_ID_BANNERS_INNER => "banner",
|
||||
];
|
||||
|
||||
if(array_key_exists($arFields['IBLOCK_ID'], $iblocks_array))
|
||||
if(array_key_exists($arFields['IBLOCK_ID'], is_array(ADVERTISING_IBLOCK_ARRAY) ? ADVERTISING_IBLOCK_ARRAY : []))
|
||||
{
|
||||
if(DEBUG_IBLOCK_CYCLE)
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_add_after_".$arFields['IBLOCK_ID'].".txt", var_export($arFields, true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
|
||||
}
|
||||
|
||||
$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']]))
|
||||
@ -414,23 +500,71 @@ function OnAfterIBlockElementAddHandler(&$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']]))
|
||||
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'))
|
||||
{
|
||||
\CIBlock::enableClearTagCache();
|
||||
\CIBlock::clearIblockTagCache($arFields['IBLOCK_ID']);
|
||||
\CIBlock::DisableClearTagCache();
|
||||
}
|
||||
else
|
||||
{
|
||||
BXClearCache(true);
|
||||
|
||||
(new \Bitrix\Main\Data\ManagedCache())->cleanAll();
|
||||
(new \CStackCacheManager())->CleanAll();
|
||||
}
|
||||
|
||||
if(method_exists('\CHTMLPagesCache', 'IsCompositeEnabled') && \CHTMLPagesCache::IsCompositeEnabled())
|
||||
{
|
||||
\CHTMLPagesCache::CleanAll();
|
||||
}
|
||||
|
||||
if($arFields['IBLOCK_ID'] === IBLOCK_ID_CATALOG_CARS_USED)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
//запускаем получение ЕРИР
|
||||
sleep(10);
|
||||
$advertiser_response = prepare_advertiser_request($arFields, $properties);
|
||||
|
||||
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)
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_response.txt", var_export(["ID" => $arFields['ID'], "response" => $advertiser_response], true));
|
||||
}
|
||||
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_ERIR'] = $advertiser_response['erir'];
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_SAMPLE_URL'] = $advertiser_response['sample'];
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_SAMPLE_ID'] = $advertiser_response['sample_id'];
|
||||
$arFields['ACTIVE'] = 'Y';
|
||||
}
|
||||
else
|
||||
{
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING'] = NULL;
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_ERIR'] = '';
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_SAMPLE_URL'] = '';
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_SAMPLE_ID'] = '';
|
||||
$arFields['ACTIVE'] = 'N';
|
||||
}
|
||||
|
||||
/*
|
||||
$element = new CIBlockElement;
|
||||
$result = $element->Update($arFields['ID'], [ "ACTIVE" => "Y" ]);
|
||||
|
||||
|
||||
CIBlockElement::SetPropertyValuesEx($arFields['ID'], $arFields['IBLOCK_ID'], [
|
||||
"ADVERTISING_ERIR" => "12345",
|
||||
"ADVERTISING_SAMPLE_URL" => "67890",
|
||||
@ -438,6 +572,7 @@ function OnAfterIBlockElementAddHandler(&$arFields)
|
||||
|
||||
//ставим элемент на публикацию
|
||||
$arFields['ACTIVE'] = "Y";
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -447,18 +582,13 @@ function OnAfterIBlockElementAddHandler(&$arFields)
|
||||
|
||||
function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
||||
{
|
||||
$iblocks_array = [
|
||||
IBLOCK_ID_SLIDER => "slider",
|
||||
IBLOCK_ID_NEWS => "news",
|
||||
IBLOCK_ID_SPECIALS => "special",
|
||||
IBLOCK_ID_SPECIAL_OFFERS_BANNERS => "special_offers_banner",
|
||||
IBLOCK_ID_SPECIAL_OFFERS_CARS => "special_offers_car_banner",
|
||||
IBLOCK_ID_BANNERS_INNER => "banner",
|
||||
IBLOCK_ID_CATALOG_CARS_USED => "izt",
|
||||
];
|
||||
|
||||
if(array_key_exists($arFields['IBLOCK_ID'], $iblocks_array))
|
||||
if(array_key_exists($arFields['IBLOCK_ID'], is_array(ADVERTISING_IBLOCK_ARRAY) ? ADVERTISING_IBLOCK_ARRAY : []))
|
||||
{
|
||||
if(DEBUG_IBLOCK_CYCLE)
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_update_before_".$arFields['IBLOCK_ID'].".txt", var_export($arFields, true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
|
||||
}
|
||||
|
||||
$res = CIBlock::GetProperties($arFields['IBLOCK_ID'], [], []);
|
||||
$properties = [];
|
||||
|
||||
@ -469,10 +599,17 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
||||
|
||||
if(isset($properties['ADVERTISING']))
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_adv_1.txt", var_export([ "ID" => $arFields['ID'], ], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
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'], [
|
||||
@ -481,76 +618,41 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
||||
], []);
|
||||
*/
|
||||
|
||||
$payload = [
|
||||
"id" => $arFields['ID'],
|
||||
"name" => $arFields['NAME'],
|
||||
];
|
||||
|
||||
switch($arFields['IBLOCK_ID'])
|
||||
if(method_exists('\CIBlock', 'clearIblockTagCache'))
|
||||
{
|
||||
\CIBlock::enableClearTagCache();
|
||||
\CIBlock::clearIblockTagCache($arFields['IBLOCK_ID']);
|
||||
\CIBlock::DisableClearTagCache();
|
||||
}
|
||||
else
|
||||
{
|
||||
case IBLOCK_ID_SLIDER:
|
||||
{
|
||||
$k = array_keys($arFields['PROPERTY_VALUES'][$properties['URL']])[0];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."".$arFields['PROPERTY_VALUES'][$properties['URL']][$k]['VALUE'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_SPECIALS:
|
||||
{
|
||||
$payload['code'] = $arFields['CODE'];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."/special/".$arFields['CODE'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_NEWS:
|
||||
{
|
||||
$payload['code'] = $arFields['CODE'];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."/news/".$arFields['CODE'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_SPECIAL_OFFERS_BANNERS:
|
||||
{
|
||||
$k = array_keys($arFields['PROPERTY_VALUES'][$properties['OFFER']])[0];
|
||||
$offer = get_related(IBLOCK_ID_SPECIALS, $arFields['PROPERTY_VALUES'][$properties['OFFER']][$k]['VALUE']);
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN.$offer['DETAIL_PAGE_URL'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_SPECIAL_OFFERS_CARS:
|
||||
{
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."/special/";
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_BANNERS_INNER:
|
||||
{
|
||||
$k = array_keys($arFields['PROPERTY_VALUES'][$properties['URL']])[0];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."".$arFields['PROPERTY_VALUES'][$properties['URL']][$k]['VALUE'];
|
||||
}
|
||||
break;
|
||||
|
||||
case IBLOCK_ID_CATALOG_CARS_USED:
|
||||
{
|
||||
$payload['code'] = $arFields['CODE'];
|
||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."/izt/".$arFields['CODE'];
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
BXClearCache(true);
|
||||
|
||||
(new \Bitrix\Main\Data\ManagedCache())->cleanAll();
|
||||
(new \CStackCacheManager())->CleanAll();
|
||||
}
|
||||
|
||||
if(method_exists('\CHTMLPagesCache', 'IsCompositeEnabled') && \CHTMLPagesCache::IsCompositeEnabled())
|
||||
{
|
||||
\CHTMLPagesCache::CleanAll();
|
||||
}
|
||||
|
||||
$response = advertiser_request(ADVERTISER_URL."/".$iblocks_array[$arFields['IBLOCK_ID']], $payload);
|
||||
$advertiser_response = prepare_advertiser_request($arFields, $properties);
|
||||
|
||||
if($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));
|
||||
|
||||
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']] = [ "".array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']])[0]."" => [ 'VALUE' => $response['erir'] ] ];
|
||||
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_URL']] = [ "".array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_URL']])[0]."" => [ 'VALUE' => $response['sample'] ] ];
|
||||
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_ID']] = [ "".array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_ID']])[0]."" => [ 'VALUE' => $response['sample_id'] ] ];
|
||||
//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)
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_response.txt", var_export(["ID" => $arFields['ID'], "response" => $advertiser_response], true));
|
||||
}
|
||||
|
||||
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']] = [ "".array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']])[0]."" => [ 'VALUE' => $advertiser_response['erir'] ] ];
|
||||
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_URL']] = [ "".array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_URL']])[0]."" => [ 'VALUE' => $advertiser_response['sample'] ] ];
|
||||
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_ID']] = [ "".array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_ID']])[0]."" => [ 'VALUE' => $advertiser_response['sample_id'] ] ];
|
||||
$arFields['ACTIVE'] = 'Y';
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -560,6 +662,32 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
||||
$arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_ID']] = '';
|
||||
$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
|
||||
@ -603,4 +731,9 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
||||
return true;
|
||||
}
|
||||
|
||||
function OnIBlockElementSetPropertyValuesExHandler()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@ -41,7 +41,7 @@ file_put_contents("get_catalog_izt.json", $content);
|
||||
$json = json_decode($content, true);
|
||||
|
||||
$flags = [];
|
||||
$flag_names = [ "SPECIAL_OFFER", "LEASING_AVAILABLE", "AFTER_ACCIDENT" ];
|
||||
$flag_names = [ "SPECIAL_OFFER", "LEASING_AVAILABLE", "AFTER_ACCIDENT", "ADVERTISING" ];
|
||||
|
||||
foreach($flag_names AS $f)
|
||||
{
|
||||
@ -445,6 +445,7 @@ foreach($json as $car)
|
||||
"SPECIAL_OFFER" => $car['special_offer'] ? $flags['SPECIAL_OFFER'] : null,
|
||||
"LEASING_AVAILABLE" => $car['leasing_available'] ? $flags['LEASING_AVAILABLE'] : null,
|
||||
"AFTER_ACCIDENT" => $car['after_accident'] ? $flags['AFTER_ACCIDENT'] : null,
|
||||
"ADVERTISING" => $car['special_offer'] ? $flags['ADVERTISING'] : null,
|
||||
];
|
||||
|
||||
$used_car_element = new CIBlockElement;
|
||||
@ -457,6 +458,44 @@ foreach($json as $car)
|
||||
//добавляем новое предложение в bitrix
|
||||
set_images($code, $new_used_car_id, false);
|
||||
|
||||
// $el = new CIBlockElement;
|
||||
// $el->Update($new_used_car_id, [ "SORT" => 500, "PROPERTY_VALUES" => $PROPERTY_VALUES, ]);
|
||||
|
||||
if($car['special_offer'])
|
||||
{
|
||||
$adv_array = [
|
||||
"IBLOCK_ID" => IBLOCK_ID_CATALOG_CARS_USED,
|
||||
"ID" => $new_used_car_id,
|
||||
"CODE" => $code,
|
||||
"NAME" => $name,
|
||||
"PROPERTY_VALUES" => $PROPERTY_VALUES,
|
||||
];
|
||||
|
||||
$advertiser_response = prepare_advertiser_request($adv_array, []);
|
||||
if(DEBUG_ADV_CYCLE)
|
||||
{
|
||||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_response_used.txt", var_export([ "response" => $advertiser_response], true)."\n\n".str_repeat("-", 150)."\n\n", FILE_APPEND );
|
||||
}
|
||||
|
||||
if($advertiser_response['status'] === "success")
|
||||
{
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_ERIR'] = $advertiser_response['erir'];
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_SAMPLE_URL'] = $advertiser_response['sample'];
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_SAMPLE_ID'] = $advertiser_response['sample_id'];
|
||||
$arFields['ACTIVE'] = 'Y';
|
||||
}
|
||||
else
|
||||
{
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING'] = NULL;
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_ERIR'] = '';
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_SAMPLE_URL'] = '';
|
||||
$arFields['PROPERTY_VALUES']['ADVERTISING_SAMPLE_ID'] = '';
|
||||
$arFields['ACTIVE'] = 'N';
|
||||
}
|
||||
|
||||
CIBlockElement::SetPropertyValuesEx($new_used_car_id, IBLOCK_ID_CATALOG_CARS_USED, $arFields['PROPERTY_VALUES'], []);
|
||||
}
|
||||
|
||||
print "\n";
|
||||
}
|
||||
else
|
||||
@ -468,14 +507,14 @@ foreach($json as $car)
|
||||
$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, "DETAIL_TEXT" => $car['description'], "SORT" => 500]);
|
||||
|
||||
if(in_array("updateimages", $argv))
|
||||
{
|
||||
set_images($code, $car_existed['ID'], true, $car_existed['PROPERTIES']);
|
||||
}
|
||||
|
||||
$el = new CIBlockElement;
|
||||
$el->Update($car_existed['ID'], [ "ACTIVE" => "Y", "NAME" => $name, "DETAIL_TEXT" => $car['description'], "SORT" => 500 ]);
|
||||
|
||||
CIBlockElement::SetPropertyValuesEx($car_existed['ID'], IBLOCK_ID_CATALOG_CARS_USED, $PROPERTY_VALUES, []);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user