function myalerts_xmlhttp() { global $mybb, $lang, $templates, $db; if (!isset($lang->myalerts)) { $lang->load('myalerts'); } myalerts_create_instances(); if ($mybb->get_input('action') == 'getNewAlerts') { header('Content-Type: application/json'); $newAlerts = MybbStuff_MyAlerts_AlertManager::getInstance()->getAlerts(0, $mybb->settings['myalerts_dropdown_limit']); $alertsListing = ''; $alertsToReturn = array(); if (is_array($newAlerts) && !empty($newAlerts)) { $toMarkRead = array(); foreach ($newAlerts as $alertObject) { $altbg = alt_trow(); $alert = parse_alert($alertObject); $alertsToReturn[] = $alert; if (isset($mybb->input['from']) && $mybb->input['from'] == 'header') { if ($alert['message']) { $alertsListing .= eval($templates->render('myalerts_alert_row_popup', true, false)); } } else { if ($alert['message']) { $alertsListing .= eval($templates->render('myalerts_alert_row', true, false)); } } $toMarkRead[] = $alertObject->getId(); } MybbStuff_MyAlerts_AlertManager::getInstance()->markRead($toMarkRead); } else { $from = $mybb->get_input('from', MyBB::INPUT_STRING); $altbg = alt_trow(); if (!empty($from) && $from == 'header') { $alertsListing = eval($templates->render('myalerts_alert_row_popup_no_alerts', true, false)); } else { $alertsListing = eval($templates->render('myalerts_alert_row_no_alerts', true, false)); } } echo json_encode(array('alerts' => $alertsToReturn, 'template' => $alertsListing)); } if ($mybb->get_input('action') == 'myalerts_delete') { header('Content-Type: application/json'); $id = $mybb->get_input('id', MyBB::INPUT_INT); $userId = (int) $mybb->user['uid']; $toReturn = array(); if ($id > 0) { if (!verify_post_check($mybb->get_input('my_post_key'), true)) { $toReturn = array('errors' => array($lang->invalid_post_code)); } else { $db->delete_query('alerts', "id = {$id} AND uid = {$userId}"); $newAlerts = MybbStuff_MyAlerts_AlertManager::getInstance()->getUnreadAlerts(); $alertsListing = ''; $alertsToReturn = array(); if (is_array($newAlerts) && !empty($newAlerts)) { $toMarkRead = array(); foreach ($newAlerts as $alertObject) { $altbg = alt_trow(); $alert = parse_alert($alertObject); $alertsToReturn[] = $alert; if (isset($mybb->input['from']) && $mybb->input['from'] == 'header') { if ($alert['message']) { $alertsListing .= eval($templates->render('myalerts_alert_row_popup', true, false)); } } else { if ($alert['message']) { $alertsListing .= eval($templates->render('myalerts_alert_row', true, false)); } } $toMarkRead[] = $alertObject->getId(); } MybbStuff_MyAlerts_AlertManager::getInstance()->markRead($toMarkRead); } else { $from = $mybb->get_input('from', MyBB::INPUT_STRING); $altbg = alt_trow(); if (!empty($from) && $from == 'header') { $alertsListing = eval($templates->render('myalerts_alert_row_popup_no_alerts', true, false)); } else { $alertsListing = eval($templates->render('myalerts_alert_row_no_alerts', true, false)); } } $toReturn = array('success' => true, 'template' => $alertsListing); } } else { $toReturn = array('errors' => array($lang->myalerts_error_alert_not_found)); } echo json_encode($toReturn); } if ($mybb->input['action'] == 'getNumUnreadAlerts') { echo MybbStuff_MyAlerts_AlertManager::getInstance()->getNumUnreadAlerts(); } }
/** * View all alerts. * * @param MyBB $mybb MyBB core object. * @param MyLanguage $lang Language object. * @param templates $templates Template manager. * @param array $theme Details about the current theme. */ function myalerts_view_alerts($mybb, $lang, $templates, $theme) { if (MybbStuff_MyAlerts_AlertManager::getInstance() === false) { myalerts_create_instances(); } $alerts = MybbStuff_MyAlerts_AlertManager::getInstance()->getAlerts(0, 10); if (!isset($lang->myalerts)) { $lang->load('myalerts'); } add_breadcrumb($lang->myalerts_page_title, 'alerts.php?action=alerts'); require_once __DIR__ . '/inc/functions_user.php'; usercp_menu(); $numAlerts = MybbStuff_MyAlerts_AlertManager::getInstance()->getNumAlerts(); $page = (int) $mybb->input['page']; $pages = ceil($numAlerts / $mybb->settings['myalerts_perpage']); if ($page > $pages or $page <= 0) { $page = 1; } if ($page) { $start = ($page - 1) * $mybb->settings['myalerts_perpage']; } else { $start = 0; $page = 1; } $multipage = multipage($numAlerts, $mybb->settings['myalerts_perpage'], $page, "alerts.php"); $alertsList = MybbStuff_MyAlerts_AlertManager::getInstance()->getAlerts($start); $readAlerts = array(); if (is_array($alertsList) && !empty($alertsList)) { foreach ($alertsList as $alertObject) { $altbg = alt_trow(); $alert = parse_alert($alertObject); if ($alert['message']) { eval("\$alertsListing .= \"" . $templates->get('myalerts_alert_row') . "\";"); } $readAlerts[] = $alert['id']; } } else { $altbg = 'trow1'; eval("\$alertsListing = \"" . $templates->get('myalerts_alert_row_no_alerts') . "\";"); } MybbStuff_MyAlerts_AlertManager::getInstance()->markRead($readAlerts); global $headerinclude, $header, $footer, $usercpnav; $content = ''; eval("\$content = \"" . $templates->get('myalerts_page') . "\";"); output_page($content); }