public static function UploadAvatar($hash, &$file, &$package, &$upload, &$error) { $post = \Bitrix\Main\Context::getCurrent()->getRequest()->getPostList()->toArray(); $chatId = intval($post['CHAT_ID']); if ($chatId <= 0) { return false; } $chat = IM\ChatTable::getById($chatId)->fetch(); if (!$chat) { return false; } $relationError = true; $chatRelation = CIMChat::GetRelationById($chatId); foreach ($chatRelation as $relation) { if ($relation['USER_ID'] == self::GetUserId()) { $relationError = false; break; } } if ($relationError) { $error = GetMessage('IM_DISK_ERR_AVATAR_1'); return false; } $fileId = CFile::saveFile($file["files"]["default"], self::MODULE_ID); if ($fileId > 0) { if ($chat['AVATAR'] > 0) { CFile::DeLete($chat['AVATAR']); } IM\ChatTable::update($chatId, array('AVATAR' => $fileId)); $file['chatId'] = $chatId; $file['chatAvatar'] = CIMChat::GetAvatarImage($fileId); if ($chat["ENTITY_TYPE"] != 'CALL') { CIMChat::AddSystemMessage(array('CHAT_ID' => $chatId, 'USER_ID' => self::GetUserId(), 'MESSAGE_CODE' => 'IM_DISK_AVATAR_CHANGE_')); } if (CModule::IncludeModule('pull')) { $pullMessage = array('module_id' => 'im', 'command' => 'chatAvatar', 'params' => array('chatId' => $chatId, 'chatAvatar' => $file['chatAvatar'])); CPullStack::AddByUsers(array_keys($chatRelation), $pullMessage); $orm = \Bitrix\Im\ChatTable::getById($chatId); $chat = $orm->fetch(); if ($chat['TYPE'] == IM_MESSAGE_OPEN) { CPullWatch::AddToStack('IM_PUBLIC_' . $chat['ID'], $pullMessage); } } } else { return false; } return true; }
public function Rename($chatId, $title) { global $DB; $chatId = intval($chatId); $title = substr(trim($title), 0, 255); if ($chatId <= 0 || strlen($title) <= 0) { return false; } $strSql = "\n\t\t\tSELECT R.CHAT_ID, C.TITLE CHAT_TITLE, C.AUTHOR_ID CHAT_AUTHOR_ID\n\t\t\tFROM b_im_relation R LEFT JOIN b_im_chat C ON R.CHAT_ID = C.ID\n\t\t\tWHERE R.USER_ID = " . $this->user_id . " AND R.MESSAGE_TYPE IN ('" . IM_MESSAGE_OPEN . "','" . IM_MESSAGE_CHAT . "') AND R.CHAT_ID = " . $chatId; $dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if ($arRes = $dbRes->Fetch()) { if ($arRes['CHAT_TITLE'] == $title) { return false; } IM\ChatTable::update($chatId, array('TITLE' => $title)); CIMChat::AddSystemMessage(array('CHAT_ID' => $chatId, 'USER_ID' => $this->user_id, 'MESSAGE_CODE' => 'IM_CHAT_CHANGE_TITLE_', 'MESSAGE_REPLACE' => array('#CHAT_TITLE#' => $title))); if (CModule::IncludeModule("pull")) { $ar = CIMChat::GetRelationById($chatId); foreach ($ar as $rel) { CIMContactList::CleanChatCache($rel['USER_ID']); CPullStack::AddByUser($rel['USER_ID'], array('module_id' => 'im', 'command' => 'chatRename', 'params' => array('chatId' => $chatId, 'chatTitle' => htmlspecialcharsbx($title)))); } } return true; } return false; }
public function Rename($chatId, $title) { global $DB; $chatId = intval($chatId); $title = trim($title); if ($chatId <= 0 || strlen($title) <= 0) return false; $strSql = " SELECT R.CHAT_ID, C.TITLE CHAT_TITLE, C.AUTHOR_ID CHAT_AUTHOR_ID FROM b_im_relation R LEFT JOIN b_im_chat C ON R.CHAT_ID = C.ID WHERE R.USER_ID = ".$this->user_id." AND R.MESSAGE_TYPE = '".IM_MESSAGE_GROUP."' AND R.CHAT_ID = ".$chatId; $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if ($arRes = $dbRes->Fetch()) { if ($arRes['CHAT_TITLE'] == $title) return false; $strSql = "UPDATE b_im_chat SET TITLE = '".$DB->ForSQL($title)."' WHERE ID = ".$chatId; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); CIMChat::AddSystemMessage(Array( 'CHAT_ID' => $chatId, 'USER_ID' => $this->user_id, 'MESSAGE_CODE' => 'IM_CHAT_CHANGE_TITLE_', 'MESSAGE_REPLACE' => Array('#CHAT_TITLE#' => $title) )); if (CModule::IncludeModule("pull")) { $ar = CIMChat::GetRelationById($chatId); foreach ($ar as $rel) { CPullStack::AddByUser($rel['USER_ID'], Array( 'module_id' => 'im', 'command' => 'chatRename', 'params' => Array( 'chatId' => $chatId, 'chatTitle' => htmlspecialcharsbx($title), ), )); } } return true; } return false; }