· 5 years ago · Oct 27, 2020, 10:30 AM
1<?php
2
3//Есть класс, что он делает и что мы должны получить на выходе?
4
5class ClickAPIHandler{
6 function __construct($Objects, $TrackerTokenHandler){
7 $this->data['EchoText']=json_encode(array('status'=>'error','error'=>'Unknown API key'));
8 $this->db=\distribution\GlobalObjects::db();
9 $TrueKeys=array(
10 'campaign','device','requestoptions',
11 'geo','rule','path','pathcom','landing',
12 'offer', 'uclick'
13 );
14 if(\distribution\GlobalObjects::checkApiKey()=='true'){
15 $DataObjects['status']='true';
16 if($Objects['landing']->data['type']==2){
17 ob_start();
18 include_once($Objects['landing']->data['html_path']);
19 $html=ob_get_clean();
20 if(!isset($this->Config->no_base) || $this->Config->no_base!==1){
21 $html=preg_replace('/<base[^\>]*>/', '', $html);
22 $html=preg_replace('/\<\s*head(\s[^\>]*\>|\>)/', '<head>', $html);
23 $html=str_replace('<head>','<head><base href="'.$Objects['landing']->data['html_path'].'">',$html);
24 }
25 $Objects['landing']->data['html']=$TrackerTokenHandler->replaceTokens($html);
26 }
27 if($Objects['landing']->data['offers']>1){
28 foreach($Objects['pathcom']->AllOffersPath AS $pathComTemp){
29 $TempOffer=$Objects['offer']->getOfferFromId($pathComTemp['element_type'], $pathComTemp['element_id']);
30 $TempOffer['num']=$pathComTemp['num'];
31 $TempOffer['url']=$TrackerTokenHandler->replaceTokens($TempOffer['url']);
32 $DataObjects['all_offers'][]=$TempOffer;
33 }
34 }
35 foreach($Objects AS $keyObject=>$Object){
36 if(in_array($keyObject,$TrueKeys)){
37 if($keyObject=='offer' || $keyObject=='landing'){
38 $Object->data['url']=$TrackerTokenHandler->replaceTokens($Object->data['url']);
39 }
40 if($keyObject=='uclick'){
41 $DataObjects[$keyObject]=$Object->data['uclick'];
42 }else{
43 $DataObjects[$keyObject]=$Object->data;
44 }
45 }
46 }
47 $DataObjects['clickid']=$Objects['click']->data['fullcode'];
48 unset($DataObjects['geo']['ip']['ip_code']);
49 $this->data['EchoText']=json_encode($DataObjects);
50 }
51 }
52}