if ($announcement['startdate'] > TIME_NOW || $announcement['enddate'] < TIME_NOW && $announcement['enddate'] != 0) { eval("\$icon = \"" . $templates->get("modcp_announcements_announcement_expired") . "\";"); } else { eval("\$icon = \"" . $templates->get("modcp_announcements_announcement_active") . "\";"); } $subject = htmlspecialchars_uni($announcement['subject']); eval("\$announcements_global .= \"" . $templates->get("modcp_announcements_announcement_global") . "\";"); } } else { // No global announcements eval("\$announcements_global = \"" . $templates->get("modcp_no_announcements_global") . "\";"); } eval("\$announcements_global = \"" . $templates->get("modcp_announcements_global") . "\";"); } $announcements_forum = ''; fetch_forum_announcements(); if (!$announcements_forum) { eval("\$announcements_forum = \"" . $templates->get("modcp_no_announcements_forum") . "\";"); } $plugins->run_hooks("modcp_announcements"); eval("\$announcements = \"" . $templates->get("modcp_announcements") . "\";"); output_page($announcements); } if ($mybb->input['action'] == "do_modqueue") { require_once MYBB_ROOT . "inc/class_moderation.php"; $moderation = new Moderation(); // Verify incoming POST request verify_post_check($mybb->get_input('my_post_key')); if ($mybb->usergroup['canmanagemodqueue'] == 0) { error_no_permission(); }
/** * @param DefaultTable $table * @param int $pid * @param int $depth */ function fetch_forum_announcements(&$table, $pid = 0, $depth = 1) { global $mybb, $db, $lang, $announcements, $page; static $forums_by_parent; if (!is_array($forums_by_parent)) { $forum_cache = cache_forums(); foreach ($forum_cache as $forum) { $forums_by_parent[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum; } } if (!is_array($forums_by_parent[$pid])) { return; } foreach ($forums_by_parent[$pid] as $children) { foreach ($children as $forum) { $forum['name'] = htmlspecialchars_uni($forum['name']); if ($forum['active'] == 0) { $forum['name'] = "<em>" . $forum['name'] . "</em>"; } if ($forum['type'] == "c") { $forum['name'] = "<strong>" . $forum['name'] . "</strong>"; } $table->construct_cell("<div style=\"padding-left: " . 40 * ($depth - 1) . "px;\">{$forum['name']}</div>"); $table->construct_cell("<a href=\"index.php?module=forum-announcements&action=add&fid={$forum['fid']}\">{$lang->add_announcement}</a>", array("class" => "align_center", "colspan" => 2)); $table->construct_row(); if (isset($announcements[$forum['fid']])) { foreach ($announcements[$forum['fid']] as $aid => $announcement) { if ($announcement['enddate'] < TIME_NOW && $announcement['enddate'] != 0) { $icon = "<img src=\"styles/{$page->style}/images/icons/bullet_off.png\" alt=\"(Expired)\" title=\"Expired Announcement\" style=\"vertical-align: middle;\" /> "; } else { $icon = "<img src=\"styles/{$page->style}/images/icons/bullet_on.png\" alt=\"(Active)\" title=\"Active Announcement\" style=\"vertical-align: middle;\" /> "; } $table->construct_cell("<div style=\"padding-left: " . 40 * $depth . "px;\">{$icon}<a href=\"index.php?module=forum-announcements&action=edit&aid={$aid}\">" . htmlspecialchars_uni($announcement['subject']) . "</a></div>"); $table->construct_cell("<a href=\"index.php?module=forum-announcements&action=edit&aid={$aid}\">{$lang->edit}</a>", array("class" => "align_center")); $table->construct_cell("<a href=\"index.php?module=forum-announcements&action=delete&aid={$aid}&my_post_key={$mybb->post_code}\" onclick=\"return AdminCP.deleteConfirmation(this, '{$lang->confirm_announcement_deletion}')\">{$lang->delete}</a>", array("class" => "align_center")); $table->construct_row(); } } // Build the list for any sub forums of this forum if (isset($forums_by_parent[$forum['fid']])) { fetch_forum_announcements($table, $forum['fid'], $depth + 1); } } } }
function fetch_forum_announcements($pid = 0, $depth = 1) { global $mybb, $db, $lang, $announcements, $templates, $announcements_forum, $moderated_forums; static $forums_by_parent, $forum_cache, $parent_forums; if (!is_array($forum_cache)) { $forum_cache = cache_forums(); } if (!is_array($parent_forums) && $mybb->user['issupermod'] != 1) { // Get a list of parentforums to show for normal moderators $parent_forums = array(); foreach ($moderated_forums as $mfid) { $parent_forums = array_merge($parent_forums, explode(',', $forum_cache[$mfid]['parentlist'])); } } if (!is_array($forums_by_parent)) { foreach ($forum_cache as $forum) { $forums_by_parent[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum; } } if (!is_array($forums_by_parent[$pid])) { return; } foreach ($forums_by_parent[$pid] as $children) { foreach ($children as $forum) { if ($forum['active'] == 0 || !is_moderator($forum['fid'])) { // Check if this forum is a parent of a moderated forum if (in_array($forum['fid'], $parent_forums)) { // A child is moderated, so print out this forum's title. RECURSE! $trow = alt_trow(); eval("\$announcements_forum .= \"" . $templates->get("modcp_announcements_forum_nomod") . "\";"); } else { // No subforum is moderated by this mod, so safely continue continue; } } else { // This forum is moderated by the user, so print out the forum's title, and its announcements $trow = alt_trow(); $padding = 40 * ($depth - 1); eval("\$announcements_forum .= \"" . $templates->get("modcp_announcements_forum") . "\";"); if ($announcements[$forum['fid']]) { foreach ($announcements[$forum['fid']] as $aid => $announcement) { $trow = alt_trow(); if ($announcement['enddate'] < TIME_NOW && $announcement['enddate'] != 0) { $icon = "<img src=\"images/minioff.gif\" alt=\"({$lang->expired})\" title=\"{$lang->expired_announcement}\" style=\"vertical-align: middle;\" /> "; } else { $icon = "<img src=\"images/minion.gif\" alt=\"({$lang->active})\" title=\"{$lang->active_announcement}\" style=\"vertical-align: middle;\" /> "; } $subject = htmlspecialchars_uni($announcement['subject']); eval("\$announcements_forum .= \"" . $templates->get("modcp_announcements_announcement") . "\";"); } } } // Build the list for any sub forums of this forum if ($forums_by_parent[$forum['fid']]) { fetch_forum_announcements($forum['fid'], $depth + 1); } } } }