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; }
/** * <p>Отмечает набор сообщений как прочтенные.</p> * * * * * @param int $userID Код пользователя, являющегося получателем сообщений. * * * * @param array $arIDs Массив идентификаторов сообщений. * * * * @return bool <p>True в случае успешного выполнения и false - в противном случае.</p> * <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/CSocNetMessages/MarkMessageReadMultiple.php * @author Bitrix */ public static function MarkMessageReadMultiple($userID, $arIDs) { global $APPLICATION, $DB; $userID = IntVal($userID); if ($userID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_EMPTY_SENDER_USER_ID"), "ERROR_USER_ID"); return false; } if (!is_array($arIDs)) { return true; } foreach ($arIDs as $ID) { CSocNetMessages::MarkMessageRead($userID, $ID); } return true; }
} } } elseif ($_REQUEST["action"] == "reject") { if (!CSocNetUserToGroup::UserRejectRequestToBeMember($GLOBALS["USER"]->GetID(), IntVal($_REQUEST["eventID"]))) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage .= $e->GetString(); } } } if (strlen($errorMessage) > 0) { echo $errorMessage; } } elseif ($_REQUEST["EventType"] == "Message" && IntVal($_REQUEST["eventID"]) > 0) { $errorMessage = ""; if ($_REQUEST["action"] == "close") { if (!CSocNetMessages::MarkMessageRead($GLOBALS["USER"]->GetID(), IntVal($_REQUEST["eventID"]))) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { if ($e->GetID() != "ERROR_NO_MESSAGE") { $errorMessage .= $e->GetString(); } } } } if (strlen($errorMessage) > 0) { echo $errorMessage; } } elseif ($_REQUEST["EventType"] == "Message" && IntVal($_REQUEST["userID"]) > 0) { $errorMessage = ""; if ($_REQUEST["action"] == "ban") { if (!CSocNetUserRelations::BanUser($GLOBALS["USER"]->GetID(), IntVal($_REQUEST["userID"]))) { if ($e = $GLOBALS["APPLICATION"]->GetException()) {
} if ($arResult["IsCurrentUser"]) { $arResult["FatalError"] = GetMessage("SONET_C26_SELF") . ". "; } elseif (!$arResult["CurrentUserPerms"]["Message"]) { $arResult["FatalError"] = GetMessage("SONET_C26_PERM_MESS") . ". "; } else { $arResult["ShowForm"] = "Input"; if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($_POST["save"]) > 0 && check_bitrix_sessid()) { $errorMessage = ""; if (strlen($_POST["POST_MESSAGE"]) <= 0) { $errorMessage .= GetMessage("SONET_C26_NO_TEXT") . ". "; } if (strlen($errorMessage) <= 0) { if (CSocNetMessages::CreateMessage($GLOBALS["USER"]->GetID(), $arResult["User"]["ID"], $_POST["POST_MESSAGE"])) { if ($arParams["MESSAGE_ID"] > 0) { CSocNetMessages::MarkMessageRead($GLOBALS["USER"]->GetID(), $arParams["MESSAGE_ID"]); } } else { if ($e = $APPLICATION->GetException()) { $errorMessage .= $e->GetString(); } } } if (strlen($errorMessage) > 0) { $arResult["ErrorMessage"] = $errorMessage; } else { $arResult["ShowForm"] = "Confirm"; } } $arResult["PrintSmilesList"] = CSocNetSmile::PrintSmilesList(3, LANGUAGE_ID, $arParams["PATH_TO_SMILE"]); }