diff options
author | Paul S. Owen <psotfx@users.sourceforge.net> | 2001-02-24 17:18:53 +0000 |
---|---|---|
committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2001-02-24 17:18:53 +0000 |
commit | a797580600b98fab59a91f3f09c809ec13f65052 (patch) | |
tree | 3a1d84a3d601f19caf0a42e57c3ad5393623ef23 /phpBB | |
parent | 7ee58291852f86696c3c02bec35560c76310787b (diff) | |
download | forums-a797580600b98fab59a91f3f09c809ec13f65052.tar forums-a797580600b98fab59a91f3f09c809ec13f65052.tar.gz forums-a797580600b98fab59a91f3f09c809ec13f65052.tar.bz2 forums-a797580600b98fab59a91f3f09c809ec13f65052.tar.xz forums-a797580600b98fab59a91f3f09c809ec13f65052.zip |
viewcat now works also modified moderators construction, now faster
git-svn-id: file:///svn/phpbb/trunk@45 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/index.php | 161 |
1 files changed, 104 insertions, 57 deletions
diff --git a/phpBB/index.php b/phpBB/index.php index a1c59c6211..aa79cd1eea 100644 --- a/phpBB/index.php +++ b/phpBB/index.php @@ -31,6 +31,11 @@ $newest_user = $newest_userdata["username"]; $newest_uid = $newest_userdata["user_id"]; $users_browsing = "4 Users"; +if(empty($viewcat)) +{ + $viewcat = -1; +} + $pagetype = "index"; $page_title = "Forum Index"; include('page_header.'.$phpEx); @@ -38,10 +43,15 @@ include('page_header.'.$phpEx); $template->set_block("body", "catrow", "cats"); $template->set_block("catrow", "forumrow", "forums"); -$sql = "SELECT c.* FROM ".CATEGORIES_TABLE." c, ".FORUMS_TABLE." f WHERE f.cat_id=c.cat_id GROUP BY c.cat_id ORDER BY c.cat_order"; +$sql = "SELECT c.* + FROM ".CATEGORIES_TABLE." c, ".FORUMS_TABLE." f + WHERE f.cat_id=c.cat_id + GROUP BY c.cat_id + ORDER BY c.cat_order"; if(!$q_categories = $db->sql_query($sql)) { - error_die($db, QUERY_ERROR); + $db_error = $db->sql_error(); + error_die(QUERY_ERROR, $db_error["message"]); } $total_categories = $db->sql_numrows(); @@ -49,78 +59,115 @@ $total_categories = $db->sql_numrows(); if($total_categories) { $category_rows = $db->sql_fetchrowset($q_categories); - $sql = "SELECT f.*, u.username, p.post_time FROM ".FORUMS_TABLE." f LEFT JOIN ".POSTS_TABLE." p ON p.post_id = f.forum_last_post_id LEFT JOIN ".USERS_TABLE." u ON u.user_id = p.poster_id ORDER BY f.forum_id"; + + $limit_forums = ""; + if($viewcat != -1) + { + $limit_forums = " WHERE f.cat_id = $viewcat "; + } + $sql = "SELECT f.*, u.username, p.post_time + FROM ".FORUMS_TABLE." f + LEFT JOIN ".POSTS_TABLE." p ON p.post_id = f.forum_last_post_id + LEFT JOIN ".USERS_TABLE." u ON u.user_id = p.poster_id + $limit_forums + ORDER BY f.forum_id"; if(!$q_forums = $db->sql_query($sql)) { error_die($db, QUERY_ERROR); } + $sql = "SELECT f.forum_id, u.username, u.user_id + FROM ".FORUMS_TABLE." f, ".USERS_TABLE." u, ".FORUM_MODS_TABLE." m + WHERE m.forum_id = f.forum_id + AND u.user_id = m.user_id + ORDER BY f.forum_id"; + if(!$q_forum_mods = $db->sql_query($sql)) + { + error_die($db, QUERY_ERROR); + } + $total_forums = $db->sql_numrows($q_forums); $forum_rows = $db->sql_fetchrowset($q_forums); + $forum_mods_list = $db->sql_fetchrowset($q_forum_mods); + for($i = 0; $i < count($forum_mods_list); $i++) + { + $forum_mods[$forum_mods_list[$i]["forum_id"]]["username"][] = $forum_mods_list[$i]["username"]; + $forum_mods[$forum_mods_list[$i]["forum_id"]]["user_id"][] = $forum_mods_list[$i]["user_id"]; + } + for($i = 0; $i < $total_categories; $i++) { $template->set_var(array("CAT_ID" => $category_rows[$i]["cat_id"], "PHP_SELF" => $PHP_SELF, "CAT_DESC" => stripslashes($category_rows[$i]["cat_title"]))); $template->parse("cats", "catrow", true); - + + $created_line = false; for($j = 0; $j < $total_forums; $j++) { - if($forum_rows[$j]["cat_id"] == $category_rows[$i]["cat_id"]) + if( ( $forum_rows[$j]["cat_id"] == $category_rows[$i]["cat_id"] && $viewcat == -1 ) || + ( $category_rows[$i]["cat_id"] == $viewcat) ) { - $folder_image = "<img src=\"images/folder.gif\">"; - $posts = $forum_rows[$j]["forum_posts"]; - $topics = $forum_rows[$j]["forum_topics"]; - if($forum_rows[$j]["username"] != "" && $forum_rows[$j]["post_time"] > 0){ - $last_post_user = $forum_rows[$j]["username"]; - $last_post_time = date($date_format, $forum_rows[$j]["post_time"]); - $last_post = $last_post_time." by ".$last_post_user; - } - else - { - $last_post = "No Posts"; - } - - $moderators = get_moderators($db, $forum_rows[$j]["forum_id"]); - unset($moderators_links); - for($mods = 0; $mods < count($moderators); $mods++) - { - if(isset($moderators_links)) - { - $moderators_links .= ", "; - } - if(!($mods % 2) && $mods != 0) - { - $moderators_links .= "<br>"; - } - $moderators_links .= "<a href=\"profile.$phpEx?mode=viewprofile&user_id=".$moderators[$mods]["id"]."\">".$moderators[$mods]["name"]."</a>"; - } - - if($row_color == "#DDDDDD") - { - $row_color = "#CCCCCC"; - } - else - { - $row_color = "#DDDDDD"; - } - $template->set_var(array("FOLDER" => $folder_image, - "FORUM_NAME" => stripslashes($forum_rows[$j]["forum_name"]), - "FORUM_ID" => $forum_rows[$j]["forum_id"], - "FORUM_DESC" => stripslashes($forum_rows[$j]["forum_desc"]), - "ROW_COLOR" => $row_color, - "PHPEX" => $phpEx, - "POSTS" => $posts, - "TOPICS" => $topics, - "LAST_POST" => $last_post, - "MODERATORS" => $moderators_links)); - - $template->parse("forums", "forumrow", true); - } // if ... then - } // for total forums - $template->parse("cats", "forums", true); - $template->set_var("forums", ""); + + $folder_image = "<img src=\"images/folder.gif\">"; + $posts = $forum_rows[$j]["forum_posts"]; + $topics = $forum_rows[$j]["forum_topics"]; + if($forum_rows[$j]["username"] != "" && $forum_rows[$j]["post_time"] > 0) + { + $last_post_user = $forum_rows[$j]["username"]; + $last_post_time = date($date_format, $forum_rows[$j]["post_time"]); + $last_post = $last_post_time." by ".$last_post_user; + } + else + { + $last_post = "No Posts"; + } + + if($row_color == "#DDDDDD") + { + $row_color = "#CCCCCC"; + } + else + { + $row_color = "#DDDDDD"; + } + + unset($moderators_links); + for($mods = 0; $mods < count($forum_mods[$forum_rows[$j]["forum_id"]]); $mods++) + { + if(isset($moderators_links)) + { + $moderators_links .= ", "; + } + if(!($mods % 2) && $mods != 0) + { + $moderators_links .= "<br>"; + } + $moderators_links .= "<a href=\"profile.$phpEx?mode=viewprofile&user_id=".$forum_mods[$forum_rows[$j]["forum_id"]]["user_id"][$mods]."\">".$forum_mods[$forum_rows[$j]["forum_id"]]["username"][$mods]."</a>"; + } + + $template->set_var(array("FOLDER" => $folder_image, + "FORUM_NAME" => stripslashes($forum_rows[$j]["forum_name"]), + "FORUM_ID" => $forum_rows[$j]["forum_id"], + "FORUM_DESC" => stripslashes($forum_rows[$j]["forum_desc"]), + "ROW_COLOR" => $row_color, + "PHPEX" => $phpEx, + "POSTS" => $forum_rows[$j]["forum_posts"], + "TOPICS" => $forum_rows[$j]["forum_topics"], + "LAST_POST" => $last_post, + "MODERATORS" => $moderators_links)); + + $template->parse("forums", "forumrow", true); + + $created_line = true; + } + } + if($created_line) + { + $template->parse("cats", "forums", true); + $template->set_var("forums", ""); + } } // for ... categories |