1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
File.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Im\V2\Controller\Disk
;
4
5
use
Bitrix\Im\V2\Controller\BaseController
;
6
use
Bitrix\Im\V2\Controller\Filter\CheckDiskFileAccess
;
7
use
Bitrix\Im\V2\Entity\File\FileCollection
;
8
use
Bitrix\Im\V2\Entity\File\FileError
;
9
use
Bitrix\Im\V2\Entity\User\UserError
;
10
use
Bitrix\Main\Engine\AutoWire\ExactParameter
;
11
use
Bitrix\Main\Engine\CurrentUser
;
12
use
Bitrix\Main\Loader
;
13
14
class
File
extends
BaseController
15
{
16
public
function
configureActions
():
array
17
{
18
return
[
19
'save'
=> [
20
'+prefilters'
=> [
21
new
CheckDiskFileAccess
(),
22
]
23
]
24
];
25
}
26
27
public
function
getPrimaryAutoWiredParameter
()
28
{
29
return
new
ExactParameter
(
30
FileCollection::class,
31
'files'
,
32
function
($className,
array
$ids) {
33
return
$this->
getFilesByIds
($ids);
34
}
35
);
36
}
37
38
public
function
saveAction
(
FileCollection
$files
,
CurrentUser
$currentUser): ?
array
39
{
40
$userId
= $currentUser->
getId
();
41
if
(!isset(
$userId
))
42
{
43
$this->addError(
new
UserError
(UserError::NOT_FOUND));
44
return
null
;
45
}
46
47
if
(!Loader::includeModule(
'disk'
))
48
{
49
$this->addError(
new
FileError
(
FileError::DISK_NOT_INSTALLED
));
50
return
null
;
51
}
52
53
$result
=
$files
->copyToOwnSavedFiles();
54
if
(!
$result
->hasResult())
55
{
56
$this->addErrors(
$result
->getErrors());
57
return
null
;
58
}
59
60
return
[
'result'
=>
true
];
61
}
62
63
protected
function
getFilesByIds
(
array
$ids):
FileCollection
64
{
65
$result
= [];
66
67
foreach
($ids as $id)
68
{
69
if
(is_numeric($id) && (
int
)$id > 0)
70
{
71
$id = (int)$id;
72
$result
[$id] = $id;
73
}
74
}
75
76
return
FileCollection::initByDiskFilesIds
(array_values(
$result
));
77
}
78
}
$userId
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения
check_mail.php:18
Bitrix\Im\V2\Controller\BaseController
Определения
BaseController.php:30
Bitrix\Im\V2\Controller\Disk\File
Определения
File.php:15
Bitrix\Im\V2\Controller\Disk\File\getPrimaryAutoWiredParameter
getPrimaryAutoWiredParameter()
Определения
File.php:27
Bitrix\Im\V2\Controller\Disk\File\saveAction
saveAction(FileCollection $files, CurrentUser $currentUser)
Определения
File.php:38
Bitrix\Im\V2\Controller\Disk\File\configureActions
configureActions()
Определения
File.php:16
Bitrix\Im\V2\Controller\Disk\File\getFilesByIds
getFilesByIds(array $ids)
Определения
File.php:63
Bitrix\Im\V2\Controller\Filter\CheckDiskFileAccess
Определения
CheckDiskFileAccess.php:12
Bitrix\Im\V2\Entity\File\FileCollection
Определения
FileCollection.php:27
Bitrix\Im\V2\Entity\File\FileCollection\initByDiskFilesIds
static initByDiskFilesIds(array $diskFilesIds, ?int $chatId=null)
Определения
FileCollection.php:57
Bitrix\Im\V2\Entity\File\FileError
Определения
FileError.php:9
Bitrix\Im\V2\Entity\File\FileError\DISK_NOT_INSTALLED
const DISK_NOT_INSTALLED
Определения
FileError.php:10
Bitrix\Im\V2\Entity\User\UserError
Определения
UserError.php:9
Bitrix\Main\Engine\AutoWire\ExactParameter
Определения
exactparameter.php:9
Bitrix\Main\Engine\CurrentUser
Определения
currentuser.php:8
Bitrix\Main\Engine\CurrentUser\getId
getId()
Определения
currentuser.php:49
Bitrix\Main\Loader
Определения
loader.php:13
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$result
$result
Определения
get_property_values.php:14
Bitrix\Im\V2\Controller\Disk
Определения
File.php:3
Bitrix\Main\$files
$files
Определения
mysql_to_pgsql.php:30
bitrix
modules
im
lib
V2
Controller
Disk
File.php
Создано системой
1.14.0