1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
convertereventhandler.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
6
11use Bitrix\Socialnetwork\Item\Workgroup\Type;
12
14{
15 private const LOG_MARKER = 'DEBUG_CALENDAR_SOCNET_CONVERTER';
16
17 private static ?Logger $logger = null;
18
22 public static function onConvert(mixed $event): void
23 {
24 if (!Loader::includeModule('socialnetwork'))
25 {
26 return;
27 }
28
29 try
30 {
31 $entityBefore = $event->getEntityBefore();
32 $entityAfter = $event->getEntityAfter();
33
34 if ($entityAfter->getType() === $entityBefore->getType() || is_null($entityAfter->getType()))
35 {
36 return;
37 }
38
39 $eventType = self::getEventTypeByGroupType($entityAfter->getType());
40
41 self::bindAgent($entityAfter->getId(), $eventType);
42 }
43 catch (\Throwable $e)
44 {
45 self::getLogger()->log($e);
46 }
47 }
48
49 private static function getEventTypeByGroupType(Type $type): string
50 {
51 return match($type) {
52 Type::Collab => Dictionary::EVENT_TYPE['collab'],
53 default => '',
54 };
55 }
56
57 private static function bindAgent(int $groupId, string $eventType): void
58 {
59 \CAgent::AddAgent(
60 UpdateEventTypeAgent::makeAgentName($groupId, $eventType),
61 'calendar',
62 'N',
63 5,
64 );
65 }
66
67 private static function getLogger(): Logger
68 {
69 self::$logger ??= new Logger(self::LOG_MARKER);
70
71 return self::$logger;
72 }
73}
$type
Определения options.php:106
static makeAgentName(int $groupId, string $newEventType, int $lastId=0)
Определения updateeventtypeagent.php:71
Определения loader.php:13
Определения collection.php:2
$event
Определения prolog_after.php:141