Ejemplo n.º 1
0
     CUtil::decodeURIComponent($_POST);
     $_POST['FILES'] = CUtil::JsObjectToPhp($_POST['FILES']);
     $result = CIMDisk::UploadFileRegister($_POST['CHAT_ID'], $_POST['FILES']);
     if (!$result) {
         $errorMessage = 'ERROR';
     }
     echo CUtil::PhpToJsObject(array('FILE_ID' => $result['FILE_ID'], 'CHAT_ID' => $_POST['CHAT_ID'], 'RECIPIENT_ID' => $_POST['RECIPIENT_ID'], 'MESSAGE_ID' => $result['MESSAGE_ID'], 'MESSAGE_TMP_ID' => $_POST['MESSAGE_TMP_ID'], 'ERROR' => $errorMessage));
 } else {
     if ($_POST['IM_FILE_UNREGISTER'] == 'Y') {
         $_POST['FILES'] = CUtil::JsObjectToPhp($_POST['FILES']);
         $_POST['MESSAGES'] = CUtil::JsObjectToPhp($_POST['MESSAGES']);
         $result = CIMDisk::UploadFileUnRegister($_POST['CHAT_ID'], $_POST['FILES'], $_POST['MESSAGES']);
         echo CUtil::PhpToJsObject(array('ERROR' => !$result ? 'ERROR' : ''));
     } else {
         if ($_POST['IM_FILE_DELETE'] == 'Y') {
             $result = CIMDisk::DeleteFile($_POST['CHAT_ID'], $_POST['FILE_ID']);
             echo CUtil::PhpToJsObject(array('CHAT_ID' => $_POST['CHAT_ID'], 'FILE_ID' => $_POST['FILE_ID'], 'ERROR' => !$result ? 'ERROR' : ''));
         } else {
             if ($_POST['IM_FILE_SAVE_TO_DISK'] == 'Y') {
                 $result = CIMDisk::SaveToLocalDisk($_POST['FILE_ID']);
                 echo CUtil::PhpToJsObject(array('CHAT_ID' => $_POST['CHAT_ID'], 'FILE_ID' => $_POST['FILE_ID'], 'NEW_FILE_ID' => $result ? $result->getId() : 0, 'ERROR' => !$result ? 'ERROR' : ''));
             } else {
                 if ($_POST['IM_FILE_UPLOAD_FROM_DISK'] == 'Y') {
                     $errorMessage = '';
                     $_POST['FILES'] = CUtil::JsObjectToPhp($_POST['FILES']);
                     $result = CIMDisk::UploadFileFromDisk($_POST['CHAT_ID'], $_POST['FILES']);
                     if (!$result) {
                         $errorMessage = 'ERROR';
                     }
                     echo CUtil::PhpToJsObject(array('FILES' => $result['FILES'], 'CHAT_ID' => $_POST['CHAT_ID'], 'RECIPIENT_ID' => $_POST['RECIPIENT_ID'], 'MESSAGE_ID' => $result['MESSAGE_ID'], 'MESSAGE_TMP_ID' => $_POST['MESSAGE_TMP_ID'], 'ERROR' => $errorMessage));
                 } else {
Ejemplo n.º 2
0
 public static function Delete($id)
 {
     $message = self::CheckPossibilityUpdateMessage($id);
     if (!$message) {
         return false;
     }
     $date = FormatDate("FULL", $message['DATE_CREATE'] + CTimeZone::GetOffset());
     IM\MessageTable::update($message['ID'], array("MESSAGE" => GetMessage('IM_MESSAGE_DELETED'), "MESSAGE_OUT" => GetMessage('IM_MESSAGE_DELETED_OUT', array('#DATE#' => $date))));
     $params = CIMMessageParam::Get($message['ID']);
     if (!empty($params['FILE_ID'])) {
         foreach ($params['FILE_ID'] as $fileId) {
             CIMDisk::DeleteFile($message['CHAT_ID'], $fileId);
         }
     }
     CIMMessageParam::Set($message['ID'], array('IS_DELETED' => 'Y', 'URL_ID' => array(), 'FILE_ID' => array()));
     $arFields = $message;
     $arFields['MESSAGE'] = GetMessage('IM_MESSAGE_DELETED_OUT', array('#DATE#' => $date));
     $arFields['DATE_MODIFY'] = time() + CTimeZone::GetOffset();
     $relations = CIMMessenger::GetRelationById($message['ID']);
     $arPullMessage = array('id' => $arFields['ID'], 'type' => $arFields['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE ? 'private' : 'chat', 'date' => $arFields['DATE_MODIFY'], 'text' => GetMessage('IM_MESSAGE_DELETED'));
     if ($message['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE) {
         $arFields['FROM_USER_ID'] = $arFields['AUTHOR_ID'];
         foreach ($relations as $rel) {
             if ($rel['USER_ID'] != $arFields['AUTHOR_ID']) {
                 $arFields['TO_USER_ID'] = $rel['USER_ID'];
             }
         }
         $arPullMessage['fromUserId'] = $arFields['FROM_USER_ID'];
         $arPullMessage['toUserId'] = $arFields['TO_USER_ID'];
     } else {
         $arPullMessage['chatId'] = $arFields['CHAT_ID'];
         $arPullMessage['senderId'] = $arFields['AUTHOR_ID'];
     }
     CPullStack::AddByUsers(array_keys($relations), array('module_id' => 'im', 'command' => 'messageDelete', 'params' => $arPullMessage));
     foreach ($relations as $rel) {
         $obCache = new CPHPCache();
         $obCache->CleanDir('/bx/imc/recent' . self::GetCachePath($rel['USER_ID']));
     }
     if ($message['MESSAGE_TYPE'] == IM_MESSAGE_OPEN) {
         CPullWatch::AddToStack('IM_PUBLIC_' . $message['CHAT_ID'], array('module_id' => 'im', 'command' => 'messageUpdate', 'params' => $arPullMessage));
     }
     foreach (GetModuleEvents("im", "OnAfterMessagesDelete", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array(intval($id), $arFields));
     }
     return true;
 }