diff options
author | uid42062 <uid42062@users.sourceforge.net> | 2001-07-05 00:57:28 +0000 |
---|---|---|
committer | uid42062 <uid42062@users.sourceforge.net> | 2001-07-05 00:57:28 +0000 |
commit | ca9187ff41977ecbe2222897dd2f1d7cd0b1874b (patch) | |
tree | d10c1679afb28f6c237ee23a780742eb7eed2390 | |
parent | af455d921281c9c1a520810eb959684cfa580e9a (diff) | |
download | forums-ca9187ff41977ecbe2222897dd2f1d7cd0b1874b.tar forums-ca9187ff41977ecbe2222897dd2f1d7cd0b1874b.tar.gz forums-ca9187ff41977ecbe2222897dd2f1d7cd0b1874b.tar.bz2 forums-ca9187ff41977ecbe2222897dd2f1d7cd0b1874b.tar.xz forums-ca9187ff41977ecbe2222897dd2f1d7cd0b1874b.zip |
Updated sorting methods
git-svn-id: file:///svn/phpbb/trunk@563 89ea8834-ac86-4346-8a33-228a782c2dd0
-rwxr-xr-x | phpBB/language/lang_english.php | 9 | ||||
-rw-r--r-- | phpBB/memberlist.php | 194 | ||||
-rw-r--r-- | phpBB/templates/Default/memberlist_body.tpl | 10 | ||||
-rw-r--r-- | 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 'username': + $order_by = "username $sort_order 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 '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 name=\"mode\">"; +for($i = 0; $i < count($mode_types_text); $i++) +{ + $selected = ($mode == $mode_types[$i]) ? " selected" : ""; + $select_sort_mode .= "<option value=\"" . $mode_types[$i] . "\"$selected>" . $mode_types_text[$i] . "</option>"; +} +$select_sort_mode .= "</select>"; + +$select_sort_order = "<select name=\"order\">"; +if($sort_order == "ASC") +{ + $select_sort_order .= "<option value=\"ASC\" selected>" . $lang['Ascending'] . "</option><option value=\"DESC\">" . $lang['Descending'] . "</option>"; +} +else +{ + $select_sort_order .= "<option value=\"ASC\">" . $lang['Ascending'] . "</option><option value=\"DESC\" selected>" . $lang['Descending'] . "</option>"; } +$select_sort_order .= "</select>"; +// +// 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.<br>Reason: ".$error['message']."<br>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 = "<a href=\"mailto:$email\">$email</a>"; @@ -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 = "<a href=\"".stripslashes($members[$x]['user_website'])."\"><img src=\"".$url_img."\" border=\"0\"/></a>"; + $url = "<a href=\"" . stripslashes($members[$x]['user_website']) . "\"><img src=\"" . $images['www'] . "\" border=\"0\"/></a>"; } 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']."<br>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 @@ <td bgcolor="#000000" align="center"><table width="100%" cellpadding="0" cellspacing="1" border="0"> <td> <table width="100%" cellpadding="3" cellspacing="1" border="0"> + <tr class="tableheader"><form method="post" action="{S_MODE_ACTION}"> + <td colspan="7" align="right">{L_SELECT_SORT_METHOD}: {S_MODE_SELECT} {L_ORDER} {S_ORDER_SELECT} <input type="submit" name="submit" value="{L_SUBMIT}"></td> + </form></tr> <tr class="tableheader"> - <td colspan="6" align="right"><a href="{U_VIEW_TOP10}">{L_VIEW_TOP10}</a> | <a href="{U_SORTALPHA}">{L_SORTALPHA}</a></td> - </tr> - <tr class="tableheader"> + <td align="center"> </td> <td align="center">{L_USERNAME}</td> <td align="center">{L_FROM}</td> <td align="center">{L_JOINED}</td> @@ -15,6 +16,7 @@ </tr> <!-- BEGIN memberrow --> <tr bgcolor="{memberrow.ROW_COLOR}" class="tablebody"> + <td align="center"> <a href="{memberrow.U_PRIVATE_MESSAGE}"><img src="{PM_IMG}" alt="{L_SEND_PRIV_MSG}" border="0"></a> </td> <td align="center"><a href="{memberrow.U_VIEWPROFILE}">{memberrow.USERNAME}</a></td> <td align="center" valign="middle">{memberrow.FROM}</td> <td align="center" valign="middle">{memberrow.JOINED}</td> @@ -24,7 +26,7 @@ </tr> <!-- END memberrow --> <tr class="catheader"> - <td colspan="6">{PAGINATION}</td> + <td colspan="7">{PAGINATION}</td> </tr> </table></td> </tr> 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 @@ <div align="center"><table width="98%" cellspacing="0" cellpadding="4" border="0"> <tr> - <td align="left"><font face="{T_FONTFACE1}" size="{T_FONTSIZE1}" color="{T_FONTCOLOR1}"><a href="{U_INDEX}">{SITENAME} {L_INDEX}</a></font></td> + <td align="left"><span class="gensmall"><a href="{U_INDEX}">{SITENAME} {L_INDEX}</a></span></td> </tr> </table></div> <div align="center"><table border="0" cellpadding="1" cellspacing="0" width="98%"> <tr> - <td bgcolor="{T_TH_COLOR1}"><table border="0" cellpadding="4" cellspacing="1" width="100%"> + <td class="tablebg"><table width="100%" cellpadding="4" cellspacing="1" border="0"> + <tr><form method="post" action="{S_MODE_ACTION}"> + <td colspan="7" bgcolor="{T_TH_COLOR2}" align="right"><span class="gen">{L_SELECT_SORT_METHOD}: {S_MODE_SELECT} {L_ORDER} {S_ORDER_SELECT} <input type="submit" name="submit" value="{L_SUBMIT}"></span></td> + </form></tr> <tr> - <td colspan="6" bgcolor="{T_TH_COLOR2}" align="right"><a href="{U_VIEW_TOP10}"><img src="templates/PSO/images/topten-posters.gif" border="1"></a> <a href="{U_SORTALPHA}"><img src="templates/PSO/images/alphabetical.gif" border="1"></a></td> - </tr> - <tr> - <td bgcolor="{T_TH_COLOR3}"align="center"><font face="verdana" size="{T_FONTSIZE2}"><b>{L_USERNAME}</td> - <td bgcolor="{T_TH_COLOR3}"align="center"><font face="verdana" size="{T_FONTSIZE2}"><b>{L_FROM}</b></font></td> - <td bgcolor="{T_TH_COLOR3}" align="center"><font face="verdana" size="{T_FONTSIZE2}"><b>{L_JOINED}</b></font></td> - <td bgcolor="{T_TH_COLOR3}" align="center"><font face="verdana" size="{T_FONTSIZE2}"><b>{L_POSTS}</b></font></td> - <td bgcolor="{T_TH_COLOR3}" align="center"><font face="verdana" size="{T_FONTSIZE2}"><b>{L_EMAIL}</b></font></td> - <td bgcolor="{T_TH_COLOR3}" align="center"><font face="verdana" size="{T_FONTSIZE2}"><b>{L_WEBSITE}</b></font></td> + <th> </th> + <th><b>{L_USERNAME}</b></td> + <th><b>{L_FROM}</b></td> + <th><b>{L_JOINED}</b></td> + <th><b>{L_POSTS}</b></td> + <th><b>{L_EMAIL}</b></td> + <th><b>{L_WEBSITE}</b></td> </tr> <!-- BEGIN memberrow --> <tr> - <td bgcolor="{memberrow.ROW_COLOR}" align="center"><a href="{memberrow.U_VIEWPROFILE}"><font face="{T_FONTFACE1}" size="{T_FONTSIZE2}">{memberrow.USERNAME}</font></a></td> - <td bgcolor="{memberrow.ROW_COLOR}" align="center" valign="middle"><font face="{T_FONTFACE1}" size="{T_FONTSIZE2}">{memberrow.FROM}</font></td> - <td bgcolor="{memberrow.ROW_COLOR}" align="center" valign="middle"><font face="{T_FONTFACE1}" size="{T_FONTSIZE1}">{memberrow.JOINED}</font></td> - <td bgcolor="{memberrow.ROW_COLOR}" align="center" valign="middle"><font face="{T_FONTFACE1}" size="{T_FONTSIZE2}">{memberrow.POSTS}</font></td> - <td bgcolor="{memberrow.ROW_COLOR}" align="center" valign="middle"><font face="{T_FONTFACE1}" size="{T_FONTSIZE1}">{memberrow.EMAIL}</font></td> - <td bgcolor="{memberrow.ROW_COLOR}" align="center"><font face="{T_FONTFACE1}" size="{T_FONTSIZE1}">{memberrow.WEBSITE}</font></a></td> + <td bgcolor="{memberrow.ROW_COLOR}" align="center"> <a href="{memberrow.U_PRIVATE_MESSAGE}"><img src="{PM_IMG}" alt="{L_SEND_PRIV_MSG}" border="0"></a> </td> + <td bgcolor="{memberrow.ROW_COLOR}" align="center"><span class="gen"><a href="{memberrow.U_VIEWPROFILE}">{memberrow.USERNAME}</a></span></td> + <td bgcolor="{memberrow.ROW_COLOR}" align="center" valign="middle"><span class="gen">{memberrow.FROM}</span></td> + <td bgcolor="{memberrow.ROW_COLOR}" align="center" valign="middle"><span class="gensmall">{memberrow.JOINED}</span></td> + <td bgcolor="{memberrow.ROW_COLOR}" align="center" valign="middle"><span class="gen">{memberrow.POSTS}</span></td> + <td bgcolor="{memberrow.ROW_COLOR}" align="center" valign="middle"><span class="gensmall">{memberrow.EMAIL}</span></td> + <td bgcolor="{memberrow.ROW_COLOR}" align="center"><span class="gensmall">{memberrow.WEBSITE}</span></a></td> </tr> <!-- END memberrow --> <tr> - <td colspan="6" bgcolor="{T_TH_COLOR2}"><table width="100%" cellspacing="0" cellpadding="0" border="0"> + <td class="cat" colspan="7"><table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> - <td><font face="{T_FONTFACE1}" size="{T_FONTSIZE2}"> {L_PAGE} <b>{ON_PAGE}</b> {L_OF} <b>{TOTAL_PAGES}</b></font></td> - <td align="right"><font face="{T_FONTFACE1}" size="{T_FONTSIZE2}">{PAGINATION} </font></td> + <td><span class="gen"> {L_PAGE} <b>{ON_PAGE}</b> {L_OF} <b>{TOTAL_PAGES}</b></span></td> + <td align="right"><span class="gen">{PAGINATION} </span></td> </tr> </table></td> </tr> @@ -40,9 +42,9 @@ </tr> </table></div> -<div align="center"><table cellspacing="2" border="0" width="98%"> +<div align="center"><table width="98%" cellspacing="2" border="0"> <tr> - <td width="40%" valign="top"><font face="{T_FONTFACE1}" size="{T_FONTSIZE1}"><b>{S_TIMEZONE}</b></font></td> + <td width="40%" valign="top"><span class="gensmall"><b>{S_TIMEZONE}</b></span></td> <td align="right" valign="top" nowrap>{JUMPBOX}</td> </tr> </table></div>
\ No newline at end of file |