private function __SendMessage($senderId, $receiverId, $messageID, $type, $message, $domain = "") { if (!$this->isInitialized) { $this->Initialize(); } $receiverId = intval($receiverId); if ($receiverId <= 0) { return false; } $messageID = intval($messageID); if ($messageID <= 0) { return false; } if (!in_array($type, array("P", "S"))) { return false; } if (strlen($message) <= 0) { return false; } if (!CXMPPUtility::CheckXmppStatusOnline()) { return false; } $senderJId = false; $receiverJId = false; $arUserID = array(); $arUserID[] = $receiverId; $senderId = intval($senderId); if ($senderId <= 0) { if ($senderId != -5) { return false; } $senderJId = self::GetSystemJId($domain); } else { $arUserID[] = $senderId; } if (!($arJID = CXMPPUtility::GetJIdByUserId($arUserID, $domain))) { return false; } if ($senderId > 0) { $senderJId = $arJID[$senderId]; } $receiverJId = $arJID[$receiverId]; if (!$senderJId) { CXMPPUtility::Show("Error senderId=" . $senderId . ", receiverId=" . $receiverId . ", messageID=" . $messageID . " - Sender not found", 0); return false; } if (!$receiverJId) { CXMPPUtility::Show("Error senderId=" . $senderId . ", receiverId=" . $receiverId . ", messageID=" . $messageID . " - Reseiver not found", 0); return false; } $messageType = "chat"; if ($type == "S") { $messageType = "normal"; } $arMessage = CXMPPUtility::GetMessageArray($senderJId, $receiverJId, $messageType, $message, $domain); $result = false; if (CXMPPServer::IsServerStarted()) { $server = CXMPPServer::GetServer(); $result = $server->Send($receiverJId, $arMessage, $domain); } else { $result = CXMPPUtility::SendToServer($arMessage, $domain); } if ($result === true) { if (IsModuleInstalled("im") && CModule::IncludeModule("im")) { if ($type == "S") { $CIMNotify = new CIMNotify($receiverId); $CIMNotify->MarkNotifyRead($messageID); } else { $CIMMessage = new CIMMessage($receiverId); $CIMMessage->SetReadMessage($senderId); } } else { CSocNetMessages::MarkMessageRead($receiverId, $messageID); } } else { CXMPPUtility::Show("Error senderId=" . $senderId . ", receiverId=" . $receiverId . ", messageID=" . $messageID . " - Message was not send", 0); } return $result; }
} else { echo $startErrorMessage; } /* $WshShell = new COM("WScript.Shell"); $oExec = $WshShell->Run("cmd /C ../apache/php.exe xmppd.php", 0, false); */ /* pclose(popen("start ../apache/php.exe xmppd.php", "r")); */ /* exec("/usr/local/bin/php /path/to/script.php > /dev/null &"); */ } elseif ($_REQUEST["server_action"] == "stop") { $arMessage = array("query" => array("." => array("type" => "set"), "action" => array("#" => "die"))); CXMPPUtility::SendToServer($arMessage); echo "success"; } } die; } $APPLICATION->SetTitle(GetMessage("XMPP_AXS_TITLE")); $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("XMPP_AXS_TAB1"), "ICON" => "main_user_edit", "TITLE" => GetMessage("XMPP_AXS_TAB1_TITLE"))); $tabControl = new CAdminTabControl("tabControl", $aTabs); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; ?> <script language="JavaScript"> var savedNS; var stop;