• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/Send/PushService.php
  • Класс: BitrixImV2MessageSendPushService
  • Вызов: PushService::prepareNotificationEventForPush
private function prepareNotificationEventForPush(array $event, ?string $pushMessage = null): array
{
	$result = [
		'cmd' => 'notifyAdd',
		'id' => (int)$event['id'],
		'type' => (int)$event['type'],
		'date' => (string)$event['date'],
		'tag' => (string)$event['tag'],
		'onlyFlash' => $event['onlyFlash'],
		'originalTag' => (string)$event['originalTag'],
		'settingName' => (string)$event['settingName'],
		'counter' => (int)$event['counter'],
		'userId' => (int)$event['userId'],
		'userName' => (string)$event['userName'],
		'userColor' => (string)$event['userColor'],
		'userAvatar' => (string)$event['userAvatar'],
		'userLink' => (string)$event['userLink'],
		'params' => $event['params'],
	];
	if (isset($event['buttons']))
	{
		$result['buttons'] = $event['buttons'];
	}

	// We need to save original text ("long") in result only if we have push text ("short").
	// "Long" text will be used to render push in notifications list.
	if (isset($pushMessage))
	{
		$result['text'] = $event['text'];
	}

	$fieldToIndex = [
		'id' => 1,
		'type' => 2,
		'date' => 3,
		'text' => 4,
		'tag' => 6,
		'onlyFlash' => 7,
		'originalTag' => 8,
		'settingName' => 9,
		'counter' => 10,
		'userId' => 11,
		'userName' => 12,
		'userColor' => 13,
		'userAvatar' => 14,
		'userLink' => 15,
		'params' => 16,
		'buttons' => 17,
	];

	return $this->changeKeysPushEvent($result, $fieldToIndex);
}