• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/chat.php
  • Класс: BitrixImChat
  • Вызов: Chat::getList
static function getList($params = array())
{
	$params = is_array($params)? $params: Array();

	if (!isset($params['CURRENT_USER']) && is_object($GLOBALS['USER']))
	{
		$params['CURRENT_USER'] = $GLOBALS['USER']->GetID();
	}

	$params['CURRENT_USER'] = intval($params['CURRENT_USER']);

	$params['SKIP_ACCESS_CHECK'] = $params['SKIP_ACCESS_CHECK'] === 'Y'? 'Y': 'N';

	$userId = $params['CURRENT_USER'];
	if ($userId <= 0)
	{
		return false;
	}

	$enableLimit = false;
	if (isset($params['OFFSET']))
	{
		$filterLimit = intval($params['LIMIT']);
		$filterLimit = $filterLimit <= 0? self::FILTER_LIMIT: $filterLimit;

		$filterOffset = intval($params['OFFSET']);

		$enableLimit = true;
	}
	else
	{
		$filterLimit = false;
		$filterOffset = false;
	}

	$ormParams = self::getListParams($params);
	if (!$ormParams)
	{
		return false;
	}
	if ($enableLimit)
	{
		$ormParams['offset'] = $filterOffset;
		$ormParams['limit'] = $filterLimit;
	}
	if (isset($params['ORDER']))
	{
		$ormParams['order'] = $params['ORDER'];
	}

	$orm = BitrixImModelChatTable::getList($ormParams);
	$chatsRaw = $orm->fetchAll();
	$chatsRaw = self::fillCounterData($chatsRaw);

	$chats = array();
	foreach ($chatsRaw as $chatRaw)
	{
		$chats[] = self::formatChatData($chatRaw);
	}

	if (isset($params['JSON']) && $params['JSON'])
	{
		$chats = self::toJson($chats);
	}

	return $chats;
}