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;
|
//return $http_code === 200 ? $response : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "OnBeforeIBlockElementAddHandler");
|
function prepare_advertiser_request($arFields, $properties)
|
||||||
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler");
|
{
|
||||||
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "OnBeforeIBlockElementUpdateHandler");
|
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)
|
function OnBeforeIBlockElementAddHandler(&$arFields)
|
||||||
{
|
{
|
||||||
$iblocks_array = [
|
if(array_key_exists($arFields['IBLOCK_ID'], is_array(ADVERTISING_IBLOCK_ARRAY) ? ADVERTISING_IBLOCK_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))
|
|
||||||
{
|
{
|
||||||
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'], [], []);
|
$res = CIBlock::GetProperties($arFields['IBLOCK_ID'], [], []);
|
||||||
$properties = [];
|
$properties = [];
|
||||||
@ -373,8 +446,16 @@ function OnBeforeIBlockElementAddHandler(&$arFields)
|
|||||||
|
|
||||||
if(isset($properties['ADVERTISING']))
|
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";
|
$arFields['ACTIVE'] = "N";
|
||||||
}
|
}
|
||||||
@ -390,17 +471,22 @@ function OnBeforeIBlockElementAddHandler(&$arFields)
|
|||||||
|
|
||||||
function OnAfterIBlockElementAddHandler(&$arFields)
|
function OnAfterIBlockElementAddHandler(&$arFields)
|
||||||
{
|
{
|
||||||
$iblocks_array = [
|
if(array_key_exists($arFields['IBLOCK_ID'], is_array(ADVERTISING_IBLOCK_ARRAY) ? ADVERTISING_IBLOCK_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(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(isset($properties['ADVERTISING']))
|
||||||
{
|
{
|
||||||
if(is_array($arFields['PROPERTY_VALUES'][$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(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;
|
$element = new CIBlockElement;
|
||||||
$result = $element->Update($arFields['ID'], [ "ACTIVE" => "Y" ]);
|
$result = $element->Update($arFields['ID'], [ "ACTIVE" => "Y" ]);
|
||||||
|
|
||||||
CIBlockElement::SetPropertyValuesEx($arFields['ID'], $arFields['IBLOCK_ID'], [
|
CIBlockElement::SetPropertyValuesEx($arFields['ID'], $arFields['IBLOCK_ID'], [
|
||||||
"ADVERTISING_ERIR" => "12345",
|
"ADVERTISING_ERIR" => "12345",
|
||||||
"ADVERTISING_SAMPLE_URL" => "67890",
|
"ADVERTISING_SAMPLE_URL" => "67890",
|
||||||
@ -438,6 +572,7 @@ function OnAfterIBlockElementAddHandler(&$arFields)
|
|||||||
|
|
||||||
//ставим элемент на публикацию
|
//ставим элемент на публикацию
|
||||||
$arFields['ACTIVE'] = "Y";
|
$arFields['ACTIVE'] = "Y";
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -447,18 +582,13 @@ function OnAfterIBlockElementAddHandler(&$arFields)
|
|||||||
|
|
||||||
function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
||||||
{
|
{
|
||||||
$iblocks_array = [
|
if(array_key_exists($arFields['IBLOCK_ID'], is_array(ADVERTISING_IBLOCK_ARRAY) ? ADVERTISING_IBLOCK_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(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'], [], []);
|
$res = CIBlock::GetProperties($arFields['IBLOCK_ID'], [], []);
|
||||||
$properties = [];
|
$properties = [];
|
||||||
|
|
||||||
@ -469,10 +599,17 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
|||||||
|
|
||||||
if(isset($properties['ADVERTISING']))
|
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']]))
|
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'] === "")
|
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'], [
|
CIBlockElement::SetPropertyValuesEx($arFields['ID'], $arFields['IBLOCK_ID'], [
|
||||||
@ -481,76 +618,41 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
|||||||
], []);
|
], []);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$payload = [
|
if(method_exists('\CIBlock', 'clearIblockTagCache'))
|
||||||
"id" => $arFields['ID'],
|
{
|
||||||
"name" => $arFields['NAME'],
|
\CIBlock::enableClearTagCache();
|
||||||
];
|
\CIBlock::clearIblockTagCache($arFields['IBLOCK_ID']);
|
||||||
|
\CIBlock::DisableClearTagCache();
|
||||||
switch($arFields['IBLOCK_ID'])
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
case IBLOCK_ID_SLIDER:
|
BXClearCache(true);
|
||||||
{
|
|
||||||
$k = array_keys($arFields['PROPERTY_VALUES'][$properties['URL']])[0];
|
(new \Bitrix\Main\Data\ManagedCache())->cleanAll();
|
||||||
$payload['url'] = "https://".ADVERTISER_DOMAIN."".$arFields['PROPERTY_VALUES'][$properties['URL']][$k]['VALUE'];
|
(new \CStackCacheManager())->CleanAll();
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
if(method_exists('\CHTMLPagesCache', 'IsCompositeEnabled') && \CHTMLPagesCache::IsCompositeEnabled())
|
||||||
case IBLOCK_ID_SPECIALS:
|
{
|
||||||
{
|
\CHTMLPagesCache::CleanAll();
|
||||||
$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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$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_arfields.txt", var_export($arFields, true));
|
||||||
// file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_properties.txt", var_export($properties, 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'] ] ];
|
if(DEBUG_ADV_CYCLE)
|
||||||
$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_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
|
else
|
||||||
{
|
{
|
||||||
@ -560,6 +662,32 @@ 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
|
||||||
@ -603,4 +731,9 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function OnIBlockElementSetPropertyValuesExHandler()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@ -41,7 +41,7 @@ file_put_contents("get_catalog_izt.json", $content);
|
|||||||
$json = json_decode($content, true);
|
$json = json_decode($content, true);
|
||||||
|
|
||||||
$flags = [];
|
$flags = [];
|
||||||
$flag_names = [ "SPECIAL_OFFER", "LEASING_AVAILABLE", "AFTER_ACCIDENT" ];
|
$flag_names = [ "SPECIAL_OFFER", "LEASING_AVAILABLE", "AFTER_ACCIDENT", "ADVERTISING" ];
|
||||||
|
|
||||||
foreach($flag_names AS $f)
|
foreach($flag_names AS $f)
|
||||||
{
|
{
|
||||||
@ -445,6 +445,7 @@ foreach($json as $car)
|
|||||||
"SPECIAL_OFFER" => $car['special_offer'] ? $flags['SPECIAL_OFFER'] : null,
|
"SPECIAL_OFFER" => $car['special_offer'] ? $flags['SPECIAL_OFFER'] : null,
|
||||||
"LEASING_AVAILABLE" => $car['leasing_available'] ? $flags['LEASING_AVAILABLE'] : null,
|
"LEASING_AVAILABLE" => $car['leasing_available'] ? $flags['LEASING_AVAILABLE'] : null,
|
||||||
"AFTER_ACCIDENT" => $car['after_accident'] ? $flags['AFTER_ACCIDENT'] : null,
|
"AFTER_ACCIDENT" => $car['after_accident'] ? $flags['AFTER_ACCIDENT'] : null,
|
||||||
|
"ADVERTISING" => $car['special_offer'] ? $flags['ADVERTISING'] : null,
|
||||||
];
|
];
|
||||||
|
|
||||||
$used_car_element = new CIBlockElement;
|
$used_car_element = new CIBlockElement;
|
||||||
@ -457,6 +458,44 @@ foreach($json as $car)
|
|||||||
//добавляем новое предложение в bitrix
|
//добавляем новое предложение в bitrix
|
||||||
set_images($code, $new_used_car_id, false);
|
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";
|
print "\n";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -468,14 +507,14 @@ foreach($json as $car)
|
|||||||
$car_existed = $car_search_ob->GetFields();
|
$car_existed = $car_search_ob->GetFields();
|
||||||
$car_existed['PROPERTIES'] = $car_search_ob->GetProperties();
|
$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))
|
if(in_array("updateimages", $argv))
|
||||||
{
|
{
|
||||||
set_images($code, $car_existed['ID'], true, $car_existed['PROPERTIES']);
|
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, []);
|
CIBlockElement::SetPropertyValuesEx($car_existed['ID'], IBLOCK_ID_CATALOG_CARS_USED, $PROPERTY_VALUES, []);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user