3namespace Bitrix\Socialnetwork\Helper;
6use Bitrix\Main\Config\Option;
8use Bitrix\Socialnetwork\Collab\CollabFeature;
9use Bitrix\Socialnetwork\Collab\Registry\CollabRegistry;
10use Bitrix\Tasks\Flow\FlowFeature;
23 if (!Loader::includeModule(
'bitrix24'))
29 $featureName === self::PROJECTS_GROUPS
30 && Loader::includeModule(
'tasks')
31 && FlowFeature::isFeatureEnabled()
39 $isCollab = (CollabRegistry::getInstance()->get($groupId) !==
null);
40 if ($isCollab && CollabFeature::isFeatureEnabled())
46 return Bitrix24\Feature::isFeatureEnabled($featureName);
51 if (!Loader::includeModule(
'bitrix24'))
58 && array_key_exists($featureName,
Bitrix24\Feature::getTrialFeatureList())
65 Loader::includeModule(
'bitrix24')
66 &&
Bitrix24\Feature::isPromoEditionAvailableByFeature($featureName)
73 self::isFeatureEnabled(self::FIRST_ERA)
74 || self::isFeatureEnabled($featureName)
80 return !self::isDemoFeatureWasEnabled($featureName);
83 public static function turnOnTrial($featureName,
int $trialDays = 15): void
85 Bitrix24\Feature::setFeatureTrialable($featureName, [
89 Bitrix24\Feature::trialFeature($featureName);
91 self::setDemoOption($featureName);
94 private static function setDemoOption(
string $featureName): void
96 Option::set(
'socialnetwork', $featureName .
'_trialable',
true);
99 private static function isDemoFeatureWasEnabled(
string $featureName): bool
101 return (
bool) Option::get(
'socialnetwork', $featureName .
'_trialable',
false);
const PROJECTS_ACCESS_PERMISSIONS
static canTurnOnTrial(string $featureName)
static isFeatureEnabled(string $featureName, int $groupId=0)
static isFeaturePromo(string $featureName)
static turnOnTrial($featureName, int $trialDays=15)
static isFeatureEnabledByTrial(string $featureName)