12 $COUNTRY_ID = $_SESSION[
"SESS_COUNTRY_ID"];
13 if ($_SESSION[
"SESS_COUNTRY_ID"] ==
'') $COUNTRY_ID =
"N0";
15 $s .= $_SESSION[
"SESS_SESSION_ID"].
".".$_SESSION[
"SESS_GUEST_ID"].
".".$COUNTRY_ID;
17 if (intval($_SESSION[
"SESS_ADV_ID"])>0) $s .=
".".$_SESSION[
"SESS_ADV_ID"].
".N";
18 elseif (intval($_SESSION[
"SESS_LAST_ADV_ID"])>0) $s .=
".".$_SESSION[
"SESS_LAST_ADV_ID"].
".Y";
29 $encode = COption::GetOptionString(
"statistic",
"EVENT_GID_BASE64_ENCODE");
30 if ($encode==
"Y") $s = base64_encode($s);
40 $DB = CDatabase::GetModuleConnection(
'statistic');
42 $event1 = trim($event1);
43 $event2 = trim($event2);
44 $event3 = trim($event3);
46 if($event1 ==
'' && $event2 ==
'')
47 return array(
"EVENT_ID"=>0,
"TYPE_ID"=>0,
"EID"=>0);
50 if(intval($_SESSION[
"SESS_SEARCHER_ID"]) > 0 && COption::GetOptionString(
"statistic",
"SEARCHER_EVENTS")!=
"Y")
51 return array(
"EVENT_ID"=>0,
"TYPE_ID"=>0,
"EID"=>0);
57 return array(
"EVENT_ID"=>0,
"TYPE_ID"=>0,
"EID"=>0);
66 elseif (defined(
"SITE_ID"))
68 $sql_site =
"'".$DB->ForSql(
SITE_ID,2).
"'";
81 $sql_site =
"'".$DB->ForSql(
$site_id,2).
"'";
90 $money = doubleval($money);
99 if (CModule::IncludeModule(
"currency"))
102 if ($rate>0 && $rate!=1)
103 $money = $money * $rate;
108 $money = round($money,2);
109 $chargeback = ($chargeback==
"Y") ?
"Y" :
"N";
112 $sql_KEEP_DAYS = (intval($arEventType[
"KEEP_DAYS"])>0) ? intval($arEventType[
"KEEP_DAYS"]) :
"null";
115 $referer_url =
$_SERVER[
"HTTP_REFERER"] ==
'' ? $_SESSION[
"SESS_HTTP_REFERER"] :
$_SERVER[
"HTTP_REFERER"];
116 if ($referer_url <>
'')
118 if(
$url = @parse_url($referer_url))
120 $rs = CSite::GetList(
"LENDIR",
"DESC", Array(
"ACTIVE"=>
"Y",
"DOMAIN"=>
"%".
$url[
"host"],
"IN_DIR"=>
$url[
"path"]));
124 $sql_referer_site_id = is_array(
$arr) && (
$arr[
"ID"] <>
'')?
"'".
$DB->ForSql(
$arr[
"ID"],2).
"'":
"null";
128 "EVENT_ID" =>
"'".$EVENT_ID.
"'",
129 "EVENT3" =>
"'".$DB->ForSql($event3,255).
"'",
131 "DATE_ENTER" =>
$DB->GetNowFunction(),
132 "REFERER_URL" =>
"'".$DB->ForSql($referer_url,2000).
"'",
134 "REDIRECT_URL" =>
"'".
$DB->ForSql($goto,2000).
"'",
135 "SESSION_ID" => (intval($_SESSION[
"SESS_SESSION_ID"])>0) ? intval($_SESSION[
"SESS_SESSION_ID"]) :
"null",
136 "GUEST_ID" => (intval($_SESSION[
"SESS_GUEST_ID"])>0) ? intval($_SESSION[
"SESS_GUEST_ID"]) :
"null",
137 "ADV_ID" => ($_SESSION[
"SESS_LAST_ADV_ID"]>0) ? $_SESSION[
"SESS_LAST_ADV_ID"] :
"null",
138 "HIT_ID" => ($HIT_ID > 0 ? $HIT_ID :
"NULL"),
139 "COUNTRY_ID" =>
"'".
$DB->ForSql($_SESSION[
"SESS_COUNTRY_ID"],2).
"'",
140 "KEEP_DAYS" => $sql_KEEP_DAYS,
141 "CHARGEBACK" =>
"'".$chargeback.
"'",
142 "SITE_ID" => $sql_site,
143 "REFERER_SITE_ID" => $sql_referer_site_id,
146 if (intval($_SESSION[
"SESS_LAST_ADV_ID"])>0 && intval($_SESSION[
"SESS_ADV_ID"])<=0)
152 if ($arEventType[
"DATE_ENTER"] ==
'')
156 $DB->Update(
"b_stat_event",
$arFields,
"WHERE ID='".$EVENT_ID.
"'");
161 "DATE_LAST" =>
$DB->GetNowFunction(),
162 "COUNTER" =>
"COUNTER + 1",
163 "MONEY" =>
"MONEY + ".$money
165 $rows =
$DB->Update(
"b_stat_event_day",
$arFields,
"WHERE EVENT_ID='".$EVENT_ID.
"' and ".CStatistics::DBDateCompare(
"DATE_STAT"));
167 if (intval(
$rows)<=0)
171 "DATE_STAT" =>
$DB->GetNowDate(),
172 "DATE_LAST" =>
$DB->GetNowFunction(),
173 "EVENT_ID" => $EVENT_ID,
177 $DB->Insert(
"b_stat_event_day",$arFields_i);
182 $strSql =
"SELECT ID FROM b_stat_event_day WHERE EVENT_ID='".$EVENT_ID.
"' and ".CStatistics::DBDateCompare(
"DATE_STAT").
" ORDER BY ID";
184 $rs =
$DB->Query($strSql);
185 while (
$ar =
$rs->Fetch())
190 $strSql =
"DELETE FROM b_stat_event_day WHERE ID = ".$ar[
"ID"];
197 $arFields = Array(
"C_EVENTS" =>
"C_EVENTS+1");
198 $DB->Update(
"b_stat_guest",
$arFields,
"WHERE ID=".intval($_SESSION[
"SESS_GUEST_ID"]),
'',
false,
false,
false);
201 $arFields = Array(
"C_EVENTS" =>
"C_EVENTS+1");
202 $DB->Update(
"b_stat_session",
$arFields,
"WHERE ID=".intval($_SESSION[
"SESS_SESSION_ID"]),
'',
false,
false,
false);
205 $arFields = Array(
"C_EVENTS" =>
"C_EVENTS+1");
206 $DB->Update(
"b_stat_day",
$arFields,
"WHERE ".CStatistics::DBDateCompare(
"DATE_STAT"),
'',
false,
false,
false);
212 $arFields = Array(
"C_EVENTS" =>
"C_EVENTS+1");
213 $DB->Update(
"b_stat_day_site",
$arFields,
"WHERE SITE_ID='".
$DB->ForSql(
$site_id,2).
"' and ".CStatistics::DBDateCompare(
"DATE_STAT"));
217 if (intval($_SESSION[
"SESS_ADV_ID"])>0 || intval($_SESSION[
"SESS_LAST_ADV_ID"])>0)
222 $sign = ($chargeback==
"Y") ?
"-" :
"+";
224 "REVENUE" =>
"REVENUE ".
$sign.
" ".$money,
226 $DB->Update(
"b_stat_adv",
$arFields,
"WHERE ID='".intval($_SESSION[
"SESS_LAST_ADV_ID"]).
"'",
'',
false,
false,
false);
229 if (intval($_SESSION[
"SESS_ADV_ID"])>0)
232 "COUNTER" =>
"COUNTER + 1",
233 "MONEY" =>
"MONEY + ".$money
239 "COUNTER_BACK" =>
"COUNTER_BACK + 1",
240 "MONEY_BACK" =>
"MONEY_BACK + ".$money
244 $rows =
$DB->Update(
"b_stat_adv_event",
$arFields,
"WHERE ADV_ID='".intval($_SESSION[
"SESS_LAST_ADV_ID"]).
"' and EVENT_ID='".$EVENT_ID.
"'");
245 if(intval(
$rows) <= 0)
248 "ADV_ID" =>
"'".$_SESSION[
"SESS_LAST_ADV_ID"].
"'",
249 "EVENT_ID" =>
"'".$EVENT_ID.
"'",
251 if(intval($_SESSION[
"SESS_ADV_ID"]) > 0)
264 if (intval($_SESSION[
"SESS_ADV_ID"])>0)
267 "COUNTER" =>
"COUNTER + 1",
268 "MONEY" =>
"MONEY + ".$money,
274 "COUNTER_BACK" =>
"COUNTER_BACK + 1",
275 "MONEY_BACK" =>
"MONEY_BACK + ".$money,
279 $rows =
$DB->Update(
"b_stat_adv_event_day",
$arFields,
"WHERE ADV_ID='".intval($_SESSION[
"SESS_LAST_ADV_ID"]).
"' and EVENT_ID='".$EVENT_ID.
"' and ".CStatistics::DBDateCompare(
"DATE_STAT"),
'',
false,
false,
false);
280 if(intval(
$rows) <= 0)
283 "ADV_ID" => ($_SESSION[
"SESS_LAST_ADV_ID"]>0) ? $_SESSION[
"SESS_LAST_ADV_ID"] :
"null",
284 "EVENT_ID" =>
"'".$EVENT_ID.
"'",
285 "DATE_STAT" =>
$DB->GetNowDate(),
287 if(intval($_SESSION[
"SESS_ADV_ID"]) > 0)
301 $strSql =
"SELECT ID FROM b_stat_adv_event_day WHERE ADV_ID='".intval($_SESSION[
"SESS_LAST_ADV_ID"]).
"' and EVENT_ID='".$EVENT_ID.
"' and ".CStatistics::DBDateCompare(
"DATE_STAT").
" ORDER BY ID";
303 $rs =
$DB->Query($strSql);
304 while (
$ar =
$rs->Fetch())
309 $strSql =
"DELETE FROM b_stat_adv_event_day WHERE ID = ".$ar[
"ID"];
319 if ($_SESSION[
"SESS_COUNTRY_ID"] <>
'')
320 CStatistics::UpdateCountry($_SESSION[
"SESS_COUNTRY_ID"], Array(
"C_EVENTS" => 1));
321 if ($_SESSION[
"SESS_CITY_ID"] > 0)
322 CStatistics::UpdateCity($_SESSION[
"SESS_CITY_ID"], Array(
"C_EVENTS" => 1));
324 return array(
"EVENT_ID"=>intval($EVENT_ID),
"TYPE_ID"=>intval($EVENT_ID),
"EID"=>intval($eid));
328 public static function AddByID($EVENT_ID, $EVENT3, $DATE_ENTER, $PARAM, $MONEY=
"",
$CURRENCY=
"", $CHARGEBACK=
"N")
334 public static function AddByEvents($EVENT1, $EVENT2, $EVENT3, $DATE_ENTER, $PARAM, $MONEY=
"",
$CURRENCY=
"", $CHARGEBACK=
"N")
337 if ($EVENT_ID>0 && $PARAM <>
'')
347 $arReferenceId =
array();
348 $arReference =
array();
349 $arUSER_HANDLERS =
array();
353 $path = COption::GetOptionString(
"statistic",
"EVENTS_LOAD_HANDLERS_PATH");
357 while (
false!==($fname = readdir(
$handle)))
359 if (is_file(
$_SERVER[
"DOCUMENT_ROOT"].
$path.$fname) && $fname!=
"." && $fname!=
"..")
361 $arReferenceId[] =
$path.$fname;
362 $arReference[] = $fname;
370 $path = COption::GetOptionString(
"statistic",
"USER_EVENTS_LOAD_HANDLERS_PATH");
374 while (
false!==($fname = readdir(
$handle)))
376 if (is_file(
$_SERVER[
"DOCUMENT_ROOT"].
$path.$fname) && $fname!=
"." && $fname!=
"..")
379 $arReferenceId[] =
$path.$fname;
380 $arUSER_HANDLERS[] =
$path.$fname;
381 $arReference[] =
"[".$i.
"] ".$fname;
387 $arr =
array(
"reference"=>$arReference,
"reference_id"=>$arReferenceId);
394 $ar = explode(
".",$EVENT_GID);
395 $sid = intval(
$ar[1]);
396 $gid = intval(
$ar[2]);
399 if ((
count(
$ar)==6 ||
count(
$ar)==7) && $sid>0 && $gid>0 && mb_strlen(
$ar[1]) == mb_strlen($sid) && mb_strlen(
$ar[2]) == mb_strlen($gid)) $base64 =
"N";
403 $s = mb_substr($EVENT_GID, mb_strlen($group_site_id) + 1, mb_strlen($EVENT_GID));
404 $EVENT_GID = $group_site_id.
".".base64_decode($s);
406 $arr = explode(
".",$EVENT_GID);
407 $SESSION_ID = (intval(
$arr[1])>0) ? intval(
$arr[1]) :
"";
408 $GUEST_ID = (intval(
$arr[2])>0) ? intval(
$arr[2]) :
"";
409 $COUNTRY_ID = (
$arr[3] <>
'') ?
$arr[3] :
"";
410 $ADV_ID = (intval(
$arr[4])>0) ? intval(
$arr[4]) :
"";
411 $ADV_BACK = (
$arr[5]==
"Y" ||
$arr[5]==
"N") ?
$arr[5] :
"";
415 "SESSION_ID" => $SESSION_ID,
416 "GUEST_ID" => $GUEST_ID,
417 "COUNTRY_ID" => $COUNTRY_ID,
419 "ADV_BACK" => $ADV_BACK,
436 public static function GetEventsByGuest($GUEST_ID, $EVENT_ID=
false, $EVENT3=
false, $SEC=
false)
443 $DB = CDatabase::GetModuleConnection(
'statistic');
444 $arSqlSearch = Array();
457 if( ((
string)
$val ==
'') || (
$val ===
"NOT_REF") )
460 $match_value_set = array_key_exists(
$key.
"_EXACT_MATCH",
$arFilter);
465 $arSqlSearch[] =
"E.EVENT3 = '".$DB->ForSql(
$val,255).
"'";
469 $arSqlSearch[] =
"E.DATE_ENTER=".$DB->CharToDateFunction(
$val);
476 $arSqlSearch[] =
"E.".$key.
"='".
$DB->ForSql(
$val).
"'";
479 $arSqlSearch[] = (
$val==
"Y") ?
"E.ADV_BACK='Y'" :
"E.ADV_BACK='N'";
482 $arSqlSearch[] =
"E.SITE_ID = '".$DB->ForSql(
$val,2).
"'";
static GetConvertFactor($curFrom, $curTo, $valDate="")
static DecodeGID($EVENT_GID)
static GetByEvents($event1, $event2)
static GetHandlerList(&$arUSER_HANDLERS)
static GetListUniqueCheck($arFilter=Array(), $LIMIT=1)
static SetEventType($event1, $event2, &$arEventType)
static AddByEvents($EVENT1, $EVENT2, $EVENT3, $DATE_ENTER, $PARAM, $MONEY="", $CURRENCY="", $CHARGEBACK="N")
static AddCurrent($event1, $event2="", $event3="", $money="", $currency="", $goto="", $chargeback="N", $site_id=false)
static GetEventsByGuest($GUEST_ID, $EVENT_ID=false, $EVENT3=false, $SEC=false)
static GetGID($site_id=false)
static AddByID($EVENT_ID, $EVENT3, $DATE_ENTER, $PARAM, $MONEY="", $CURRENCY="", $CHARGEBACK="N")
static ConditionSet($event1, $event2, &$arEventType)
static GetByEvents($event1, $event2)
static IncParam($arParam, $arParamSite=false, $SITE_ID=false, $DATE=false, $DATE_FORMAT="FULL", $SIGN="+")
static Add($EVENT_ID, $EVENT3, $DATE_ENTER, $PARAM, $MONEY="", $CURRENCY="", $CHARGEBACK="N")
static GetListByGuest($GUEST_ID, $EVENT_ID=false, $EVENT3=false, $SEC=false)
static DBTopSql($strSql, $nTopCount=false)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
CheckDateTime($datetime, $format=false)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"