• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/landing/livefeed.php
  • Класс: BitrixSocialnetworkIntegrationLandingLivefeed
  • Вызов: Livefeed::getAuthorFilter
private function getAuthorFilter()
{
	$result = [];

	$settingsFilter = $this->getFilter();
	if (!is_array($settingsFilter))
	{
		$settingsFilter = [];
	}

	foreach ($settingsFilter as $filterField)
	{
		if (
			!empty($filterField['key'])
			&& !empty($filterField['value'])
			&& $filterField['key'] == 'AUTHOR_ID'
			&& $filterField['value'] != 'all'
		)
		{
			$result[] = $filterField['value'];
		}
	}

	$authorIdList = array_filter(array_map(function($val) {
		$res = false;
		if (preg_match('/^U(d+)$/i', $val, $matches))
		{
			$res = intval($matches[1]);
		}

		return $res;
	}, $result), function ($val) {
		return ($val > 0);
	});

	if (empty($authorIdList))
	{
		return $result;
	}

	$result = [];
	$res = UserTable::getList([
		'filter' => [
			'=ACTIVE' => 'Y',
			'@ID' => $authorIdList
		],
		'select' => [ 'ID' ]
	]);
	while ($userFields = $res->fetch())
	{
		$result[] = $userFields['ID'];
	}

	return $result;
}