/** * <p>Метод фиксирует клик по баннеру в базе данных.</p> * * * @param int $BANNER_ID ID баннера. * * @param int $CONTRACT_ID = false ID контракта которому принадлежит баннер; если задано false - ID * контракта берется из параметров баннера. Необязательный * параметр. * * @return mixed * * @static * @link http://dev.1c-bitrix.ru/api_help/advertising/classes/cadvbanner/click.php * @author Bitrix */ public static function Click($BANNER_ID) { $err_mess = CAdvBanner::err_mess() . "<br>Function: Click<br>Line: "; global $DB; $BANNER_ID = intval($BANNER_ID); if ($BANNER_ID <= 0) { return false; } $strSql = "\n\t\t\tSELECT\n\t\t\t\tB.FIX_CLICK,\n\t\t\t\tB.CONTRACT_ID\n\t\t\tFROM\n\t\t\t\tb_adv_banner B\n\t\t\tWHERE\n\t\t\t\tB.ID = {$BANNER_ID}\n\t\t\t"; $rsBanner = $DB->Query($strSql, false, $err_mess . __LINE__); if ($arBanner = $rsBanner->Fetch()) { if ($arBanner["FIX_CLICK"] == "Y") { /******************** обновим баннер ********************/ // параметры баннера $arFields = array("CLICK_COUNT" => "CLICK_COUNT + 1", "DATE_LAST_CLICK" => $DB->GetNowFunction()); $rows = $DB->Update("b_adv_banner", $arFields, "WHERE ID = {$BANNER_ID}", $err_mess . __LINE__); if (intval($rows) > 0) { foreach (getModuleEvents('advertising', 'onBannerClick', true) as $arEvent) { executeModuleEventEx($arEvent, array($BANNER_ID, $arFields)); } // счетчик по дням $strSql = "\n\t\t\t\t\t\tUPDATE b_adv_banner_2_day SET\n\t\t\t\t\t\t\tCLICK_COUNT = CLICK_COUNT + 1\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tBANNER_ID = {$BANNER_ID}\n\t\t\t\t\t\tand\tDATE_STAT = " . $DB->GetNowDate() . "\n\t\t\t\t\t\t"; $z = $DB->Query($strSql, false, $err_mess . __LINE__); $rows = $z->AffectedRowsCount(); if (intval($rows) <= 0) { $strSql = "\n\t\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\t\t'x'\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\tb_adv_banner_2_day\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tBANNER_ID = {$BANNER_ID}\n\t\t\t\t\t\t\tand\tDATE_STAT = " . $DB->GetNowDate() . "\n\t\t\t\t\t\t\t"; $w = $DB->Query($strSql, false, $err_mess . __LINE__); if (!($wr = $w->Fetch())) { $strSql = "\n\t\t\t\t\t\t\t\tINSERT INTO b_adv_banner_2_day (DATE_STAT, BANNER_ID, CLICK_COUNT) VALUES (\n\t\t\t\t\t\t\t\t\t" . $DB->GetNowDate() . ",\n\t\t\t\t\t\t\t\t\t{$BANNER_ID},\n\t\t\t\t\t\t\t\t\t1)\n\t\t\t\t\t\t\t\t"; $DB->Query($strSql, true, $err_mess . __LINE__); } } } /************************* обновим контракт *************************/ $DONT_USE_CONTRACT = COption::GetOptionString("advertising", "DONT_USE_CONTRACT", "N"); $CONTRACT_ID = intval($arBanner["CONTRACT_ID"]); if ($CONTRACT_ID > 0 && $DONT_USE_CONTRACT == "N") { $arFields = array("CLICK_COUNT" => "CLICK_COUNT + 1"); $DB->Update("b_adv_contract", $arFields, "WHERE ID = {$CONTRACT_ID}", $err_mess . __LINE__); } } } }
public static function onMobileInit() { if (!defined("MOBILE_INIT_EVENT_SKIP")) { $db_events = getModuleEvents("mobileapp", "OnMobileInit"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent); } } }
/** * detects mobile platform and attaches all needed javascript files */ protected function _Init() { if (self::$isAlreadyInit) { return; } header("BX-Cordova-Version: " . self::$supportedCordovaVersion); $GLOBALS["BITRIX_PLATFORM"] = self::$platform; $GLOBALS["BITRIX_API_VERSION"] = self::$apiVersion; AddEventHandler("main", "OnBeforeEndBufferContent", array(__CLASS__, "initScripts")); self::$isAlreadyInit = true; $db_events = getModuleEvents("mobileapp", "OnMobileInit"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent); } }