- Модуль: imbot
- Путь к файлу: ~/bitrix/modules/imbot/lib/bot/support24.php
- Класс: BitrixImBotBotSupport24
- Вызов: Support24::sendNotifyPortalStageMode
static function sendNotifyPortalStageMode($params)
{
$notifyUsers = self::getAdministrators();
$recentUsers = [];
// recent talking in depth 30 days
foreach (self::getRecentDialogs(24 * 30) as $dialog)
{
if ($dialog['RECENTLY_TALK'] === 'Y')
{
$recentUsers[] = (int)$dialog['USER_ID'];
}
}
// remove recent talking
$notifyUsers = array_unique(array_diff($notifyUsers, $recentUsers));
if (!$notifyUsers)
{
return false;
}
if ($params['IS_STAGE_STARTED'] === true)
{
$message = self::getMessage('STAGE_START');
if ($message)
{
foreach ($notifyUsers as $userId)
{
self::sendMessage([
'DIALOG_ID' => $userId,
'MESSAGE' => $message,
'SYSTEM' => 'N',
'URL_PREVIEW' => 'N'
]);
if (self::hasBotMenu())
{
self::showMenu(['DIALOG_ID' => $userId]);
}
}
}
}
elseif ($params['IS_STAGE_STOPPED'] === true)
{
$message = self::getMessage('STAGE_STOP');
if ($message)
{
foreach ($notifyUsers as $userId)
{
self::sendMessage([
'DIALOG_ID' => $userId,
'MESSAGE' => $message,
'SYSTEM' => 'N',
'URL_PREVIEW' => 'N'
]);
if (self::hasBotMenu())
{
$messageId = self::getBotMenu()->setDialogId((string)$userId)->getMessageId();
if ($messageId)
{
self::disableMessageButtons((int)$messageId);
}
self::resetMenuState((string)$userId);
}
}
}
}
return true;
}