• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/manager.php
  • Класс: BitrixLandingManager
  • Вызов: Manager::checkFeature
static function checkFeature(string $feature, array $params = array()): bool
{
	// temporary set features
	if (
		isset(self::$tmpFeatures[$feature]) &&
		self::$tmpFeatures[$feature]
	)
	{
		return true;
	}
	if (!isset($params['type']) || !$params['type'])
	{
		$params['type'] = 'PAGE';
	}

	if (
		$feature == self::FEATURE_CREATE_SITE ||
		$feature == self::FEATURE_PUBLICATION_SITE
	)
	{
		$params['action_type'] = ($feature == self::FEATURE_CREATE_SITE)
			? 'create' : 'publication';
		return RestrictionManager::isAllowed(
			'limit_sites_number',
			$params,
			$feature
		);
	}
	else if (
		$feature == self::FEATURE_CREATE_PAGE ||
		$feature == self::FEATURE_PUBLICATION_PAGE
	)
	{
		$params['action_type'] = ($feature == self::FEATURE_CREATE_PAGE)
			? 'create' : 'publication';
		return RestrictionManager::isAllowed(
			'limit_sites_number_page',
			$params,
			$feature
		);
	}
	elseif ($feature == self::FEATURE_ENABLE_ALL_HOOKS)
	{
		if (isset($params['hook']))
		{
			return RestrictionHook::isHookAllowed($params['hook']);
		}
		return true;
	}
	elseif ($feature == self::FEATURE_PERMISSIONS_AVAILABLE)
	{
		return RestrictionManager::isAllowed(
			'limit_sites_access_permissions'
		);
	}
	elseif ($feature == self::FEATURE_DYNAMIC_BLOCK)
	{
		return RestrictionManager::isAllowed(
			'limit_sites_dynamic_blocks',
			$params
		);
	}
	elseif ($feature == self::FEATURE_FREE_DOMAIN)
	{
		return RestrictionManager::isAllowed(
			'limit_free_domen'
		);
	}
	elseif ($feature == self::FEATURE_ALLOW_EXPORT)
	{
		return RestrictionManager::isAllowed(
			'limit_sites_transfer'
		);
	}
	elseif ($feature == self::FEATURE_ALLOW_VIEW_PAGE)
	{
		return RestrictionManager::isAllowed(
			'limit_knowledge_base_number_page_view',
			$params
		);
	}
	// for backward compatibility
	elseif ($feature == self::FEATURE_CUSTOM_DOMAIN)
	{
		return true;
	}

	return false;
}