- Модуль: imbot
- Путь к файлу: ~/bitrix/modules/imbot/lib/bot/support24.php
- Класс: BitrixImBotBotSupport24
- Вызов: Support24::onChatStart
static function onChatStart($dialogId, $joinFields)
{
if (!MainLoader::includeModule('im'))
{
return false;
}
$messageFields = $joinFields;
$messageFields['DIALOG_ID'] = $dialogId;
if (!self::checkMembershipRestriction($messageFields))
{
$groupLimited = self::getMessage('GROUP_LIMITED');
if ($groupLimited)
{
self::sendMessage([
'DIALOG_ID' => $messageFields['DIALOG_ID'],
'MESSAGE' => $groupLimited,
'URL_PREVIEW' => 'N'
]);
}
(new CIMChat(self::getBotId()))->deleteUser(mb_substr($dialogId, 4), self::getBotId());
return true;
}
// specialized support chats
if (
$messageFields['MESSAGE_TYPE'] === IM_MESSAGE_CHAT
&& $messageFields['CHAT_ENTITY_TYPE'] === self::CHAT_ENTITY_TYPE
&& self::hasBotMenu()
)
{
if ($joinFields['ACCESS_HISTORY'] ?? true) // suppress menu showing on calling restoreQuestionHistory()
{
self::showMenu(['DIALOG_ID' => $dialogId]);
}
return true;
}
// welcome message
$message = '';
if (
self::isActivePartnerSupport()
&& !self::isUserIntegrator($messageFields['USER_ID'])
)
{
$message = self::getMessage('MESSAGE_PARTNER');
}
else if (self::getSupportLevel() == self::SUPPORT_LEVEL_FREE)
{
if (self::isUserIntegrator($messageFields['USER_ID']))
{
$message = self::getMessage('WELCOME_INTEGRATOR');
}
else if (self::isActiveFreeSupport())
{
if (self::isActiveFreeSupportForUser($messageFields['USER_ID']))
{
$message = self::getMessage('WELCOME');
}
else
{
$message = self::getMessage('WELCOME_LIMITED');
}
}
else
{
$message = self::getMessage('WELCOME_END');
}
}
else if (self::getSupportLevel() == self::SUPPORT_LEVEL_PAID)
{
if (self::isUserIntegrator($messageFields['USER_ID']))
{
$message = self::getMessage('WELCOME_INTEGRATOR');
}
else if (self::isActivePaidSupportForUser($messageFields['USER_ID']))
{
$message = self::getMessage('WELCOME');
}
else
{
$message = self::getMessage('WELCOME_LIMITED');
}
}
if (!empty($message))
{
CUserOptions::setOption(
self::MODULE_ID,
self::OPTION_BOT_WELCOME_SHOWN,
time(),
false,
$messageFields['USER_ID']
);
self::sendMessage([
'DIALOG_ID' => $messageFields['USER_ID'],
'MESSAGE' => $message,
'URL_PREVIEW' => 'N'
]);
}
if (
self::getSupportLevel() == self::SUPPORT_LEVEL_FREE
&& self::isActiveFreeSupport()
&& self::isActiveFreeSupportForUser($messageFields['USER_ID'])
)
{
self::scheduleAction($messageFields['USER_ID'], self::SCHEDULE_ACTION_INVOLVEMENT, '', 24*60);
}
return true;
}