function parse_alert(MybbStuff_MyAlerts_Entity_Alert $alertToParse) { global $mybb, $lang, $plugins; if (!isset($lang->myalerts)) { $lang->load('myalerts'); } /** @var MybbStuff_MyAlerts_Formatter_AbstractFormatter $formatter */ $formatter = MybbStuff_MyAlerts_AlertFormatterManager::getInstance()->getFormatterForAlertType($alertToParse->getType()->getCode()); $outputAlert = array(); if ($formatter != null) { $plugins->run_hooks('myalerts_alerts_output_start', $alert); $formatter->init(); $fromUser = $alertToParse->getFromUser(); $maxDimensions = str_replace('|', 'x', $mybb->settings['myalerts_avatar_size']); $outputAlert['avatar'] = format_avatar($fromUser['avatar'], $mybb->settings['myalerts_avatar_size'], $maxDimensions); $outputAlert['avatar']['image'] = htmlspecialchars_uni($outputAlert['avatar']['image']); $outputAlert['id'] = $alertToParse->getId(); $outputAlert['username'] = htmlspecialchars_uni($fromUser['username']); $outputAlert['from_user'] = format_name(htmlspecialchars_uni($fromUser['username']), $fromUser['usergroup'], $fromUser['displaygroup']); $outputAlert['from_user_raw_profilelink'] = get_profile_link((int) $fromUser['uid']); // htmlspecialchars_uni done by get_profile_link $outputAlert['from_user_profilelink'] = build_profile_link($outputAlert['from_user'], $fromUser['uid']); $outputAlert['alert_status'] = ' alert--read'; if ($alertToParse->getUnread()) { $outputAlert['alert_status'] = ' alert--unread'; } $outputAlert['message'] = $formatter->formatAlert($alertToParse, $outputAlert); $outputAlert['alert_code'] = $alertToParse->getType()->getCode(); $outputAlert['received_at'] = htmlspecialchars_uni(my_date($mybb->settings['dateformat'], $alertToParse->getCreatedAt()->getTimestamp())); $plugins->run_hooks('myalerts_alerts_output_end', $alert); } return $outputAlert; }