- Модуль: imbot
- Путь к файлу: ~/bitrix/modules/imbot/lib/bot/support24.php
- Класс: BitrixImBotBotSupport24
- Вызов: Support24::checkPortalStageMode
static function checkPortalStageMode(int $userId, bool $delayAction = false)
{
$session = MainApplication::getInstance()->getSession();
$time = time();
if (
!$session->has(self::OPTION_BOT_STAGE_ACTIVE)
|| ($time - (int)$session->get(self::OPTION_BOT_STAGE_ACTIVE)) > 86400
)
{
$session->set(self::OPTION_BOT_STAGE_ACTIVE, $time);
$isStageActive = (int)Option::get(self::MODULE_ID, self::OPTION_BOT_STAGE_ACTIVE, 0);
if (self::isStagePortal())
{
if ($isStageActive == 0)
{
Option::set(self::MODULE_ID, self::OPTION_BOT_STAGE_ACTIVE, $time);
self::deleteScheduledAction(self::USER_LEVEL_ADMIN, self::SCHEDULE_ACTION_CHECK_STAGE);
if ($delayAction)
{
self::scheduleAction(self::USER_LEVEL_ADMIN, self::SCHEDULE_ACTION_CHECK_STAGE, 'START');
}
else
{
self::sendNotifyPortalStageMode([
'IS_STAGE_STARTED' => true
]);
return false;
}
}
}
elseif ($isStageActive > 0)
{
Option::delete(self::MODULE_ID, ['name' => self::OPTION_BOT_STAGE_ACTIVE]);
self::deleteScheduledAction(self::USER_LEVEL_ADMIN, self::SCHEDULE_ACTION_CHECK_STAGE);
if ($delayAction)
{
self::scheduleAction(self::USER_LEVEL_ADMIN, self::SCHEDULE_ACTION_CHECK_STAGE, 'STOP');
}
else
{
self::sendNotifyPortalStageMode([
'IS_STAGE_STOPPED' => true
]);
}
}
}
return true;
}