• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/helper/workgroup.php
  • Класс: BitrixSocialnetworkHelperWorkgroup
  • Вызов: Workgroup::getConfidentialityPresets
static function getConfidentialityPresets(array $params = []): array
{
	static $useProjects = null;

	$currentExtranetSite = (
		!empty($params)
		&& isset($params['currentExtranetSite'])
		&& $params['currentExtranetSite']
	);

	$entityOptions = (
		!empty($params['entityOptions'])
		&& is_array($params['entityOptions'])
			? $params['entityOptions']
			: []
	);

	$result = [];
	$sort = 0;

	if ($useProjects === null)
	{
		$useProjects = (
			ModuleManager::isModuleInstalled('intranet')
			&& self::checkEntityOption([ 'project' ], $entityOptions)
		);
	}

	if (!$currentExtranetSite)
	{
		if (self::checkEntityOption([ 'open', '!extranet', '!landing' ], $entityOptions))
		{
			$result['open'] = [
				'SORT' => $sort += 10,
				'NAME' => ($useProjects ? Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GP_OPEN') : Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GROUP_OPEN')),
				'DESCRIPTION' => Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GP_OPEN_DESC3'),
				'VISIBLE' => 'Y',
				'OPENED' => 'Y',
				'EXTERNAL' => 'N',
			];
		}

		if (self::checkEntityOption([ '!open', '!extranet', '!landing' ], $entityOptions))
		{
			$result['closed'] = [
				'SORT' => $sort += 10,
				'NAME' => ($useProjects ? Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GP_CLOSED') : Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GROUP_CLOSED')),
				'DESCRIPTION' => Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GP_CLOSED_DESC3'),
				'VISIBLE' => 'Y',
				'OPENED' => 'N',
				'EXTERNAL' => 'N',
			];
		}

		if (self::checkEntityOption([ '!open', '!extranet', '!landing' ], $entityOptions))
		{
			$result['secret'] = [
				'SORT' => $sort += 10,
				'NAME' => ($useProjects ?
					Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GP_SECRET_1')
					: Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GROUP_SECRET_1')
				),
				'DESCRIPTION' => Loc::getMessage('SOCIALNETWORK_ITEM_WORKGROUP_TYPE_GP_SECRET_DESC3_1'),
				'VISIBLE' => 'N',
				'OPENED' => 'N',
				'EXTERNAL' => 'N',
			];
		}
	}

	return $result;
}