2require_once(
$_SERVER[
"DOCUMENT_ROOT"].
"/bitrix/modules/advertising/classes/general/advertising.php");
13 return "<br>Module: ".$module_id.
"<br>Class: CAdvContract<br>File: ".__FILE__;
17 public static function GetList($by =
"s_sort",
$order =
"desc",
$arFilter = [], $is_filtered =
null, $CHECK_RIGHTS=
"Y")
21 if ($CHECK_RIGHTS==
"Y")
23 $USER_ID = intval(
$USER->GetID());
30 if (is_object(
$USER)) $USER_ID = intval(
$USER->GetID());
else $USER_ID = 0;
36 $arSqlSearch = Array();
44 (C.DATE_SHOW_FROM<=now() or C.DATE_SHOW_FROM is null or length(C.DATE_SHOW_FROM)<=0) and
45 (C.DATE_SHOW_TO>=now() or C.DATE_SHOW_TO is null or length(C.DATE_SHOW_TO)<=0) and
46 (ifnull(C.MAX_SHOW_COUNT,0)>ifnull(C.SHOW_COUNT,0) or ifnull(C.MAX_SHOW_COUNT,0)=0) and
47 (ifnull(C.MAX_CLICK_COUNT,0)>ifnull(C.CLICK_COUNT,0) or ifnull(C.MAX_CLICK_COUNT,0)=0) and
48 (ifnull(C.MAX_VISITOR_COUNT,0)>ifnull(C.VISITOR_COUNT,0) or ifnull(C.MAX_VISITOR_COUNT,0)=0) and
63 if ((
string)
$val ==
'' ||
"$val"==
"NOT_REF")
continue;
65 $match_value_set = (in_array(
$key.
"_EXACT_MATCH", $filter_keys)) ?
true :
false;
70 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
77 $left_join =
"LEFT JOIN b_adv_contract_2_site CS ON (C.ID = CS.CONTRACT_ID)";
80 $arSqlSearch[] =
"C.DATE_MODIFY>=".$DB->CharToDateFunction(
$val,
"SHORT");
83 $arSqlSearch[] =
"C.DATE_MODIFY<".$DB->CharToDateFunction(
$val,
"SHORT").
" + INTERVAL 1 DAY";
87 case "ADMIN_COMMENTS":
88 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"Y" && $match_value_set) ?
"N" :
"Y";
92 $arSqlSearch[] =
" ".$lamp.
" = '".
$DB->ForSQL(
$val).
"'";
96 INNER JOIN b_user U ON (U.ID = CU.USER_ID)
99 INNER JOIN b_adv_contract_2_user CU ON (CU.CONTRACT_ID=C.ID)
102 INNER JOIN b_user U ON (U.ID = CU.USER_ID)
104 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"Y" && $match_value_set) ?
"N" :
"Y";
105 $arSqlSearch[] =
GetFilterQuery(
"CU.USER_ID, U.LOGIN, U.NAME, U.LAST_NAME",
$val, $match);
107 case "BANNER_COUNT_1":
108 $arSqlSearch_h[] =
"BANNER_COUNT>='".intval(
$val).
"'";
110 case "BANNER_COUNT_2":
111 $arSqlSearch_h[] =
"BANNER_COUNT<='".intval(
$val).
"'";
114 $arSqlSearch[] =
"C.SHOW_COUNT>='".intval(
$val).
"'";
117 $arSqlSearch[] =
"C.SHOW_COUNT<='".intval(
$val).
"'";
119 case "EMAIL_COUNT_1":
120 $arSqlSearch[] =
"C.EMAIL_COUNT>='".intval(
$val).
"'";
122 case "EMAIL_COUNT_2":
123 $arSqlSearch[] =
"C.EMAIL_COUNT<='".intval(
$val).
"'";
125 case "VISITOR_COUNT_1":
126 $arSqlSearch[] =
"C.VISITOR_COUNT>='".intval(
$val).
"'";
128 case "VISITOR_COUNT_2":
129 $arSqlSearch[] =
"C.VISITOR_COUNT<='".intval(
$val).
"'";
131 case "CLICK_COUNT_1":
132 $arSqlSearch[] =
"C.CLICK_COUNT>='".intval(
$val).
"'";
134 case "CLICK_COUNT_2":
135 $arSqlSearch[] =
"C.CLICK_COUNT<='".intval(
$val).
"'";
138 $arSqlSearch[] =
"if(C.SHOW_COUNT<=0,0,round((C.CLICK_COUNT*100)/C.SHOW_COUNT,2))>='".DoubleVal(str_replace(
',',
'.',
$val)).
"'";
141 $arSqlSearch[] =
"if(C.SHOW_COUNT<=0,0,round((C.CLICK_COUNT*100)/C.SHOW_COUNT,2))<='".DoubleVal(str_replace(
',',
'.',
$val)).
"'";
143 case "USER_PERMISSIONS":
144 $admin_from_1 =
" INNER JOIN b_adv_contract_2_user CU ON (CU.CONTRACT_ID=C.ID) ";
152 if ($by ==
"s_id") $strSqlOrder =
"ORDER BY C.ID";
153 elseif ($by ==
"s_lamp") $strSqlOrder =
"ORDER BY LAMP";
154 elseif ($by ==
"s_date_modify") $strSqlOrder =
"ORDER BY C.DATE_MODIFY";
155 elseif ($by ==
"s_name") $strSqlOrder =
"ORDER BY C.NAME";
156 elseif ($by ==
"s_description") $strSqlOrder =
"ORDER BY C.DESCRIPTION";
157 elseif ($by ==
"s_modified_by") $strSqlOrder =
"ORDER BY C.MODIFIED_BY";
158 elseif ($by ==
"s_active") $strSqlOrder =
"ORDER BY C.ACTIVE";
159 elseif ($by ==
"s_weight") $strSqlOrder =
"ORDER BY C.WEIGHT";
160 elseif ($by ==
"s_sort") $strSqlOrder =
"ORDER BY ifnull(C.SORT,0)";
161 elseif ($by ==
"s_banner_count") $strSqlOrder =
"ORDER BY BANNER_COUNT";
162 elseif ($by ==
"s_ctr") $strSqlOrder =
"ORDER BY CTR";
163 elseif ($by ==
"s_show_count") $strSqlOrder =
"ORDER BY C.SHOW_COUNT";
164 elseif ($by ==
"s_max_show_count") $strSqlOrder =
"ORDER BY ifnull(C.MAX_SHOW_COUNT,0)";
165 elseif ($by ==
"s_click_count") $strSqlOrder =
"ORDER BY C.CLICK_COUNT";
166 elseif ($by ==
"s_max_click_count") $strSqlOrder =
"ORDER BY ifnull(C.MAX_CLICK_COUNT,0)";
167 elseif ($by ==
"s_visitor_count") $strSqlOrder =
"ORDER BY C.VISITOR_COUNT";
168 elseif ($by ==
"s_max_visitor_count") $strSqlOrder =
"ORDER BY ifnull(C.MAX_VISITOR_COUNT,0)";
171 $strSqlOrder =
"ORDER BY ifnull(C.SORT,0)";
176 $strSqlOrder .=
" desc ";
182 if ($isAdmin || $isDemo || $isManager)
187 C.ID, C.ACTIVE, C.NAME, C.DESCRIPTION, C.ADMIN_COMMENTS, C.WEIGHT, C.SORT, C.MAX_SHOW_COUNT, C.SHOW_COUNT, C.EMAIL_COUNT, C.CREATED_BY, C.MODIFIED_BY, C.MAX_CLICK_COUNT, C.CLICK_COUNT, C.DEFAULT_STATUS_SID, C.MAX_VISITOR_COUNT, C.VISITOR_COUNT, C.KEYWORDS,
188 if(C.SHOW_COUNT<=0,0,round((C.CLICK_COUNT*100)/C.SHOW_COUNT,2)) CTR,
189 ".$DB->DateToCharFunction(
"C.DATE_SHOW_FROM").
" DATE_SHOW_FROM,
190 ".
$DB->DateToCharFunction(
"C.DATE_SHOW_TO").
" DATE_SHOW_TO,
191 ".
$DB->DateToCharFunction(
"C.DATE_CREATE").
" DATE_CREATE,
192 ".
$DB->DateToCharFunction(
"C.DATE_MODIFY").
" DATE_MODIFY,
193 count(distinct B.ID) BANNER_COUNT
196 LEFT JOIN b_adv_banner B ON (B.CONTRACT_ID=C.ID)
214 C.ID, C.ACTIVE, C.NAME, C.DESCRIPTION, C.ADMIN_COMMENTS, C.WEIGHT, C.SORT, C.MAX_SHOW_COUNT, C.SHOW_COUNT, C.MAX_CLICK_COUNT, C.CLICK_COUNT, C.EMAIL_COUNT, C.CREATED_BY, C.MODIFIED_BY, C.DEFAULT_STATUS_SID, C.MAX_VISITOR_COUNT, C.VISITOR_COUNT, C.KEYWORDS,
215 if(C.SHOW_COUNT<=0,0,round((C.CLICK_COUNT*100)/C.SHOW_COUNT,2)) CTR,
216 ".$DB->DateToCharFunction(
"C.DATE_SHOW_FROM").
" DATE_SHOW_FROM,
217 ".
$DB->DateToCharFunction(
"C.DATE_SHOW_TO").
" DATE_SHOW_TO,
218 ".
$DB->DateToCharFunction(
"C.DATE_CREATE").
" DATE_CREATE,
219 ".
$DB->DateToCharFunction(
"C.DATE_MODIFY").
" DATE_MODIFY,
220 count(distinct B.ID) BANNER_COUNT
223 LEFT JOIN b_adv_banner B ON (B.CONTRACT_ID=C.ID)
224 INNER JOIN b_adv_contract_2_user CU ON (CU.CONTRACT_ID=C.ID and CU.USER_ID=$USER_ID)
236 $res =
$DB->Query($strSql,
false, $err_mess.__LINE__);
251 return "<br>Module: ".$module_id.
"<br>Class: CAdvBanner<br>File: ".__FILE__;
259 if (in_array(
"CODE", $arrKeys))
263 $DB->Update(
"b_adv_banner",
$arFields,
"WHERE ID='".intval($BANNER_ID).
"'",$err_mess.__LINE__);
268 return 'IF (SUM(D.SHOW_COUNT) > 0, round((SUM(D.CLICK_COUNT)*100)/SUM(D.SHOW_COUNT),2), 0) CTR';
271 public static function addBindField($field, $bannerField, &$modifyStatus)
275 $field =
"'".$DB->ForSql($field).
"'";
276 $bannerField =
"'".$DB->ForSql($bannerField).
"'";
278 if ($bannerField != $field)
280 $modify_status =
"Y";
291 if (in_array(
"CODE", $arrKeys))
295 $BANNER_ID =
$DB->Insert(
"b_adv_banner",
$arFields, $err_mess.__LINE__);
305 if ($CHECK_RIGHTS==
"Y")
307 $USER_ID = intval(
$USER->GetID());
314 if (is_object(
$USER)) $USER_ID = intval(
$USER->GetID());
else $USER_ID = 0;
320 $arSqlSearch = Array();
323 $DONT_USE_CONTRACT = COption::GetOptionString(
"advertising",
"DONT_USE_CONTRACT",
"N");
325 if ($DONT_USE_CONTRACT ==
"Y")
329 (B.DATE_SHOW_FROM<=now() or B.DATE_SHOW_FROM is null or length(B.DATE_SHOW_FROM)<=0) and
330 (B.DATE_SHOW_TO>=now() or B.DATE_SHOW_TO is null or length(B.DATE_SHOW_TO)<=0) and
331 (ifnull(B.MAX_SHOW_COUNT,0)>ifnull(B.SHOW_COUNT,0) or ifnull(B.MAX_SHOW_COUNT,0)=0) and
332 (ifnull(B.MAX_CLICK_COUNT,0)>ifnull(B.CLICK_COUNT,0) or ifnull(B.MAX_CLICK_COUNT,0)=0) and
333 (ifnull(B.MAX_VISITOR_COUNT,0)>ifnull(B.VISITOR_COUNT,0) or ifnull(B.MAX_VISITOR_COUNT,0)=0) and
335 (B.STATUS_SID='PUBLISHED') and
346 (B.DATE_SHOW_FROM<=now() or B.DATE_SHOW_FROM is null or length(B.DATE_SHOW_FROM)<=0) and
347 (B.DATE_SHOW_TO>=now() or B.DATE_SHOW_TO is null or length(B.DATE_SHOW_TO)<=0) and
348 (ifnull(B.MAX_SHOW_COUNT,0)>ifnull(B.SHOW_COUNT,0) or ifnull(B.MAX_SHOW_COUNT,0)=0) and
349 (ifnull(B.MAX_CLICK_COUNT,0)>ifnull(B.CLICK_COUNT,0) or ifnull(B.MAX_CLICK_COUNT,0)=0) and
350 (ifnull(B.MAX_VISITOR_COUNT,0)>ifnull(B.VISITOR_COUNT,0) or ifnull(B.MAX_VISITOR_COUNT,0)=0) and
352 (B.STATUS_SID='PUBLISHED') and
354 (C.DATE_SHOW_FROM<=now() or C.DATE_SHOW_FROM is null or length(C.DATE_SHOW_FROM)<=0) and
355 (C.DATE_SHOW_TO>=now() or C.DATE_SHOW_TO is null or length(C.DATE_SHOW_TO)<=0) and
356 (ifnull(C.MAX_SHOW_COUNT,0)>ifnull(C.SHOW_COUNT,0) or ifnull(C.MAX_SHOW_COUNT,0)=0) and
357 (ifnull(C.MAX_CLICK_COUNT,0)>ifnull(C.CLICK_COUNT,0) or ifnull(C.MAX_CLICK_COUNT,0)=0) and
358 (ifnull(C.MAX_VISITOR_COUNT,0)>ifnull(C.VISITOR_COUNT,0) or ifnull(C.MAX_VISITOR_COUNT,0)=0) and
375 if((
string)
$val ==
'' ||
$val ==
"NOT_REF")
377 $match_value_set = (in_array(
$key.
"_EXACT_MATCH", $filter_keys)) ?
true :
false;
382 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
386 $arSqlSearch[] =
" ".$lamp.
" = '".
$DB->ForSQL(
$val).
"'";
390 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
392 $left_join =
"LEFT JOIN b_adv_banner_2_site BS ON (B.ID = BS.BANNER_ID)";
394 case "DATE_MODIFY_1":
395 $arSqlSearch[] =
"B.DATE_MODIFY>=".$DB->CharToDateFunction(
$val,
"SHORT");
397 case "DATE_MODIFY_2":
398 $arSqlSearch[] =
"B.DATE_MODIFY<".$DB->CharToDateFunction(
$val,
"SHORT").
" + INTERVAL 1 DAY";
400 case "DATE_CREATE_1":
401 $arSqlSearch[] =
"B.DATE_CREATE>=".$DB->CharToDateFunction(
$val,
"SHORT");
403 case "DATE_CREATE_2":
404 $arSqlSearch[] =
"B.DATE_CREATE<".$DB->CharToDateFunction(
$val,
"SHORT").
" + INTERVAL 1 DAY";
406 case "DATE_SHOW_FROM_1":
407 $arSqlSearch[] =
"B.DATE_SHOW_FROM>=".$DB->CharToDateFunction(
$val,
"SHORT");
409 case "DATE_SHOW_FROM_2":
410 $arSqlSearch[] =
"B.DATE_SHOW_FROM<".$DB->CharToDateFunction(
$val,
"SHORT").
" + INTERVAL 1 DAY";
412 case "DATE_SHOW_TO_1":
413 $arSqlSearch[] =
"B.DATE_SHOW_TO>=".$DB->CharToDateFunction(
$val,
"SHORT");
415 case "DATE_SHOW_TO_2":
416 $arSqlSearch[] =
"B.DATE_SHOW_TO<".$DB->CharToDateFunction(
$val,
"SHORT").
" + INTERVAL 1 DAY";
420 $arSqlSearch[] = (
$val==
"Y") ?
"B.".
$key.
"='Y'" :
"B.".$key.
"='N'";
423 $arSqlSearch[] =
"ifnull(B.WEIGHT,0)>='".intval(
$val).
"'";
426 $arSqlSearch[] =
"ifnull(B.WEIGHT,0)<='".intval(
$val).
"'";
428 case "MAX_VISITOR_COUNT_1":
429 $arSqlSearch[] =
"ifnull(B.MAX_VISITOR_COUNT,0)>='".intval(
$val).
"'";
431 case "MAX_VISITOR_COUNT_2":
432 $arSqlSearch[] =
"ifnull(B.MAX_VISITOR_COUNT,0)<='".intval(
$val).
"'";
434 case "VISITOR_COUNT_1":
435 $arSqlSearch[] =
"ifnull(B.VISITOR_COUNT,0)>='".intval(
$val).
"'";
437 case "VISITOR_COUNT_2":
438 $arSqlSearch[] =
"ifnull(B.VISITOR_COUNT,0)<='".intval(
$val).
"'";
440 case "MAX_SHOW_COUNT_1":
441 $arSqlSearch[] =
"ifnull(B.MAX_SHOW_COUNT,0)>='".intval(
$val).
"'";
443 case "MAX_SHOW_COUNT_2":
444 $arSqlSearch[] =
"ifnull(B.MAX_SHOW_COUNT,0)<='".intval(
$val).
"'";
447 $arSqlSearch[] =
"ifnull(B.SHOW_COUNT,0)>='".intval(
$val).
"'";
450 $arSqlSearch[] =
"ifnull(B.SHOW_COUNT,0)<='".intval(
$val).
"'";
452 case "MAX_CLICK_COUNT_1":
453 $arSqlSearch[] =
"ifnull(B.MAX_CLICK_COUNT,0)>='".intval(
$val).
"'";
455 case "MAX_CLICK_COUNT_2":
456 $arSqlSearch[] =
"ifnull(B.MAX_CLICK_COUNT,0)<='".intval(
$val).
"'";
458 case "CLICK_COUNT_1":
459 $arSqlSearch[] =
"ifnull(B.CLICK_COUNT,0)>='".intval(
$val).
"'";
461 case "CLICK_COUNT_2":
462 $arSqlSearch[] =
"ifnull(B.CLICK_COUNT,0)<='".intval(
$val).
"'";
465 $arSqlSearch[] =
"if(B.SHOW_COUNT<=0,0,round((B.CLICK_COUNT*100)/B.SHOW_COUNT,2))>='".DoubleVal(str_replace(
',',
'.',
$val)).
"'";
468 $arSqlSearch[] =
"if(B.SHOW_COUNT<=0,0,round((B.CLICK_COUNT*100)/B.SHOW_COUNT,2))<='".DoubleVal(str_replace(
',',
'.',
$val)).
"'";
471 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"Y" && $match_value_set) ?
"N" :
"Y";
481 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
486 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"Y" && $match_value_set) ?
"N" :
"Y";
487 $arSqlSearch[] =
GetFilterQuery(
"B.CONTRACT_ID, C.NAME, C.DESCRIPTION",
$val, $match);
491 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
496 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"Y" && $match_value_set) ?
"N" :
"Y";
499 case "SHOW_USER_GROUP":
501 $arSqlSearch[] =
"B.SHOW_USER_GROUP='Y'";
503 $arSqlSearch[] =
"B.SHOW_USER_GROUP <> 'Y'";
508 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"Y" && $match_value_set) ?
"N" :
"Y";
514 case "FIRST_SITE_ID":
521 if ($by ==
"s_id") $strSqlOrder =
" ORDER BY B.ID ";
522 elseif ($by ==
"s_lamp") $strSqlOrder =
" ORDER BY LAMP ";
523 elseif ($by ==
"s_name") $strSqlOrder =
" ORDER BY B.NAME ";
524 elseif ($by ==
"s_type_sid") $strSqlOrder =
" ORDER BY B.TYPE_SID ";
525 elseif ($by ==
"s_contract_id") $strSqlOrder =
" ORDER BY B.CONTRACT_ID ";
526 elseif ($by ==
"s_group_sid") $strSqlOrder =
" ORDER BY B.GROUP_SID ";
527 elseif ($by ==
"s_visitor_count") $strSqlOrder =
" ORDER BY B.VISITOR_COUNT ";
528 elseif ($by ==
"s_max_visitor_count") $strSqlOrder =
" ORDER BY ifnull(B.MAX_VISITOR_COUNT,0) ";
529 elseif ($by ==
"s_show_count") $strSqlOrder =
" ORDER BY B.SHOW_COUNT ";
530 elseif ($by ==
"s_max_show_count") $strSqlOrder =
" ORDER BY ifnull(B.MAX_SHOW_COUNT,0) ";
531 elseif ($by ==
"s_date_last_show") $strSqlOrder =
" ORDER BY B.DATE_LAST_SHOW ";
532 elseif ($by ==
"s_click_count") $strSqlOrder =
" ORDER BY B.CLICK_COUNT ";
533 elseif ($by ==
"s_max_click_count") $strSqlOrder =
" ORDER BY ifnull(B.MAX_CLICK_COUNT,0) ";
534 elseif ($by ==
"s_date_last_click") $strSqlOrder =
" ORDER BY B.DATE_LAST_CLICK ";
535 elseif ($by ==
"s_active") $strSqlOrder =
" ORDER BY B.ACTIVE ";
536 elseif ($by ==
"s_weight") $strSqlOrder =
" ORDER BY B.WEIGHT ";
537 elseif ($by ==
"s_status_sid") $strSqlOrder =
" ORDER BY B.STATUS_SID ";
538 elseif ($by ==
"s_date_show_from") $strSqlOrder =
" ORDER BY B.DATE_SHOW_FROM ";
539 elseif ($by ==
"s_date_show_to") $strSqlOrder =
" ORDER BY B.DATE_SHOW_TO ";
540 elseif ($by ==
"s_dropdown") $strSqlOrder =
" ORDER BY B.CONTRACT_ID desc, B.ID ";
541 elseif ($by ==
"s_ctr") $strSqlOrder =
" ORDER BY CTR ";
542 elseif ($by ==
"s_date_create") $strSqlOrder =
" ORDER BY B.DATE_CREATE ";
543 elseif ($by ==
"s_date_modify") $strSqlOrder =
" ORDER BY B.DATE_MODIFY ";
546 $strSqlOrder =
" ORDER BY B.ID ";
551 $strSqlOrder .=
" desc ";
556 if ($isAdmin || $isDemo || $isManager)
564 if(B.SHOW_COUNT<=0,0,round((B.CLICK_COUNT*100)/B.SHOW_COUNT,2)) CTR,
565 ".$DB->DateToCharFunction(
"B.DATE_LAST_SHOW").
" DATE_LAST_SHOW,
566 ".
$DB->DateToCharFunction(
"B.DATE_LAST_CLICK").
" DATE_LAST_CLICK,
567 ".
$DB->DateToCharFunction(
"B.DATE_SHOW_FROM").
" DATE_SHOW_FROM,
568 ".
$DB->DateToCharFunction(
"B.DATE_SHOW_TO").
" DATE_SHOW_TO,
569 ".
$DB->DateToCharFunction(
"B.DATE_SHOW_FIRST").
" DATE_SHOW_FIRST,
570 ".
$DB->DateToCharFunction(
"B.DATE_CREATE").
" DATE_CREATE,
571 ".
$DB->DateToCharFunction(
"B.DATE_MODIFY").
" DATE_MODIFY,
572 C.NAME CONTRACT_NAME,
576 INNER JOIN b_adv_type T ON (T.SID = B.TYPE_SID)
577 INNER JOIN b_adv_contract C ON (C.ID = B.CONTRACT_ID)
592 if(B.SHOW_COUNT<=0,0,round((B.CLICK_COUNT*100)/B.SHOW_COUNT,2)) CTR,
593 ".$DB->DateToCharFunction(
"B.DATE_LAST_SHOW").
" DATE_LAST_SHOW,
594 ".
$DB->DateToCharFunction(
"B.DATE_LAST_CLICK").
" DATE_LAST_CLICK,
595 ".
$DB->DateToCharFunction(
"B.DATE_SHOW_FROM").
" DATE_SHOW_FROM,
596 ".
$DB->DateToCharFunction(
"B.DATE_SHOW_TO").
" DATE_SHOW_TO,
597 ".
$DB->DateToCharFunction(
"B.DATE_SHOW_FIRST").
" DATE_SHOW_FIRST,
598 ".
$DB->DateToCharFunction(
"B.DATE_CREATE").
" DATE_CREATE,
599 ".
$DB->DateToCharFunction(
"B.DATE_MODIFY").
" DATE_MODIFY,
600 C.NAME CONTRACT_NAME,
604 INNER JOIN b_adv_type T ON (T.SID = B.TYPE_SID)
605 INNER JOIN b_adv_contract C ON (C.ID = B.CONTRACT_ID)
606 INNER JOIN b_adv_contract_2_user CU ON (CU.CONTRACT_ID=C.ID and CU.USER_ID=$USER_ID)
613 $res =
$DB->Query($strSql,
false, $err_mess.__LINE__);
619 public static function Click($BANNER_ID)
623 $BANNER_ID = intval($BANNER_ID);
624 if ($BANNER_ID<=0)
return false;
634 $rsBanner =
$DB->Query($strSql,
false, $err_mess.__LINE__);
635 if ($arBanner = $rsBanner->Fetch())
643 "CLICK_COUNT" =>
"CLICK_COUNT + 1",
644 "DATE_LAST_CLICK" =>
$DB->GetNowFunction(),
646 $rows =
$DB->Update(
"b_adv_banner",
$arFields,
"WHERE ID = $BANNER_ID",$err_mess.__LINE__);
649 foreach (getModuleEvents(
'advertising',
'onBannerClick',
true) as $arEvent)
654 UPDATE b_adv_banner_2_day SET
655 CLICK_COUNT = CLICK_COUNT + 1
657 BANNER_ID = $BANNER_ID
658 and DATE_STAT = ".$DB->GetNowDate().
"
660 $z =
$DB->Query($strSql,
false, $err_mess.__LINE__);
661 $rows =
$z->AffectedRowsCount();
662 if (intval(
$rows)<=0)
670 BANNER_ID = $BANNER_ID
671 and DATE_STAT = ".$DB->GetNowDate().
"
673 $w =
$DB->Query($strSql,
false, $err_mess.__LINE__);
674 if (!$wr=$w->Fetch())
677 INSERT INTO b_adv_banner_2_day (DATE_STAT, BANNER_ID, CLICK_COUNT) VALUES (
678 ".$DB->GetNowDate().
",
682 $DB->Query($strSql,
true, $err_mess.__LINE__);
691 $DONT_USE_CONTRACT = COption::GetOptionString(
"advertising",
"DONT_USE_CONTRACT",
"N");
693 $CONTRACT_ID = intval($arBanner[
"CONTRACT_ID"]);
694 if ($CONTRACT_ID>0 && $DONT_USE_CONTRACT ==
"N")
696 $arFields = Array(
"CLICK_COUNT" =>
"CLICK_COUNT + 1");
697 $DB->Update(
"b_adv_contract",
$arFields,
"WHERE ID = $CONTRACT_ID",$err_mess.__LINE__);
708 $stat_adv_id = intval($_SESSION[
"SESS_LAST_ADV_ID"]);
709 $stat_country_id = trim($_SESSION[
"SESS_COUNTRY_ID"]);
710 $stat_city_id = intval($_SESSION[
"SESS_CITY_ID"]);
711 if($stat_city_id > 0 && CModule::IncludeModule(
'statistic'))
714 if($arCity = $rsCity->Fetch())
715 $stat_region = $arCity[
"REGION_NAME"];
717 $new_guest = ($_SESSION[
"SESS_GUEST_NEW"]==
"N") ?
"N" :
"Y";
719 $arrTime = getdate();
720 $weekday = mb_strtoupper($arrTime[
"weekday"]);
721 $hour = intval($arrTime[
"hours"]);
722 $strUserGroups =
$USER->GetUserGroupString();
724 $DONT_USE_CONTRACT = COption::GetOptionString(
"advertising",
"DONT_USE_CONTRACT",
"N");
726 if ($DONT_USE_CONTRACT ==
"N")
733 B.WEIGHT BANNER_WEIGHT,
736 B.KEYWORDS BANNER_KEYWORDS,
737 ".$DB->DateToCharFunction(
"B.DATE_SHOW_FIRST").
" DATE_SHOW_FIRST,
738 ".
$DB->DateToCharFunction(
"B.DATE_SHOW_FROM").
" DATE_SHOW_FROM,
739 ".
$DB->DateToCharFunction(
"B.DATE_SHOW_TO").
" DATE_SHOW_TO,
740 B.FLYUNIFORM FLYUNIFORM,
741 B.MAX_SHOW_COUNT MAX_SHOW_COUNT,
742 B.SHOW_COUNT SHOW_COUNT,
744 C.WEIGHT CONTRACT_WEIGHT,
745 C.KEYWORDS CONTRACT_KEYWORDS
749 INNER JOIN b_adv_banner B ON (
751 and B.TYPE_SID = T.SID
752 and B.STATUS_SID = 'PUBLISHED'
753 and (B.FOR_NEW_GUEST is null or B.FOR_NEW_GUEST='$new_guest')
754 and (ifnull(B.MAX_SHOW_COUNT,0)>ifnull(B.SHOW_COUNT,0) or ifnull(B.MAX_SHOW_COUNT,0)=0)
755 and (ifnull(B.MAX_CLICK_COUNT,0)>ifnull(B.CLICK_COUNT,0) or ifnull(B.MAX_CLICK_COUNT,0)=0)
756 and (ifnull(B.MAX_VISITOR_COUNT,0)>ifnull(B.VISITOR_COUNT,0) or ifnull(B.MAX_VISITOR_COUNT,0)=0)
757 and (B.DATE_SHOW_FROM<=now() or B.DATE_SHOW_FROM is null or length(B.DATE_SHOW_FROM)<=0)
758 and (B.DATE_SHOW_TO>=now() or B.DATE_SHOW_TO is null or length(B.DATE_SHOW_TO)<=0))
760 INNER JOIN b_adv_banner_2_site BS ON (
762 and BS.SITE_ID = '".
SITE_ID.
"')
764 INNER JOIN b_adv_contract C ON (
767 and (ifnull(C.MAX_SHOW_COUNT,0)>ifnull(C.SHOW_COUNT,0) or ifnull(C.MAX_SHOW_COUNT,0)=0)
768 and (ifnull(C.MAX_CLICK_COUNT,0)>ifnull(C.CLICK_COUNT,0) or ifnull(C.MAX_CLICK_COUNT,0)=0)
769 and (ifnull(C.MAX_VISITOR_COUNT,0)>ifnull(C.VISITOR_COUNT,0) or ifnull(C.MAX_VISITOR_COUNT,0)=0)
770 and (C.DATE_SHOW_FROM<=now() or C.DATE_SHOW_FROM is null or length(C.DATE_SHOW_FROM)<=0)
771 and (C.DATE_SHOW_TO>=now() or C.DATE_SHOW_TO is null or length(C.DATE_SHOW_TO)<=0))
773 INNER JOIN b_adv_contract_2_site CS ON (
774 CS.CONTRACT_ID = B.CONTRACT_ID
775 and CS.SITE_ID = '".
SITE_ID.
"')
777 INNER JOIN b_adv_contract_2_type CT ON (
778 CT.CONTRACT_ID = C.ID
779 and (CT.TYPE_SID = 'ALL' or CT.TYPE_SID = T.SID))
781 INNER JOIN b_adv_banner_2_weekday BW ON (
783 and BW.C_WEEKDAY='".
$DB->ForSql($weekday,10).
"'
784 and BW.C_HOUR = '$hour')
786 INNER JOIN b_adv_contract_2_weekday CW ON (
787 CW.CONTRACT_ID = C.ID
788 and CW.C_WEEKDAY='".
$DB->ForSql($weekday,10).
"'
789 and CW.C_HOUR = '$hour')
791 LEFT JOIN b_adv_banner_2_group UG1 ON (
792 (UG1.BANNER_ID = B.ID
793 and UG1.GROUP_ID in (".$strUserGroups.
") and UG1.GROUP_ID<>2)
796 LEFT JOIN b_adv_banner_2_page BP1 ON (
798 and BP1.SHOW_ON_PAGE='Y')
800 LEFT JOIN b_adv_banner_2_page BP2 ON (
802 and BP2.SHOW_ON_PAGE='N'
803 and '".
$DB->ForSQL(
$url).
"' like concat(BP2.PAGE, '%'))
805 LEFT JOIN b_adv_contract_2_page CP1 ON (
806 CP1.CONTRACT_ID = C.ID
807 and CP1.SHOW_ON_PAGE='Y')
809 LEFT JOIN b_adv_contract_2_page CP2 ON (
810 CP2.CONTRACT_ID = C.ID
811 and CP2.SHOW_ON_PAGE='N'
812 and '".
$DB->ForSQL(
$url).
"' like concat(CP2.PAGE, '%'))
814 LEFT JOIN b_adv_banner_2_stat_adv BA ON BA.BANNER_ID = B.ID
815 LEFT JOIN b_adv_banner_2_country BC ON BC.BANNER_ID = B.ID AND (
817 (B.STAT_TYPE is null OR length(B.STAT_TYPE)=0 OR B.STAT_TYPE='COUNTRY')
818 AND BC.COUNTRY_ID='".
$DB->ForSql($stat_country_id,2).
"'
821 AND BC.COUNTRY_ID='".
$DB->ForSql($stat_country_id,2).
"'
822 AND BC.REGION='".
$DB->ForSql($stat_region).
"'
825 AND BC.CITY_ID='".intval($stat_city_id).
"'
835 or BC.BANNER_ID is not null
839 and (BP1.ID is null or '".
$DB->ForSQL(
$url).
"' like concat(BP1.PAGE, '%'))
840 and (CP1.ID is null or '".
$DB->ForSQL(
$url).
"' like concat(CP1.PAGE, '%'))
841 and (BA.STAT_ADV_ID is null or BA.STAT_ADV_ID='".$stat_adv_id.
"')
842 and (BC.COUNTRY_ID is null or BC.COUNTRY_ID='".
$DB->ForSql($stat_country_id,2).
"')
846 (B.SHOW_USER_GROUP = 'Y' and UG1.GROUP_ID is not null)
848 (B.SHOW_USER_GROUP <> 'Y' and UG1.GROUP_ID is null)
851 ORDER BY B.TYPE_SID desc, C.ID desc
860 B.WEIGHT BANNER_WEIGHT,
863 B.KEYWORDS BANNER_KEYWORDS
867 INNER JOIN b_adv_banner B ON (
869 and B.TYPE_SID = T.SID
870 and B.STATUS_SID = 'PUBLISHED'
871 and (B.FOR_NEW_GUEST is null or B.FOR_NEW_GUEST='$new_guest')
872 and (ifnull(B.MAX_SHOW_COUNT,0)>ifnull(B.SHOW_COUNT,0) or ifnull(B.MAX_SHOW_COUNT,0)=0)
873 and (ifnull(B.MAX_CLICK_COUNT,0)>ifnull(B.CLICK_COUNT,0) or ifnull(B.MAX_CLICK_COUNT,0)=0)
874 and (ifnull(B.MAX_VISITOR_COUNT,0)>ifnull(B.VISITOR_COUNT,0) or ifnull(B.MAX_VISITOR_COUNT,0)=0)
875 and (B.DATE_SHOW_FROM<=now() or B.DATE_SHOW_FROM is null or length(B.DATE_SHOW_FROM)<=0)
876 and (B.DATE_SHOW_TO>=now() or B.DATE_SHOW_TO is null or length(B.DATE_SHOW_TO)<=0))
878 INNER JOIN b_adv_banner_2_site BS ON (
880 and BS.SITE_ID = '".SITE_ID.
"')
882 INNER JOIN b_adv_banner_2_weekday BW ON (
884 and BW.C_WEEKDAY='".
$DB->ForSql($weekday,10).
"'
885 and BW.C_HOUR = '$hour')
887 LEFT JOIN b_adv_banner_2_group UG1 ON (
888 (UG1.BANNER_ID = B.ID
889 and UG1.GROUP_ID in (".$strUserGroups.
") and UG1.GROUP_ID<>2)
892 LEFT JOIN b_adv_banner_2_page BP1 ON (
894 and BP1.SHOW_ON_PAGE='Y')
896 LEFT JOIN b_adv_banner_2_page BP2 ON (
898 and BP2.SHOW_ON_PAGE='N'
899 and '".
$DB->ForSQL(
$url).
"' like concat(BP2.PAGE, '%'))
901 LEFT JOIN b_adv_banner_2_stat_adv BA ON BA.BANNER_ID = B.ID
902 LEFT JOIN b_adv_banner_2_country BC ON BC.BANNER_ID = B.ID AND (
904 (B.STAT_TYPE is null OR length(B.STAT_TYPE)=0 OR B.STAT_TYPE='COUNTRY')
905 AND BC.COUNTRY_ID='".
$DB->ForSql($stat_country_id,2).
"'
908 AND BC.COUNTRY_ID='".
$DB->ForSql($stat_country_id,2).
"'
909 AND BC.REGION='".
$DB->ForSql($stat_region).
"'
912 AND BC.CITY_ID='".intval($stat_city_id).
"'
922 or BC.BANNER_ID is not null
925 and (BP1.ID is null or '".
$DB->ForSQL(
$url).
"' like concat(BP1.PAGE, '%'))
926 and (BA.STAT_ADV_ID is null or BA.STAT_ADV_ID='".$stat_adv_id.
"')
927 and (BC.COUNTRY_ID is null or BC.COUNTRY_ID='".
$DB->ForSql($stat_country_id,2).
"')
930 (B.SHOW_USER_GROUP = 'Y' and UG1.GROUP_ID is not null)
932 (B.SHOW_USER_GROUP <> 'Y' and UG1.GROUP_ID is null)
934 ORDER BY B.TYPE_SID desc";
936 $rs =
$DB->Query($strSql,
false, $err_mess.__LINE__);
944 ignore_user_abort(
true);
947 $DAYS = intval(COption::GetOptionString(
"advertising",
"BANNER_DAYS"));
948 $strSql =
"DELETE FROM b_adv_banner_2_day WHERE to_days(now())-to_days(DATE_STAT)>=$DAYS";
949 $DB->Query($strSql,
false, $err_mess.__LINE__);
950 $strSql =
"OPTIMIZE TABLE b_adv_banner_2_day";
951 $DB->Query($strSql,
false, $err_mess.__LINE__);
952 return "CAdvBanner::CleanUpDynamics();";
958 ignore_user_abort(
true);
961 $strSql =
"DELETE FROM b_adv_banner_2_day WHERE 1 = 1";
962 $DB->Query($strSql,
false, $err_mess.__LINE__);
963 $strSql =
"OPTIMIZE TABLE b_adv_banner_2_day";
964 $DB->Query($strSql,
false, $err_mess.__LINE__);
965 return "CAdvBanner::CleanUpAllDynamics();";
973 ".$DB->DateToCharFunction(
"D.DATE_STAT",
"SHORT").
" DATE_STAT,
974 DAYOFMONTH(D.DATE_STAT) DAY,
975 MONTH(D.DATE_STAT) MONTH,
976 YEAR(D.DATE_STAT) YEAR,
983 C.NAME CONTRACT_NAME,
984 C.SORT CONTRACT_SORT,
986 B.TYPE_SID BANNER_TYPE_SID
989 INNER JOIN b_adv_banner B ON (D.BANNER_ID = B.ID)
990 INNER JOIN b_adv_contract C ON (B.CONTRACT_ID = C.ID)
994 D.DATE_STAT, B.CONTRACT_ID, B.GROUP_SID, D.BANNER_ID
1009 return "<br>Module: ".$module_id.
"<br>Class: CAdvType<br>File: ".__FILE__;
static CleanUpAllDynamics()
static GetDynamicList_SQL($strSqlSearch)
static addBindField($field, $bannerField, &$modifyStatus)
static GetList($by='s_id', $order='desc', $arFilter=[], $is_filtered=null, $CHECK_RIGHTS="Y")
static Update($arFields, $BANNER_ID)
static GetPageWeights_RS()
static IsAdmin($USER_ID=false)
static IsDemo($USER_ID=false)
static CheckFilter($arFilter)
static IsManager($USER_ID=false)
static GetList($by="s_sort", $order="desc", $arFilter=[], $is_filtered=null, $CHECK_RIGHTS="Y")
static GetList($arOrder=array(), $arFilter=array())
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
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."%"