• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/ui/entityselector/fireduserprovider.php
  • Класс: BitrixSocialnetworkIntegrationUIEntitySelectorFiredUserProvider
  • Вызов: FiredUserProvider::getQuery
static function getQuery(array $options = []): Query
{
	$query = parent::getQuery($options);

	self::sendOnFiredUserProviderQueryEvent($options);

	if (
		!empty($options['referenceClass'])
		&& class_exists($options['referenceClass'])
		&& !empty($options['fieldName'])
	)
	{
		/*
		 * If a referenceClass is not null,
		 * then we reduce the list of fired users only have reference in the referenceClass entity
		 */
		$fieldName = Application::getConnection()->getSqlHelper()->forSql($options['fieldName']);
		$tableName = mb_strtolower($query->getEntity()->getCode());

		$query->whereExists(new SqlExpression(
			"SELECT 1 FROM "
			. $options['referenceClass']::getTableName()
			. " WHERE {$fieldName} = {$tableName}.ID"
		));
	}

	return $query;
}