- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/widget/dialog.php
- Класс: BitrixImopenlinesWidgetDialog
- Вызов: Dialog::getList
static function getList($userId, $params)
{
$userId = (int)$userId;
$configId = (int)$params['CONFIG_ID'];
self::clearError();
if (!BitrixMainLoader::includeModule('im'))
{
self::setError(__METHOD__, 'IM_NOT_FOUND', Loc::getMessage('IMOL_WIDGET_CONFIG_IM_NOT_FOUND'));
return false;
}
$config = BitrixImopenlinesModelConfigTable::getById($configId)->fetch();
if (!$config)
{
self::setError(__METHOD__, 'CONFIG_ERROR', Loc::getMessage('IMOL_WIDGET_CHAT_ERROR_CONFIG_NOT_FOUND'));
return false;
}
$chatRes = BitrixImModelChatTable::getList([
'select' => ['ID', 'ENTITY_DATA_1', 'LAST_MESSAGE_ID'],
'filter' => [
'=ENTITY_TYPE' => 'LIVECHAT',
'=ENTITY_ID' => $configId . '|' . $userId
],
'order' => ['LAST_MESSAGE_ID' => 'DESC'],
'limit' => $params['LIMIT'] ? (int)$params['LIMIT'] : 25,
'offset' => $params['OFFSET'] ? (int)$params['OFFSET'] : 0,
]);
$dialogues = [];
while ($chat = $chatRes->fetch())
{
$sessionId = explode('|', $chat['ENTITY_DATA_1'])[3];
$dialogues[] = [
'CHAT_ID' => (int)$chat['ID'],
'DIALOG_ID' => 'chat' . $chat['ID'],
'SESSION_ID' => (int)$sessionId,
];
}
return $dialogues;
}