aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/admin/admin_forums.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/admin/admin_forums.php')
-rw-r--r--phpBB/admin/admin_forums.php194
1 files changed, 159 insertions, 35 deletions
diff --git a/phpBB/admin/admin_forums.php b/phpBB/admin/admin_forums.php
index 83dc2c43b8..a525134de3 100644
--- a/phpBB/admin/admin_forums.php
+++ b/phpBB/admin/admin_forums.php
@@ -29,52 +29,171 @@ if($setmodules==1)
return;
}
+function check_forum_name($forumname)
+{
+ global $db;
+
+ $sql = "SELECT * from " . FORUMS_TABLE . "WHERE forum_name = '$forumname'";
+ $result = $db->sql_query($sql);
+ if( !$result )
+ {
+ message_die(GENERAL_ERROR, "Couldn't get list of Categories", "", __LINE__, __FILE__, $sql);
+ }
+ if ($db->sql_num_rows($result) > 0)
+ {
+ message_die(GENERAL_ERROR, "A forum with that name already exists", "", __LINE__, __FILE__, $sql);
+ }
+}
+
//
// Include required files, get $phpEx and check permissions
//
require('pagestart.inc');
-
-if($HTTP_POST_VARS['newcat'] != "")
+if (isset($HTTP_POST_VARS['mode']))
{
- $mode = 'newcat';
- $catname = $HTTP_POST_VARS['catname'];
+ $mode = $HTTP_POST_VARS['mode'];
}
-if(isset($HTTP_POST_VARS['newforum']))
+elseif (isset($HTTP_GET_VARS['mode']))
{
- $mode = 'newcat';
- $forumname = $HTTP_POST_VARS['forumname'];
- list($cat_id) = $HTTP_POST_VARS['newforum'];
+ $mode = $HTTP_GET_VARS['mode'];
+}
+else
+{
+ unset($mode);
}
-
-
-
-$template_header = "admin/page_header.tpl";
-if(isset($mode))
+if(isset($mode)) // Are we supposed to do something?
{
switch($mode)
{
- case 'newcat':
+ case 'createforum': // Create a forum in the DB
+ // There is no problem having duplicate forum names so we won't check for it.
+ $sql = "INSERT INTO ".FORUMS_TABLE."(
+ forum_name,
+ cat_id,
+ forum_desc,
+ forum_status)
+ VALUES (
+ '".$HTTP_POST_VARS['forumname']."',
+ '".$HTTP_POST_VARS['cat_id']."',
+ '".$HTTP_POST_VARS['forumdesc']."',
+ '".$HTTP_POST_VARS['forumstatus']."')";
+ if( !$result = $db->sql_query($sql) )
+ {
+ message_die(GENERAL_ERROR, "Couldn't insert row in forums table", "", __LINE__, __FILE__, $sql);
+ }
+ print "Createforum: ". $HTTP_POST_VARS['forumname']." sql= <pre>$sql</pre>";
+ break;
+ case 'modforum': // Modify a forum in the DB
+ $sql = "UPDATE ".FORUMS_TABLE." SET
+ forum_name = '".$HTTP_POST_VARS['forumname']."',
+ cat_id = '".$HTTP_POST_VARS['cat_id']."',
+ forum_desc = '".$HTTP_POST_VARS['forumdesc']."',
+ forum_status = '".$HTTP_POST_VARS['forumstatus']."'
+ WHERE forum_id = '".$HTTP_POST_VARS['forum_id']."'";
+ if( !$result = $db->sql_query($sql) )
+ {
+ message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql);
+ }
+ print "Modforum: ". $HTTP_POST_VARS['forumname']." sql= <pre>$sql</pre>";
+ break;
+
+ case 'addcat':
print "Newcat: $catname";
break;
- case 'newforum':
- print "Newforum: cat = $cat_id name = $forumname";
+ case 'addforum':
+ case 'editforum':
+ if ($mode == 'editforum')
+ {
+ // $newmode determines if we are going to INSERT or UPDATE after posting?
+ $newmode = 'modforum';
+ $buttonvalue = 'Change';
+
+ $forum_id = $HTTP_GET_VARS['forum_id'];
+ $sql = " SELECT
+ forum_name,
+ cat_id,
+ forum_desc,
+ forum_status
+ FROM " . FORUMS_TABLE . "
+ WHERE forum_id = $forum_id";
+ if( !$result = $db->sql_query($sql) )
+ {
+ message_die(GENERAL_ERROR, "Couldn't get Forum information", "", __LINE__, __FILE__, $sql);
+ }
+ if( $db->sql_numrows($result) != 1 )
+ {
+ message_die(GENERAL_ERROR, "Forum doesn't exist or multiple forums with ID $forum_id", "", __LINE__, __FILE__);
+ }
+ $row = $db->sql_fetchrow($result);
+ $forumname = $row['forum_name'];
+ $cat_id = $row['cat_id'];
+ $forumdesc = $row['forum_desc'];
+ $forumstatus = $row['forum_status'];
+ }
+ else
+ {
+ $newmode = 'createforum';
+ $buttonvalue = 'Create';
+
+ $forumname = stripslashes($HTTP_POST_VARS['forumname']);
+ $cat_id = $HTTP_POST_VARS['cat_id'];
+ $forumdesc = '';
+ $forumstatus = FORUM_UNLOCKED;
+ $forum_id = '';
+ }
+
+
+ $sql = "SELECT * FROM " . CATEGORIES_TABLE;
+ if( !$result = $db->sql_query($sql) )
+ {
+ message_die(GENERAL_ERROR, "Couldn't get list of Categories", "", __LINE__, __FILE__, $sql);
+ }
+ $cat_list = "";
+ while( $row = $db->sql_fetchrow($result) )
+ {
+ $s = "";
+ if ($row['cat_id'] == $cat_id)
+ {
+ $s = " SELECTED";
+ }
+ $catlist .= "<OPTION VALUE=\"$row[cat_id]\"$s>$row[cat_title]</OPTION>\n";
+ }
+ $forumstatus == FORUM_LOCKED ? $forumlocked = "selected" : $forumunlocked = "selected";
+ $statuslist = "<OPTION VALUE=\"".FORUM_UNLOCKED."\" $forumunlocked>Unlocked</OPTION>\n";
+ $statuslist .= "<OPTION VALUE=\"".FORUM_LOCKED."\" $forumlocked>Locked</OPTION>\n";
+
+ $template->set_filenames(array(
+ "body" => "admin/forum_edit_body.tpl")
+ );
+ $template->assign_vars(array(
+ 'FORUMNAME' => $forumname,
+ 'DESCRIPTION' => $forumdesc,
+ 'S_CATLIST' => $catlist,
+ 'S_STATUSLIST' => $statuslist,
+ 'S_FORUMID' => $forum_id,
+ 'S_NEWMODE' => $newmode,
+ 'BUTTONVALUE' => $buttonvalue)
+ );
+ $template->pparse("body");
+
+
break;
+ default:
+ print "Oops! Wrong mode..";
}
-
+ include('page_footer_admin.'.$phpEx);
+ exit;
}
-
+//
+// Start page proper
+//
$template->set_filenames(array(
"body" => "admin/forums_body.tpl")
);
-$viewcat = (!empty($HTTP_GET_VARS['viewcat'])) ? $HTTP_GET_VARS['viewcat'] : -1;
-
-//
-// Start page proper
-//
$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f
WHERE f.cat_id = c.cat_id
@@ -124,7 +243,7 @@ if($total_categories = $db->sql_numrows($q_categories))
"CAT_ID" => $cat_id,
"CAT_DESC" => stripslashes($category_rows[$i]['cat_title']),
"U_VIEWCAT" => append_sid("index.$phpEx?viewcat=$cat_id"),
- "U_ADDFORUM" => append_sid("$PHPSELF?mode=addforum&cat=$cat_id"),
+ "U_ADDFORUM" => append_sid("$PHPSELF?mode=addforum&cat_id=$cat_id"),
"ADDFORUM" => "Add Forum")
);
$gen_cat[$cat_id] = 1;
@@ -139,15 +258,28 @@ if($total_categories = $db->sql_numrows($q_categories))
"FORUM_NAME" => stripslashes($forum_rows[$j]['forum_name']),
"FORUM_DESC" => stripslashes($forum_rows[$j]['forum_desc']),
"ROW_COLOR" => $row_color,
- "U_VIEWFORUM" => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&" . $forum_rows[$j]['forum_posts']))
+ "U_VIEWFORUM" => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&" . $forum_rows[$j]['forum_posts']),
+ "FORUM_EDIT" => "<a href='$PHPSELF?mode=editforum&forum_id=$forum_id'>Edit/Delete</a>",
+ "FORUM_UP" => "<a href='$PHPSELF?mode=order&pos=1&forum_id=$forum_id'>Move up</a>",
+ "FORUM_DOWN" => "<a href='$PHPSELF?mode=order&pos=-1&forum_id=$forum_id'>Move down</a>")
);
} // for ... forums
$template->assign_block_vars("catrow.forumrow", array(
- "S_NEWFORUM" => "<INPUT TYPE='text' NAME='forumname'> <INPUT TYPE='submit' NAME='newforum[$cat_id]' VALUE='New Forum'>")
+ "S_ADDFORUM" => '<FORM METHOD="POST" ACTION="'.append_sid($PHP_SELF).'">
+ <INPUT TYPE="text" NAME="forumname">
+ <INPUT TYPE="hidden" NAME="cat_id" VALUE="'.$cat_id.'">
+ <INPUT TYPE="hidden" NAME="mode" VALUE="addforum">
+ <INPUT TYPE="submit" NAME="submit" VALUE="Create new Forum">',
+ "S_ADDFORUM_ENDFORM" => "</FORM>")
);
} // for ... categories
+ // Extra 'category' to create new categories at the end of the list.
$template->assign_block_vars("catrow", array(
- "S_NEWCAT" => "<INPUT TYPE='text' NAME='catname'> <INPUT TYPE='submit' NAME='newcat' VALUE='New Category'>")
+ "S_ADDCAT" => '<FORM METHOD="POST" ACTION="'.append_sid($PHP_SELF).'">
+ <INPUT TYPE="text" NAME="catname">
+ <INPUT TYPE="hidden" NAME="mode" VALUE="addcat">
+ <INPUT TYPE="submit" NAME="submit" VALUE="Create new category">',
+ "S_ADDCAT_ENDFORM" => "</FORM>")
);
}// if ... total_categories
@@ -156,14 +288,6 @@ else
message_die(GENERAL_MESSAGE, "There are no Categories or Forums on this board", "", __LINE__, __FILE__, $sql);
}
-$othertext = "<a href='$PHPSELF?mode=addcat'>Add category</a><br>\n";
-
-$template->assign_vars(array(
- "S_FORMSTART" => "<FORM METHOD='post' ACTION='$PHP_SELF'>",
- "S_FORMEND" => "</FORM>"
- )
-);
-
//
// Generate the page
//