1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
socnetgroup.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\Watcher\Membership\Handler;
4
5use Bitrix\Socialnetwork\WorkgroupTable;
6use Bitrix\Main\Loader;
7
8class SocNetGroup extends Handler
9{
10 private static array $groups = [];
11
19 public static function onSocNetUserToGroupAdd(int $id, array $arFields): void
20 {
21 if (
22 empty($arFields['ROLE'])
23 || empty($arFields['GROUP_ID'])
24 || !Loader::includeModule("socialnetwork")
25 || self::isInvitee($arFields['ROLE'])
26 )
27 {
28 return;
29 }
30
31 self::sendMessageToQueue(self::WORK_GROUP_TYPE, $arFields['GROUP_ID']);
32 }
33
45 public static function onSocNetUserToGroupUpdate(int $id, array $arFields, array $oldUser2GroupArFields): void
46 {
47 if (
48 empty($oldUser2GroupArFields['GROUP_ID'])
49 || empty($oldUser2GroupArFields['ROLE'])
50 ||!Loader::includeModule("socialnetwork")
51 )
52 {
53 return;
54 }
55 $groupId = $oldUser2GroupArFields['GROUP_ID'];
56 $group = self::getGroup($groupId);
57
58 if (empty($group['ID']) || !isset($group['PROJECT']))
59 {
60 return;
61 }
62
63 if(!self::isInvitee($oldUser2GroupArFields['ROLE']) && !self::isScrum($group['PROJECT']))
64 {
65 return;
66 }
67
68 self::sendMessageToQueue(self::WORK_GROUP_TYPE, $group['ID']);
69 }
70
77 private static function getGroup(int $groupId): mixed
78 {
79 if (isset(self::$groups[$groupId]))
80 {
81 return self::$groups[$groupId];
82 }
83
84 self::$groups[$groupId] = WorkgroupTable::query()
85 ->setSelect(['ID', 'PROJECT'])
86 ->where('ID', $groupId)
87 ->exec()->fetch()
88 ;
89
90 return self::$groups[$groupId];
91 }
92
100 public static function onSocNetUserToGroupDelete(int $id, array $arFields): void
101 {
102 if (
103 empty($arFields['ROLE'])
104 || empty($arFields['GROUP_ID'])
105 ||!Loader::includeModule("socialnetwork")
106 || self::isInvitee($arFields['ROLE'])
107 )
108 {
109 return;
110 }
111
112 self::sendMessageToQueue(self::WORK_GROUP_TYPE, $arFields['GROUP_ID']);
113 }
114
122 public static function onSocNetGroupUpdate(int $id, array $arFields): void
123 {
124 if (!isset($arFields['SCRUM_MASTER_ID']) || !Loader::includeModule("socialnetwork"))
125 {
126 return;
127 }
128
129 self::sendMessageToQueue(self::WORK_GROUP_TYPE, $id);
130 }
131
136 private static function isInvitee(string $role): bool
137 {
139 }
140
145 private static function isScrum(string $projectField): bool
146 {
147 return $projectField === 'Y';
148 }
149}
static sendMessageToQueue(string $entityType, $entityId=null)
Определения handler.php:42
static onSocNetUserToGroupUpdate(int $id, array $arFields, array $oldUser2GroupArFields)
Определения socnetgroup.php:45
static onSocNetUserToGroupDelete(int $id, array $arFields)
Определения socnetgroup.php:100
static onSocNetGroupUpdate(int $id, array $arFields)
Определения socnetgroup.php:122
static onSocNetUserToGroupAdd(int $id, array $arFields)
Определения socnetgroup.php:19
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804