admin_forum_manager.php

来自「在综合英文版XOOPS 2.09, 2.091, 2.092 的基础上正式发布X」· PHP 代码 · 共 764 行 · 第 1/3 页

PHP
764
字号
    $groups_forum_can_delete_checkbox = new XoopsFormCheckBox(_AM_NEWBB_CAN_DELETE, 'groups_forum_can_delete[]', $groups_forum_can_delete);
    foreach ($group_list as $group_id => $group_name) {
        $groups_forum_can_delete_checkbox->addOption($group_id, $group_name);
    }
    $sform->addElement($groups_forum_can_delete_checkbox);

    $groups_forum_can_addpoll_checkbox = new XoopsFormCheckBox(_AM_NEWBB_CAN_ADDPOLL, 'groups_forum_can_addpoll[]', $groups_forum_can_addpoll);
    foreach ($group_list as $group_id => $group_name) {
        $groups_forum_can_addpoll_checkbox->addOption($group_id, $group_name);
    }
    $sform->addElement($groups_forum_can_addpoll_checkbox);

    $groups_forum_can_vote_checkbox = new XoopsFormCheckBox(_AM_NEWBB_CAN_VOTE, 'groups_forum_can_vote[]', $groups_forum_can_vote);
    foreach ($group_list as $group_id => $group_name) {
        $groups_forum_can_vote_checkbox->addOption($group_id, $group_name);
    }
    $sform->addElement($groups_forum_can_vote_checkbox);

    $groups_forum_can_attach_checkbox = new XoopsFormCheckBox(_AM_NEWBB_CAN_ATTACH, 'groups_forum_can_attach[]', $groups_forum_can_attach);
    foreach ($group_list as $group_id => $group_name) {
        $groups_forum_can_attach_checkbox->addOption($group_id, $group_name);
    }
    $sform->addElement($groups_forum_can_attach_checkbox);

    $groups_forum_can_noapprove_checkbox = new XoopsFormCheckBox(_AM_NEWBB_CAN_NOAPPROVE, 'groups_forum_can_noapprove[]', $groups_forum_can_noapprove);
    foreach ($group_list as $group_id => $group_name) {
        $groups_forum_can_noapprove_checkbox->addOption($group_id, $group_name);
    }
    $sform->addElement($groups_forum_can_noapprove_checkbox);
    $sform->addElement(new XoopsFormHidden('forum', $forum));

    $jstray = new XoopsFormElementTray('', '');
    foreach ($group_list as $group_id => $group_name) {
        $jstray->addElement(new XoopsFormHidden('group_ids[]', strval($group_id)));
    }

    $jsuncheckbutton = new XoopsFormButton('', '', _NONE, 'submit');
    $jsuncheckbutton->setExtra('onclick="this.form.elements.op.value=\'savenone\'"') ;

    $jscheckbutton = new XoopsFormButton('', '', _ALL, 'submit');
    $jscheckbutton->setExtra('onclick="this.form.elements.op.value=\'saveall\'"') ;

    $jstray->addElement($jsuncheckbutton) ;
    $jstray->addElement($jscheckbutton) ;

    $sform->addElement($jstray);

    $button_tray = new XoopsFormElementTray('', '');
    $button_tray->addElement(new XoopsFormHidden('op', 'save'));
    // No ID for forum -- then it's new forum, button says 'Create'
    if (!$forum) {
        $butt_create = new XoopsFormButton('', '', _AM_NEWBB_CREATEFORUM, 'submit');
        $butt_create->setExtra('onclick="this.form.elements.op.value=\'save\'"');
        $button_tray->addElement($butt_create);

        $butt_clear = new XoopsFormButton('', '', _AM_NEWBB_CLEAR, 'reset');
        $button_tray->addElement($butt_clear);

        $butt_cancel = new XoopsFormButton('', '', _CANCEL, 'button');
        $butt_cancel->setExtra('onclick="history.go(-1)"');
        $button_tray->addElement($butt_cancel);
    } else { // button says 'Update'
            $butt_create = new XoopsFormButton('', '', _AM_NEWBB_EDIT, 'submit');
        $butt_create->setExtra('onclick="this.form.elements.op.value=\'save\'"');
        $button_tray->addElement($butt_create);

        $butt_cancel = new XoopsFormButton('', '', _CANCEL, 'button');
        $butt_cancel->setExtra('onclick="history.go(-1)"');
        $button_tray->addElement($butt_cancel);
    }

    $sform->addElement($button_tray);
    $sform->display();
}
xoops_cp_header();
switch ($op) {
    case 'moveforum':

        if (isset($_POST['save']) && $_POST['save'] != "") {
            if (isset($_GET['forum'])) $forum = intval($_GET['forum']);
            if (isset($_POST['forum'])) $forum = intval($_POST['forum']);

            $bMoved = 0;
            $errString = '';
            // Look for subforums
            $sql = "SELECT * from " . $xoopsDB->prefix('bb_forums') . " WHERE parent_forum=$forum";
            if ($result = $xoopsDB->query($sql)) {
                if ($xoopsDB->getRowsNum($result) == 0) {
                    $sql_move = "UPDATE " . $xoopsDB->prefix('bb_forums') . " SET cat_id=" . $_POST['cat_id'] . ", parent_forum=" . $_POST['parent_forum'] . " WHERE forum_id=$forum";
                    if ($xoopsDB->query($sql_move))
                        $bMoved = 1;
                } else {
                    // Are we trying to move this
                    if ($_POST['parent_forum'] != 0) {
                        $errString = "This forum cannot be made as a subforum.<br />Multi-level subforums are not allowed.";
                    } else {
                        $sql_move = "UPDATE " . $xoopsDB->prefix('bb_forums') . " SET cat_id=" . $_POST['cat_id'] . ", parent_forum=" . $_POST['parent_forum'] . " WHERE forum_id=$forum";
                        if ($xoopsDB->query($sql_move)) {
                            $bMoved = 1;
                            while ($row = $xoopsDB->fetchArray($result)) {
                                $sql_move_sub = "UPDATE " . $xoopsDB->prefix('bb_forums') . " SET cat_id=" . $_POST['cat_id'] . " WHERE forum_id=" . $row['forum_id'];
                                $xoopsDB->query($sql_move_sub);
                            }
                        }
                    }
                }
            }

            $sql = "UPDATE " . $xoopsDB->prefix('bb_forums') . " SET cat_id=" . $_POST['cat_id'] . ", parent_forum=" . $_POST['parent_forum'] . " WHERE forum_id=$forum";
            if ($result = $xoopsDB->query($sql)) {
                $bMoved = 1;
            }

            if (!$bMoved) {
                redirect_header('./admin_forum_manager.php?op=manage', 2, _AM_NEWBB_MSG_ERR_FORUM_MOVED . '<br />' . $errString);
            } else {
                redirect_header('./admin_forum_manager.php?op=manage', 2, _AM_NEWBB_MSG_FORUM_MOVED);
            }
            die();
        } else {
            newbb_adminmenu(2, "");

            if (isset($_GET['forum'])) $forum = intval($_GET['forum']);
            if (isset($_POST['forum'])) $forum = intval($_POST['forum']);
            $forum = &$forum_handler->get($forum);
            $name = $myts->htmlSpecialChars($forum->getVar('forum_name'));
            $desc = $myts->htmlSpecialChars($forum->getVar('forum_desc'));

            $cat_list = "<select name=\"cat_id\" onchange='document.forummove.submit();'>";
            $cat_list .= '<option value="0">' . _AM_NEWBB_SELECT . '</option>';

            $category_handler = &xoops_getmodulehandler('category', 'newbb');
            $categories = $category_handler->getAllCats();

            foreach ($categories as $key => $category) {
                $selected = '';
                if (isset($_POST['cat_id']) && $_POST['cat_id'] == $category->getVar('cat_id')) $selected = 'selected';
                $cat_list .= "<option value='" . $category->getVar('cat_id') . "' $selected>" . $category->getVar('cat_title') . "</option>";
            }
            $cat_list .= '</select>';

            $sf_list = '<select name="parent_forum">';
            $sf_list .= '<option value="0" selected>' . _AM_NEWBB_SELECT . '</option>';
            $sf_list .= '<option value="0">' . _NONE . '</option>';
            if (isset($_POST['cat_id'])) {
                $sql = "SELECT * FROM " . $xoopsDB->prefix('bb_forums') . " WHERE cat_id=" . $_POST['cat_id'] . " AND forum_id!=$forum->getVar('forum_id')";
                if ($result = $xoopsDB->query($sql))
                    while ($row = $xoopsDB->fetchArray($result)) {
                    $sf_list .= "<option value='" . $row['forum_id'] . "'>" . $row['forum_name'] . "</option>";
                }
            }
            $sf_list .= '</select>';

            echo '<form action="./admin_forum_manager.php" method="post" name="forummove" id="forummove">';
            echo '<input type="hidden" name="op" value="moveforum" />';
            echo '<input type="hidden" name="forum" value=' . $forum->getVar('forum_id') . ' />';
            echo '<table border="0" cellpadding="1" cellspacing="0" align="center" valign="top" width="95%"><tr>';
            echo '<td class="bg2">';
            echo '<table border="0" cellpadding="1" cellspacing="1" width="100%"><tr class="bg3">';
            echo '<td align="center" colspan="2"><strong>' . _AM_NEWBB_MOVETHISFORUM . '</strong></td>';
            echo '</tr>';
            echo '<tr><td class="bg1">' . _AM_NEWBB_MOVE2CAT . '</td><td class="bg1">' . $cat_list . '</td></tr>';
            echo '<tr><td class="bg1">' . _AM_NEWBB_MAKE_SUBFORUM_OF . '</td><td class="bg1">' . $sf_list . '</td></tr>';
            echo '<tr><td colspan="2" align="center"><input type="submit" name="save" value=' . _GO . ' class="button" /></td></tr>';
            echo '</form></table></td></tr></table>';
        }
        break;

    case 'sync':
        if (isset($_POST['submit'])) {
            flush();
            sync(null, "all forums");
            flush();
            sync(null, "all topics");
            redirect_header("./index.php", 1, _AM_NEWBB_SYNCHING);
            exit();
        } else {
            newbb_adminmenu(3, _AM_NEWBB_SYNCFORUM);
            echo '<fieldset><legend style="font-weight: bold; color: #900;">' . _AM_NEWBB_SYNCFORUM . '</legend>';
            echo '<br /><br /><table width="100%" border="0" cellspacing="1" class="outer"><tr><td class="odd">';
            echo '<table border="0" cellpadding="1" cellspacing="1" width="100%">';
            echo '<tr class="bg3" align="left">';
            echo '<td>' . _AM_NEWBB_CLICKBELOWSYNC . '</td>';
            echo '</tr>';
            echo '<tr class="bg1" align="center">';
            echo '<td><form action="admin_forum_manager.php" method="post">';
            echo '<input type="hidden" name="op" value="sync"><input type="submit" name="submit" value=' . _AM_NEWBB_SYNCFORUM . ' /></form></td>';
            echo '</td>';
            echo '</tr>';
            echo '</table></td></tr></table>';
        }

        echo "</fieldset>";
        break;

    case "moderators":
        if ($forum) {
            $ff = &$forum_handler->get($forum);
        } else {
            redirect_header("admin_forum_manager.php?op=mod&amp;forum=$forum", 2, _AM_NEWBB_FORUM_ERROR);
            exit();
        }
        $cur_moderators = explode(' ', $ff->getVar('forum_moderator'));
        $new_moderators = array();
        $upd_moderators = array();
        foreach($cur_moderators as $moderator) {
            $new_moderators[$moderator] = 1;
        }
        if (isset($_POST['forum_moderator'])) {
            $add_moderators = $_POST['forum_moderator'];
            foreach($add_moderators as $moderator) {
                $new_moderators[$moderator] = 1;
            }
        }
        if (isset($_POST['rem_moderator'])) {
            $rem_moderators = $_POST['rem_moderator'];
            foreach($rem_moderators as $moderator) {
                $new_moderators[$moderator] = 0;
            }
        }
        foreach($new_moderators as $moderator => $val) {
            if ($val > 0) $upd_moderators[$moderator] = 1;
        }
        $forum_moderators = implode(' ', array_keys($upd_moderators));
        if ($ff->updateModerators($forum_moderators)) {
            redirect_header("admin_forum_manager.php?op=mod&amp;forum=$forum", 2, _AM_NEWBB_FORUMUPDATE);
            exit();
        } else {
            redirect_header("admin_forum_manager.php?op=mod&amp;forum=$forum", 2, _AM_NEWBB_FORUM_ERROR);
            exit();
        }

        break;

    case "saveall":

        if ($forum) {
            $ff = &$forum_handler->get($forum);
            $message = _AM_NEWBB_FORUMUPDATE;
        } else {
            $ff = &$forum_handler->create();
            $message = _AM_NEWBB_FORUMCREATED;
        }

        $ff->setVar('forum_name', $_POST['forum_name']);
        $ff->setVar('forum_desc', $_POST['forum_desc']);
        $ff->setVar('forum_order', $_POST['forum_order']);
        $ff->groups_forum_access = $_POST['groups_forum_access'];
        $ff->groups_forum_can_post = $_POST['group_ids'];
        $ff->groups_forum_can_view = $_POST['group_ids'];
        $ff->groups_forum_can_reply = $_POST['group_ids'];
        $ff->groups_forum_can_edit = $_POST['group_ids'];
        $ff->groups_forum_can_delete = $_POST['group_ids'];
        $ff->groups_forum_can_addpoll = $_POST['group_ids'];
        $ff->groups_forum_can_vote = $_POST['group_ids'];

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?