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