1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
pull_stack.php
См. документацию.
1<?php
2
4{
5 // receive messages on stack
6 // only works in PULL mode
7 public static function Get($channelId, $lastId = 0)
8 {
9 global $DB;
10
11 $newLastId = $lastId;
12 $arMessage = Array();
13 $strSql = "
14 SELECT ps.ID, ps.MESSAGE
15 FROM b_pull_stack ps ".($lastId > 0? '': 'LEFT JOIN b_pull_channel pc ON pc.CHANNEL_ID = ps.CHANNEL_ID')."
16 WHERE ps.CHANNEL_ID = '".$DB->ForSQL($channelId)."'".($lastId > 0? " AND ps.ID > ".intval($lastId): " AND ps.ID > pc.LAST_ID" );
17 $dbRes = $DB->Query($strSql);
18 while ($arRes = $dbRes->Fetch())
19 {
20 if ($newLastId < $arRes['ID'])
21 $newLastId = $arRes['ID'];
22
23 $data = unserialize($arRes['MESSAGE'], ["allowed_classes" => false]);
24 $data['id'] = $arRes['ID'];
25 $data['extra'] = Array(
26 'server_time' => date('c'),
27 'server_time_unix' => microtime(true),
28 'server_name' => COption::GetOptionString('main', 'server_name', $_SERVER['SERVER_NAME']),
29 'revision_web' => PULL_REVISION_WEB,
30 'revision_mobile' => PULL_REVISION_MOBILE,
31 );
32
33 $arMessage[] = $data;
34 }
35
36 if ($lastId < $newLastId)
38
39 return $arMessage;
40 }
41
42 // add a message to stack
43 public static function AddByChannel($channelId, $params = Array())
44 {
45 if (is_array($channelId))
46 {
47 $channelList = array_map(
48 fn($channel) => \Bitrix\Pull\Model\Channel::createWithFields(['CHANNEL_ID' => $channel]),
50 );
51 return \Bitrix\Pull\Event::add($channelList, $params);
52 }
53 else if (is_string($channelId))
54 {
55 return \Bitrix\Pull\Event::add(
56 \Bitrix\Pull\Model\Channel::createWithFields(['CHANNEL_ID' => $channelId]),
58 );
59 }
60 else
61 {
62 throw new \Bitrix\Main\ArgumentException('channelId must be a string or an array of strings');
63 }
64 }
65
66 public static function AddByUser($userId, $arMessage, $channelType = 'private')
67 {
68 return \Bitrix\Pull\Event::add($userId, $arMessage, $channelType);
69 }
70
71 public static function AddByUsers($users, $arMessage, $channelType = 'private')
72 {
73 return \Bitrix\Pull\Event::add($users, $arMessage, $channelType);
74 }
75
76 public static function AddShared($arMessage, $channelType = 'shared')
77 {
78 try
79 {
81 }
82 catch (\Bitrix\Main\SystemException $e)
83 {
84 // \Bitrix\Main\Application::getInstance()->getExceptionHandler()->writeToLog($e);
85 return false;
86 }
87
88 return \Bitrix\Pull\Event::add(
89 $sharedChannel,
90 $arMessage,
91 $channelType
92 );
93 }
94
99 public static function AddBroadcast($arMessage)
100 {
101 return self::AddShared($arMessage);
102 }
103}
if(empty( $fields)) foreach($fields as $field) $channelId
Определения push.php:23
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
static getShared()
Определения channel.php:42
Определения pull_stack.php:4
static AddShared($arMessage, $channelType='shared')
Определения pull_stack.php:76
static AddByUsers($users, $arMessage, $channelType='private')
Определения pull_stack.php:71
static AddByUser($userId, $arMessage, $channelType='private')
Определения pull_stack.php:66
static AddByChannel($channelId, $params=Array())
Определения pull_stack.php:43
static Get($channelId, $lastId=0)
Определения pull_stack.php:7
static AddBroadcast($arMessage)
Определения pull_stack.php:99
static UpdateLastId($channelId, $lastId)
Определения pull_channel.php:549
if(!\Bitrix\Main\Loader::includeModule('clouds')) $lastId
Определения sync.php:68
$data['IS_AVAILABLE']
Определения .description.php:13
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
const PULL_REVISION_MOBILE
Определения include.php:4
const PULL_REVISION_WEB
Определения include.php:3
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$arRes
Определения options.php:104
$dbRes
Определения yandex_detail.php:168