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

	$result = [];

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

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

			if (defined("BX_COMP_MANAGED_CACHE"))
			{
				$CACHE_MANAGER->registerTag("landing_dynamic_filter_".$filterField['value']);
			}
		}
	}

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

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

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

	$result = [];
	$res = WorkgroupTable::getList([
		'filter' => [
			'=LANDING' => 'Y',
			'=ACTIVE' => 'Y',
			'@ID' => $groupIdList
		],
		'select' => [ 'ID' ]
	]);
	while ($workgroupFields = $res->fetch())
	{
		$result[] = 'SG'.$workgroupFields['ID'];
	}

	return $result;
}