1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
RecentChannel.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Im\V2\Recent;
4
5
use Bitrix\Im\Model\ChatTable;
6
use Bitrix\Im\Model\EO_Chat_Collection;
7
use Bitrix\Im\V2\Chat;
8
9
class
RecentChannel
extends
Recent
10
{
11
public
static
function
getOpenChannels
(
int
$limit, ?
int
$lastMessageId =
null
): self
12
{
13
$recent =
new
static
();
14
$chatEntities = static::getOrmEntities($limit, $lastMessageId);
15
16
foreach
($chatEntities as
$entity
)
17
{
18
$recentItem =
new
RecentItem
();
19
$recentItem
20
->setMessageId(
$entity
->getLastMessageId())
21
->setChatId(
$entity
->getId())
22
->setDialogId(
'chat'
.
$entity
->getId())
23
;
24
$recent[] = $recentItem;
25
}
26
27
return
$recent;
28
}
29
30
protected
static
function
getOrmEntities
(
int
$limit, ?
int
$lastMessageId =
null
):
EO_Chat_Collection
31
{
32
$query
= ChatTable::query()
33
->setSelect([
'ID'
,
'LAST_MESSAGE_ID'
])
34
->where(
'TYPE'
, Chat::IM_TYPE_OPEN_CHANNEL)
35
->setLimit($limit)
36
->setOrder([
'LAST_MESSAGE_ID'
=>
'DESC'
])
37
;
38
39
if
(isset($lastMessageId))
40
{
41
$query
->where(
'LAST_MESSAGE_ID'
,
'<'
, $lastMessageId);
42
}
43
44
return
$query
->fetchCollection();
45
}
46
}
Bitrix\Im\Model\EO_Chat_Collection
Определения
orm.php:9398
Bitrix\Im\V2\Recent\RecentChannel
Определения
RecentChannel.php:10
Bitrix\Im\V2\Recent\RecentChannel\getOpenChannels
static getOpenChannels(int $limit, ?int $lastMessageId=null)
Определения
RecentChannel.php:11
Bitrix\Im\V2\Recent\RecentChannel\getOrmEntities
static getOrmEntities(int $limit, ?int $lastMessageId=null)
Определения
RecentChannel.php:30
Bitrix\Im\V2\Recent\RecentItem
Определения
RecentItem.php:11
$query
$query
Определения
get_search.php:11
$entity
$entity
Определения
group_bizproc_workflow_delete.php:17
Bitrix\Im\V2\Sync\Recent
Определения
RecentSync.php:3
bitrix
modules
im
lib
V2
Recent
RecentChannel.php
Создано системой
1.14.0