query("INSERT INTO `forums` SET $values, `lastpostid` = '0'");
if (mysql_error()) die(mysql_error());
$id = mysql_insert_id();
trigger_error("Created new forum \"$forumtitle\" with ID $id", E_USER_NOTICE);
} else {
$sql->query("UPDATE `forums` SET $values WHERE `id` = '". $_GET['id'] ."'");
if (mysql_error()) die(mysql_error());
$id = $_GET['id'];
trigger_error("Edited forum ID $id", E_USER_NOTICE);
}
if ($_POST['edit'])
header("Location: ?id=". $id . $prevtext);
else
header("Location: ?".substr($prevtext, 1));
die();
}
elseif ($_POST['delete']) {
if (!$isadmin)
die("You aren't an admin!");
$id = intval($_GET['delete']);
$mergeid = intval($_POST['mergeid']);
if (!isset($_GET['delete']) || $id < 0)
die("No forum selected to delete.");
if (!isset($_POST['mergeid']) || $mergeid < 0)
die("No forum selected to merge to.");
$counts = $sql->fetchq("SELECT `numthreads`, `numposts` FROM `forums` WHERE `id`='$id'");
$sql->query("UPDATE `threads` SET `forum`='$mergeid' WHERE `forum`='$id'") or die(mysql_error());
$sql->query("UPDATE `announcements` SET `forum`='$mergeid' WHERE `forum`='$id'") or die(mysql_error());
$sql->query("DELETE FROM `forummods` WHERE `forum`='$id'") or die(mysql_error());
$sql->query("DELETE FROM `forums` WHERE `id`='$id'") or die(mysql_error());
$lastthread = $sql->fetchq("SELECT * FROM `threads` WHERE `forum`='$mergeid' ORDER BY `lastpostdate` DESC LIMIT 1");
$sql->query("UPDATE `forums` SET
`numthreads`=`numthreads`+'{$counts['numthreads']}',
`numposts`=`numposts`+'{$counts['numposts']}',
`lastpostdate`='{$lastthread['lastpostdate']}',
`lastpostuser`='{$lastthread['lastposter']}',
`lastpostid`='{$lastthread['id']}'
WHERE `id`='$mergeid'") or die(mysql_error());
if (isset($_GET['preview']))
$prevtext = "preview=" . $_GET['preview'];
trigger_error("DELETED forum ID $id; merged into forum ID $mergeid", E_USER_NOTICE);
header("Location: ?$prevtext");
die();
}
$windowtitle = "Editing Forum List";
require_once('lib/layout.php');
print "$header ";
admincheck();
print adminlinkbar('admin-editforums.php');
foreach($pwlnames as $pwl=>$pwlname) {
if ($pwl < 0) continue;
$powers[] = $pwlname;
}
$powers[] = '[no access]';
$pollstyles = array(-2 => 'Disallowed',
-1 => 'Normal',
0 => 'Force Regular',
1 => 'Force Influence');
if (isset($_GET['delete'])) {
$forum = intval($_GET['delete']);
$forums[-1] = "Choose a forum to merge into...";
$forumquery = $sql->query("SELECT id,title FROM forums ORDER BY catid,forder");
while ($f = $sql->fetch($forumquery, MYSQL_ASSOC))
$forums[$f['id']] = $f['title'];
if (array_key_exists($forum, $forums)) {
$fname = $forums[$forum];
unset($forums[$forum]);
if (isset($_GET['preview']))
$prevtext = "&preview=" . $_GET['preview'];
echo "
";
}
}
else if (isset($_GET['id'])) {
$catquery = $sql->query("SELECT id,name FROM categories ORDER BY id");
while ($catres = $sql->fetch($catquery))
$categories[$catres['id']] = $catres['name'];
$forum = $sql->fetchq("SELECT * FROM `forums` WHERE `id` = '". $_GET['id'] . "'", MYSQL_ASSOC);
if (!$forum)
$_GET['id'] = -1;
if ($forum && !array_key_exists($forum['catid'], $categories))
$categories[$forum['catid']] = "Unknown category #" . $forum['catid'];
if (isset($_GET['preview']))
$prevtext = "&preview=" . $_GET['preview'];
echo "
";
}
$forumlist="
$tccellh width=90px>Actions
$tccellh>Forum
$tccellh width=80>Threads
$tccellh width=80>Posts
$tccellh width=15%>Last post
";
if (isset($_GET['preview'])) {
$forumquery = $sql->query("SELECT f.*,u.id AS uid,name,sex,powerlevel FROM forums f LEFT JOIN users u ON f.lastpostuser=u.id WHERE (!minpower OR minpower<=$_GET[preview]) AND f.hidden = '0' ORDER BY catid,forder");
$catquery = $sql->query("SELECT id,name FROM categories WHERE (!minpower OR minpower<=$_GET[preview]) ORDER BY id");
$prevtext = "&preview=" . $_GET['preview'];
}
else {
$forumquery = $sql->query("SELECT f.*,u.id AS uid,name,sex,powerlevel FROM forums f LEFT JOIN users u ON f.lastpostuser=u.id ORDER BY catid,forder");
$catquery = $sql->query("SELECT id,name FROM categories ORDER BY id");
}
$modquery = $sql->query("SELECT u.id,name,sex,powerlevel,forum FROM users u INNER JOIN forummods m ON u.id=m.user ORDER BY name");
$categories = array();
$forums = array();
$mods = array();
while ($res = $sql->fetch($catquery))
$categories[] = $res;
while ($res = $sql->fetch($forumquery))
$forums[] = $res;
while ($res = $sql->fetch($modquery))
$mods[] = $res;
$forumlist .= "