1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
CategoryMuteService.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\OpenEvents\Service;
4
5use Bitrix\Calendar\Core\Common;
6use Bitrix\Calendar\EventCategory\Event\AfterEventCategoryUpdate;
7use Bitrix\Calendar\OpenEvents\Internals\OpenEventCategoryMutedTable;
8
10{
11 private static ?self $instance;
12
13 public static function getInstance(): self
14 {
15 self::$instance ??= new self();
16
17 return self::$instance;
18 }
19
20 public function setMutedByDefault(int $categoryId): void
21 {
22 OpenEventCategoryMutedTable::insertIgnore([
23 'USER_ID' => Common::SYSTEM_USER_ID,
24 'CATEGORY_ID' => $categoryId,
25 ]);
26 }
27
28 public function setMute(int $userId, int $categoryId, bool $isMuted): void
29 {
30 $mutedByDefaultQuery = OpenEventCategoryMutedTable::query()
31 ->setSelect(['USER_ID', 'CATEGORY_ID'])
32 ->where('USER_ID', Common::SYSTEM_USER_ID)
33 ->where('CATEGORY_ID', $categoryId)
34 ;
35
36 $isMutedByDefault = $mutedByDefaultQuery->fetchObject() !== null;
37
38 if (
39 !$isMutedByDefault && $isMuted
40 || $isMutedByDefault && !$isMuted
41 )
42 {
43 OpenEventCategoryMutedTable::insertIgnore([
44 'USER_ID' => $userId,
45 'CATEGORY_ID' => $categoryId,
46 ]);
47 }
48 else
49 {
50 OpenEventCategoryMutedTable::deleteByFilter([
51 'USER_ID' => $userId,
52 'CATEGORY_ID' => $categoryId,
53 ]);
54 }
55
57 $categoryId,
58 ['isMuted' => $isMuted],
59 $userId,
60 ))->emit();
61 }
62}
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
setMute(int $userId, int $categoryId, bool $isMuted)
Определения CategoryMuteService.php:28