• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/ui/entityselector/userprovider.php
  • Класс: BitrixSocialnetworkIntegrationUIEntitySelectorUserProvider
  • Вызов: UserProvider::doSearch
public function doSearch(SearchQuery $searchQuery, Dialog $dialog): void
{
	$atom = '=_0-9a-z+~'!$&*^`|\#%/?{}-';
	$isEmailLike = (bool)preg_match('#^['.$atom.']+(\.['.$atom.']+)*@#i', $searchQuery->getQuery());
	$limit = 100;

	if ($isEmailLike)
	{
		$items = $this->getUserItems([
			'searchByEmail' => $searchQuery->getQuery(),
			'myEmailUsers' => false,
			'limit' => $limit
		]);
	}
	else
	{
		$items = $this->getUserItems([
			'searchQuery' => $searchQuery->getQuery(),
			'limit' => $limit
		]);
	}

	$limitExceeded = $limit <= count($items);
	if ($limitExceeded)
	{
		$searchQuery->setCacheable(false);
	}

	$dialog->addItems($items);
}