public static function CheckExpireAgent() { global $DB; if (!CPullOptions::ModuleEnable()) return false; CAgent::RemoveAgent("CPullWatch::CheckExpireAgent();", "pull"); $strSql = "SELECT count(ID) CNT FROM b_pull_watch WHERE DATE_CREATE < DATE_SUB(NOW(), INTERVAL 30 MINUTE)"; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if ($arRes = $dbRes->Fetch()) { $strSql = "DELETE FROM b_pull_watch WHERE DATE_CREATE < DATE_SUB(NOW(), INTERVAL 30 MINUTE) LIMIT 1000"; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if ($arRes['CNT'] > 1000) { CAgent::AddAgent("CPullWatch::CheckExpireAgent();", "pull", "N", 180, "", "Y", ConvertTimeStamp(time()+CTimeZone::GetOffset()+180, "FULL")); return false; } } CAgent::AddAgent("CPullWatch::CheckExpireAgent();", "pull", "N", 600, "", "Y", ConvertTimeStamp(time()+CTimeZone::GetOffset()+600, "FULL")); return false; }
public static function CheckExpireAgent() { global $DB; if (!CPullOptions::ModuleEnable()) { return false; } $sqlDateFunction = null; $dbType = strtolower($DB->type); if ($dbType == "mysql") { $sqlDateFunction = "DATE_SUB(NOW(), INTERVAL 12 HOUR)"; } else { if ($dbType == "mssql") { $sqlDateFunction = "dateadd(HOUR, -12, getdate())"; } else { if ($dbType == "oracle") { $sqlDateFunction = "SYSDATE-1/12"; } } } if (!is_null($sqlDateFunction)) { $strSql = "\n\t\t\t\t\tSELECT CHANNEL_ID\n\t\t\t\t\tFROM b_pull_channel\n\t\t\t\t\tWHERE DATE_CREATE < " . $sqlDateFunction; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); while ($arRes = $dbRes->Fetch()) { self::Delete($arRes['CHANNEL_ID']); } } return "CPullChannel::CheckExpireAgent();"; }
/** * Return some information about P&P, such as publish url * * @since 14.5.4 * @return array */ protected static function getPullingInfo() { $result = array('enabled' => CModule::IncludeModule('pull') && CPullOptions::ModuleEnable()); if ($result['enabled']) { $result['nginx_used'] = CPullOptions::GetQueueServerStatus(); if ($result['nginx_used']) { $result['server_protocol'] = CPullOptions::GetQueueServerVersion(); $result['publish_url'] = CPullOptions::GetPublishUrl(); $result['pulling_url'] = CPullOptions::GetListenUrl(); $result['pulling_url_secure'] = CPullOptions::GetListenSecureUrl(); $result['websocket_url'] = CPullOptions::GetWebSocketUrl(); $result['websocket_url_secure'] = CPullOptions::GetWebSocketSecureUrl(); } } return $result; }
public static function CheckExpireAgent() { global $DB, $pPERIOD; if (!CPullOptions::ModuleEnable()) { return "CPullWatch::CheckExpireAgent();"; } $pPERIOD = 1200; $strSql = "SELECT count(ID) CNT FROM b_pull_watch WHERE DATE_CREATE < DATE_SUB(NOW(), INTERVAL 32 MINUTE)"; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arRes = $dbRes->Fetch()) { $strSql = "DELETE FROM b_pull_watch WHERE DATE_CREATE < DATE_SUB(NOW(), INTERVAL 32 MINUTE) LIMIT 1000"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arRes['CNT'] > 1000) { $pPERIOD = 180; } } return "CPullWatch::CheckExpireAgent();"; }
public static function GetMobileTemplateJS($arParams, $arTemplate) { global $USER; $ppStatus = 'false'; $ppServerStatus = 'false'; $updateStateInterval = 'auto'; if (CModule::IncludeModule("pull")) { $ppStatus = CPullOptions::ModuleEnable()? 'true': 'false'; $ppServerStatus = CPullOptions::GetNginxStatus()? 'true': 'false'; $updateStateInterval = CPullOptions::GetNginxStatus()? self::GetSessionLifeTime(): 80; if ($updateStateInterval > 100) { if ($updateStateInterval > 3600) $updateStateInterval = 3600; $updateStateInterval = $updateStateInterval-60; } } $diskStatus = CIMDisk::Enabled(); $phoneSipAvailable = 0; $phoneEnabled = false; $mobileAction = isset($arTemplate["ACTION"])? $arTemplate["ACTION"]: 'none'; $sJS = " BX.ready(function() { BXIM = new BX.ImMobile({ 'mobileAction': '".$mobileAction."', 'mailCount': ".intval($arTemplate["MAIL_COUNTER"]).", 'notifyCount': ".intval($arTemplate["NOTIFY_COUNTER"]).", 'messageCount': ".intval($arTemplate["MESSAGE_COUNTER"]).", 'counters': ".(empty($arTemplate['COUNTERS'])? '{}': CUtil::PhpToJSObject($arTemplate['COUNTERS'])).", 'ppStatus': ".$ppStatus.", 'ppServerStatus': ".$ppServerStatus.", 'updateStateInterval': '".$updateStateInterval."', 'xmppStatus': ".(CIMMessenger::CheckXmppStatusOnline()? 'true': 'false').", 'bitrixNetworkStatus': ".(CIMMessenger::CheckNetworkStatus()? 'true': 'false').", 'bitrix24Status': ".(IsModuleInstalled('bitrix24')? 'true': 'false').", 'bitrix24Admin': ".(CModule::IncludeModule('bitrix24') && CBitrix24::IsPortalAdmin($USER->GetId())? 'true': 'false').", 'bitrix24net': ".(IsModuleInstalled('b24network')? 'true': 'false').", 'bitrixIntranet': ".(IsModuleInstalled('intranet')? 'true': 'false').", 'bitrixXmpp': ".(IsModuleInstalled('xmpp')? 'true': 'false').", 'desktopStatus': ".(CIMMessenger::CheckDesktopStatusOnline()? 'true': 'false').", 'desktopVersion': ".CIMMessenger::GetDesktopVersion().", 'language': '".LANGUAGE_ID."', 'smile': ".(empty($arTemplate['SMILE'])? '{}': CUtil::PhpToJSObject($arTemplate["SMILE"])).", 'smileSet': ".(empty($arTemplate['SMILE_SET'])? '{}': CUtil::PhpToJSObject($arTemplate["SMILE_SET"])).", 'settings': ".(empty($arTemplate['SETTINGS'])? '{}': CUtil::PhpToJSObject($arTemplate['SETTINGS'])).", 'settingsNotifyBlocked': ".(empty($arTemplate['SETTINGS_NOTIFY_BLOCKED'])? '{}': CUtil::PhpToJSObject($arTemplate['SETTINGS_NOTIFY_BLOCKED'])).", 'notify': ".(empty($arTemplate['NOTIFY']['notify'])? '{}': CUtil::PhpToJSObject($arTemplate['NOTIFY']['notify'])).", 'unreadNotify' : ".(empty($arTemplate['NOTIFY']['unreadNotify'])? '{}': CUtil::PhpToJSObject($arTemplate['NOTIFY']['unreadNotify'])).", 'flashNotify' : ".(empty($arTemplate['NOTIFY']['flashNotify'])? '{}': CUtil::PhpToJSObject($arTemplate['NOTIFY']['flashNotify'])).", 'countNotify' : ".intval($arTemplate['NOTIFY']['countNotify']).", 'loadNotify' : ".($arTemplate['NOTIFY']['loadNotify']? 'true': 'false').", 'recent': ".(empty($arTemplate['RECENT'])? '{}': CUtil::PhpToJSObject($arTemplate['RECENT'])).", 'users': ".(empty($arTemplate['CONTACT_LIST']['users'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['users'])).", 'groups': ".(empty($arTemplate['CONTACT_LIST']['groups'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['groups'])).", 'userInGroup': ".(empty($arTemplate['CONTACT_LIST']['userInGroup'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['userInGroup'])).", 'woGroups': ".(empty($arTemplate['CONTACT_LIST']['woGroups'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woGroups'])).", 'woUserInGroup': ".(empty($arTemplate['CONTACT_LIST']['woUserInGroup'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woUserInGroup'])).", 'chat': ".(empty($arTemplate['CHAT']['chat'])? '{}': CUtil::PhpToJSObject($arTemplate['CHAT']['chat'])).", 'userInChat': ".(empty($arTemplate['CHAT']['userInChat'])? '{}': CUtil::PhpToJSObject($arTemplate['CHAT']['userInChat'])).", 'userChatBlockStatus': ".(empty($arTemplate['CHAT']['userChatBlockStatus'])? '{}': CUtil::PhpToJSObject($arTemplate['CHAT']['userChatBlockStatus'])).", 'message' : ".(empty($arTemplate['MESSAGE']['message'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['message'])).", 'files' : ".(empty($arTemplate['MESSAGE']['files'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['files'])).", 'showMessage' : ".(empty($arTemplate['MESSAGE']['usersMessage'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['usersMessage'])).", 'unreadMessage' : ".(empty($arTemplate['MESSAGE']['unreadMessage'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['unreadMessage'])).", 'flashMessage' : ".(empty($arTemplate['MESSAGE']['flashMessage'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['flashMessage'])).", 'history' : {}, 'openMessenger' : ".(isset($_GET['IM_DIALOG'])? "'".CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_DIALOG']))."'": 'false').", 'openHistory' : ".(isset($_GET['IM_HISTORY'])? "'".CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_HISTORY']))."'": 'false').", 'openNotify' : ".(isset($_GET['IM_NOTIFY']) && $_GET['IM_NOTIFY'] == 'Y'? 'true': 'false').", 'openSettings' : ".(isset($_GET['IM_SETTINGS'])? $_GET['IM_SETTINGS'] == 'Y'? "'true'": "'".CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_SETTINGS']))."'": 'false').", 'currentTab' : '".($arTemplate['CURRENT_TAB']? CUtil::JSEscape($arTemplate['CURRENT_TAB']): 0)."', 'userId': ".$USER->GetID().", 'userEmail': '".CUtil::JSEscape($USER->GetEmail())."', 'webrtc': {'turnServer' : '".(empty($arTemplate['TURN_SERVER'])? '': CUtil::JSEscape($arTemplate['TURN_SERVER']))."', 'turnServerLogin' : '".(empty($arTemplate['TURN_SERVER_LOGIN'])? '': CUtil::JSEscape($arTemplate['TURN_SERVER_LOGIN']))."', 'turnServerPassword' : '".(empty($arTemplate['TURN_SERVER_PASSWORD'])? '': CUtil::JSEscape($arTemplate['TURN_SERVER_PASSWORD']))."', 'mobileSupport': ".($arTemplate['WEBRTC_MOBILE_SUPPORT']? 'true': 'false').", 'phoneEnabled': ".($phoneEnabled? 'true': 'false').", 'phoneSipAvailable': ".($phoneSipAvailable? 'true': 'false')."}, 'disk': {'enable' : ".($diskStatus? 'true': 'false')."}, 'path' : {'profile' : '".(empty($arTemplate['PATH_TO_USER_PROFILE'])? '': CUtil::JSEscape($arTemplate['PATH_TO_USER_PROFILE']))."', 'profileTemplate' : '".(empty($arTemplate['PATH_TO_USER_PROFILE_TEMPLATE'])? '': CUtil::JSEscape($arTemplate['PATH_TO_USER_PROFILE_TEMPLATE']))."', 'mail' : '".(empty($arTemplate['PATH_TO_USER_MAIL'])? '': CUtil::JSEscape($arTemplate['PATH_TO_USER_MAIL']))."'} }); }); "; return $sJS; }
public static function CheckExpireAgent() { global $DB; if (!CPullOptions::ModuleEnable()) return false; $sqlDateFunction = null; $dbType = strtolower($DB->type); if ($dbType== "mysql") $sqlDateFunction = "DATE_SUB(NOW(), INTERVAL 13 HOUR)"; else if ($dbType == "mssql") $sqlDateFunction = "dateadd(HOUR, -13, getdate())"; else if ($dbType == "oracle") $sqlDateFunction = "SYSDATE-1/13"; if (!is_null($sqlDateFunction)) { $strSql = " SELECT USER_ID, CHANNEL_ID, CHANNEL_TYPE FROM b_pull_channel WHERE DATE_CREATE < ".$sqlDateFunction; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); while ($arRes = $dbRes->Fetch()) self::DeleteByUser($arRes['USER_ID'], $arRes['CHANNEL_ID'], $arRes['CHANNEL_TYPE']); } return "CPullChannel::CheckExpireAgent();"; }
public static function GetTemplateJS($arParams, $arTemplate) { global $USER; $ppStatus = 'false'; $ppServerStatus = 'false'; if (CModule::IncludeModule("pull")) { $ppStatus = CPullOptions::ModuleEnable() ? 'true' : 'false'; $ppServerStatus = CPullOptions::GetNginxStatus() ? 'true' : 'false'; } if ($arTemplate['INIT'] == 'Y') { $sJS = "\n\t\t\t\tBX.ready(function() {\n\t\t\t\t\tBXIM = new BX.IM(BX('bx-notifier-panel'), {\n\t\t\t\t\t\t'panelPosition': {'horizontal' : '" . $arTemplate['PANEL_POSTION_HORIZONTAL'] . "', 'vertical' : '" . $arTemplate['PANEL_POSTION_VERTICAL'] . "'},\n\t\t\t\t\t\t'userStatus': '" . $arTemplate['STATUS'] . "',\n\t\t\t\t\t\t'mailCount': " . $arTemplate["MAIL_COUNTER"] . ",\n\t\t\t\t\t\t'notifyCount': " . $arTemplate["NOTIFY_COUNTER"] . ",\n\t\t\t\t\t\t'messageCount': " . $arTemplate["MESSAGE_COUNTER"] . ",\n\t\t\t\t\t\t'counters': " . (empty($arTemplate['COUNTERS']) ? '{}' : CUtil::PhpToJSObject($arTemplate['COUNTERS'])) . ",\n\t\t\t\t\t\t'ppStatus': " . $ppStatus . ",\n\t\t\t\t\t\t'ppServerStatus': " . $ppServerStatus . ",\n\t\t\t\t\t\t'xmppStatus': " . (CIMMessenger::CheckXmppStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrix24Status': " . (IsModuleInstalled('bitrix24') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrixIntranet': " . (IsModuleInstalled('intranet') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'desktop': " . $arTemplate["DESKTOP"] . ",\n\t\t\t\t\t\t'desktopStatus': " . (CIMMessenger::CheckDesktopStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t\t'desktopLinkOpen': " . $arTemplate["DESKTOP_LINK_OPEN"] . ",\n\n\t\t\t\t\t\t'notify': " . (empty($arTemplate['NOTIFY']['notify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['notify'])) . ",\n\t\t\t\t\t\t'unreadNotify' : " . (empty($arTemplate['NOTIFY']['unreadNotify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['unreadNotify'])) . ",\n\t\t\t\t\t\t'flashNotify' : " . (empty($arTemplate['NOTIFY']['flashNotify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['flashNotify'])) . ",\n\t\t\t\t\t\t'countNotify' : " . intval($arTemplate['NOTIFY']['countNotify']) . ",\n\t\t\t\t\t\t'loadNotify' : " . ($arTemplate['NOTIFY']['loadNotify'] ? 'true' : 'false') . ",\n\n\t\t\t\t\t\t'recent': " . CUtil::PhpToJSObject($arTemplate['RECENT']) . ",\n\t\t\t\t\t\t'users': " . (empty($arTemplate['CONTACT_LIST']['users']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['users'])) . ",\n\t\t\t\t\t\t'groups': " . (empty($arTemplate['CONTACT_LIST']['groups']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['groups'])) . ",\n\t\t\t\t\t\t'userInGroup': " . (empty($arTemplate['CONTACT_LIST']['userInGroup']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['userInGroup'])) . ",\n\t\t\t\t\t\t'woGroups': " . (empty($arTemplate['CONTACT_LIST']['woGroups']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woGroups'])) . ",\n\t\t\t\t\t\t'woUserInGroup': " . (empty($arTemplate['CONTACT_LIST']['woUserInGroup']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woUserInGroup'])) . ",\n\t\t\t\t\t\t'chat': " . (empty($arTemplate['CHAT']['chat']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CHAT']['chat'])) . ",\n\t\t\t\t\t\t'userInChat': " . (empty($arTemplate['CHAT']['userInChat']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CHAT']['userInChat'])) . ",\n\t\t\t\t\t\t'message' : " . (empty($arTemplate['MESSAGE']['message']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['message'])) . ",\n\t\t\t\t\t\t'showMessage' : " . (empty($arTemplate['MESSAGE']['usersMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['usersMessage'])) . ",\n\t\t\t\t\t\t'unreadMessage' : " . (empty($arTemplate['MESSAGE']['unreadMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['unreadMessage'])) . ",\n\t\t\t\t\t\t'flashMessage' : " . (empty($arTemplate['MESSAGE']['flashMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['flashMessage'])) . ",\n\t\t\t\t\t\t'history' : {},\n\t\t\t\t\t\t'openMessenger' : " . (isset($_GET['IM_DIALOG']) ? "'" . htmlspecialcharsbx($_GET['IM_DIALOG']) . "'" : 'false') . ",\n\t\t\t\t\t\t'openHistory' : " . (isset($_GET['IM_HISTORY']) ? "'" . htmlspecialcharsbx($_GET['IM_HISTORY']) . "'" : 'false') . ",\n\t\t\t\t\t\t'viewOffline': " . $arTemplate['VIEW_OFFLINE'] . ",\n\t\t\t\t\t\t'viewGroup': " . $arTemplate['VIEW_GROUP'] . ",\n\t\t\t\t\t\t'enableSound': " . $arTemplate['ENABLE_SOUND'] . ",\n\t\t\t\t\t\t'sendByEnter': " . $arTemplate['SEND_BY_ENTER'] . ",\n\t\t\t\t\t\t'currentTab' : " . ($arTemplate['CURRENT_TAB'] > 0 ? $arTemplate['CURRENT_TAB'] : '0') . ",\n\t\t\t\t\t\t'userId': " . $USER->GetID() . ",\n\t\t\t\t\t\t'path' : {'profile' : '" . $arTemplate['PATH_TO_USER_PROFILE'] . "', 'profileTemplate' : '" . $arTemplate['PATH_TO_USER_PROFILE_TEMPLATE'] . "', 'mail' : '" . $arTemplate['PATH_TO_USER_MAIL'] . "'}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t"; } else { $sJS = "\n\t\t\t\tBX.ready(function() {\n\t\t\t\t\tBXIM = new BX.IM(BX('bx-notifier-panel'), {\n\t\t\t\t\t\t'init': false,\n\n\t\t\t\t\t\t'desktop': " . $arTemplate["DESKTOP"] . ",\n\t\t\t\t\t\t'desktopStatus': " . (CIMMessenger::CheckDesktopStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t\t'desktopLinkOpen': " . $arTemplate["DESKTOP_LINK_OPEN"] . ",\n\n\t\t\t\t\t\t'userStatus': '" . $arTemplate['STATUS'] . "',\n\t\t\t\t\t\t'ppStatus': " . $ppStatus . ",\n\t\t\t\t\t\t'ppServerStatus': " . $ppServerStatus . ",\n\t\t\t\t\t\t'xmppStatus': " . (CIMMessenger::CheckXmppStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrix24Status': " . (IsModuleInstalled('bitrix24') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrixIntranet': " . (IsModuleInstalled('intranet') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'enableSound': " . $arTemplate['ENABLE_SOUND'] . ",\n\t\t\t\t\t\t'notify' : {},\n\t\t\t\t\t\t'users' : {},\n\t\t\t\t\t\t'userId': " . $USER->GetID() . ",\n\n\t\t\t\t\t\t'openMessenger' : " . (isset($_GET['IM_DIALOG']) ? intval($_GET['IM_DIALOG']) : 'false') . ",\n\t\t\t\t\t\t'openHistory' : " . (isset($_GET['IM_HISTORY']) ? intval($_GET['IM_HISTORY']) : 'false') . ",\n\n\t\t\t\t\t\t'path' : {'profile' : '" . $arTemplate['PATH_TO_USER_PROFILE'] . "', 'profileTemplate' : '" . $arTemplate['PATH_TO_USER_PROFILE_TEMPLATE'] . "', 'mail' : '" . $arTemplate['PATH_TO_USER_MAIL'] . "'}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t"; } return $sJS; }
$ar = CPullOptions::GetDependentModule(); foreach ($ar as $key => $value) $arDependentModule[] = $value['MODULE_ID']; ?> <tr> <td width="40%"><?=GetMessage("PULL_OPTIONS_STATUS")?>:</td> <td width="60%"> <? if(CPullOptions::ModuleEnable()): ?> <span style="color:green; font-weight: bold"><?=GetMessage("PULL_OPTIONS_STATUS_Y")?></span> <? else: ?> <span style="color:gray; font-weight: bold"><?=GetMessage("PULL_OPTIONS_STATUS_N")?></span> <? endif; ?> </td> </tr> <? if(CPullOptions::ModuleEnable()): ?> <tr> <td width="40%"><?=GetMessage("PULL_OPTIONS_USE")?>:</td> <td width="60%"><?=implode(", ", $arDependentModule)?></td> </tr> <?endif;?> <tr> <td width="40%"></td> <td width="60%"></td> </tr> <tr> <td width="40%"><nobr><?=GetMessage("PULL_OPTIONS_NGINX")?></nobr>:</td> <td width="60%"><input id="config_nginx" type="checkbox" size="40" value="Y" <?=(CPullOptions::GetNginxStatus()?' checked':'')?> name="nginx"></td> </tr> <tr> <td><?=GetMessage("PULL_OPTIONS_PATH_TO_PUBLISH")?>:</td>
public static function GetTemplateJS($arParams, $arTemplate) { global $USER; $ppStatus = 'false'; $ppServerStatus = 'false'; $updateStateInterval = 'auto'; if (CModule::IncludeModule("pull")) { $ppStatus = CPullOptions::ModuleEnable()? 'true': 'false'; $ppServerStatus = CPullOptions::GetNginxStatus()? 'true': 'false'; $updateStateInterval = CPullOptions::GetNginxStatus()? self::GetSessionLifeTime(): 80; if ($updateStateInterval > 100) { if ($arTemplate['DESKTOP'] == 'true') $updateStateInterval = intval($updateStateInterval/2); else $updateStateInterval = $updateStateInterval-20; } } if ($arTemplate['INIT'] == 'Y') { $sJS = " BX.ready(function() { BXIM = new BX.IM(BX('bx-notifier-panel'), { 'mailCount': ".$arTemplate["MAIL_COUNTER"].", 'notifyCount': ".$arTemplate["NOTIFY_COUNTER"].", 'messageCount': ".$arTemplate["MESSAGE_COUNTER"].", 'counters': ".(empty($arTemplate['COUNTERS'])? '{}': CUtil::PhpToJSObject($arTemplate['COUNTERS'])).", 'ppStatus': ".$ppStatus.", 'ppServerStatus': ".$ppServerStatus.", 'updateStateInterval': '".$updateStateInterval."', 'xmppStatus': ".(CIMMessenger::CheckXmppStatusOnline()? 'true': 'false').", 'bitrix24Status': ".(IsModuleInstalled('bitrix24')? 'true': 'false').", 'bitrixIntranet': ".(IsModuleInstalled('intranet')? 'true': 'false').", 'bitrixXmpp': ".(IsModuleInstalled('xmpp')? 'true': 'false').", 'desktop': ".$arTemplate["DESKTOP"].", 'desktopStatus': ".(CIMMessenger::CheckDesktopStatusOnline()? 'true': 'false').", 'desktopLinkOpen': ".$arTemplate["DESKTOP_LINK_OPEN"].", 'language': '".LANGUAGE_ID."', 'smile': ".CUtil::PhpToJSObject($arTemplate["SMILE"]).", 'smileSet': ".CUtil::PhpToJSObject($arTemplate["SMILE_SET"]).", 'settings': ".CUtil::PhpToJSObject($arTemplate['SETTINGS']).", 'settingsNotifyBlocked': ".(empty($arTemplate['SETTINGS_NOTIFY_BLOCKED'])? '{}': CUtil::PhpToJSObject($arTemplate['SETTINGS_NOTIFY_BLOCKED'])).", 'notify': ".(empty($arTemplate['NOTIFY']['notify'])? '{}': CUtil::PhpToJSObject($arTemplate['NOTIFY']['notify'])).", 'unreadNotify' : ".(empty($arTemplate['NOTIFY']['unreadNotify'])? '{}': CUtil::PhpToJSObject($arTemplate['NOTIFY']['unreadNotify'])).", 'flashNotify' : ".(empty($arTemplate['NOTIFY']['flashNotify'])? '{}': CUtil::PhpToJSObject($arTemplate['NOTIFY']['flashNotify'])).", 'countNotify' : ".intval($arTemplate['NOTIFY']['countNotify']).", 'loadNotify' : ".($arTemplate['NOTIFY']['loadNotify']? 'true': 'false').", 'recent': ".CUtil::PhpToJSObject($arTemplate['RECENT']).", 'users': ".(empty($arTemplate['CONTACT_LIST']['users'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['users'])).", 'groups': ".(empty($arTemplate['CONTACT_LIST']['groups'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['groups'])).", 'userInGroup': ".(empty($arTemplate['CONTACT_LIST']['userInGroup'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['userInGroup'])).", 'woGroups': ".(empty($arTemplate['CONTACT_LIST']['woGroups'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woGroups'])).", 'woUserInGroup': ".(empty($arTemplate['CONTACT_LIST']['woUserInGroup'])? '{}': CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woUserInGroup'])).", 'chat': ".(empty($arTemplate['CHAT']['chat'])? '{}': CUtil::PhpToJSObject($arTemplate['CHAT']['chat'])).", 'userInChat': ".(empty($arTemplate['CHAT']['userInChat'])? '{}': CUtil::PhpToJSObject($arTemplate['CHAT']['userInChat'])).", 'message' : ".(empty($arTemplate['MESSAGE']['message'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['message'])).", 'showMessage' : ".(empty($arTemplate['MESSAGE']['usersMessage'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['usersMessage'])).", 'unreadMessage' : ".(empty($arTemplate['MESSAGE']['unreadMessage'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['unreadMessage'])).", 'flashMessage' : ".(empty($arTemplate['MESSAGE']['flashMessage'])? '{}': CUtil::PhpToJSObject($arTemplate['MESSAGE']['flashMessage'])).", 'history' : {}, 'openMessenger' : ".(isset($_GET['IM_DIALOG'])? "'".CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_DIALOG']))."'": 'false').", 'openHistory' : ".(isset($_GET['IM_HISTORY'])? "'".CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_HISTORY']))."'": 'false').", 'openSettings' : ".(isset($_GET['IM_SETTINGS']) && $_GET['IM_SETTINGS'] == 'Y'? "'true'": 'false').", 'currentTab' : '".CUtil::JSEscape($arTemplate['CURRENT_TAB'])."', 'userId': ".$USER->GetID().", 'userEmail': '".CUtil::JSEscape($USER->GetEmail())."', 'webrtc': {'turnServer' : '".CUtil::JSEscape($arTemplate['TURN_SERVER'])."', 'turnServerFirefox' : '".CUtil::JSEscape($arTemplate['TURN_SERVER_FIREFOX'])."', 'turnServerLogin' : '".CUtil::JSEscape($arTemplate['TURN_SERVER_LOGIN'])."', 'turnServerPassword' : '".CUtil::JSEscape($arTemplate['TURN_SERVER_PASSWORD'])."'}, 'path' : {'profile' : '".CUtil::JSEscape($arTemplate['PATH_TO_USER_PROFILE'])."', 'profileTemplate' : '".CUtil::JSEscape($arTemplate['PATH_TO_USER_PROFILE_TEMPLATE'])."', 'mail' : '".CUtil::JSEscape($arTemplate['PATH_TO_USER_MAIL'])."'} }); }); "; } else { $sJS = " BX.ready(function() { BXIM = new BX.IM(BX('bx-notifier-panel'), { 'init': false, 'settings': ".CUtil::PhpToJSObject($arTemplate['SETTINGS']).", 'updateStateInterval': '".$updateStateInterval."', 'desktop': ".$arTemplate["DESKTOP"].", 'ppStatus': ".$ppStatus.", 'ppServerStatus': ".$ppServerStatus.", 'xmppStatus': ".(CIMMessenger::CheckXmppStatusOnline()? 'true': 'false').", 'bitrix24Status': ".(IsModuleInstalled('bitrix24')? 'true': 'false').", 'bitrixIntranet': ".(IsModuleInstalled('intranet')? 'true': 'false').", 'bitrixXmpp': ".(IsModuleInstalled('xmpp')? 'true': 'false').", 'notify' : {}, 'users' : {}, 'userId': ".$USER->GetID().", 'userEmail': '".CUtil::JSEscape($USER->GetEmail())."', 'openMessenger' : ".(isset($_GET['IM_DIALOG'])? "'".CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_DIALOG']))."'": 'false').", 'openHistory' : ".(isset($_GET['IM_HISTORY'])? "'".CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_HISTORY']))."'": 'false').", 'openSettings' : ".(isset($_GET['IM_SETTINGS']) && $_GET['IM_SETTINGS'] == 'Y'? "'true'": 'false').", 'path' : {'profile' : '".$arTemplate['PATH_TO_USER_PROFILE']."', 'profileTemplate' : '".$arTemplate['PATH_TO_USER_PROFILE_TEMPLATE']."', 'mail' : '".$arTemplate['PATH_TO_USER_MAIL']."'} }); }); "; } return $sJS; }
public static function GetMobileTemplateJS($arParams, $arTemplate) { global $USER; $ppStatus = 'false'; $ppServerStatus = 'false'; $updateStateInterval = 'auto'; if (CModule::IncludeModule("pull")) { $ppStatus = CPullOptions::ModuleEnable() ? 'true' : 'false'; $ppServerStatus = CPullOptions::GetNginxStatus() ? 'true' : 'false'; $updateStateInterval = CPullOptions::GetNginxStatus() ? self::GetSessionLifeTime() : 80; if ($updateStateInterval > 100) { if ($updateStateInterval > 3600) { $updateStateInterval = 3600; } $updateStateInterval = $updateStateInterval - 60; } } $diskStatus = CIMDisk::Enabled(); $phoneSipAvailable = false; $phoneDeviceActive = false; $phoneEnabled = self::CheckPhoneStatus() && CModule::IncludeModule('mobileapp') && \Bitrix\MobileApp\Mobile::getInstance()->isWebRtcSupported(); if ($phoneEnabled && CModule::IncludeModule('voximplant')) { $phoneSipAvailable = CVoxImplantConfig::GetModeStatus(CVoxImplantConfig::MODE_SIP); $phoneDeviceActive = CVoxImplantUser::GetPhoneActive($USER->GetId()); } $mobileAction = isset($arTemplate["ACTION"]) ? $arTemplate["ACTION"] : 'none'; $mobileCallMethod = isset($arTemplate["CALL_METHOD"]) ? $arTemplate["CALL_METHOD"] : 'device'; $userColor = isset($arTemplate['CONTACT_LIST']['users'][$USER->GetID()]['color']) ? $arTemplate['CONTACT_LIST']['users'][$USER->GetID()]['color'] : ''; $sJS = "\n\t\t\tBX.ready(function() {\n\t\t\t\tBXIM = new BX.ImMobile({\n\t\t\t\t\t'mobileAction': '" . $mobileAction . "',\n\t\t\t\t\t'mobileCallMethod': '" . $mobileCallMethod . "',\n\n\t\t\t\t\t'colors': " . (IM\Color::isEnabled() ? CUtil::PhpToJSObject(IM\Color::getSafeColorNames()) : 'false') . ",\n\t\t\t\t\t'mailCount': " . intval($arTemplate["MAIL_COUNTER"]) . ",\n\t\t\t\t\t'notifyCount': " . intval($arTemplate["NOTIFY_COUNTER"]) . ",\n\t\t\t\t\t'messageCount': " . intval($arTemplate["MESSAGE_COUNTER"]) . ",\n\t\t\t\t\t'counters': " . (empty($arTemplate['COUNTERS']) ? '{}' : CUtil::PhpToJSObject($arTemplate['COUNTERS'])) . ",\n\t\t\t\t\t'ppStatus': " . $ppStatus . ",\n\t\t\t\t\t'ppServerStatus': " . $ppServerStatus . ",\n\t\t\t\t\t'updateStateInterval': '" . $updateStateInterval . "',\n\t\t\t\t\t'openChatEnable': " . (CIMMessenger::CheckEnableOpenChat() ? 'true' : 'false') . ",\n\t\t\t\t\t'xmppStatus': " . (CIMMessenger::CheckXmppStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t'bitrixNetwork': " . (CIMMessenger::CheckNetwork() ? 'true' : 'false') . ",\n\t\t\t\t\t'bitrixNetwork2': " . (CIMMessenger::CheckNetwork2() ? 'true' : 'false') . ",\n\t\t\t\t\t'bitrix24': " . (IsModuleInstalled('bitrix24') ? 'true' : 'false') . ",\n\t\t\t\t\t'bitrix24Admin': " . (CModule::IncludeModule('bitrix24') && CBitrix24::IsPortalAdmin($USER->GetId()) ? 'true' : 'false') . ",\n\t\t\t\t\t'bitrix24net': " . (IsModuleInstalled('b24network') ? 'true' : 'false') . ",\n\t\t\t\t\t'bitrixIntranet': " . (IsModuleInstalled('intranet') ? 'true' : 'false') . ",\n\t\t\t\t\t'bitrixXmpp': " . (IsModuleInstalled('xmpp') ? 'true' : 'false') . ",\n\t\t\t\t\t'bitrixMobile': " . (IsModuleInstalled('mobile') ? 'true' : 'false') . ",\n\t\t\t\t\t'desktopStatus': " . (CIMMessenger::CheckDesktopStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t'desktopVersion': " . CIMMessenger::GetDesktopVersion() . ",\n\t\t\t\t\t'language': '" . LANGUAGE_ID . "',\n\n\t\t\t\t\t'smile': " . (empty($arTemplate['SMILE']) ? '{}' : CUtil::PhpToJSObject($arTemplate["SMILE"])) . ",\n\t\t\t\t\t'smileSet': " . (empty($arTemplate['SMILE_SET']) ? '{}' : CUtil::PhpToJSObject($arTemplate["SMILE_SET"])) . ",\n\t\t\t\t\t'settings': " . (empty($arTemplate['SETTINGS']) ? '{}' : CUtil::PhpToJSObject($arTemplate['SETTINGS'])) . ",\n\t\t\t\t\t'settingsNotifyBlocked': " . (empty($arTemplate['SETTINGS_NOTIFY_BLOCKED']) ? '{}' : CUtil::PhpToJSObject($arTemplate['SETTINGS_NOTIFY_BLOCKED'])) . ",\n\n\t\t\t\t\t'notify': " . (empty($arTemplate['NOTIFY']['notify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['notify'])) . ",\n\t\t\t\t\t'unreadNotify' : " . (empty($arTemplate['NOTIFY']['unreadNotify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['unreadNotify'])) . ",\n\t\t\t\t\t'flashNotify' : " . (empty($arTemplate['NOTIFY']['flashNotify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['flashNotify'])) . ",\n\t\t\t\t\t'countNotify' : " . intval($arTemplate['NOTIFY']['countNotify']) . ",\n\t\t\t\t\t'loadNotify' : " . ($arTemplate['NOTIFY']['loadNotify'] ? 'true' : 'false') . ",\n\n\t\t\t\t\t'recent': " . (empty($arTemplate['RECENT']) && $arTemplate['RECENT'] !== false ? '[]' : CUtil::PhpToJSObject($arTemplate['RECENT'])) . ",\n\t\t\t\t\t'users': " . (empty($arTemplate['CONTACT_LIST']['users']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['users'])) . ",\n\t\t\t\t\t'groups': " . (empty($arTemplate['CONTACT_LIST']['groups']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['groups'])) . ",\n\t\t\t\t\t'userInGroup': " . (empty($arTemplate['CONTACT_LIST']['userInGroup']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['userInGroup'])) . ",\n\t\t\t\t\t'woGroups': " . (empty($arTemplate['CONTACT_LIST']['woGroups']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woGroups'])) . ",\n\t\t\t\t\t'woUserInGroup': " . (empty($arTemplate['CONTACT_LIST']['woUserInGroup']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woUserInGroup'])) . ",\n\t\t\t\t\t'chat': " . (empty($arTemplate['CHAT']['chat']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CHAT']['chat'])) . ",\n\t\t\t\t\t'userInChat': " . (empty($arTemplate['CHAT']['userInChat']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CHAT']['userInChat'])) . ",\n\t\t\t\t\t'userChatBlockStatus': " . (empty($arTemplate['CHAT']['userChatBlockStatus']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CHAT']['userChatBlockStatus'])) . ",\n\t\t\t\t\t'message' : " . (empty($arTemplate['MESSAGE']['message']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['message'])) . ",\n\t\t\t\t\t'files' : " . (empty($arTemplate['MESSAGE']['files']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['files'])) . ",\n\t\t\t\t\t'showMessage' : " . (empty($arTemplate['MESSAGE']['usersMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['usersMessage'])) . ",\n\t\t\t\t\t'unreadMessage' : " . (empty($arTemplate['MESSAGE']['unreadMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['unreadMessage'])) . ",\n\t\t\t\t\t'flashMessage' : " . (empty($arTemplate['MESSAGE']['flashMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['flashMessage'])) . ",\n\t\t\t\t\t'history' : {},\n\t\t\t\t\t'openMessenger' : " . (isset($_GET['IM_DIALOG']) ? "'" . CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_DIALOG'])) . "'" : 'false') . ",\n\t\t\t\t\t'openHistory' : " . (isset($_GET['IM_HISTORY']) ? "'" . CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_HISTORY'])) . "'" : 'false') . ",\n\t\t\t\t\t'openNotify' : " . (isset($_GET['IM_NOTIFY']) && $_GET['IM_NOTIFY'] == 'Y' ? 'true' : 'false') . ",\n\t\t\t\t\t'openSettings' : " . (isset($_GET['IM_SETTINGS']) ? $_GET['IM_SETTINGS'] == 'Y' ? "'true'" : "'" . CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_SETTINGS'])) . "'" : 'false') . ",\n\n\t\t\t\t\t'currentTab' : '" . ($arTemplate['CURRENT_TAB'] ? CUtil::JSEscape($arTemplate['CURRENT_TAB']) : 0) . "',\n\t\t\t\t\t'generalChatId': " . CIMChat::GetGeneralChatId() . ",\n\t\t\t\t\t'canSendMessageGeneralChat': " . (CIMChat::CanSendMessageToGeneralChat($USER->GetID()) ? 'true' : 'false') . ",\n\t\t\t\t\t'userId': " . $USER->GetID() . ",\n\t\t\t\t\t'userEmail': '" . CUtil::JSEscape($USER->GetEmail()) . "',\n\t\t\t\t\t'userColor': '" . IM\Color::getCode($userColor) . "',\n\t\t\t\t\t'userGender': '" . IM\User::getInstance()->getGender() . "',\n\t\t\t\t\t'userExtranet': " . (IM\User::getInstance()->isExtranet() ? 'true' : 'false') . ",\n\t\t\t\t\t'webrtc': {'turnServer' : '" . (empty($arTemplate['TURN_SERVER']) ? '' : CUtil::JSEscape($arTemplate['TURN_SERVER'])) . "', 'turnServerLogin' : '" . (empty($arTemplate['TURN_SERVER_LOGIN']) ? '' : CUtil::JSEscape($arTemplate['TURN_SERVER_LOGIN'])) . "', 'turnServerPassword' : '" . (empty($arTemplate['TURN_SERVER_PASSWORD']) ? '' : CUtil::JSEscape($arTemplate['TURN_SERVER_PASSWORD'])) . "', 'mobileSupport': " . ($arTemplate['WEBRTC_MOBILE_SUPPORT'] ? 'true' : 'false') . ", 'phoneEnabled': " . ($phoneEnabled ? 'true' : 'false') . ", 'phoneSipAvailable': " . ($phoneSipAvailable ? 'true' : 'false') . "},\n\t\t\t\t\t'disk': {'enable' : " . ($diskStatus ? 'true' : 'false') . "},\n\t\t\t\t\t'path' : {'profile' : '" . (empty($arTemplate['PATH_TO_USER_PROFILE']) ? '' : CUtil::JSEscape($arTemplate['PATH_TO_USER_PROFILE'])) . "', 'profileTemplate' : '" . (empty($arTemplate['PATH_TO_USER_PROFILE_TEMPLATE']) ? '' : CUtil::JSEscape($arTemplate['PATH_TO_USER_PROFILE_TEMPLATE'])) . "', 'mail' : '" . (empty($arTemplate['PATH_TO_USER_MAIL']) ? '' : CUtil::JSEscape($arTemplate['PATH_TO_USER_MAIL'])) . "'}\n\t\t\t\t});\n\t\t\t});\n\t\t"; return $sJS; }
public static function GetTemplateJS($arParams, $arTemplate) { global $USER; $ppStatus = 'false'; $ppServerStatus = 'false'; $updateStateInterval = 'auto'; if (CModule::IncludeModule("pull")) { $ppStatus = CPullOptions::ModuleEnable() ? 'true' : 'false'; $ppServerStatus = CPullOptions::GetNginxStatus() ? 'true' : 'false'; $updateStateInterval = CPullOptions::GetNginxStatus() ? self::GetSessionLifeTime() : 80; if ($updateStateInterval > 100) { if ($updateStateInterval > 3600) { $updateStateInterval = 3600; } if ($arTemplate['DESKTOP'] == 'true') { $updateStateInterval = intval($updateStateInterval / 2); } else { $updateStateInterval = $updateStateInterval - 60; } } } $diskStatus = CIMDisk::Enabled(); if ($arTemplate['INIT'] == 'Y') { $phoneAvailable = 0; $phoneSipAvailable = 0; $phoneEnabled = self::CheckPhoneStatus(); if ($phoneEnabled && CModule::IncludeModule('voximplant')) { $phoneBalance = COption::GetOptionString("voximplant", "account_balance", 0); if (floatval($phoneBalance) >= 0) { $phoneAvailable = floatval($phoneBalance) > 0 ? 2 : 1; } $phoneSipAvailable = CVoxImplantConfig::GetModeStatus(CVoxImplantConfig::MODE_SIP); } $pathToIm = isset($arTemplate['PATH_TO_IM']) ? $arTemplate['PATH_TO_IM'] : ''; $pathToCall = isset($arTemplate['PATH_TO_CALL']) ? $arTemplate['PATH_TO_CALL'] : ''; $pathToFile = isset($arTemplate['PATH_TO_FILE']) ? $arTemplate['PATH_TO_FILE'] : ''; $sJS = "\n\t\t\t\tBX.ready(function() {\n\t\t\t\t\tBXIM = new BX.IM(BX('bx-notifier-panel'), {\n\t\t\t\t\t\t'mailCount': " . $arTemplate["MAIL_COUNTER"] . ",\n\t\t\t\t\t\t'notifyCount': " . $arTemplate["NOTIFY_COUNTER"] . ",\n\t\t\t\t\t\t'messageCount': " . $arTemplate["MESSAGE_COUNTER"] . ",\n\t\t\t\t\t\t'counters': " . (empty($arTemplate['COUNTERS']) ? '{}' : CUtil::PhpToJSObject($arTemplate['COUNTERS'])) . ",\n\t\t\t\t\t\t'ppStatus': " . $ppStatus . ",\n\t\t\t\t\t\t'ppServerStatus': " . $ppServerStatus . ",\n\t\t\t\t\t\t'updateStateInterval': '" . $updateStateInterval . "',\n\t\t\t\t\t\t'xmppStatus': " . (CIMMessenger::CheckXmppStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrixNetworkStatus': " . (CIMMessenger::CheckNetworkStatus() ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrix24Status': " . (IsModuleInstalled('bitrix24') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrix24Admin': " . (CModule::IncludeModule('bitrix24') && CBitrix24::IsPortalAdmin($USER->GetId()) ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrix24net': " . (IsModuleInstalled('b24network') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrixIntranet': " . (IsModuleInstalled('intranet') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrixXmpp': " . (IsModuleInstalled('xmpp') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'desktop': " . $arTemplate["DESKTOP"] . ",\n\t\t\t\t\t\t'desktopStatus': " . (CIMMessenger::CheckDesktopStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t\t'desktopVersion': " . CIMMessenger::GetDesktopVersion() . ",\n\t\t\t\t\t\t'desktopLinkOpen': " . $arTemplate["DESKTOP_LINK_OPEN"] . ",\n\t\t\t\t\t\t'language': '" . LANGUAGE_ID . "',\n\n\t\t\t\t\t\t'smile': " . CUtil::PhpToJSObject($arTemplate["SMILE"]) . ",\n\t\t\t\t\t\t'smileSet': " . CUtil::PhpToJSObject($arTemplate["SMILE_SET"]) . ",\n\t\t\t\t\t\t'settings': " . CUtil::PhpToJSObject($arTemplate['SETTINGS']) . ",\n\t\t\t\t\t\t'settingsNotifyBlocked': " . (empty($arTemplate['SETTINGS_NOTIFY_BLOCKED']) ? '{}' : CUtil::PhpToJSObject($arTemplate['SETTINGS_NOTIFY_BLOCKED'])) . ",\n\n\t\t\t\t\t\t'notify': " . (empty($arTemplate['NOTIFY']['notify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['notify'])) . ",\n\t\t\t\t\t\t'unreadNotify' : " . (empty($arTemplate['NOTIFY']['unreadNotify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['unreadNotify'])) . ",\n\t\t\t\t\t\t'flashNotify' : " . (empty($arTemplate['NOTIFY']['flashNotify']) ? '{}' : CUtil::PhpToJSObject($arTemplate['NOTIFY']['flashNotify'])) . ",\n\t\t\t\t\t\t'countNotify' : " . intval($arTemplate['NOTIFY']['countNotify']) . ",\n\t\t\t\t\t\t'loadNotify' : " . ($arTemplate['NOTIFY']['loadNotify'] ? 'true' : 'false') . ",\n\n\t\t\t\t\t\t'recent': " . CUtil::PhpToJSObject($arTemplate['RECENT']) . ",\n\t\t\t\t\t\t'users': " . (empty($arTemplate['CONTACT_LIST']['users']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['users'])) . ",\n\t\t\t\t\t\t'groups': " . (empty($arTemplate['CONTACT_LIST']['groups']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['groups'])) . ",\n\t\t\t\t\t\t'userInGroup': " . (empty($arTemplate['CONTACT_LIST']['userInGroup']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['userInGroup'])) . ",\n\t\t\t\t\t\t'woGroups': " . (empty($arTemplate['CONTACT_LIST']['woGroups']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woGroups'])) . ",\n\t\t\t\t\t\t'woUserInGroup': " . (empty($arTemplate['CONTACT_LIST']['woUserInGroup']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CONTACT_LIST']['woUserInGroup'])) . ",\n\t\t\t\t\t\t'chat': " . (empty($arTemplate['CHAT']['chat']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CHAT']['chat'])) . ",\n\t\t\t\t\t\t'userInChat': " . (empty($arTemplate['CHAT']['userInChat']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CHAT']['userInChat'])) . ",\n\t\t\t\t\t\t'userChatBlockStatus': " . (empty($arTemplate['CHAT']['userChatBlockStatus']) ? '{}' : CUtil::PhpToJSObject($arTemplate['CHAT']['userChatBlockStatus'])) . ",\n\t\t\t\t\t\t'message' : " . (empty($arTemplate['MESSAGE']['message']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['message'])) . ",\n\t\t\t\t\t\t'files' : " . (empty($arTemplate['MESSAGE']['files']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['files'])) . ",\n\t\t\t\t\t\t'showMessage' : " . (empty($arTemplate['MESSAGE']['usersMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['usersMessage'])) . ",\n\t\t\t\t\t\t'unreadMessage' : " . (empty($arTemplate['MESSAGE']['unreadMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['unreadMessage'])) . ",\n\t\t\t\t\t\t'flashMessage' : " . (empty($arTemplate['MESSAGE']['flashMessage']) ? '{}' : CUtil::PhpToJSObject($arTemplate['MESSAGE']['flashMessage'])) . ",\n\t\t\t\t\t\t'history' : {},\n\t\t\t\t\t\t'openMessenger' : " . (isset($_GET['IM_DIALOG']) ? "'" . CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_DIALOG'])) . "'" : 'false') . ",\n\t\t\t\t\t\t'openHistory' : " . (isset($_GET['IM_HISTORY']) ? "'" . CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_HISTORY'])) . "'" : 'false') . ",\n\t\t\t\t\t\t'openNotify' : " . (isset($_GET['IM_NOTIFY']) && $_GET['IM_NOTIFY'] == 'Y' ? 'true' : 'false') . ",\n\t\t\t\t\t\t'openSettings' : " . (isset($_GET['IM_SETTINGS']) ? $_GET['IM_SETTINGS'] == 'Y' ? "'true'" : "'" . CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_SETTINGS'])) . "'" : 'false') . ",\n\t\t\t\t\t\t'currentTab' : '" . CUtil::JSEscape($arTemplate['CURRENT_TAB']) . "',\n\t\t\t\t\t\t'userId': " . $USER->GetID() . ",\n\t\t\t\t\t\t'userEmail': '" . CUtil::JSEscape($USER->GetEmail()) . "',\n\t\t\t\t\t\t'webrtc': {'turnServer' : '" . CUtil::JSEscape($arTemplate['TURN_SERVER']) . "', 'turnServerFirefox' : '" . CUtil::JSEscape($arTemplate['TURN_SERVER_FIREFOX']) . "', 'turnServerLogin' : '" . CUtil::JSEscape($arTemplate['TURN_SERVER_LOGIN']) . "', 'turnServerPassword' : '" . CUtil::JSEscape($arTemplate['TURN_SERVER_PASSWORD']) . "', 'phoneEnabled': " . ($phoneEnabled ? 'true' : 'false') . ", 'phoneAvailable': " . $phoneAvailable . ", 'phoneSipAvailable': " . ($phoneSipAvailable ? 'true' : 'false') . "},\n\t\t\t\t\t\t'disk': {'enable' : " . ($diskStatus ? 'true' : 'false') . "},\n\t\t\t\t\t\t'path' : {'profile' : '" . CUtil::JSEscape($arTemplate['PATH_TO_USER_PROFILE']) . "', 'profileTemplate' : '" . CUtil::JSEscape($arTemplate['PATH_TO_USER_PROFILE_TEMPLATE']) . "', 'mail' : '" . CUtil::JSEscape($arTemplate['PATH_TO_USER_MAIL']) . "', 'im': '" . CUtil::JSEscape($pathToIm) . "', 'call': '" . CUtil::JSEscape($pathToCall) . "', 'file': '" . CUtil::JSEscape($pathToFile) . "'}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t"; } else { $sJS = "\n\t\t\t\tBX.ready(function() {\n\t\t\t\t\tBXIM = new BX.IM(BX('bx-notifier-panel'), {\n\t\t\t\t\t\t'init': false,\n\t\t\t\t\t\t'settings': " . CUtil::PhpToJSObject($arTemplate['SETTINGS']) . ",\n\t\t\t\t\t\t'updateStateInterval': '" . $updateStateInterval . "',\n\t\t\t\t\t\t'desktop': " . $arTemplate["DESKTOP"] . ",\n\t\t\t\t\t\t'ppStatus': " . $ppStatus . ",\n\t\t\t\t\t\t'ppServerStatus': " . $ppServerStatus . ",\n\t\t\t\t\t\t'xmppStatus': " . (CIMMessenger::CheckXmppStatusOnline() ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrix24Status': " . (IsModuleInstalled('bitrix24') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrixIntranet': " . (IsModuleInstalled('intranet') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'bitrixXmpp': " . (IsModuleInstalled('xmpp') ? 'true' : 'false') . ",\n\t\t\t\t\t\t'notify' : {},\n\t\t\t\t\t\t'users' : {},\n\t\t\t\t\t\t'userId': " . $USER->GetID() . ",\n\t\t\t\t\t\t'userEmail': '" . CUtil::JSEscape($USER->GetEmail()) . "',\n\n\t\t\t\t\t\t'openMessenger' : " . (isset($_GET['IM_DIALOG']) ? "'" . CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_DIALOG'])) . "'" : 'false') . ",\n\t\t\t\t\t\t'openHistory' : " . (isset($_GET['IM_HISTORY']) ? "'" . CUtil::JSEscape(htmlspecialcharsbx($_GET['IM_HISTORY'])) . "'" : 'false') . ",\n\t\t\t\t\t\t'openSettings' : " . (isset($_GET['IM_SETTINGS']) && $_GET['IM_SETTINGS'] == 'Y' ? "'true'" : 'false') . ",\n\n\t\t\t\t\t\t'disk': {'enable' : '" . ($diskStatus ? 'true' : 'false') . "'},\n\t\t\t\t\t\t'path' : {'profile' : '" . $arTemplate['PATH_TO_USER_PROFILE'] . "', 'profileTemplate' : '" . $arTemplate['PATH_TO_USER_PROFILE_TEMPLATE'] . "', 'mail' : '" . $arTemplate['PATH_TO_USER_MAIL'] . "'}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t"; } return $sJS; }