• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/MessageCollection.php
  • Класс: BitrixImV2MessageCollection
  • Вызов: MessageCollection::find
static function find(array $filter, array $order, ?int $limit = null, ?Context $context = null, array $select = []): self
{
	$context = $context ?? Locator::getContext();

	$query = MessageTable::query();
	$query->setSelect(['ID']);

	if (isset($limit))
	{
		$query->setLimit($limit);
	}

	$messageOrder = ['ID' => 'DESC'];

	if (isset($order['ID']))
	{
		$messageOrder['ID'] = $order['ID'];
	}

	$query->setOrder($messageOrder);

	static::processFilters($query, $filter, $messageOrder);
	$messageIds = $query->fetchCollection()->getIdList();

	if (empty($messageIds))
	{
		return new static();
	}

	if (empty($select))
	{
		return new static($messageIds);
	}

	return new static(MessageTable::query()->whereIn('ID', $messageIds)->setSelect($select)->fetchCollection());
}