static function GetChatOptions()
{
if (!is_null(self::$entityOption))
{
return self::$entityOption;
}
global $USER;
self::$entityOption = [];
$default = [
'AVATAR' => true,
'RENAME' => true,
'EXTEND' => true,
'CALL' => true,
'MUTE' => true,
'LEAVE' => true,
'LEAVE_OWNER' => true,
'SEND' => true,
'USER_LIST' => true,
];
self::$entityOption['GENERAL'] = [
'AVATAR' => false,
'RENAME' => false,
'EXTEND' => false,
'CALL' => true,
'LEAVE' => false,
'LEAVE_OWNER' => false,
'SEND' => CIMChat::CanSendMessageToGeneralChat((int)$USER->GetID())
];
if (BitrixMainLoader::includeModule('imbot'))
{
self::$entityOption[BitrixImBotServiceNotifier::CHAT_ENTITY_TYPE] = [
'AVATAR' => false,
'RENAME' => false,
'LEAVE_OWNER' => false,
];
self::$entityOption[BitrixImBotBotSupport24::CHAT_ENTITY_TYPE] = [
'AVATAR' => false,
'RENAME' => true,
'EXTEND' => false,
'CALL' => false,
'MUTE' => false,
'LEAVE' => false,
'LEAVE_OWNER' => false,
'USER_LIST' => false,
];
}
if (BitrixMainModuleManager::isModuleInstalled('socialnetwork'))
{
$path = COption::GetOptionString("socialnetwork", "workgroups_page", "/workgroups/", SITE_ID);
$path = $path.'group/#ID#/';
self::$entityOption['SONET_GROUP'] = [
'AVATAR' => false,
'RENAME' => false,
'EXTEND' => false,
'LEAVE' => false,
'LEAVE_OWNER' => false,
'PATH' => $path,
'PATH_TITLE' => GetMessage('IM_PATH_TITLE_SONET')
];
}
if (BitrixMainLoader::includeModule('tasks'))
{
$path = CTasksTools::GetOptionPathTaskUserEntry(SITE_ID, "/company/personal/user/#user_id#/tasks/task/view/#task_id#/");
$path = str_replace(Array('#user_id#', '#task_id#'), Array($USER->GetId(), '#ID#'), mb_strtolower($path));
self::$entityOption['TASKS'] = Array(
'AVATAR' => true,
'RENAME' => true,
'EXTEND' => true,
'LEAVE' => true,
'LEAVE_OWNER' => true,
'PATH' => $path,
'PATH_TITLE' => GetMessage('IM_PATH_TITLE_TASKS')
);
}
if (BitrixMainLoader::includeModule('calendar'))
{
$path = CCalendar::GetPathForCalendarEx($USER->GetId());
$path = CHTTP::urlAddParams($path, ['EVENT_ID' => '#ID#']);
self::$entityOption[CCalendar::CALENDAR_CHAT_ENTITY_TYPE] = Array(
'AVATAR' => true,
'RENAME' => true,
'EXTEND' => true,
'LEAVE' => true,
'LEAVE_OWNER' => true,
'PATH' => $path,
'PATH_TITLE' => GetMessage('IM_PATH_TITLE_CALENDAR_EVENT')
);
}
if (BitrixMainLoader::includeModule('crm'))
{
self::$entityOption['CRM'] = Array(
'AVATAR' => false,
'RENAME' => false,
'EXTEND' => true,
'LEAVE' => true,
'LEAVE_OWNER' => false,
'PATH' => '',
'PATH_TITLE' => ''
);
}
if (BitrixMainLoader::includeModule('voximplant'))
{
self::$entityOption['CALL'] = Array(
'AVATAR' => true,
'RENAME' => true,
'EXTEND' => false,
'CALL' => false,
'MUTE' => false,
'LEAVE' => false,
'LEAVE_OWNER' => false,
'SEND' => true,
'USER_LIST' => true,
);
}
foreach (self::$entityOption as $code => $value)
{
self::$entityOption[$code] = array_merge($default, $value);
}
self::$entityOption['DEFAULT'] = $default;
return self::$entityOption;
}