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

CUserCounter::Set: метод Битрикс

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

//    CUserCounter::Set()
//    /bitrix/modules/main/classes/mysql/user_counter.php:6

    public static function Set($user_id, $code, $value, $site_id = SITE_ID, $tag = '', $sendPull = true)
    {
        global $DB, $CACHE_MANAGER;

        $value = intval($value);
        $user_id = intval($user_id);
        if ($user_id < 0 || strlen($code) <= 0)
            return false;

        $rs = $DB->Query("
            SELECT CNT FROM b_user_counter
            WHERE USER_ID = ".$user_id."
            AND SITE_ID = '".$DB->ForSQL($site_id)."'
            AND CODE = '".$DB->ForSQL($code)."'
        ");

        if ($cntVal = $rs->Fetch())
        {
            $ssql = "";
            if ($tag != "")
                $ssql = ", TAG = '".$DB->ForSQL($tag)."'";

            if($cntVal['CNT'] != $value)
            {
                $DB->Query("
                    UPDATE b_user_counter SET
                    CNT = " . $value . " " . $ssql . ",
                    SENT = 0
                    WHERE USER_ID = " . $user_id . "
                    AND SITE_ID = '" . $DB->ForSQL($site_id) . "'
                    AND CODE = '" . $DB->ForSQL($code) . "'
                ");
            }
            else
            {
                $sendPull = false;
            }
        }
        else
        {
            $DB->Query("
                INSERT INTO b_user_counter
                (CNT, USER_ID, SITE_ID, CODE, TAG)
                VALUES
                (".$value.", ".$user_id.", '".$DB->ForSQL($site_id)."', '".$DB->ForSQL($code)."', '".$DB->ForSQL($tag)."')
            ", true);
        }

        if (self::$counters && self::$counters[$user_id])
        {
            if ($site_id == self::ALL_SITES)
            {
                foreach(self::$counters[$user_id] as $key => $tmp)
                {
                    self::$counters[$user_id][$key][$code] = $value;
                }
            }
            else
            {
                if (!isset(self::$counters[$user_id][$site_id]))
                    self::$counters[$user_id][$site_id] = array();

                self::$counters[$user_id][$site_id][$code] = $value;
            }
        }

        $CACHE_MANAGER->Clean("user_counter".$user_id, "user_counter");

        if ($sendPull)
            self::SendPullEvent($user_id, $code);

        return true;
    }
';

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

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

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

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

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

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

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

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