1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
UserGroupItemFactory.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Im\V2\Notification\Group\UserGroup;
4
5
use Bitrix\Im\Model\EO_NotifyGroup;
6
use Bitrix\Im\Model\NotifyGroupTable;
7
use Bitrix\Im\V2\Notification\Group\Condition\ConditionFactory;
8
use Bitrix\Im\V2\Notification\Group\GroupItem;
9
use Bitrix\Im\V2\Notification\Group\GroupItemCollection;
10
11
class
UserGroupItemFactory
12
{
13
private
const
MAX_ITEMS_LIMIT = 1000;
14
15
private
readonly
ConditionFactory
$conditionFactory;
16
17
public
function
__construct
()
18
{
19
$this->conditionFactory =
new
ConditionFactory
();
20
}
21
22
public
function
makeItemsForUser
(
int
$userId
):
GroupItemCollection
23
{
24
$groups
= NotifyGroupTable::query()
25
->where(NotifyGroupTable::FIELD_USER_ID,
$userId
)
26
->setSelect([
27
NotifyGroupTable::FIELD_ID,
28
NotifyGroupTable::FIELD_TITLE,
29
NotifyGroupTable::RELATION_CONDITIONS,
30
])
31
->setLimit(self::MAX_ITEMS_LIMIT)
32
->addOrder(NotifyGroupTable::FIELD_ID)
33
->fetchCollection()
34
;
35
36
$groupItems = array_map(
37
fn(
EO_NotifyGroup
$group):
GroupItem
=>
new
GroupItem
(
38
tag: (
string
)$group->getId(),
39
title
: (
string
)$group->getTitle(),
40
conditions: $this->conditionFactory->convertCollectionToConditionsDto($group->getConditions()),
41
isEditable:
true
42
),
43
$groups
->getAll(),
44
);
45
46
return
new
GroupItemCollection
(...$groupItems);
47
}
48
}
$userId
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения
check_mail.php:18
Bitrix\Im\Model\EO_NotifyGroup
Определения
orm.php:7571
Bitrix\Im\V2\Notification\Group\Condition\ConditionFactory
Определения
ConditionFactory.php:10
Bitrix\Im\V2\Notification\Group\GroupItemCollection
Определения
GroupItemCollection.php:6
Bitrix\Im\V2\Notification\Group\GroupItem
Определения
GroupItem.php:8
Bitrix\Im\V2\Notification\Group\UserGroup\UserGroupItemFactory
Определения
UserGroupItemFactory.php:12
Bitrix\Im\V2\Notification\Group\UserGroup\UserGroupItemFactory\__construct
__construct()
Определения
UserGroupItemFactory.php:17
Bitrix\Im\V2\Notification\Group\UserGroup\UserGroupItemFactory\makeItemsForUser
makeItemsForUser(int $userId)
Определения
UserGroupItemFactory.php:22
$groups
$groups
Определения
options.php:30
title
<? endif;?> window document title
Определения
prolog_main_admin.php:76
bitrix
modules
im
lib
V2
Notification
Group
UserGroup
UserGroupItemFactory.php
Создано системой
1.14.0