Поддержка серверов

CAdvBanner::Click: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=161636

//    CAdvBanner::Click()
//    /bitrix/modules/advertising/classes/mysql/advertising.php:619

    public static function Click($BANNER_ID)
    {
        $err_mess = (CAdvBanner::err_mess())."
Function: Click
Line: ";
        global $DB;
        $BANNER_ID = intval($BANNER_ID);
        if ($BANNER_ID<=0) return false;

        $strSql = "
            SELECT
                B.FIX_CLICK,
                B.CONTRACT_ID
            FROM
                b_adv_banner B
            WHERE
                B.ID = $BANNER_ID
            ";
        $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 = "
                        UPDATE b_adv_banner_2_day SET
                            CLICK_COUNT = CLICK_COUNT + 1
                        WHERE
                            BANNER_ID = $BANNER_ID
                        and    DATE_STAT = ".$DB->GetNowDate()."
                        ";
                    $z = $DB->Query($strSql, false, $err_mess.__LINE__);
                    $rows = $z->AffectedRowsCount();
                    if (intval($rows)<=0)
                    {
                        $strSql = "
                            SELECT
                                'x'
                            FROM
                                b_adv_banner_2_day
                            WHERE
                                BANNER_ID = $BANNER_ID
                            and    DATE_STAT = ".$DB->GetNowDate()."
                            ";
                        $w = $DB->Query($strSql, false, $err_mess.__LINE__);
                        if (!$wr=$w->Fetch())
                        {
                            $strSql = "
                                INSERT INTO b_adv_banner_2_day (DATE_STAT, BANNER_ID, CLICK_COUNT) VALUES (
                                    ".$DB->GetNowDate().",
                                    $BANNER_ID,
                                    1)
                                ";
                            $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__);
                }
            }
        }
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение