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; } } } } }
/** * <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; } } } } }