3namespace Bitrix\Im\V2\Entity\File;
8use Bitrix\Disk\Internals\FileTable;
9use Bitrix\Im\Model\EO_FileTemporary;
10use Bitrix\Im\Model\EO_FileTemporary_Collection;
11use Bitrix\Im\V2\Entity\EntityCollection;
12use Bitrix\Im\V2\Entity\User\UserPopupItem;
13use Bitrix\Im\V2\Registry;
14use Bitrix\Im\V2\Rest\PopupData;
15use Bitrix\Im\V2\Result;
16use Bitrix\Im\V2\TariffLimit\DateFilterable;
17use Bitrix\Im\V2\TariffLimit\FilterResult;
18use Bitrix\Main\Loader;
19use Bitrix\Main\ORM\Query\Query;
20use Bitrix\Main\Type\DateTime;
36 parent::__construct();
38 if ($diskFiles !==
null)
40 foreach ($diskFiles as $diskFile)
42 $this[] =
new FileItem($diskFile, $chatId);
59 if (empty($diskFilesIds) || !Loader::includeModule(
'disk'))
67 if (!empty($filesToLoad))
69 $diskFiles = File::getModelList([
70 'filter' => Query::filter()->whereIn(
'ID', $filesToLoad)->where(
'TYPE', FileTable::TYPE),
71 'with' => [
'PREVIEW'],
82 foreach ($this as $file)
84 $diskFile = $file->getDiskFile();
87 $diskFiles[$diskFile->getId()] = $diskFile;
98 foreach ($this as $file)
100 $messageOut = $file->getMessageOut();
117 $copies =
new static();
119 foreach ($this as $fileEntity)
121 $copy = $fileEntity->copyTo($folder)->getResult();
128 if ($copies->count() > 0)
145 $result = $this->getOwnStorageFolderByType(FolderType::SavedFiles);
176 $userId = $this->getContext()->getUserId();
183 $folder =
$storage->getSpecificFolderByCode($folderType->value);
189 return $result->setResult($folder);
196 foreach ($this as $file)
198 $tmpEntity =
new EO_FileTemporary([
'DISK_FILE_ID' => $file->getId(),
'SOURCE' => $source]);
199 $tmpCollection->add($tmpEntity);
202 $addResult = $tmpCollection->save(
true);
204 if (!$addResult->isSuccess())
206 return (
new Result())->addErrors($addResult->getErrors());
215 foreach ($this as $file)
229 foreach ($diskFiles as $diskFile)
231 if ($diskFile instanceof
File)
233 static::$preloadDiskFiles[$diskFile->getId()] = $diskFile;
243 foreach ($diskFileIds as $diskFileId)
245 if (isset(self::$preloadDiskFiles[$diskFileId]))
251 $filesToLoad[] = $diskFileId;
262 return parent::getPopupData($excludedList)->merge(
$data);
267 $filtered = $this->
filter(
271 return (
new FilterResult())->setResult($filtered)->setFiltered($this->
count() !== $filtered->count());
276 return $this->
getAny()?->getChatId();
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static getRestEntityName()
static getPreloadDiskFile(array $diskFileIds)
getFileDiskAttributes(int $chatId, array $options=[])
static addDiskFilesToPreload(array $diskFiles)
getPopupData(array $excludedList=[])
static array $preloadDiskFiles
__construct(?array $diskFiles=null, ?int $chatId=null)
filterByDate(DateTime $date)
static initByDiskFilesIds(array $diskFilesIds, ?int $chatId=null)
filter(callable $predicate)
static GetFileParams($chatId, $fileModel, $options=[])
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(empty($decryptedData)) $storage
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"