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

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

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

<?php 
//    /bitrix/modules/main/classes/mysql/user_counter.phpCUserCounter::Set()
//    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 || strlen($code) <= 0)
            return 
false;

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

        if (
$cntVal $rs->Fetch())
        {
            
$ssql "";
            if (
$tag != "")
                
$ssql ", TAG = '".$DB->0086a5f66695be17bdf60701cad9d565ForSQL($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->0086a5f66695be17bdf60701cad9d565ForSQL($site_id) . "'
                    AND CODE = '" 
$DB->0086a5f66695be17bdf60701cad9d565ForSQL($code) . "'
                "
);
            }
            else
            {
                
$sendPull false;
            }
        }
        else
        {
            
$DB->Query("
                INSERT INTO b_user_counter
                (CNT, USER_ID, SITE_ID, CODE, TAG)
                VALUES
                ("
.$value.", ".$user_id.", '".$DB->0086a5f66695be17bdf60701cad9d565ForSQL($site_id)."', '".$DB->0086a5f66695be17bdf60701cad9d565ForSQL($code)."', '".$DB->0086a5f66695be17bdf60701cad9d565ForSQL($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, или иной формат общения, но проще всего воспользоваться штатным инструментом:

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