From 981b7056bb2212bbe228581e77372a08d2baa33f Mon Sep 17 00:00:00 2001 From: James Atkinson Date: Thu, 2 Aug 2001 08:36:38 +0000 Subject: Beginnings of the forum managament code (no functionality yet). Also a bit of a fix to view topic so it dosan't screw up when HTML is turned off. Still needs work, HTML works in [quote] tags... havn't tracked it down yet. Nate should look at it! git-svn-id: file:///svn/phpbb/trunk@792 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/admin/admin_forums.php | 202 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 178 insertions(+), 24 deletions(-) (limited to 'phpBB/admin/admin_forums.php') diff --git a/phpBB/admin/admin_forums.php b/phpBB/admin/admin_forums.php index e21f26972c..fbee871478 100644 --- a/phpBB/admin/admin_forums.php +++ b/phpBB/admin/admin_forums.php @@ -1,26 +1,26 @@ \n"; -print "Requested action was: $mode
\n"; +include('page_header_admin.'.$phpEx); + +$mode = ($HTTP_GET_VARS['mode']) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode']; + +switch($mode) +{ + case 'manage': + + $template->set_filenames(array( + "body" => "admin/admin_forum_manage.tpl") + ); + $template->assign_vars(array("S_MANAGE_ACTION" => append_sid("admin_forums.$phpEx"), + "L_FORUM" => $lang['Forum'], + "L_MODERATOR" => $lang['Moderator'], + "L_ORDER" => $lang['Order'], + "POST_FORUM_URL" => POST_FORUM_URL, + "L_REMOVE" => $lang['Remove'], + "L_EDIT" => $lang['Edit'], + "L_LOCK" => $lang['Lock'], + "L_UPDATE_ORDER" => $lang['Update_order'], + "L_ACTION" => $lang['Action'])); + + $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 + GROUP BY c.cat_id, c.cat_title, c.cat_order + ORDER BY c.cat_order"; + + if(!$q_categories = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query categories list", "", __LINE__, __FILE__, $sql); + } + + if($total_categories = $db->sql_numrows($q_categories)) + { + $category_rows = $db->sql_fetchrowset($q_categories); + + $sql = "SELECT f.forum_id, f.forum_name, f.forum_desc, f.cat_id, f.forum_order + FROM " . FORUMS_TABLE . " f + ORDER BY f.cat_id, f.forum_order"; + + if(!$q_forums = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query forums information", "", __LINE__, __FILE__, $sql); + } + if( !$total_forums = $db->sql_numrows($q_forums) ) + { + message_die(GENERAL_MESSAGE, $lang['No_forums']); + } + $forum_rows = $db->sql_fetchrowset($q_forums); + + // + // Obtain list of moderators of each forum + // + $sql = "SELECT aa.forum_id, g.group_name, g.group_id, g.group_single_user, u.user_id, u.username + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u + WHERE aa.auth_mod = " . TRUE . " + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + AND u.user_id = ug.user_id + ORDER BY aa.forum_id, g.group_id, u.user_id"; + + if(!$q_forum_mods = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query forum moderator information", "", __LINE__, __FILE__, $sql); + } + $forum_mods_list = $db->sql_fetchrowset($q_forum_mods); + for($i = 0; $i < count($forum_mods_list); $i++) + { + if($forum_mods_list[$i]['group_single_user'] || !$forum_mods_list[$i]['group_id']) + { + $forum_mods_single_user[$forum_mods_list[$i]['forum_id']][] = 1; + + $forum_mods_name[$forum_mods_list[$i]['forum_id']][] = $forum_mods_list[$i]['username']; + $forum_mods_id[$forum_mods_list[$i]['forum_id']][] = $forum_mods_list[$i]['user_id']; + } + else + { + $forum_mods_single_user[$forum_mods_list[$i]['forum_id']][] = 0; + + $forum_mods_name[$forum_mods_list[$i]['forum_id']][] = $forum_mods_list[$i]['group_name']; + $forum_mods_id[$forum_mods_list[$i]['forum_id']][] = $forum_mods_list[$i]['group_id']; + } + } + + for($i = 0; $i < $total_categories; $i++) + { + $cat_id = $category_rows[$i]['cat_id']; + $count = 0; + + for($j = 0; $j < $total_forums; $j++) + { + $forum_id = $forum_rows[$j]['forum_id']; + + if($forum_rows[$j]['cat_id'] == $cat_id ) + { + if(!$gen_cat[$cat_id]) + { + $template->assign_block_vars("catrow", array( + "CAT_DESC" => stripslashes($category_rows[$i]['cat_title'])) + ); + $gen_cat[$cat_id] = 1; + } + + $mod_count = 0; + $moderators_links = ""; + for($mods = 0; $mods < count($forum_mods_name[$forum_id]); $mods++) + { + if( !strstr($moderators_links, $forum_mods_name[$forum_id][$mods]) ) + { + if($mods > 0) + { + $moderators_links .= ", "; + } + + if( !($mod_count % 2) && $mod_count != 0 ) + { + $moderators_links .= "
"; + } + + if( $forum_mods_single_user[$forum_id][$mods]) + { + $moderators_links .= "" . $forum_mods_name[$forum_id][$mods] . ""; + } + else + { + $moderators_links .= "" . $forum_mods_name[$forum_id][$mods] . ""; + } + + $mod_count++; + } + } + if($moderators_links == "") + { + $moderators_links = " "; + } + + $template->assign_block_vars("catrow.forumrow", array( + "FORUM_NAME" => stripslashes($forum_rows[$j]['forum_name']), + "FORUM_DESC" => stripslashes($forum_rows[$j]['forum_desc']), + "MODERATORS" => $moderators_links, + "FORUM_ID" => $forum_id, + "FORUM_ORDER" => $forum_rows[$j]['forum_order'], + "U_VIEWFORUM" => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id")) + ); + + $count++; + } + } + } // for ... categories + } + $template->pparse("body"); + break; + +} +include('page_footer_admin.'.$phpEx); ?> \ No newline at end of file -- cgit v1.2.1