• Модуль: 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;
}