public static function AddByUser($userId, $arMessage) { if (intval($userId) <= 0) { return false; } $arChannel = CPullChannel::Get($userId); $arMessage['push_user'] = $userId; return self::AddByChannel($arChannel['CHANNEL_ID'], $arMessage); }
public static function Extend($userId, $tag) { global $DB; if (intval($userId) <= 0 && strlen($tag) <= 0) { return false; } $strSql = "SELECT ID FROM b_pull_watch WHERE USER_ID = " . intval($userId) . " AND TAG = '" . $DB->ForSQL($tag) . "'"; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arRes = $dbRes->Fetch()) { $ID = $arRes['ID']; $arChannel = CPullChannel::Get($userId); $DB->Query("UPDATE b_pull_watch SET DATE_CREATE = " . $DB->CurrentTimeFunction() . ", CHANNEL_ID = '" . $DB->ForSQL($arChannel['CHANNEL_ID']) . "' WHERE ID = " . $ID); } return false; }
$arMessage = $CIMMessage->GetUnreadMessage(array('SPEED_CHECK' => 'N', 'LOAD_DEPARTMENT' => 'N', 'ORDER' => 'ASC', 'GROUP_BY_CHAT' => 'Y')); $arResult['COUNTER_MESSAGES'] = count($arMessage['message']); $arData = array(); $arUnread = array(); foreach ($arMessage['message'] as $data) { $arUnread[$data['senderId']]['MESSAGE'] = $data; $arUnread[$data['senderId']]['USER'] = $arMessage['users'][$data['senderId']]; } foreach ($arUnread as $userId => $data) { $arData[$userId] = $data; } uasort($arData, create_function('$a, $b', 'if($a["MESSAGE"]["date"] < $b["MESSAGE"]["date"] ) return 1; elseif($a["MESSAGE"]["date"] > $b["MESSAGE"]["date"] ) return -1; else return 0;')); $arResult['COUNTER_UNREAD_MESSAGES'] = $arData; } if (CModule::IncludeModule('pull')) { $arChannel = CPullChannel::Get($USER->GetId()); if (is_array($arChannel)) { $arResult['PULL_CONFIG'] = array('CHANNEL_ID' => $arChannel['CHANNEL_ID'], 'LAST_ID' => $arChannel['LAST_ID'], 'PATH' => $arChannel['PATH'], 'PATH_WS' => $arChannel['PATH_WS'], 'METHOD' => $arChannel['METHOD'], 'ERROR' => ''); } } // Counters $arResult["COUNTERS"] = CUserCounter::GetValues($USER->GetID(), $_POST['SITE_ID']); $arResult["ERROR"] = $errorMessage; echo CUtil::PhpToJsObject($arResult); } else { if ($_POST['IM_NOTIFY_LOAD'] == 'Y') { $CIMNotify = new CIMNotify(); $arNotify = $CIMNotify->GetUnreadNotify(array('SPEED_CHECK' => 'N', 'USE_TIME_ZONE' => 'N')); if ($arNotify['result']) { $arSend['NOTIFY'] = $arNotify['notify']; $arSend['UNREAD_NOTIFY'] = $arNotify['unreadNotify'];
{ echo CUtil::PhpToJsObject(Array('ERROR' => 'PULL_MODULE_IS_NOT_INSTALLED')); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); die(); } if (intval($USER->GetID()) <= 0) { echo CUtil::PhpToJsObject(Array('ERROR' => 'AUTHORIZE_ERROR')); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); die(); } if (check_bitrix_sessid()) { if ($_POST['PULL_GET_CHANNEL'] == 'Y') { $arChannel = CPullChannel::Get($USER->GetId(), $_POST['CACHE'] == 'Y'? true: false, $_POST['CACHE'] == 'Y'? false: true); if (is_array($arChannel)) { $nginxStatus = CPullOptions::GetQueueServerStatus(); $webSocketStatus = CPullOptions::GetWebSocketStatus(); $arChannels = Array($arChannel['CHANNEL_ID']); if ($nginxStatus) { $arChannelShared = CPullChannel::GetShared($_POST['CACHE'] == 'Y'? true: false, $_POST['CACHE'] == 'Y'? false: true); if ($arChannelShared) { $arChannels[] = $arChannelShared['CHANNEL_ID']; if ($arChannel['CHANNEL_DT'] > $arChannelShared['CHANNEL_DT']) $arChannel['CHANNEL_DT'] = $arChannelShared['CHANNEL_DT']; }
public static function GetConfig($userId, $cache = true, $reopen = false, $mobile = false) { $pullConfig = Array(); if (defined('BX_PULL_SKIP_LS')) $pullConfig['LOCAL_STORAGE'] = 'N'; if (IsModuleInstalled('bitrix24')) $pullConfig['BITRIX24'] = 'Y'; $arChannel = CPullChannel::Get($userId, $cache, $reopen); if (is_array($arChannel)) { $nginxStatus = CPullOptions::GetQueueServerStatus(); $webSocketStatus = false; $arChannels = Array($arChannel['CHANNEL_ID']); if ($nginxStatus) { if (defined('BX_PULL_SKIP_WEBSOCKET')) { $pullConfig['WEBSOCKET'] = 'N'; } else { $webSocketStatus = CPullOptions::GetWebSocketStatus(); } $arChannelShared = CPullChannel::GetShared($cache, $reopen); if (is_array($arChannelShared)) { $arChannels[] = $arChannelShared['CHANNEL_ID']; $arChannel['CHANNEL_DT'] = $arChannel['CHANNEL_DT'].'/'.$arChannelShared['CHANNEL_DT']; } } if ($mobile || defined('BX_MOBILE') || defined('BX_PULL_MOBILE')) { $pullConfig['MOBILE'] = 'Y'; $pullPath = ($nginxStatus? (CMain::IsHTTPS()? CPullOptions::GetListenSecureUrl($arChannels, true): CPullOptions::GetListenUrl($arChannels, true)): '/bitrix/components/bitrix/pull.request/ajax.php?UPDATE_STATE'); } else { $pullPath = ($nginxStatus? (CMain::IsHTTPS()? CPullOptions::GetListenSecureUrl($arChannels): CPullOptions::GetListenUrl($arChannels)): '/bitrix/components/bitrix/pull.request/ajax.php?UPDATE_STATE'); } $pullPathWs = ($nginxStatus && $webSocketStatus? (CMain::IsHTTPS()? CPullOptions::GetWebSocketSecureUrl($arChannels): CPullOptions::GetWebSocketUrl($arChannels)): ''); return $pullConfig+Array( 'CHANNEL_ID' => implode('/', $arChannels), 'CHANNEL_DT' => $arChannel['CHANNEL_DT'], 'LAST_ID' => $arChannel['LAST_ID'], 'PATH' => $pullPath, 'PATH_WS' => $pullPathWs, 'PATH_COMMAND' => defined('BX_PULL_COMMAND_PATH')? BX_PULL_COMMAND_PATH: '', 'METHOD' => ($nginxStatus? 'LONG': 'PULL'), 'REVISION' => PULL_REVISION, 'ERROR' => '', ); } return false; }
die(); } else if (!defined('BX_PULL_SKIP_INIT') && !(isset($_REQUEST['AJAX_CALL']) && $_REQUEST['AJAX_CALL'] == 'Y') && intval($GLOBALS['USER']->GetID()) > 0 && CModule::IncludeModule('pull') && CPullOptions::CheckNeedRun()) { // define("BX_PULL_SKIP_INIT", true); CJSCore::Init(array('pull')); global $APPLICATION; $pullConfig = Array(); if (defined('BX_PULL_SKIP_LS')) $pullConfig['LOCAL_STORAGE'] = 'N'; $pullChannel = CPullChannel::Get($GLOBALS['USER']->GetId()); if (is_array($pullChannel)) { $pullWebSocketStatus = false; $pullNginxStatus = CPullOptions::GetNginxStatus(); $pullChannels = Array($pullChannel['CHANNEL_ID']); if ($pullNginxStatus) { if (defined('BX_PULL_SKIP_WEBSOCKET')) { $pullWebSocketStatus = false; $pullConfig['WEBSOCKET'] = 'N'; } else $pullWebSocketStatus = CPullOptions::GetWebSocketStatus();
{ echo CUtil::PhpToJsObject(Array('ERROR' => 'PULL_MODULE_IS_NOT_INSTALLED')); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); die(); } if (intval($USER->GetID()) <= 0) { echo CUtil::PhpToJsObject(Array('ERROR' => 'AUTHORIZE_ERROR')); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); die(); } if (check_bitrix_sessid()) { if ($_POST['PULL_GET_CHANNEL'] == 'Y') { $arChannel = CPullChannel::Get($USER->GetId(), true); if (is_array($arChannel)) { echo CUtil::PhpToJsObject(Array( 'CHANNEL_ID' => $arChannel['CHANNEL_ID'], 'CHANNEL_DT' => $arChannel['CHANNEL_DT'], 'LAST_ID' => $arChannel['LAST_ID'], 'PATH' => $arChannel['PATH'], 'PATH_WS' => $arChannel['PATH_WS'], 'METHOD' => $arChannel['METHOD'], 'ERROR' => '', )); } else echo CUtil::PhpToJsObject(Array('ERROR' => 'ERROR_OPEN_CHANNEL')); }
public static function GetUserConfig($userId) { $pullConfig = array(); if (defined('BX_PULL_SKIP_LS')) { $pullConfig['LOCAL_STORAGE'] = 'N'; } if (IsModuleInstalled('bitrix24')) { $pullConfig['BITRIX24'] = 'Y'; } $pullChannel = CPullChannel::Get($userId); if (is_array($pullChannel)) { $pullWebSocketStatus = false; $pullNginxStatus = CPullOptions::GetQueueServerStatus(); $pullChannels = array($pullChannel['CHANNEL_ID']); if ($pullNginxStatus) { if (defined('BX_PULL_SKIP_WEBSOCKET')) { $pullWebSocketStatus = false; $pullConfig['WEBSOCKET'] = 'N'; } else { $pullWebSocketStatus = CPullOptions::GetWebSocketStatus(); } $pullChannelShared = CPullChannel::GetShared(); if (is_array($pullChannelShared)) { $pullChannels[] = $pullChannelShared['CHANNEL_ID']; if ($pullChannel['CHANNEL_DT'] > $pullChannelShared['CHANNEL_DT']) { $pullChannel['CHANNEL_DT'] = $pullChannelShared['CHANNEL_DT']; } } } if (defined('BX_MOBILE') || defined('BX_PULL_MOBILE')) { $pullConfig['MOBILE'] = 'Y'; $pullPath = $pullNginxStatus ? CMain::IsHTTPS() ? CPullOptions::GetListenSecureUrl($pullChannels, true) : CPullOptions::GetListenUrl($pullChannels, true) : '/bitrix/components/bitrix/pull.request/ajax.php?UPDATE_STATE'; } else { $pullPath = $pullNginxStatus ? CMain::IsHTTPS() ? CPullOptions::GetListenSecureUrl($pullChannels) : CPullOptions::GetListenUrl($pullChannels) : '/bitrix/components/bitrix/pull.request/ajax.php?UPDATE_STATE'; } $pullConfig = $pullConfig + array('CHANNEL_ID' => implode('/', $pullChannels), 'LAST_ID' => $pullChannel['LAST_ID'], 'CHANNEL_DT' => $pullChannel['CHANNEL_DT'], 'PATH' => $pullPath, 'PATH_WS' => $pullNginxStatus && $pullWebSocketStatus ? CMain::IsHTTPS() ? CPullOptions::GetWebSocketSecureUrl($pullChannels) : CPullOptions::GetWebSocketUrl($pullChannels) : '', 'PATH_COMMAND' => defined('BX_PULL_COMMAND_PATH') ? BX_PULL_COMMAND_PATH : '', 'METHOD' => $pullNginxStatus ? 'LONG' : 'PULL'); } return $pullConfig; }