Ejemplo n.º 1
0
 function FixShow($arBanner)
 {
     global $DB, $CACHE_ADVERTISING;
     if (intval($_SESSION["SESS_SEARCHER_ID"]) <= 0 && $arBanner["FIX_SHOW"] == "Y" && COption::GetOptionString('advertising', 'DONT_FIX_BANNER_SHOWS') != "Y") {
         $BANNER_ID = intval($arBanner["ID"]);
         $CONTRACT_ID = intval($arBanner["CONTRACT_ID"]);
         if ($BANNER_ID > 0) {
             CAdvBanner::SetCookie($arBanner, $inc_banner_counter, $inc_contract_counter);
             if (strlen($arBanner["DATE_SHOW_FIRST"]) <= 0) {
                 $CACHE_ADVERTISING["ALL_DATE_SHOW_FIRST"][$BANNER_ID] = $DB->CurrentTimeFunction();
             }
             if (is_array($_SESSION["SESS_VIEWED_BANNERS"]) && in_array($BANNER_ID, $_SESSION["SESS_VIEWED_BANNERS"])) {
                 $inc_banner_counter = "N";
             }
             if (is_array($_SESSION["SESS_VIEWED_CONTRACTS"]) && in_array($CONTRACT_ID, $_SESSION["SESS_VIEWED_CONTRACTS"])) {
                 $inc_contract_counter = "N";
             }
             $CACHE_ADVERTISING["BANNERS_ALL"][] = $BANNER_ID;
             if ($inc_banner_counter == "Y") {
                 $CACHE_ADVERTISING["BANNERS_CNT"][] = $BANNER_ID;
                 $_SESSION["SESS_VIEWED_BANNERS"][] = $BANNER_ID;
             }
             if ($CONTRACT_ID > 0) {
                 $CACHE_ADVERTISING["CONTRACTS_ALL"][] = $CONTRACT_ID;
                 if ($inc_contract_counter == "Y") {
                     $CACHE_ADVERTISING["CONTRACTS_CNT"][] = $CONTRACT_ID;
                     $_SESSION["SESS_VIEWED_CONTRACTS"][] = $CONTRACT_ID;
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * <p>Функция фиксирует показ баннера в базе данных. Помимо этого, функция устанавливает cookie в котором фиксирует факт того что посетителю был показан баннер.</p>
  *
  *
  *
  *
  * @param array $arrBanner  Массив, описывающий параметры баннера; в массиве достаточно и
  * необходимо иметь наличие следующих индексов и соответствующих
  * значений:<ul> <li>ID - ID баннера</li> <li>CONTRACT_ID - ID контракта баннера</li> </ul>
  *
  *
  *
  * @return mixed 
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/advertising/classes/cadvbanner/fixshow.php
  * @author Bitrix
  */
 public static function FixShow($arBanner)
 {
     $err_mess = CAdvBanner::err_mess() . "<br>Function: FixShow<br>Line: ";
     global $DB, $USER, $CACHE_ADVERTISING;
     if (intval($_SESSION["SESS_SEARCHER_ID"]) <= 0 && $arBanner["FIX_SHOW"] == "Y" && COption::GetOptionString('advertising', 'DONT_FIX_BANNER_SHOWS') != "Y") {
         $BANNER_ID = intval($arBanner["ID"]);
         $CONTRACT_ID = intval($arBanner["CONTRACT_ID"]);
         if ($BANNER_ID > 0) {
             CAdvBanner::SetCookie($arBanner, $inc_banner_counter, $inc_contract_counter);
             if (strlen($arBanner["DATE_SHOW_FIRST"]) <= 0) {
                 /*$arFields = Array(
                 			"DATE_SHOW_FIRST"		=> $DB->CurrentTimeFunction()
                 		);
                 		$DB->Update("b_adv_banner",$arFields,"WHERE ID='".$BANNER_ID."'",$err_mess.__LINE__);*/
                 $CACHE_ADVERTISING["ALL_DATE_SHOW_FIRST"][$BANNER_ID] = $DB->CurrentTimeFunction();
             }
             if (is_array($_SESSION["SESS_VIEWED_BANNERS"]) && in_array($BANNER_ID, $_SESSION["SESS_VIEWED_BANNERS"])) {
                 $inc_banner_counter = "N";
             }
             if (is_array($_SESSION["SESS_VIEWED_CONTRACTS"]) && in_array($CONTRACT_ID, $_SESSION["SESS_VIEWED_CONTRACTS"])) {
                 $inc_contract_counter = "N";
             }
             $CACHE_ADVERTISING["BANNERS_ALL"][] = $BANNER_ID;
             if ($inc_banner_counter == "Y") {
                 $CACHE_ADVERTISING["BANNERS_CNT"][] = $BANNER_ID;
                 $_SESSION["SESS_VIEWED_BANNERS"][] = $BANNER_ID;
             }
             if ($CONTRACT_ID > 0) {
                 $CACHE_ADVERTISING["CONTRACTS_ALL"][] = $CONTRACT_ID;
                 if ($inc_contract_counter == "Y") {
                     $CACHE_ADVERTISING["CONTRACTS_CNT"][] = $CONTRACT_ID;
                     $_SESSION["SESS_VIEWED_CONTRACTS"][] = $CONTRACT_ID;
                 }
             }
         }
     }
 }