From 6b2903d1d8a8219ab42cf1d48aebc91f59f9c283 Mon Sep 17 00:00:00 2001 From: merelendor Date: Thu, 31 Aug 2023 16:53:10 +0300 Subject: [PATCH] ads --- adv/index.php | 42 ++ bitrix/php_interface/init.php | 141 ++++- .../templates/.default/template.php | 6 +- .../templates/.default/template.php | 8 +- .../templates/.default/template.php | 17 +- .../evolution/banners.inner/.description.php | 8 + .../evolution/banners.inner/component.php | 42 ++ .../banners.inner/ru/.description.php | 4 + .../templates/.default/script.js | 0 .../templates/.default/style.css | 0 .../templates/.default/template.php | 21 + .../catalog.landing.body/component.php | 2 +- .../catalog.landing.engine_fuel/component.php | 2 +- .../templates/.default/template.php | 4 +- .../programs.offers.banners/component.php | 3 +- .../templates/.default/template.php | 14 +- .../evolution/slider.main/component.php | 3 +- .../slider.main/templates/.default/script.js | 4 +- .../templates/.default/template.php | 6 +- .../special.offers.cars/.description.php | 8 + .../special.offers.cars/component.php | 54 ++ .../lang/ru/.description.php | 4 + .../templates/.default/script.js | 0 .../templates/.default/style.css | 0 .../templates/.default/template.php | 39 ++ .../special.offers.offer/component.php | 5 +- .../templates/.default/template.php | 12 +- .../templates/.default/template.php | 11 +- .../templates/.default/template.php | 507 ++++++++---------- local/templates/evolution/css/var.css | 24 +- local/templates/evolution/css/var.less | 28 +- used/index.php | 2 +- 32 files changed, 668 insertions(+), 353 deletions(-) create mode 100644 adv/index.php create mode 100644 local/components/evolution/banners.inner/.description.php create mode 100644 local/components/evolution/banners.inner/component.php create mode 100644 local/components/evolution/banners.inner/ru/.description.php create mode 100644 local/components/evolution/banners.inner/templates/.default/script.js create mode 100644 local/components/evolution/banners.inner/templates/.default/style.css create mode 100644 local/components/evolution/banners.inner/templates/.default/template.php create mode 100644 local/components/evolution/special.offers.cars/.description.php create mode 100644 local/components/evolution/special.offers.cars/component.php create mode 100644 local/components/evolution/special.offers.cars/lang/ru/.description.php create mode 100644 local/components/evolution/special.offers.cars/templates/.default/script.js create mode 100644 local/components/evolution/special.offers.cars/templates/.default/style.css create mode 100644 local/components/evolution/special.offers.cars/templates/.default/template.php diff --git a/adv/index.php b/adv/index.php new file mode 100644 index 0000000..0140ade --- /dev/null +++ b/adv/index.php @@ -0,0 +1,42 @@ + +IncludeComponent( + "evolution:special.offers.cars", + "", + [] + ); +?> +
+
+ IncludeComponent( + "evolution:programs.offers.banners", + "", + Array( + "BANNERS" => [], + "PAGINATION" => "N", + ) + ); + ?> +
+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/bitrix/php_interface/init.php b/bitrix/php_interface/init.php index 7892f9f..8229b40 100644 --- a/bitrix/php_interface/init.php +++ b/bitrix/php_interface/init.php @@ -33,6 +33,28 @@ function get_related_array($iblock_id, $ids) return $ar_res; } +function get_related_array_with_filter($iblock_id, $ids, $filter = []) +{ + $ar_res = Array(); + + $query_filter = Array("IBLOCK_ID" => $iblock_id, "ID" => $id, ); + $query_filter = array_merge($query_filter, $filter); + + foreach($ids AS $id) + { + $res = CIBlockElement::GetList(Array("NAME" => "ASC"), $query_filter, false, Array("nPageSize" => 1000)); + + while ($obElement = $res->GetNextElement()) + { + $ar_res_element = $obElement->GetFields(); + $ar_res_element['PROPERTIES'] = $obElement->GetProperties(); + $ar_res[] = $ar_res_element; + } + } + + return $ar_res; +} + function get_ext_from_mime($mime) { $mime_map = [ @@ -249,9 +271,36 @@ function zerof_get_images($task_uid) return $images; } -//AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "OnBeforeIBlockElementAddHandler"); -//AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler"); -//AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "OnBeforeIBlockElementUpdateHandler"); +function advertiser_request($url, $payload) +{ + //mbJmM6sDCeFHBb8zFEhc4pIeYLLE0Tch + $headers = [ + "Authorization: ZWS ".ADVERTISER_TOKEN."", + 'accept: application/json', + 'content-type: application/json', + ]; + + $request = curl_init(); + curl_setopt($request, CURLOPT_TIMEOUT, 900); + curl_setopt($request, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); + curl_setopt($request, CURLOPT_URL, $url); + curl_setopt($request, CURLOPT_CONNECTTIMEOUT, 30); + curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($request, CURLOPT_POSTFIELDS, json_encode($payload)); + curl_setopt($request, CURLOPT_HTTPHEADER, $headers); + + $response = curl_exec($request) or die(curl_error($request)); +// $http_code = curl_getinfo($request, CURLINFO_HTTP_CODE); + + curl_close($request); + + return json_decode($response, true); + //return $http_code === 200 ? $response : false; +} + +AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "OnBeforeIBlockElementAddHandler"); +AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler"); +AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "OnBeforeIBlockElementUpdateHandler"); function OnBeforeIBlockElementAddHandler(&$arFields) { @@ -301,7 +350,7 @@ function OnAfterIBlockElementAddHandler(&$arFields) 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", + IBLOCK_ID_BANNERS_INNER => "banner", ]; if(array_key_exists($arFields['IBLOCK_ID'], $iblocks_array)) @@ -353,12 +402,13 @@ function OnAfterIBlockElementAddHandler(&$arFields) function OnBeforeIBlockElementUpdateHandler(&$arFields) { $iblocks_array = [ - IBLOCK_ID_SPECIALS => "specials", - IBLOCK_ID_NEWS => "news", 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_inner", + IBLOCK_ID_BANNERS_INNER => "banner", + IBLOCK_ID_CATALOG_CARS_USED => "izt", ]; if(array_key_exists($arFields['IBLOCK_ID'], $iblocks_array)) @@ -385,15 +435,78 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields) ], []); */ - $response_str = file_get_contents("https://evo.quickcode.ru/advertising/".$iblocks_array[$arFields['IBLOCK_ID']]."?id=".$arFields['ID'].""); - $response = json_decode($response_str, true); + $payload = [ + "id" => $arFields['ID'], + "name" => $arFields['NAME'], + ]; - file_put_contents($_SERVER['DOCUMENT_ROOT']."/adv_response.txt", var_export($response, true)); + 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; - $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'] ] ]; + case IBLOCK_ID_SPECIALS: + { + $payload['code'] = $arFields['CODE']; + $payload['url'] = "https://".ADVERTISER_DOMAIN."/special/".$arFields['CODE']; + } + break; - file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_update.txt", var_export($arFields, true)); + case IBLOCK_ID_NEWS: + { + $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); + + if($response['status'] === "success") + { + $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'] ] ]; + } + else + { + $arFields['PROPERTY_VALUES'][$properties['ADVERTISING']] = ''; + $arFields['ACTIVE'] = 'N'; + } } } else @@ -401,8 +514,6 @@ function OnBeforeIBlockElementUpdateHandler(&$arFields) //очистка ЕРИР и образца $arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']] = [ "".array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_ERIR']])[0]."" => [ 'VALUE' => '' ] ]; $arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_URL']] = [ "".array_keys($arFields['PROPERTY_VALUES'][$properties['ADVERTISING_SAMPLE_URL']])[0]."" => [ 'VALUE' => '' ] ]; - - file_put_contents($_SERVER['DOCUMENT_ROOT']."/element_update.txt", var_export($arFields, true)); } } } diff --git a/local/components/evolution/about.news.article/templates/.default/template.php b/local/components/evolution/about.news.article/templates/.default/template.php index 97bda53..ec8c9e2 100644 --- a/local/components/evolution/about.news.article/templates/.default/template.php +++ b/local/components/evolution/about.news.article/templates/.default/template.php @@ -40,9 +40,9 @@ $APPLICATION->AddHeadString('