diff options
Diffstat (limited to 'phpBB/admin/admin_forums.php')
-rw-r--r-- | phpBB/admin/admin_forums.php | 288 |
1 files changed, 126 insertions, 162 deletions
diff --git a/phpBB/admin/admin_forums.php b/phpBB/admin/admin_forums.php index fbee871478..83dc2c43b8 100644 --- a/phpBB/admin/admin_forums.php +++ b/phpBB/admin/admin_forums.php @@ -22,191 +22,155 @@ * ***************************************************************************/ -if( $setmodules == 1 ) +if($setmodules==1) { - $filename = basename(__FILE__); - $module['Forums']['Add_new'] = "$filename?mode=add"; - $module['Forums']['Manage'] = "$filename?mode=manage"; - - return; + $file = basename(__FILE__); + $module['General']['forums'] = $file; + return; } -$phpbb_root_path = "./../"; -include($phpbb_root_path . 'extension.inc'); -include($phpbb_root_path . 'common.'.$phpEx); - -// -// Start session management // -$userdata = session_pagestart($user_ip, PAGE_INDEX, $session_length); -init_userprefs($userdata); +// Include required files, get $phpEx and check permissions // -// End session management -// -if( !$userdata['session_logged_in'] ) +require('pagestart.inc'); + + +if($HTTP_POST_VARS['newcat'] != "") { - header("Location: ../login.$phpEx?forward_page=admin/"); + $mode = 'newcat'; + $catname = $HTTP_POST_VARS['catname']; } -else if( $userdata['user_level'] != ADMIN ) +if(isset($HTTP_POST_VARS['newforum'])) { - message_die(GENERAL_MESSAGE, $lang['Not_admin']); + $mode = 'newcat'; + $forumname = $HTTP_POST_VARS['forumname']; + list($cat_id) = $HTTP_POST_VARS['newforum']; } + -include('page_header_admin.'.$phpEx); -$mode = ($HTTP_GET_VARS['mode']) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode']; +$template_header = "admin/page_header.tpl"; -switch($mode) +if(isset($mode)) { - case 'manage': + switch($mode) + { + case 'newcat': + print "Newcat: $catname"; + break; + case 'newforum': + print "Newforum: cat = $cat_id name = $forumname"; + break; + } - $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"; +$template->set_filenames(array( + "body" => "admin/forums_body.tpl") +); - 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) ) +$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 + 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.* + 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); + + // + // Okay, let's build the index + // + $gen_cat = array(); + + + for($i = 0; $i < $total_categories; $i++) + { + $cat_id = $category_rows[$i]['cat_id']; + + for($j = 0; $j < $total_forums; $j++) + { + $forum_id = $forum_rows[$j]['forum_id']; + + if(!$gen_cat[$cat_id]) { - message_die(GENERAL_MESSAGE, $lang['No_forums']); + $template->assign_block_vars("catrow", array( + "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"), + "ADDFORUM" => "Add Forum") + ); + $gen_cat[$cat_id] = 1; } - $forum_rows = $db->sql_fetchrowset($q_forums); // - // Obtain list of moderators of each forum + // This should end up in the template using IF...ELSE...ENDIF // - $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); + $row_color == "#DDDDDD" ? $row_color = "#CCCCCC" : $row_color = "#DDDDDD"; + + $template->assign_block_vars("catrow.forumrow", array( + "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'])) + ); + } // 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'>") + ); + } // for ... categories + $template->assign_block_vars("catrow", array( + "S_NEWCAT" => "<INPUT TYPE='text' NAME='catname'> <INPUT TYPE='submit' NAME='newcat' VALUE='New Category'>") + ); - 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']; - } - } +}// if ... total_categories +else +{ + message_die(GENERAL_MESSAGE, "There are no Categories or Forums on this board", "", __LINE__, __FILE__, $sql); +} - 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 .= "<br />"; - } - - if( $forum_mods_single_user[$forum_id][$mods]) - { - $moderators_links .= "<a href=\"" . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $forum_mods_id[$forum_id][$mods]) . "\">" . $forum_mods_name[$forum_id][$mods] . "</a>"; - } - else - { - $moderators_links .= "<a href=\"" . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $forum_mods_id[$forum_id][$mods]) . "\">" . $forum_mods_name[$forum_id][$mods] . "</a>"; - } - - $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; +$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 +// +$template->pparse("body"); + +// +// Page Footer +// include('page_footer_admin.'.$phpEx); -?>
\ No newline at end of file +?> |