- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_notify.php
- Класс: CIMNotify
- Вызов: CIMNotify::GetFormatNotify
static function GetFormatNotify(array $arFields): array
{
$messageText = BitrixImText::parse(
BitrixImText::convertHtmlToBbCode($arFields['MESSAGE']),
[
'LINK' => (isset($arFields['HIDE_LINK']) && $arFields['HIDE_LINK'] === 'Y') ? 'N' : 'Y',
'LINK_TARGET_SELF' => 'Y',
'SAFE' => 'N',
'FONT' => 'Y',
'SMILES' => 'N',
]
);
$users = [];
if ((int)$arFields['FROM_USER_ID'] > 0)
{
$users[] = User::getInstance((int)$arFields['FROM_USER_ID'])->getArray([
'JSON' => 'Y',
'SKIP_ONLINE' => 'Y'
]);
}
$arNotify = [
'id' => $arFields['ID'],
'type' => $arFields['NOTIFY_TYPE'],
'date' => BitrixMainTypeDateTime::createFromTimestamp($arFields['DATE_CREATE']),
'silent' => ($arFields['NOTIFY_SILENT'] ?? null) ? 'Y' : 'N',
'onlyFlash' => (bool)($arFields['NOTIFY_ONLY_FLASH'] ?? false),
'link' => (string)($arFields['NOTIFY_LINK'] ?? ''),
'text' => $messageText,
'tag' => $arFields['NOTIFY_TAG'] != '' ? md5($arFields['NOTIFY_TAG']): '',
'originalTag' => $arFields['NOTIFY_TAG'],
'original_tag' => $arFields['NOTIFY_TAG'],
'read' => $arFields['NOTIFY_READ'] ?? null,
'settingName' => $arFields['NOTIFY_MODULE'] . '|' . $arFields['NOTIFY_EVENT'],
'params' => $arFields['PARAMS'] ?? [],
'counter' => isset($arFields['COUNTER']) ? (int)$arFields['COUNTER'] : 0,
'users' => $users
];
if (!isset($arFields["FROM_USER_DATA"]))
{
$arUsers = CIMContactList::GetUserData(Array('ID' => $arFields['FROM_USER_ID'], 'DEPARTMENT' => 'N', 'USE_CACHE' => 'Y', 'CACHE_TTL' => 86400));
$arFields["FROM_USER_DATA"] = $arUsers['users'] ?? null;
}
$arNotify['userId'] = $arFields["FROM_USER_ID"];
$arNotify['userName'] = $arFields["FROM_USER_DATA"][$arFields["FROM_USER_ID"]]['name'] ?? null;
$arNotify['userColor'] = $arFields["FROM_USER_DATA"][$arFields["FROM_USER_ID"]]['color'] ?? null;
$arNotify['userAvatar'] = $arFields["FROM_USER_DATA"][$arFields["FROM_USER_ID"]]['avatar'] ?? null;
$arNotify['userLink'] = $arFields["FROM_USER_DATA"][$arFields["FROM_USER_ID"]]['profile'] ?? null;
if ($arFields['NOTIFY_TYPE'] == IM_NOTIFY_CONFIRM)
{
$arNotify['buttons'] = unserialize($arFields['NOTIFY_BUTTONS'], ['allowed_classes' => false]);
}
else
{
$arNotify['title'] = htmlspecialcharsbx($arFields['NOTIFY_TITLE']);
}
return $arNotify;
}