1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
entitymanager.php
См. документацию.
1<?php
2
3namespace Bitrix\Socialnetwork\Component\WorkgroupList;
4
5use Bitrix\Socialnetwork\EO_UserToGroup;
6use Bitrix\Socialnetwork\EO_Workgroup;
7use Bitrix\Socialnetwork\EO_WorkgroupFavorites;
8use Bitrix\Socialnetwork\EO_WorkgroupPin;
9use Bitrix\Socialnetwork\EO_WorkgroupView;
10
12{
13 private string $queryInitAlias = '';
14
15 public function __construct(array $params = [])
16 {
17 $this->queryInitAlias = (string)($params['queryInitAlias'] ?? 'SOCIALNETWORK_WORKGROUP');
18 }
19
20 public function wakeUpWorkgroupEntityObject(array $groupFields = []): ?EO_Workgroup
21 {
22 $whiteList = [
23 'ID',
24 'ACTIVE',
25 'NAME',
26 'DESCRIPTION',
27 'KEYWORDS',
28 'CLOSED',
29 'VISIBLE',
30 'OPENED',
31 'DATE_CREATE',
32 'DATE_UPDATE',
33 'DATE_ACTIVITY',
34 'IMAGE_ID',
35 'AVATAR_TYPE',
36 'OWNER_ID',
37 'INITIATE_PERMS',
38 'NUMBER_OF_MEMBERS',
39 'NUMBER_OF_MODERATORS',
40 'PROJECT',
41 'PROJECT_DATE_START',
42 'PROJECT_DATE_FINISH',
43 'SEARCH_INDEX',
44 'LANDING',
45 'SCRUM_OWNER_ID',
46 'SCRUM_MASTER_ID',
47 'SCRUM_SPRINT_DURATION',
48 'SCRUM_TASK_RESPONSIBLE',
49 'TYPE',
50 ];
51 $entityFields = $this->getEntityFields($groupFields, $whiteList);
52
53 return (!empty($entityFields['ID']) ? EO_Workgroup::wakeUp($entityFields) : null);
54 }
55
56 public function wakeUpContextRelationEntityObject(array $groupFields = []): ?EO_UserToGroup
57 {
58 $whiteList = [
59 'ID',
60 'USER_ID',
61 'GROUP_ID',
62 'ROLE',
63 'INITIATED_BY_TYPE',
64 'INITIATED_BY_USER_ID',
65 'DATE_UPDATE',
66 'AUTO_MEMBER',
67 ];
68 $entityFields = $this->getEntityFields($groupFields, $whiteList, $this->queryInitAlias . '_CONTEXT_RELATION_');
69
70 return (!empty($entityFields['ID']) ? EO_UserToGroup::wakeUp($entityFields) : null);
71 }
72
73 public function wakeUpCurrentRelationEntityObject(array $groupFields = []): ?EO_UserToGroup
74 {
75 $whiteList = [
76 'ID',
77 'USER_ID',
78 'GROUP_ID',
79 'ROLE',
80 'INITIATED_BY_TYPE',
81 'INITIATED_BY_USER_ID',
82 'AUTO_MEMBER',
83 ];
84 $entityFields = $this->getEntityFields($groupFields, $whiteList, $this->queryInitAlias . '_CURRENT_RELATION_');
85
86 return (!empty($entityFields['ID']) ? EO_UserToGroup::wakeUp($entityFields) : null);
87 }
88
89 public function wakeUpFavoritesEntityObject(array $groupFields = []): ?EO_WorkgroupFavorites
90 {
91 $whiteList = [
92 'USER_ID',
93 'GROUP_ID',
94 'DATE_ADD',
95 ];
96 $entityFields = $this->getEntityFields($groupFields, $whiteList, $this->queryInitAlias . '_FAVORITES_');
97
98 return (
99 !empty($entityFields['USER_ID'])
100 && !empty($entityFields['GROUP_ID'])
101 ? EO_WorkgroupFavorites::wakeUp($entityFields)
102 : null
103 );
104 }
105
106 public function wakeUpPinEntityObject(array $groupFields = []): ?EO_WorkgroupPin
107 {
108 $whiteList = [
109 'ID',
110 'USER_ID',
111 'GROUP_ID',
112 ];
113 $entityFields = $this->getEntityFields($groupFields, $whiteList, $this->queryInitAlias . '_PIN_');
114
115 return (!empty($entityFields['ID']) ? EO_WorkgroupPin::wakeUp($entityFields) : null);
116 }
117
118 public function wakeUpViewEntityObject(array $groupFields = []): ?EO_WorkgroupView
119 {
120 $whiteList = [
121 'USER_ID',
122 'GROUP_ID',
123 'DATE_VIEW',
124 ];
125 $entityFields = $this->getEntityFields($groupFields, $whiteList, $this->queryInitAlias . '_VIEW_');
126
127 return (
128 !empty($entityFields['USER_ID'])
129 && !empty($entityFields['GROUP_ID'])
130 ? EO_WorkgroupView::wakeUp($entityFields)
131 : null
132 );
133 }
134
135 protected function getEntityFields($groupFields, array $whiteList = [], string $entityAlias = ''): array
136 {
137 $entityFields = [];
138
139 $map = [];
140 array_walk($whiteList, static function($fieldName) use ($entityAlias, &$map) {
141 $map[$entityAlias . $fieldName] = $fieldName;
142 });
143
144 $groupFields = array_filter($groupFields, static function ($key) use ($map) {
145 return (array_key_exists($key, $map));
146 }, ARRAY_FILTER_USE_KEY);
147
148 foreach ($groupFields as $key => $value)
149 {
150 $entityFields[$map[$key]] = $value;
151 }
152
153 return $entityFields;
154 }
155}
wakeUpWorkgroupEntityObject(array $groupFields=[])
Определения entitymanager.php:20
wakeUpCurrentRelationEntityObject(array $groupFields=[])
Определения entitymanager.php:73
getEntityFields($groupFields, array $whiteList=[], string $entityAlias='')
Определения entitymanager.php:135
wakeUpViewEntityObject(array $groupFields=[])
Определения entitymanager.php:118
wakeUpFavoritesEntityObject(array $groupFields=[])
Определения entitymanager.php:89
wakeUpContextRelationEntityObject(array $groupFields=[])
Определения entitymanager.php:56
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$map
Определения config.php:5
if(empty($signedUserToken)) $key
Определения quickway.php:257
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799