1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
UpdateFields.php
См. документацию.
1<?php
2
4
7
9{
10 protected function __construct(
11 protected ?string $title,
12 protected ?string $description,
13 protected ?int $avatar,
14 protected ?int $ownerId,
15 protected ?string $type,
16 protected ?string $searchable,
17 protected ?string $manageUI,
18 protected ?string $manageUsersAdd,
19 protected ?string $manageUsersDelete,
20 protected ?string $manageMessages,
21 protected array $addedUsers,
22 protected ?bool $hideHistory,
23 protected array $deletedUsers,
24 protected array $addedDepartments,
25 protected array $deletedDepartments,
26 protected array $addedManagers,
27 protected array $deletedManagers,
28 protected ?string $manageMessagesAutoDelete,
29 ){}
30
31 public static function create(array $fields): self
32 {
33 [$addedUsers, $addedDepartments] = Structure::splitEntities($fields['ADDED_MEMBER_ENTITIES'] ?? []);
34 [$deletedUsers, $deletedDepartments] = Structure::splitEntities($fields['DELETED_MEMBER_ENTITIES'] ?? []);
35
36 return new self(
37 $fields['TITLE'] ?? null,
38 $fields['DESCRIPTION'] ?? null,
39 self::prepareAvatar($fields['AVATAR'] ?? null),
40 isset($fields['OWNER_ID']) ? (int)$fields['OWNER_ID'] : null,
41 $fields['TYPE'] ?? null,
42 $fields['SEARCHABLE'] ?? null,
43 $fields['MANAGE_UI'] ?? null,
44 $fields['MANAGE_USERS_ADD'] ?? null,
45 $fields['MANAGE_USERS_DELETE'] ?? null,
46 $fields['MANAGE_MESSAGES'] ?? null,
47 $addedUsers ?? [],
48 self::prepareBool($fields['HIDE_HISTORY'] ?? null),
49 $deletedUsers ?? [],
50 $addedDepartments ?? [],
51 $deletedDepartments ?? [],
52 self::prepareArrayField($fields['ADDED_MANAGERS'] ?? []),
53 self::prepareArrayField($fields['DELETED_MANAGERS'] ?? []),
54 $fields['MANAGE_MESSAGES_AUTO_DELETE'] ?? null,
55 );
56 }
57
58 public function getType(): ?string
59 {
60 return $this->type;
61 }
62
63 public function getSearchable(): ?string
64 {
65 return $this->searchable;
66 }
67
68 public function getAddedUsers(): array
69 {
70 return $this->addedUsers;
71 }
72
73 public function getDeletedUsers(): array
74 {
75 return $this->deletedUsers;
76 }
77
78 public function shouldHideHistory(): ?bool
79 {
80 return $this->hideHistory;
81 }
82
83 public function getDeletedDepartments(): array
84 {
85 return $this->deletedDepartments;
86 }
87
88 public function getAddedDepartments(): array
89 {
90 return $this->addedDepartments;
91 }
92
93 public function getAddedManagers(): array
94 {
95 return $this->addedManagers;
96 }
97
98 public function getDeletedManagers(): array
99 {
100 return $this->deletedManagers;
101 }
102
103 public function getOwnerId(): ?int
104 {
105 return $this->ownerId;
106 }
107
108 public function getAvatar(): ?int
109 {
110 return $this->avatar;
111 }
112
113 protected static function prepareArrayField(array $array): array
114 {
115 $result = [];
116 foreach ($array as $item)
117 {
118 if (is_numeric($item) && (int)$item > 0)
119 {
120 $result[] = (int)$item;
121 }
122 }
123
124 return $result;
125 }
126
127 protected static function prepareAvatar(mixed $avatar): ?int
128 {
129 if (!isset($avatar))
130 {
131 return null;
132 }
133 if (is_numeric($avatar))
134 {
135 return (int)$avatar;
136 }
137
138 return (ChatAvatar::saveAvatarByString((string)$avatar));
139 }
140
141 protected static function prepareBool(?string $value, ?bool $default = null): ?bool
142 {
143 if ($value === 'Y')
144 {
145 return true;
146 }
147
148 if ($value === 'N')
149 {
150 return false;
151 }
152
153 return $default;
154 }
155
156 public function getArrayToSave(): array
157 {
158 $array = [
159 'TITLE' => $this->title,
160 'DESCRIPTION' => $this->description,
161 'AUTHOR_ID' => $this->ownerId,
162 'MANAGE_UI' => $this->manageUI,
163 'MANAGE_USERS_ADD' => $this->manageUsersAdd,
164 'MANAGE_USERS_DELETE' => $this->manageUsersDelete,
165 'MANAGE_MESSAGES' => $this->manageMessages,
166 'MANAGE_MESSAGES_AUTO_DELETE' => $this->manageMessagesAutoDelete,
167 ];
168 return array_filter($array, function ($value) {
169 return $value !== null;
170 });
171 }
172}
$type
Определения options.php:106
static prepareArrayField(array $array)
Определения UpdateFields.php:113
__construct(protected ?string $title, protected ?string $description, protected ?int $avatar, protected ?int $ownerId, protected ?string $type, protected ?string $searchable, protected ?string $manageUI, protected ?string $manageUsersAdd, protected ?string $manageUsersDelete, protected ?string $manageMessages, protected array $addedUsers, protected ?bool $hideHistory, protected array $deletedUsers, protected array $addedDepartments, protected array $deletedDepartments, protected array $addedManagers, protected array $deletedManagers, protected ?string $manageMessagesAutoDelete,)
Определения UpdateFields.php:10
static prepareAvatar(mixed $avatar)
Определения UpdateFields.php:127
static create(array $fields)
Определения UpdateFields.php:31
static prepareBool(?string $value, ?bool $default=null)
Определения UpdateFields.php:141
static saveAvatarByString(string $avatarBase64)
Определения ChatAvatar.php:143
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
if(Loader::includeModule( 'bitrix24')) elseif(Loader::includeModule('intranet') &&CIntranetUtils::getPortalZone() !=='ru') $description
Определения .description.php:24
$title
Определения pdf.php:123
$fields
Определения yandex_run.php:501