• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/entityselector.php
  • Класс: BitrixSocialnetworkComponentEntitySelector
  • Вызов: EntitySelector::getWorkgroups
protected function getWorkgroups()
{
	$result = [];

	if (CSocNetUser::isCurrentUserModuleAdmin($this->arParams['SITE_ID']))
	{
		$filter = [
			'=LANDING' => 'Y',
			'=ACTIVE' => 'Y'
		];
		if (!empty($this->arParams['SITE_ID']))
		{
			$filter["=WorkgroupSite:GROUP.SITE_ID"] = $this->arParams['SITE_ID'];
		}

		$res = WorkgroupTable::getList([
			'filter' => $filter,
			'limit' => 100,
			'select' => [
				'GROUP_ID' => 'ID',
				'GROUP_NAME' => 'NAME'
			]
		]);
	}
	else
	{
		$filter = [
			'=GROUP.LANDING' => 'Y',
			'=GROUP.ACTIVE' => 'Y',
			'=USER_ID' => $this->getCurrentUserId(),
			'@ROLE' => UserToGroupTable::getRolesMember()
		];
		if (!empty($this->arParams['SITE_ID']))
		{
			$filter["=GROUP.WorkgroupSite:GROUP.SITE_ID"] = $this->arParams['SITE_ID'];
		}

		$res = UserToGroupTable::getList([
			'filter' => $filter,
			'limit' => 100,
			'select' => [
				'GROUP_ID' => 'GROUP_ID',
				'GROUP_NAME' => 'GROUP.NAME'
			]
		]);
	}

	while($workgroupFields = $res->fetch())
	{
		$result[] = [
			'ID' => $workgroupFields['GROUP_ID'],
			'CODE' => 'SG'.$workgroupFields['GROUP_ID'],
			'NAME' => $workgroupFields['GROUP_NAME'],
		];
	}

	return $result;
}