From ca9187ff41977ecbe2222897dd2f1d7cd0b1874b Mon Sep 17 00:00:00 2001 From: uid42062 Date: Thu, 5 Jul 2001 00:57:28 +0000 Subject: [PATCH] Updated sorting methods git-svn-id: file:///svn/phpbb/trunk@563 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/language/lang_english.php | 9 +- phpBB/memberlist.php | 194 ++++++++++++-------- phpBB/templates/Default/memberlist_body.tpl | 10 +- phpBB/templates/PSO/memberlist_body.tpl | 46 ++--- 4 files changed, 156 insertions(+), 103 deletions(-) diff --git a/phpBB/language/lang_english.php b/phpBB/language/lang_english.php index ae5460a082..5f1723e1bd 100755 --- a/phpBB/language/lang_english.php +++ b/phpBB/language/lang_english.php @@ -7,6 +7,7 @@ * email : support@phpbb.com * * $Id$ + * $Id$ * * ***************************************************************************/ @@ -344,8 +345,12 @@ $lang['Welcome_COPPA'] = "Your account has been created, however in complance wi // // Memberslist // -$lang['Top10'] = "List Top Ten posters"; -$lang['Alphabetical'] = "Sort Alphabetically"; +$lang['Select_sort_method'] = "Select sort method"; +$lang['Sort'] = "Sort"; +$lang['Top_Ten'] = "Top Ten Posters"; +$lang['Ascending'] = "Ascending"; +$lang['Descending'] = "Descending"; +$lang['Order'] = "Order"; // // Search <= Should be blank for now diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index fa01f19b17..481a977040 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -39,90 +39,137 @@ if(!isset($HTTP_GET_VARS['start'])) { $start = 0; } -if(isset($HTTP_GET_VARS['mode'])) + +if(isset($HTTP_POST_VARS['order'])) { + $sort_order = ($HTTP_POST_VARS['order'] == "ASC") ? "ASC" : "DESC"; +} +else if(isset($HTTP_GET_VARS['order'])) +{ + $sort_order = ($HTTP_GET_VARS['order'] == "ASC") ? "ASC" : "DESC"; +} +else +{ + $sort_order = "ASC"; +} + +if(isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode'])) +{ + $mode = (isset($HTTP_POST_VARS['mode'])) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + switch($mode) { - case 'topten': - $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email - FROM ".USERS_TABLE." - WHERE user_id <> ".ANONYMOUS." - AND user_level <> ".DELETED." - ORDER BY user_posts DESC - LIMIT 10"; + case 'joined': + $order_by = "user_regdate ASC LIMIT $start, " . $board_config['topics_per_page']; break; - case 'alpha': - $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email - FROM ".USERS_TABLE." - WHERE user_id <> ".ANONYMOUS." - AND user_level <> ".DELETED." - ORDER BY username ASC - LIMIT $start, ".$board_config['topics_per_page']; + case 'username': + $order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'location': + $order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'posts': + $order_by = "user_posts $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'email': + $order_by = "user_email $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'website': + $order_by = "user_website $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'topten': + $order_by = "user_posts $sort_order LIMIT 10"; break; default: - $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email - FROM ".USERS_TABLE." - WHERE user_id <> ".ANONYMOUS." - AND user_level <> ".DELETED." - ORDER BY user_id ASC - LIMIT $start, ".$board_config['topics_per_page']; + $order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page']; break; } } else { - $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email - FROM ".USERS_TABLE." - WHERE user_id <> ".ANONYMOUS." - AND user_level <> ".DELETED." - ORDER BY user_id ASC - LIMIT $start, ".$board_config['topics_per_page']; + $order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page']; } +$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email + FROM " . USERS_TABLE . " + WHERE user_id <> ".ANONYMOUS." + ORDER BY $order_by"; +// +// Memberlist sorting +// +$mode_types_text = array($lang['Joined'], $lang['Username'], $lang['Location'], $lang['Posts'], $lang['Email'], $lang['Website'], $lang['Top_Ten']); +$mode_types = array("joindate", "username", "location", "posts", "email", "website", "topten"); + +$select_sort_mode = ""; + +$select_sort_order = ""; + +// +// Do the query and output the table +// if(!$result = $db->sql_query($sql)) { - if(DEBUG) - { - $error = $db->sql_error(); - error_die(SQL_QUERY, "Error getting memberlist.
Reason: ".$error['message']."
Query: $sql", __LINE__, __FILE__); - } - else - { - error_die(SQL_QUERY); - } + message_die(GENERAL_ERROR, "Error getting memberlist.", "", __LINE__, __FILE__, $sql); } + if(($selected_members = $db->sql_numrows($result)) > 0) { $template->set_filenames(array( "body" => "memberlist_body.tpl", "jumpbox" => "jumpbox.tpl")); + $jumpbox = make_jumpbox(); $template->assign_vars(array( - "JUMPBOX_LIST" => $jumpbox, - "SELECT_NAME" => POST_FORUM_URL) + "JUMPBOX_LIST" => $jumpbox, + "SELECT_NAME" => POST_FORUM_URL) ); $template->assign_var_from_handle("JUMPBOX", "jumpbox"); + $template->assign_vars(array( - "U_VIEW_TOP10" => append_sid("memberlist.$phpEx?mode=topten"), - "U_SORTALPHA" => append_sid("memberlist.$phpEx?mode=alpha"), - "L_VIEW_TOP10" => $lang['Top10'], - "L_SORTALPHA" => $lang['Alphabetical'], + "PM_IMG" => $images['privmsg'], + + "L_SELECT_SORT_METHOD" => $lang['Select_sort_method'], "L_EMAIL" => $lang['Email'], "L_WEBSITE" => $lang['Website'], - "L_FROM" => $lang['From'])); + "L_FROM" => $lang['From'], + "L_ORDER" => $lang['Order'], + "L_SORT" => $lang['Sort'], + "L_SUBMIT" => $lang['Sort'], + "L_SEND_PRIV_MSG" => $lang['Private_messaging'], + + "S_MODE_SELECT" => $select_sort_mode, + "S_ORDER_SELECT" => $select_sort_order, + "S_MODE_ACTION" => append_sid("memberlist.$phpEx")) + ); $members = $db->sql_fetchrowset($result); for($x = 0; $x < $selected_members; $x++) { unset($email); + $username = stripslashes($members[$x]['username']); $user_id = $members[$x]['user_id']; $posts = $members[$x]['user_posts']; $from = stripslashes($members[$x]['user_from']); $joined = create_date($board_config['default_dateformat'], $members[$x]['user_regdate'], $board_config['default_timezone']); - if($members[$x]['user_viewemail'] <> 0) + if($members[$x]['user_viewemail']) { $email = str_replace("@", " at ", $members[$x]['user_email']); $email = "$email"; @@ -132,10 +179,9 @@ if(($selected_members = $db->sql_numrows($result)) > 0) $email = " "; } - if($members[$x]['user_website'] <> '') + if($members[$x]['user_website'] != "") { - $url_img = $images['www']; - $url = ""; + $url = ""; } else { @@ -144,56 +190,53 @@ if(($selected_members = $db->sql_numrows($result)) > 0) if(!($x % 2)) { - $row_color = "#".$theme['td_color1']; + $row_color = "#" . $theme['td_color1']; } else { - $row_color = "#".$theme['td_color2']; + $row_color = "#" . $theme['td_color2']; } $template->assign_block_vars("memberrow", array( - "ROW_COLOR" => $row_color, - "U_VIEWPROFILE" => append_sid("profile.$phpEx?mode=viewprofile&".POST_USERS_URL."=".$user_id), - "USERNAME" => $username, - "FROM" => $from, - "JOINED" => $joined, - "POSTS" => $posts, - "EMAIL" => $email, - "WEBSITE" => $url)); + "U_VIEWPROFILE" => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $user_id), + "U_PRIVATE_MESSAGE" => append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $members[$x]['user_id']), + + "ROW_COLOR" => $row_color, + "USERNAME" => $username, + "FROM" => $from, + "JOINED" => $joined, + "POSTS" => $posts, + "EMAIL" => $email, + "WEBSITE" => $url) + ); } - if($mode <> "topten") + if($mode != "topten" || $board_config['topics_per_page'] < 10) { $sql = "SELECT count(*) AS total - FROM ".USERS_TABLE." - WHERE user_id <> ".ANONYMOUS." - AND user_level <> ".DELETED; + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS; + if(!$count_result = $db->sql_query($sql)) { - if(DEBUG) - { - $error = $db->sql_error(); - error_die(SQL_QUERY, "Error getting total users. Reason: ".$error['message']."
Query: $sql", __LINE__, __FILE__); - } - else - { - error_die(SQL_QUERY); - } + message_die(GENERAL_ERROR, "Error getting total users.", "", __LINE__, __FILE__, $sql); } else { $total = $db->sql_fetchrow($count_result); $total_members = $total['total']; - $pagination = generate_pagination("memberlist.$phpEx?mode=$mode", $total_members, $board_config['topics_per_page'], $start)." "; + + $pagination = generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order", $total_members, $board_config['topics_per_page'], $start)." "; } } else { - $pagination = " "; + $pagination = " "; + $total_members = 10; } $template->assign_vars(array( "PAGINATION" => $pagination, - "ON_PAGE" => (floor($start/$board_config['topics_per_page'])+1), - "TOTAL_PAGES" => ceil($total_members/$board_config['topics_per_page']), + "ON_PAGE" => ( floor( $start / $board_config['topics_per_page'] ) + 1 ), + "TOTAL_PAGES" => ceil( $total_members / $board_config['topics_per_page'] ), "L_OF" => $lang['of'], "L_PAGE" => $lang['Page'], @@ -203,4 +246,5 @@ if(($selected_members = $db->sql_numrows($result)) > 0) } include('includes/page_tail.'.$phpEx); -?> + +?> \ No newline at end of file diff --git a/phpBB/templates/Default/memberlist_body.tpl b/phpBB/templates/Default/memberlist_body.tpl index 031fa67f56..6657b7d519 100644 --- a/phpBB/templates/Default/memberlist_body.tpl +++ b/phpBB/templates/Default/memberlist_body.tpl @@ -2,10 +2,11 @@ diff --git a/phpBB/templates/PSO/memberlist_body.tpl b/phpBB/templates/PSO/memberlist_body.tpl index 09928bf07c..32ba267063 100644 --- a/phpBB/templates/PSO/memberlist_body.tpl +++ b/phpBB/templates/PSO/memberlist_body.tpl @@ -1,38 +1,40 @@
+ + + - - - + @@ -15,6 +16,7 @@ + @@ -24,7 +26,7 @@ - +
{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}  
{L_VIEW_TOP10} | {L_SORTALPHA}
  {L_USERNAME} {L_FROM} {L_JOINED}
 {L_SEND_PRIV_MSG}  {memberrow.USERNAME} {memberrow.FROM} {memberrow.JOINED}
{PAGINATION}{PAGINATION}
- +
{SITENAME} {L_INDEX}{SITENAME} {L_INDEX}
-
+
+ + + - - - - - - - - - + + - - - - - - + + + + + + + -
{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}  
  
{L_USERNAME}{L_FROM}{L_JOINED}{L_POSTS}{L_EMAIL}{L_WEBSITE} {L_USERNAME} + {L_FROM} + {L_JOINED} + {L_POSTS} + {L_EMAIL} + {L_WEBSITE}
{memberrow.USERNAME}{memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS}{memberrow.EMAIL}{memberrow.WEBSITE} {L_SEND_PRIV_MSG} {memberrow.USERNAME}{memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS}{memberrow.EMAIL}{memberrow.WEBSITE}
+ @@ -40,9 +42,9 @@
- - + +
 {L_PAGE} {ON_PAGE} {L_OF} {TOTAL_PAGES}{PAGINATION}  {L_PAGE} {ON_PAGE} {L_OF} {TOTAL_PAGES}{PAGINATION} 
-
+
- +
{S_TIMEZONE}{S_TIMEZONE} {JUMPBOX}
\ No newline at end of file