Esempio n. 1
0
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;
}