1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
CollabRegistry.php
См. документацию.
1
<?php
2
3
declare(strict_types=1);
4
5
namespace
Bitrix\Socialnetwork\Collab\Registry
;
6
7
use
Bitrix\Socialnetwork\Collab\Collab
;
8
use
Bitrix\Socialnetwork\Collab\Provider\CollabOptionProvider
;
9
use
Bitrix\Socialnetwork\Internals\Registry\GroupRegistry
;
10
use
Bitrix\Socialnetwork\Item\Workgroup
;
11
use
Bitrix\Socialnetwork\Provider\FeatureProvider
;
12
13
class
CollabRegistry
extends
GroupRegistry
14
{
15
private
static
?
self
$instance =
null
;
16
17
public
static
function
getInstance
(): static
18
{
19
if
(static::$instance ===
null
)
20
{
21
static::$instance =
new
static
();
22
}
23
24
return
static::$instance;
25
}
26
27
public
function
get
(
int
$groupId): ?
Collab
28
{
29
$group = parent::get($groupId);
30
if
($group instanceof
Collab
)
31
{
32
return
$group;
33
}
34
35
return
null
;
36
}
37
38
protected
function
loadData
(
int
$groupId):
array
39
{
40
$fields
= parent::loadData($groupId);
41
42
if
(empty(
$fields
))
43
{
44
return
$fields
;
45
}
46
47
$this->
loadAdditionalData
(
$fields
);
48
49
return
$fields
;
50
}
51
52
protected
function
onObjectAlreadyLoaded
(?
Workgroup
$group): void
53
{
54
if
(!$group instanceof
Collab
)
55
{
56
return
;
57
}
58
59
$fields
= $group->getFields();
60
61
$this->
loadAdditionalData
(
$fields
);
62
63
$group->setFields(
$fields
);
64
}
65
66
protected
function
loadAdditionalData
(
array
&
$fields
): void
67
{
68
if
(!array_key_exists(
'OPTIONS'
,
$fields
))
69
{
70
$this->fillOptions(
$fields
);
71
}
72
73
if
(!array_key_exists(
'PERMISSIONS'
,
$fields
))
74
{
75
$this->fillPermissions(
$fields
);
76
}
77
}
78
79
private
function
fillOptions(
array
&
$fields
): void
80
{
81
$options
= CollabOptionProvider::getInstance()->get((
int
)
$fields
[
'ID'
]);
82
if
(!empty(
$options
))
83
{
84
$fields
[
'OPTIONS'
] =
$options
;
85
}
86
}
87
88
private
function
fillPermissions(
array
&
$fields
): void
89
{
90
$permissions = FeatureProvider::getInstance()->getPermissions((
int
)
$fields
[
'ID'
]);
91
if
(!empty($permissions))
92
{
93
$fields
[
'PERMISSIONS'
] = $permissions;
94
}
95
}
96
}
Bitrix\Socialnetwork\Collab\Collab
Определения
Collab.php:16
Bitrix\Socialnetwork\Collab\Provider\CollabOptionProvider
Определения
CollabOptionProvider.php:12
Bitrix\Socialnetwork\Collab\Registry\CollabRegistry
Определения
CollabRegistry.php:14
Bitrix\Socialnetwork\Collab\Registry\CollabRegistry\loadAdditionalData
loadAdditionalData(array &$fields)
Определения
CollabRegistry.php:66
Bitrix\Socialnetwork\Collab\Registry\CollabRegistry\loadData
loadData(int $groupId)
Определения
CollabRegistry.php:38
Bitrix\Socialnetwork\Collab\Registry\CollabRegistry\getInstance
static getInstance()
Определения
CollabRegistry.php:17
Bitrix\Socialnetwork\Collab\Registry\CollabRegistry\onObjectAlreadyLoaded
onObjectAlreadyLoaded(?Workgroup $group)
Определения
CollabRegistry.php:52
Bitrix\Socialnetwork\Internals\Registry\GroupRegistry
Определения
groupregistry.php:24
Bitrix\Socialnetwork\Provider\FeatureProvider
Определения
FeatureProvider.php:17
$options
$options
Определения
commerceml2.php:49
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
Bitrix\Socialnetwork\Collab\Registry
Определения
CollabRegistry.php:5
Bitrix\Socialnetwork\Helper\Workgroup
Определения
access.php:9
Bitrix\Socialnetwork\Item\Workgroup
Определения
accessmanager.php:9
$fields
$fields
Определения
yandex_run.php:501
bitrix
modules
socialnetwork
lib
Collab
Registry
CollabRegistry.php
Создано системой
1.14.0