Esempio n. 1
0
                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();
    }
Esempio n. 2
0
/**
 * @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&amp;action=add&amp;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&amp;action=edit&amp;aid={$aid}\">" . htmlspecialchars_uni($announcement['subject']) . "</a></div>");
                    $table->construct_cell("<a href=\"index.php?module=forum-announcements&amp;action=edit&amp;aid={$aid}\">{$lang->edit}</a>", array("class" => "align_center"));
                    $table->construct_cell("<a href=\"index.php?module=forum-announcements&amp;action=delete&amp;aid={$aid}&amp;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);
            }
        }
    }
}