From d4ca9eb8096f811737f7a094e3ff2571889676b0 Mon Sep 17 00:00:00 2001 From: Bart van Bragt Date: Wed, 15 Aug 2001 22:13:50 +0000 Subject: [PATCH] Parial forum admin, add/edit forum is working git-svn-id: file:///svn/phpbb/trunk@886 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/admin/admin_forums.php | 196 ++++++++++++++---- phpBB/templates/PSO/admin/forum_edit_body.tpl | 52 +++++ phpBB/templates/PSO/admin/forums_body.tpl | 30 ++- 3 files changed, 224 insertions(+), 54 deletions(-) create mode 100644 phpBB/templates/PSO/admin/forum_edit_body.tpl 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=
$sql
"; + 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=
$sql
"; + 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 .= "\n"; + } + $forumstatus == FORUM_LOCKED ? $forumlocked = "selected" : $forumunlocked = "selected"; + $statuslist = "\n"; + $statuslist .= "\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; } - -$template->set_filenames(array( - "body" => "admin/forums_body.tpl") -); - -$viewcat = (!empty($HTTP_GET_VARS['viewcat'])) ? $HTTP_GET_VARS['viewcat'] : -1; - // // Start page proper // +$template->set_filenames(array( + "body" => "admin/forums_body.tpl") +); + $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" => "Edit/Delete", + "FORUM_UP" => "Move up", + "FORUM_DOWN" => "Move down") ); } // for ... forums $template->assign_block_vars("catrow.forumrow", array( - "S_NEWFORUM" => " ") + "S_ADDFORUM" => '
+ + + + ', + "S_ADDFORUM_ENDFORM" => "
") ); } // for ... categories + // Extra 'category' to create new categories at the end of the list. $template->assign_block_vars("catrow", array( - "S_NEWCAT" => " ") + "S_ADDCAT" => '
+ + + ', + "S_ADDCAT_ENDFORM" => "
") ); }// 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 = "Add category
\n"; - -$template->assign_vars(array( - "S_FORMSTART" => "
", - "S_FORMEND" => "
" - ) -); - // // Generate the page // diff --git a/phpBB/templates/PSO/admin/forum_edit_body.tpl b/phpBB/templates/PSO/admin/forum_edit_body.tpl new file mode 100644 index 0000000000..9fbcdb23f4 --- /dev/null +++ b/phpBB/templates/PSO/admin/forum_edit_body.tpl @@ -0,0 +1,52 @@ +
+ +

Edit Forum

+ +

The form below will allow you to customize all the general board options. For User and Forum configurations use the related links on the left hand side.

+ +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
General Forum Settings
Forum Name:
Description:
Category: + +
Forum Status: + +
+ + + +
+ +
+ +
diff --git a/phpBB/templates/PSO/admin/forums_body.tpl b/phpBB/templates/PSO/admin/forums_body.tpl index 413c6db87a..a08345c53b 100644 --- a/phpBB/templates/PSO/admin/forums_body.tpl +++ b/phpBB/templates/PSO/admin/forums_body.tpl @@ -1,32 +1,26 @@ +

Use this page to manage your forums and categories

+ + {S_FORMSTART}
- - - - + + {catrow.S_ADDCAT_ENDFORM} - - - - - - + + + {catrow.forumrow.S_ADDFORUM_ENDFORM} + + + +
  -  {L_FORUM}  -  {L_TOPICS}  -  {L_POSTS}  -  {L_LASTPOST}  -  {L_MODERATOR}  -
{catrow.CAT_DESC} {catrow.S_NEWCAT}
{catrow.CAT_DESC}{catrow.S_ADDCAT}
{catrow.forumrow.FOLDER}{catrow.forumrow.S_NEWFORUM}{catrow.forumrow.FORUM_NAME}
{catrow.forumrow.FORUM_DESC}
{catrow.forumrow.TOPICS}{catrow.forumrow.POSTS}{catrow.forumrow.LAST_POST}{catrow.forumrow.MODERATORS}
{catrow.forumrow.FOLDER}{catrow.forumrow.S_ADDFORUM}{catrow.forumrow.S_NEWFORUM}{catrow.forumrow.FORUM_NAME}
{catrow.forumrow.FORUM_DESC}
{catrow.forumrow.FORUM_EDIT}{catrow.forumrow.FORUM_UP} {catrow.forumrow.FORUM_DOWN}{catrow.forumrow.LAST_POST}{catrow.forumrow.MODERATORS}
- -{S_FORMEND}