3namespace Bitrix\Im\V2\Link\File;
7use Bitrix\Disk\Security\DiskSecurityContext;
8use Bitrix\Im\Model\MessageParamTable;
9use Bitrix\Im\V2\Common\ContextCustomer;
10use Bitrix\Im\V2\Link\Push;
11use Bitrix\Im\V2\Message;
12use Bitrix\Im\V2\Result;
13use Bitrix\Main\Config\Option;
14use Bitrix\Main\ORM\Query\Query;
52 $entities = new \Bitrix\Im\V2\Entity\File\FileCollection(
$files,
$message->getChatId());
54 $links = FileCollection::linkEntityToMessage($entities,
$message);
62 $saveResult = $links->save();
64 if ($links->count() === 0)
69 if (!$saveResult->isSuccess())
71 $result->addErrors($saveResult->getErrors());
74 if ($saveResult->isSuccess())
76 foreach ($links as $link)
79 ->setContext($this->context)
80 ->sendFull($link, self::ADD_FILE_EVENT, [
'CHAT_ID' => $link->getChatId()])
111 $deleteResult = $links->delete();
113 if (!$deleteResult->isSuccess())
115 return $result->addErrors($deleteResult->getErrors());
123 foreach ($links as $link)
126 ->setContext($this->context)
127 ->sendIdOnly($link, self::DELETE_FILE_EVENT, [
'CHAT_ID' => $link->getChatId()])
141 $folderModel = \CIMDisk::getFolderModel($chatId,
false);
142 if ($folderModel ===
false)
144 return new \Bitrix\Im\V2\Entity\File\FileCollection();
146 $relation = \CIMChat::GetRelationById($chatId, $this->getContext()->getUserId(),
true,
false);
148 ->where(
'PARENT_ID', $folderModel->getId())
149 ->where(
'STORAGE_ID', $folderModel->getStorageId())
150 ->where(
'ID',
'>', $relation[
'LAST_FILE_ID'])
158 $clearFileName = str_replace(
"%",
'',
$filename);
159 $filter->whereLike(
'NAME',
"$clearFileName%");
163 'with' => [
'CREATE_USER'],
165 'order' => [
'ID' =>
'DESC']
167 $securityContext =
new DiskSecurityContext($this->getContext()->getUserId());
168 $parameters = Driver::getInstance()->getRightsManager()->addRightsCheck($securityContext, $parameters, [
'ID',
'CREATED_BY']);
169 $diskFiles = File::getModelList($parameters);
171 return new \Bitrix\Im\V2\Entity\File\FileCollection($diskFiles, $chatId);
static getByDiskFileId(int $diskFileId)
static getByMessageIds(array $messageIds)
saveInternal(FileCollection $links)
deleteFilesByMessageIds(array $messageIds)
bool $isMigrationFinished
deleteFilesByDiskFileId(int $diskFileId)
deleteFiles(FileCollection $links)
getFilesBeforeMigrationFinished(int $chatId, int $limit, ?int $lastId=null, ?string $filename=null)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)