From 658f2a4b662a11409c332c4958539bcb5e5d28d0 Mon Sep 17 00:00:00 2001 From: "Paul S. Owen" Date: Wed, 5 Mar 2003 00:50:03 +0000 Subject: [PATCH] Moved "viewprofile" to memberslist ... consolidation incomplete git-svn-id: file:///svn/phpbb/trunk@3598 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/functions_display.php | 2 +- phpBB/index.php | 2 +- phpBB/language/en/lang_main.php | 28 +- phpBB/memberlist.php | 775 +++++++++++------- .../templates/subSilver/memberslist_view.html | 105 +++ phpBB/viewforum.php | 5 +- phpBB/viewtopic.php | 40 +- 7 files changed, 640 insertions(+), 317 deletions(-) create mode 100644 phpBB/templates/subSilver/memberslist_view.html diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php index 08bc192c50..599394c8e3 100644 --- a/phpBB/includes/functions_display.php +++ b/phpBB/includes/functions_display.php @@ -176,7 +176,7 @@ function display_forums($root_data = '', $display_moderators = TRUE) { $last_post = $user->format_date($row['forum_last_post_time']) . '
'; - $last_post .= ($row['forum_last_poster_id'] == ANONYMOUS) ? (($row['forum_last_poster_name'] != '') ? $row['forum_last_poster_name'] . ' ' : $user->lang['GUEST'] . ' ') : '' . $row['forum_last_poster_name'] . ' '; + $last_post .= ($row['forum_last_poster_id'] == ANONYMOUS) ? (($row['forum_last_poster_name'] != '') ? $row['forum_last_poster_name'] . ' ' : $user->lang['GUEST'] . ' ') : "' . $row['forum_last_poster_name'] . ' '; $last_post .= '' . $user->img('goto_post_latest', 'VIEW_LATEST_POST') . ''; } diff --git a/phpBB/index.php b/phpBB/index.php index 1516d89843..9718cbe07b 100644 --- a/phpBB/index.php +++ b/phpBB/index.php @@ -101,7 +101,7 @@ else $template->assign_vars(array( 'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts), 'TOTAL_USERS' => sprintf($l_total_user_s, $total_users), - 'NEWEST_USER' => sprintf($user->lang['Newest_user'], '', $newest_user, ''), + 'NEWEST_USER' => sprintf($user->lang['Newest_user'], "", $newest_user, ''), 'FORUM_IMG' => $user->img('forum', 'NO_NEW_POSTS'), 'FORUM_NEW_IMG' => $user->img('forum_new', 'NEW_POSTS'), diff --git a/phpBB/language/en/lang_main.php b/phpBB/language/en/lang_main.php index 7ae4197e8d..754b16e335 100644 --- a/phpBB/language/en/lang_main.php +++ b/phpBB/language/en/lang_main.php @@ -489,9 +489,24 @@ $lang = array_merge($lang, array( 'Savebox_size' => 'Your Savebox is %d%% full', 'Click_view_privmsg' => 'Click %sHere%s to visit your Inbox', + 'NO_USER' => 'No user found', + + 'VIEWING_PROFILE' => 'Viewing profile of %s', + 'ABOUT_USER' => 'Profile', + 'CONTACT_USER' => 'Contact', + 'USER_FORUM' => 'Forum statistics', + 'USER_PRESENCE' => 'User presence', + + 'USER_POST' => '%d Post', + 'USER_POSTS' => '%d Posts', + 'POST_PCT' => '%.2f%% of total', + 'POST_DAY' => '%.2f posts per day', + 'TOTAL_POSTS' => 'Total posts', + 'ACTIVE_IN_FORUM' => 'Most active forum', + 'ACTIVE_IN_TOPIC' => 'Most active topic', + 'SEARCH_USER_POSTS' => 'Search users posts', + - 'Viewing_user_profile' => 'Viewing profile :: %s', - 'About_user' => 'All about %s', 'Preferences' => 'Preferences', 'Items_required' => 'Items marked with a * are required unless stated otherwise', 'Registration_info' => 'Registration Information', @@ -504,12 +519,9 @@ $lang = array_merge($lang, array( 'CONTACT' => 'Contact', 'EMAIL_ADDRESS' => 'Email address', 'SEND_PRIVATE_MESSAGE' => 'Send private message', - 'Search_user_posts' => 'Find all posts by %s', - 'Interests' => 'Interests', - 'Occupation' => 'Occupation', - 'Total_posts' => 'Total posts', - 'User_post_pct_stats' => '%.2f%% of total', - 'User_post_day_stats' => '%.2f posts per day', + 'INTERESTS' => 'Interests', + 'OCCUPATION' => 'Occupation', + 'No_user_id_specified' => 'Sorry but that user does not exist', 'Wrong_Profile' => 'You cannot modify a profile that is not your own.', 'Only_one_avatar' => 'Only one type of avatar can be specified', diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index aaf8883aa5..3ec2c2aecc 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -40,6 +40,7 @@ if (!$auth->acl_gets('u_viewprofile', 'a_')) // Grab data $mode = (isset($_REQUEST['mode'])) ? $_REQUEST['mode'] : ''; +$user_id = (isset($_GET['u'])) ? intval($_GET['u']) : ANONYMOUS; $start = (isset($_GET['start'])) ? intval($_GET['start']) : 0; $form = (!empty($_GET['form'])) ? $_GET['form'] : 0; @@ -78,323 +79,531 @@ while ($row = $db->sql_fetchrow($result)) $db->sql_freeresult($result); -// Memberlist sorting -$sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'b' => $user->lang['SORT_LOCATION'], 'c' => $user->lang['SORT_JOINED'], 'd' => $user->lang['SORT_POST_COUNT'], 'e' => $user->lang['SORT_EMAIL'], 'f' => $user->lang['WEBSITE'], 'g' => $user->lang['ICQ'], 'h' => $user->lang['AIM'], 'i' => $user->lang['MSNM'], 'j' => $user->lang['YIM'], 'k' => $user->lang['SORT_LAST_ACTIVE']); -$sort_key_sql = array('a' => 'username', 'b' => 'user_from', 'c' => 'user_regdate', 'd' => 'user_posts', 'e' => 'user_email', 'f' => 'user_website', 'g' => 'user_icq', 'h' => 'user_aim', 'i' => 'user_msnm', 'j' => 'user_yim', 'k' => 'user_lastvisit'); - -$sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']); - -$s_sort_key = ''; + // Memberlist sorting + $sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'b' => $user->lang['SORT_LOCATION'], 'c' => $user->lang['SORT_JOINED'], 'd' => $user->lang['SORT_POST_COUNT'], 'e' => $user->lang['SORT_EMAIL'], 'f' => $user->lang['WEBSITE'], 'g' => $user->lang['ICQ'], 'h' => $user->lang['AIM'], 'i' => $user->lang['MSNM'], 'j' => $user->lang['YIM'], 'k' => $user->lang['SORT_LAST_ACTIVE']); + $sort_key_sql = array('a' => 'username', 'b' => 'user_from', 'c' => 'user_regdate', 'd' => 'user_posts', 'e' => 'user_email', 'f' => 'user_website', 'g' => 'user_icq', 'h' => 'user_aim', 'i' => 'user_msnm', 'j' => 'user_yim', 'k' => 'user_lastvisit'); -$s_sort_dir = ''; + $sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']); - - - -// Additional sorting options for user search -$where_sql = ''; -if ($mode == 'searchuser') -{ - $find_key_match = array('lt' => '<', 'gt' => '>', 'eq' => '='); - - $find_count = array('lt' => $user->lang['LESS_THAN'], 'eq' => $user->lang['EQUAL_TO'], 'gt' => $user->lang['MORE_THAN']); - $s_find_count = ''; - foreach ($find_count as $key => $value) + $s_sort_key = ''; - $find_time = array('lt' => $user->lang['BEFORE'], 'gt' => $user->lang['AFTER']); - $s_find_join_time = ''; - foreach ($find_time as $key => $value) + $s_sort_dir = ''; - $s_find_active_time = ''; - foreach ($find_time as $key => $value) + + + + // Additional sorting options for user search + $where_sql = ''; + if ($mode == 'searchuser') { - $selected = ($active_select == $key) ? ' selected="selected"' : ''; - $s_find_active_time .= ''; - } + $find_key_match = array('lt' => '<', 'gt' => '>', 'eq' => '='); - $where_sql .= ($username) ? " AND username LIKE '" . str_replace('*', '%', $db->sql_escape($username)) ."'" : ''; - $where_sql .= ($email) ? " AND user_email LIKE '" . str_replace('*', '%', $db->sql_escape($email)) ."' " : ''; - $where_sql .= ($icq) ? " AND user_icq LIKE '" . str_replace('*', '%', $db->sql_escape($icq)) ."' " : ''; - $where_sql .= ($aim) ? " AND user_aim LIKE '" . str_replace('*', '%', $db->sql_escape($aim)) ."' " : ''; - $where_sql .= ($yahoo) ? " AND user_yim LIKE '" . str_replace('*', '%', $db->sql_escape($yahoo)) ."' " : ''; - $where_sql .= ($msn) ? " AND user_msnm LIKE '" . str_replace('*', '%', $db->sql_escape($msn)) ."' " : ''; - $where_sql .= ($joined) ? " AND user_regdate " . $find_key_match[$joined_select] . " " . gmmktime(0, 0, 0, intval($joined[1]), intval($joined[2]), intval($joined[0])) : ''; - $where_sql .= ($count) ? " AND user_posts " . $find_key_match[$count_select] . " $count " : ''; - $where_sql .= ($active) ? " AND user_lastvisit " . $find_key_match[$active_select] . " " . gmmktime(0, 0, 0, $active[1], intval($active[2]), intval($active[0])) : ''; - - if (!empty($ipdomain)) - { - $ips = (preg_match('#[a-z]#', $ipdomain)) ? implode(', ', preg_replace('#([0-9]{1,3}\.[0-9]{1,3}[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})#', "'\\1'", gethostbynamel($ipdomain))) : "'" . str_replace('*', '%', $ipdomain) . "'"; - - $sql = "SELECT DISTINCT poster_id - FROM " . POSTS_TABLE . " - WHERE poster_ip " . ((preg_match('#%#', $ips)) ? 'LIKE' : 'IN') . " ($ips)"; - $result = $db->sql_query($sql); - - if ($row = $db->sql_fetchrow($result)) + $find_count = array('lt' => $user->lang['LESS_THAN'], 'eq' => $user->lang['EQUAL_TO'], 'gt' => $user->lang['MORE_THAN']); + $s_find_count = ''; + foreach ($find_count as $key => $value) { - $ip_sql = ''; - do + $selected = ($count_select == $key) ? ' selected="selected"' : ''; + $s_find_count .= ''; + } + + $find_time = array('lt' => $user->lang['BEFORE'], 'gt' => $user->lang['AFTER']); + $s_find_join_time = ''; + foreach ($find_time as $key => $value) + { + $selected = ($joined_select == $key) ? ' selected="selected"' : ''; + $s_find_join_time .= ''; + } + + $s_find_active_time = ''; + foreach ($find_time as $key => $value) + { + $selected = ($active_select == $key) ? ' selected="selected"' : ''; + $s_find_active_time .= ''; + } + + $where_sql .= ($username) ? " AND username LIKE '" . str_replace('*', '%', $db->sql_escape($username)) ."'" : ''; + $where_sql .= ($email) ? " AND user_email LIKE '" . str_replace('*', '%', $db->sql_escape($email)) ."' " : ''; + $where_sql .= ($icq) ? " AND user_icq LIKE '" . str_replace('*', '%', $db->sql_escape($icq)) ."' " : ''; + $where_sql .= ($aim) ? " AND user_aim LIKE '" . str_replace('*', '%', $db->sql_escape($aim)) ."' " : ''; + $where_sql .= ($yahoo) ? " AND user_yim LIKE '" . str_replace('*', '%', $db->sql_escape($yahoo)) ."' " : ''; + $where_sql .= ($msn) ? " AND user_msnm LIKE '" . str_replace('*', '%', $db->sql_escape($msn)) ."' " : ''; + $where_sql .= ($joined) ? " AND user_regdate " . $find_key_match[$joined_select] . " " . gmmktime(0, 0, 0, intval($joined[1]), intval($joined[2]), intval($joined[0])) : ''; + $where_sql .= ($count) ? " AND user_posts " . $find_key_match[$count_select] . " $count " : ''; + $where_sql .= ($active) ? " AND user_lastvisit " . $find_key_match[$active_select] . " " . gmmktime(0, 0, 0, $active[1], intval($active[2]), intval($active[0])) : ''; + + if (!empty($ipdomain)) + { + $ips = (preg_match('#[a-z]#', $ipdomain)) ? implode(', ', preg_replace('#([0-9]{1,3}\.[0-9]{1,3}[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})#', "'\\1'", gethostbynamel($ipdomain))) : "'" . str_replace('*', '%', $ipdomain) . "'"; + + $sql = "SELECT DISTINCT poster_id + FROM " . POSTS_TABLE . " + WHERE poster_ip " . ((preg_match('#%#', $ips)) ? 'LIKE' : 'IN') . " ($ips)"; + $result = $db->sql_query($sql); + + if ($row = $db->sql_fetchrow($result)) { - $ip_sql .= (($ip_sql != '') ? ', ' : '') . $row['poster_id']; - } - while ($row = $db->sql_fetchrow($result)); + $ip_sql = ''; + do + { + $ip_sql .= (($ip_sql != '') ? ', ' : '') . $row['poster_id']; + } + while ($row = $db->sql_fetchrow($result)); - $where_sql .= " AND user_id IN ($ip_sql)"; - } - else - { - // A minor fudge but it does the job :D - $where_sql .= " AND user_id IN ('-1')"; + $where_sql .= " AND user_id IN ($ip_sql)"; + } + else + { + // A minor fudge but it does the job :D + $where_sql .= " AND user_id IN ('-1')"; + } } } + else + { + $where_sql = ' AND user_active = 1'; + } + + // Sorting and order + $order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC'); + + // Count the users ... + $sql = "SELECT COUNT(user_id) AS total_users + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " + $where_sql"; + $result = $db->sql_query($sql); + + $total_users = ($row = $db->sql_fetchrow($result)) ? $row['total_users'] : 0; + + // Pagination string + $pagination_url = ($mode == 'searchuser') ? "memberlist.$phpEx$SID&mode=searchuser&form=$form&field=$field&username=" . urlencode($username) . "&email=" . urlencode($email) . "&icq=$icq&aim=" . urlencode($aim) . "&yahoo=" . urlencode($yahoo) . "&msn=" . urlencode($msn) . "&joined=" . urlencode(implode('-', $joined)) . "&active=" . urlencode(implode('-', $active)) . "&count=$count&ip=" . urlencode($ipdomain) . "&sd=$sort_dir&sk=$sort_key&joined_select=$joined_select&active_select=$active_select&count_select=$count_select" : "memberlist.$phpEx$SID&mode=$mode&sk=$sort_key&sd=$sort_dir"; + + // Some search user specific data + if ($mode == 'searchuser') + { + $template->assign_vars(array( + 'USERNAME' => $username, + 'EMAIL' => $email, + 'ICQ' => $icq, + 'AIM' => $aim, + 'YAHOO' => $yahoo, + 'MSNM' => $msn, + 'JOINED' => implode('-', $joined), + 'ACTIVE' => implode('-', $active), + 'COUNT' => $count, + 'IP' => $ipdomain, + + 'S_SEARCH_USER' => true, + 'S_FORM_NAME' => $form, + 'S_FIELD_NAME' => $field, + 'S_COUNT_OPTIONS' => $s_find_count, + 'S_SORT_OPTIONS' => $s_sort_key, + 'S_USERNAME_OPTIONS' => $username_list, + 'S_JOINED_TIME_OPTIONS' => $s_find_join_time, + 'S_ACTIVE_TIME_OPTIONS' => $s_find_active_time, + 'S_SEARCH_ACTION' => "memberslist.$phpEx$SID&mode=searchuser&field=$field") + ); + } + + // Do the SQL thang + $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_rank, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " + $where_sql + ORDER BY $order_by + LIMIT $start, " . $config['topics_per_page']; + $result = $db->sql_query($sql); + + if ($row = $db->sql_fetchrow($result)) + { + $i = 0; + do + { + $username = $row['username']; + $user_id = intval($row['user_id']); + + $from = (!empty($row['user_from'])) ? $row['user_from'] : ' '; + $joined = $user->format_date($row['user_regdate'], $user->lang['DATE_FORMAT']); + $posts = ($row['user_posts']) ? $row['user_posts'] : 0; + + $poster_avatar = ''; + if ($row['user_avatar_type'] && $user_id && $row['user_allowavatar']) + { + switch($row['user_avatar_type']) + { + case USER_AVATAR_UPLOAD: + $poster_avatar = ($config['allow_avatar_upload']) ? '' : ''; + break; + + case USER_AVATAR_REMOTE: + $poster_avatar = ($config['allow_avatar_remote']) ? '' : ''; + break; + + case USER_AVATAR_GALLERY: + $poster_avatar = ($config['allow_avatar_local']) ? '' : ''; + break; + } + } + + $rank_title = $rank_img = ''; + foreach ($ranksrow as $rank) + { + if (empty($row['user_rank']) && $row['user_posts'] >= $rank['rank_min']) + { + $rank_title = $rank['rank_title']; + $rank_img = (!empty($rank['rank_image'])) ? '' . $rank_title . '
' : ''; + break; + } + + if (!empty($rank['rank_special']) && $row['user_rank'] == $rank['rank_id']) + { + $rank_title = $rank['rank_title']; + $rank_img = (!empty($rank['rank_image'])) ? '' . $rank_title . '
' : ''; + break; + } + } + + if ($row['user_viewemail'] || $auth->acl_get('a_')) + { + $email_uri = ($config['board_email_form']) ? "ucp.$phpEx$SID&mode=email&u=" . $user_id : 'mailto:' . $row['user_email']; + + $email_img = '' . $user->img('icon_email', $user->lang['Send_email']) . ''; + $email = '' . $user->lang['Send_email'] . ''; + } + else + { + $email_img = ' '; + $email = ' '; + } + + $temp_url = "memberlist.$phpEx$SID&mode=viewprofile&u=$user_id"; + $profile_img = '' . $user->img('icon_profile', $user->lang['Read_profile']) . ''; + $profile = '' . $user->lang['Read_profile'] . ''; + + $temp_url = "ucp.$phpEx$SID&mode=pm&action=send&u=$user_id"; + $pm_img = '' . $user->img('icon_pm', $user->lang['Send_private_message']) . ''; + $pm = '' . $user->lang['Send_private_message'] . ''; + + $www_img = ($row['user_website']) ? '' . $user->img('icon_www', $user->lang['Visit_website']) . '' : ''; + $www = ($row['user_website']) ? '' . $user->lang['Visit_website'] . '' : ''; + + if (!empty($row['user_icq'])) + { + $icq_status_img = ''; + $icq_img = '' . $user->img('icon_icq', $user->lang['ICQ']) . ''; + $icq = '' . $user->lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ($row['user_aim']) ? '' . $user->img('icon_aim', $user->lang['AIM']) . '' : ''; + $aim = ($row['user_aim']) ? '' . $user->lang['AIM'] . '' : ''; + + $temp_url = "ucp.$phpEx$SID&mode=viewprofile&u=$user_id"; + $msn_img = ($row['user_msnm']) ? '' . $user->img('icon_msnm', $user->lang['MSNM']) . '' : ''; + $msn = ($row['user_msnm']) ? '' . $user->lang['MSNM'] . '' : ''; + + $yim_img = ($row['user_yim']) ? '' . $user->img('icon_yim', $user->lang['YIM']) . '' : ''; + $yim = ($row['user_yim']) ? '' . $user->lang['YIM'] . '' : ''; + + $temp_url = "search.$phpEx$SID&search_author=" . urlencode($username) . "&showresults=posts"; + $search_img = '' . $user->img('icon_search', $user->lang['Search_user_posts']) . ''; + $search = '' . $user->lang['Search_user_posts'] . ''; + + $template->assign_block_vars('memberrow', array( + 'ROW_NUMBER' => $i + ($start + 1), + 'USERNAME' => $username, + 'FROM' => $from, + 'JOINED' => $joined, + 'POSTS' => $posts, + 'AVATAR_IMG' => $poster_avatar, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG'=> $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + 'ACTIVE' => $row['user_last_active'], + 'RANK_TITLE' => $rank, + 'RANK_IMG' => $rank_img, + + 'S_ROW_COUNT' => $i, + + 'U_VIEWPROFILE' => "memberlist.$phpEx$SID&mode=viewprofile&u=$user_id") + ); + + $i++; + } + while ($row = $db->sql_fetchrow($result)); + } + + // Generate page + $template->assign_vars(array( + 'PAGINATION' => generate_pagination($pagination_url, $total_users, $config['topics_per_page'], $start), + 'PAGE_NUMBER' => on_page($total_users, $config['topics_per_page'], $start), + + 'U_FIND_MEMBER' => "memberlist.$phpEx$SID&mode=searchuser", + 'U_SORT_USERNAME' => "memberlist.$phpEx$SID&sk=a&sd=" . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_FROM' => "memberlist.$phpEx$SID&sk=b&sd=" . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_JOINED' => "memberlist.$phpEx$SID&sk=c&sd=" . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_POSTS' => "memberlist.$phpEx$SID&sk=d&sd=" . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_EMAIL' => "memberlist.$phpEx$SID&sk=e&sd=" . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_WEBSITE' => "memberlist.$phpEx$SID&sk=f&sd=" . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_ICQ' => "memberlist.$phpEx$SID&sk=g&sd=" . (($sort_key == 'g' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_AIM' => "memberlist.$phpEx$SID&sk=h&sd=" . (($sort_key == 'h' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_MSN' => "memberlist.$phpEx$SID&sk=i&sd=" . (($sort_key == 'i' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_YIM' => "memberlist.$phpEx$SID&sk=j&sd=" . (($sort_key == 'j' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_ACTIVE' => "memberlist.$phpEx$SID&sk=k&sd=" . (($sort_key == 'k' && $sort_dir == 'a') ? 'd' : 'a'), + + 'S_MODE_SELECT' => $s_sort_key, + 'S_ORDER_SELECT'=> $s_sort_dir, + 'S_MODE_ACTION' => "memberlist.$phpEx$SID&mode=$mode&form=$form") + ); } else { - $where_sql = ' AND user_active = 1'; -} + if ($user_id == ANONYMOUS) + { + trigger_error($user->lang['NO_USER']); + } -// Sorting and order -$order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC'); -// Count the users ... -$sql = "SELECT COUNT(user_id) AS total_users - FROM " . USERS_TABLE . " - WHERE user_id <> " . ANONYMOUS . " - $where_sql"; -$result = $db->sql_query($sql); + // Do the SQL thang + $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_rank, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit + FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + $result = $db->sql_query($sql); -$total_users = ($row = $db->sql_fetchrow($result)) ? $row['total_users'] : 0; + if (!($row = $db->sql_fetchrow($result))) + { + trigger_error($user->lang['NO_USER']); + } + $db->sql_freeresult($result); -// Pagination string -$pagination_url = ($mode == 'searchuser') ? "memberlist.$phpEx$SID&mode=searchuser&form=$form&field=$field&username=" . urlencode($username) . "&email=" . urlencode($email) . "&icq=$icq&aim=" . urlencode($aim) . "&yahoo=" . urlencode($yahoo) . "&msn=" . urlencode($msn) . "&joined=" . urlencode(implode('-', $joined)) . "&active=" . urlencode(implode('-', $active)) . "&count=$count&ip=" . urlencode($ipdomain) . "&sd=$sort_dir&sk=$sort_key&joined_select=$joined_select&active_select=$active_select&count_select=$count_select" : "memberlist.$phpEx$SID&mode=$mode&sk=$sort_key&sd=$sort_dir"; + $sql = "SELECT f.forum_id, f.forum_name, COUNT(post_id) AS num_posts + FROM " . POSTS_TABLE . " p, " . FORUMS_TABLE . " f + WHERE p.poster_id = $user_id + AND f.forum_id = p.forum_id + GROUP BY f.forum_id, f.forum_name + ORDER BY num_posts DESC + LIMIT 1"; + $result = $db->sql_query($sql); + + $active_f_row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + $sql = "SELECT t.topic_id, t.topic_title, COUNT(p.post_id) AS num_posts + FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t + WHERE p.poster_id = $user_id + AND t.topic_id = p.topic_id + GROUP BY t.topic_id, t.topic_title + ORDER BY num_posts DESC + LIMIT 1"; + $result = $db->sql_query($sql); + + $active_t_row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + + + $memberdays = max(1, round((time() - $row['user_regdate'] ) / 86400)); + $posts_per_day = $row['user_posts'] / $memberdays; + $percentage = ($config['num_posts']) ? min(100, ($row['user_posts'] / $config['num_posts']) * 100) : 0; + + $active_f_name = $active_f_id = $active_f_count = $active_f_pct = ''; + if (!empty($active_f_row['num_posts'])) + { + $active_f_name = $active_f_row['forum_name']; + $active_f_id = $active_f_row['forum_id']; + $active_f_count = $active_f_row['num_posts']; + $active_f_pct = ($active_f_count / $row['user_posts']) * 100; + } + unset($active_f_row); + + $active_t_name = $active_t_id = $active_t_count = $active_t_pct = ''; + if (!empty($active_t_row['num_posts'])) + { + $active_t_name = $active_t_row['topic_title']; + $active_t_id = $active_t_row['topic_id']; + $active_t_count = $active_t_row['num_posts']; + $active_t_pct = ($active_t_count / $row['user_posts']) * 100; + } + unset($active_t_row); + + + $username = $row['username']; + $user_id = intval($row['user_id']); + + $from = (!empty($row['user_from'])) ? $row['user_from'] : ' '; + $joined = $user->format_date($row['user_regdate'], $user->lang['DATE_FORMAT']); + $posts = ($row['user_posts']) ? $row['user_posts'] : 0; + + $poster_avatar = ''; + if ($row['user_avatar_type'] && $row['user_allowavatar']) + { + switch($row['user_avatar_type']) + { + case USER_AVATAR_UPLOAD: + $poster_avatar = ($config['allow_avatar_upload']) ? '' : ''; + break; + + case USER_AVATAR_REMOTE: + $poster_avatar = ($config['allow_avatar_remote']) ? '' : ''; + break; + + case USER_AVATAR_GALLERY: + $poster_avatar = ($config['allow_avatar_local']) ? '' : ''; + break; + } + } + + $rank_title = $rank_img = ''; + foreach ($ranksrow as $rank) + { + if (empty($row['user_rank']) && $row['user_posts'] >= $rank['rank_min']) + { + $rank_title = $rank['rank_title']; + $rank_img = (!empty($rank['rank_image'])) ? '' . $rank_title . '
' : ''; + break; + } + + if (!empty($rank['rank_special']) && $row['user_rank'] == $rank['rank_id']) + { + $rank_title = $rank['rank_title']; + $rank_img = (!empty($rank['rank_image'])) ? '' . $rank_title . '
' : ''; + break; + } + } + + if ($row['user_viewemail'] || $auth->acl_get('a_')) + { + $email_uri = ($config['board_email_form']) ? "ucp.$phpEx$SID&mode=email&u=" . $user_id : 'mailto:' . $row['user_email']; + + $email_img = '' . $user->img('icon_email', $user->lang['Send_email']) . ''; + $email = '' . $user->lang['Send_email'] . ''; + } + else + { + $email_img = ' '; + $email = ' '; + } + + $temp_url = "ucp.$phpEx$SID&mode=viewprofile&u=$user_id"; + $profile_img = '' . $user->img('icon_profile', $user->lang['Read_profile']) . ''; + $profile = '' . $user->lang['Read_profile'] . ''; + + $temp_url = "ucp.$phpEx$SID&mode=pm&action=send&u=$user_id"; + $pm_img = '' . $user->img('icon_pm', $user->lang['Send_private_message']) . ''; + $pm = '' . $user->lang['Send_private_message'] . ''; + + $www_img = ($row['user_website']) ? '' . $user->img('icon_www', $user->lang['Visit_website']) . '' : ''; + $www = ($row['user_website']) ? '' . $user->lang['Visit_website'] . '' : ''; + + if (!empty($row['user_icq'])) + { + $icq_status_img = ''; + $icq_img = '' . $user->img('icon_icq', $user->lang['ICQ']) . ''; + $icq = '' . $user->lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ($row['user_aim']) ? '' . $user->img('icon_aim', $user->lang['AIM']) . '' : ''; + $aim = ($row['user_aim']) ? '' . $user->lang['AIM'] . '' : ''; + + $temp_url = "ucp.$phpEx$SID&mode=viewprofile&u=$user_id"; + $msn_img = ($row['user_msnm']) ? '' . $user->img('icon_msnm', $user->lang['MSNM']) . '' : ''; + $msn = ($row['user_msnm']) ? '' . $user->lang['MSNM'] . '' : ''; + + $yim_img = ($row['user_yim']) ? '' . $user->img('icon_yim', $user->lang['YIM']) . '' : ''; + $yim = ($row['user_yim']) ? '' . $user->lang['YIM'] . '' : ''; -// Some search user specific data -if ($mode == 'searchuser') -{ $template->assign_vars(array( - 'USERNAME' => $username, - 'EMAIL' => $email, - 'ICQ' => $icq, - 'AIM' => $aim, - 'YAHOO' => $yahoo, - 'MSNM' => $msn, - 'JOINED' => implode('-', $joined), - 'ACTIVE' => implode('-', $active), - 'COUNT' => $count, - 'IP' => $ipdomain, + 'USER_PROFILE' => sprintf($user->lang['VIEWING_PROFILE'], $username), - 'S_SEARCH_USER' => true, - 'S_FORM_NAME' => $form, - 'S_FIELD_NAME' => $field, - 'S_COUNT_OPTIONS' => $s_find_count, - 'S_SORT_OPTIONS' => $s_sort_key, - 'S_USERNAME_OPTIONS' => $username_list, - 'S_JOINED_TIME_OPTIONS' => $s_find_join_time, - 'S_ACTIVE_TIME_OPTIONS' => $s_find_active_time, - 'S_SEARCH_ACTION' => "memberslist.$phpEx$SID&mode=searchuser&field=$field") + 'AVATAR_IMG' => $poster_avatar, + 'RANK_TITLE' => $rank, + 'RANK_IMG' => $rank_img, + + 'JOINED' => $joined, + 'POSTS' => $posts, + 'POSTS_DAY' => sprintf($user->lang['POST_DAY'], $posts_per_day), + 'POSTS_PCT' => sprintf($user->lang['POST_PCT'], $percentage), + + 'ACTIVE_FORUM' => $active_f_name, + 'ACTIVE_FORUM_POSTS'=> ($active_f_count == 1) ? sprintf($user->lang['USER_POST'], 1) : sprintf($user->lang['USER_POSTS'], $active_f_count), + 'ACTIVE_FORUM_PCT' => sprintf($user->lang['POST_PCT'], $active_f_pct), + + 'ACTIVE_TOPIC' => $active_t_name, + 'ACTIVE_TOPIC_POSTS'=> ($active_t_count == 1) ? sprintf($user->lang['USER_POST'], 1) : sprintf($user->lang['USER_POSTS'], $active_t_count), + 'ACTIVE_TOPIC_PCT' => sprintf($user->lang['POST_PCT'], $active_t_pct), + + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG'=> $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'LOCATION' => ($row['user_from']) ? $row['user_from'] : '', + 'OCCUPATION' => ($row['user_occ']) ? $row['user_occ'] : '', + 'INTERESTS' => ($row['user_interests']) ? $row['user_interests'] : '', + + 'U_ACTIVE_FORUM' => "viewforum.$phpEx$SID&f=$active_f_id", + 'U_ACTIVE_TOPIC' => "viewtopic.$phpEx$SID&t=$active_t_id",) ); } -// Do the SQL thang -$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_rank, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit - FROM " . USERS_TABLE . " - WHERE user_id <> " . ANONYMOUS . " - $where_sql - ORDER BY $order_by - LIMIT $start, " . $config['topics_per_page']; -$result = $db->sql_query($sql); - -if ($row = $db->sql_fetchrow($result)) -{ - $i = 0; - do - { - $username = $row['username']; - $user_id = intval($row['user_id']); - - $from = (!empty($row['user_from'])) ? $row['user_from'] : ' '; - $joined = $user->format_date($row['user_regdate'], $user->lang['DATE_FORMAT']); - $posts = ($row['user_posts']) ? $row['user_posts'] : 0; - - $poster_avatar = ''; - if ($row['user_avatar_type'] && $user_id && $row['user_allowavatar']) - { - switch($row['user_avatar_type']) - { - case USER_AVATAR_UPLOAD: - $poster_avatar = ($config['allow_avatar_upload']) ? '' : ''; - break; - - case USER_AVATAR_REMOTE: - $poster_avatar = ($config['allow_avatar_remote']) ? '' : ''; - break; - - case USER_AVATAR_GALLERY: - $poster_avatar = ($config['allow_avatar_local']) ? '' : ''; - break; - } - } - - $rank_title = $rank_img = ''; - foreach ($ranksrow as $rank) - { - if (empty($row['user_rank']) && $row['user_posts'] >= $rank['rank_min']) - { - $rank_title = $rank['rank_title']; - $rank_img = (!empty($rank['rank_image'])) ? '' . $rank_title . '
' : ''; - break; - } - - if (!empty($rank['rank_special']) && $row['user_rank'] == $rank['rank_id']) - { - $rank_title = $rank['rank_title']; - $rank_img = (!empty($rank['rank_image'])) ? '' . $rank_title . '
' : ''; - break; - } - } - - if ($row['user_viewemail'] || $auth->acl_get('a_')) - { - $email_uri = ($config['board_email_form']) ? "ucp.$phpEx$SID&mode=email&u=" . $user_id : 'mailto:' . $row['user_email']; - - $email_img = '' . $user->img('icon_email', $user->lang['Send_email']) . ''; - $email = '' . $user->lang['Send_email'] . ''; - } - else - { - $email_img = ' '; - $email = ' '; - } - - $temp_url = "ucp.$phpEx$SID&mode=viewprofile&u=$user_id"; - $profile_img = '' . $user->img('icon_profile', $user->lang['Read_profile']) . ''; - $profile = '' . $user->lang['Read_profile'] . ''; - - $temp_url = "privmsg.$phpEx$SID&mode=post&u=$user_id"; - $pm_img = '' . $user->img('icon_pm', $user->lang['Send_private_message']) . ''; - $pm = '' . $user->lang['Send_private_message'] . ''; - - $www_img = ($row['user_website']) ? '' . $user->img('icon_www', $user->lang['Visit_website']) . '' : ''; - $www = ($row['user_website']) ? '' . $user->lang['Visit_website'] . '' : ''; - - if (!empty($row['user_icq'])) - { - $icq_status_img = ''; - $icq_img = '' . $user->img('icon_icq', $user->lang['ICQ']) . ''; - $icq = '' . $user->lang['ICQ'] . ''; - } - else - { - $icq_status_img = ''; - $icq_img = ''; - $icq = ''; - } - - $aim_img = ($row['user_aim']) ? '' . $user->img('icon_aim', $user->lang['AIM']) . '' : ''; - $aim = ($row['user_aim']) ? '' . $user->lang['AIM'] . '' : ''; - - $temp_url = "ucp.$phpEx$SID&mode=viewprofile&u=$user_id"; - $msn_img = ($row['user_msnm']) ? '' . $user->img('icon_msnm', $user->lang['MSNM']) . '' : ''; - $msn = ($row['user_msnm']) ? '' . $user->lang['MSNM'] . '' : ''; - - $yim_img = ($row['user_yim']) ? '' . $user->img('icon_yim', $user->lang['YIM']) . '' : ''; - $yim = ($row['user_yim']) ? '' . $user->lang['YIM'] . '' : ''; - - $temp_url = "search.$phpEx$SID&search_author=" . urlencode($username) . "&showresults=posts"; - $search_img = '' . $user->img('icon_search', $user->lang['Search_user_posts']) . ''; - $search = '' . $user->lang['Search_user_posts'] . ''; - - $template->assign_block_vars('memberrow', array( - 'ROW_NUMBER' => $i + ($start + 1), - 'USERNAME' => $username, - 'FROM' => $from, - 'JOINED' => $joined, - 'POSTS' => $posts, - 'AVATAR_IMG' => $poster_avatar, - 'PROFILE_IMG' => $profile_img, - 'PROFILE' => $profile, - 'SEARCH_IMG' => $search_img, - 'SEARCH' => $search, - 'PM_IMG' => $pm_img, - 'PM' => $pm, - 'EMAIL_IMG' => $email_img, - 'EMAIL' => $email, - 'WWW_IMG' => $www_img, - 'WWW' => $www, - 'ICQ_STATUS_IMG'=> $icq_status_img, - 'ICQ_IMG' => $icq_img, - 'ICQ' => $icq, - 'AIM_IMG' => $aim_img, - 'AIM' => $aim, - 'MSN_IMG' => $msn_img, - 'MSN' => $msn, - 'YIM_IMG' => $yim_img, - 'YIM' => $yim, - 'ACTIVE' => $row['user_last_active'], - 'RANK_TITLE' => $rank, - 'RANK_IMG' => $rank_img, - - 'S_ROW_COUNT' => $i, - - 'U_VIEWPROFILE' => "ucp.$phpEx$SID&mode=viewprofile&u=$user_id") - ); - - $i++; - } - while ($row = $db->sql_fetchrow($result)); -} - -// Generate page -$template->assign_vars(array( - 'PAGINATION' => generate_pagination($pagination_url, $total_users, $config['topics_per_page'], $start), - 'PAGE_NUMBER' => on_page($total_users, $config['topics_per_page'], $start), - - 'U_FIND_MEMBER' => "memberlist.$phpEx$SID&mode=searchuser", - 'U_SORT_USERNAME' => "memberlist.$phpEx$SID&sk=a&sd=" . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_FROM' => "memberlist.$phpEx$SID&sk=b&sd=" . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_JOINED' => "memberlist.$phpEx$SID&sk=c&sd=" . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_POSTS' => "memberlist.$phpEx$SID&sk=d&sd=" . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_EMAIL' => "memberlist.$phpEx$SID&sk=e&sd=" . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_WEBSITE' => "memberlist.$phpEx$SID&sk=f&sd=" . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_ICQ' => "memberlist.$phpEx$SID&sk=g&sd=" . (($sort_key == 'g' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_AIM' => "memberlist.$phpEx$SID&sk=h&sd=" . (($sort_key == 'h' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_MSN' => "memberlist.$phpEx$SID&sk=i&sd=" . (($sort_key == 'i' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_YIM' => "memberlist.$phpEx$SID&sk=j&sd=" . (($sort_key == 'j' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_ACTIVE' => "memberlist.$phpEx$SID&sk=k&sd=" . (($sort_key == 'k' && $sort_dir == 'a') ? 'd' : 'a'), - - 'S_MODE_SELECT' => $s_sort_key, - 'S_ORDER_SELECT'=> $s_sort_dir, - 'S_MODE_ACTION' => "memberlist.$phpEx$SID&mode=$mode&form=$form") -); - - // Output the page $page_title = $user->lang['Memberlist']; include($phpbb_root_path . 'includes/page_header.'.$phpEx); $template->set_filenames(array( - 'body' => 'memberlist_body.html') + 'body' => ($mode != 'viewprofile') ? 'memberlist_body.html' : 'memberslist_view.html') ); make_jumpbox('viewforum.'.$phpEx); diff --git a/phpBB/templates/subSilver/memberslist_view.html b/phpBB/templates/subSilver/memberslist_view.html new file mode 100644 index 0000000000..83a29b09b8 --- /dev/null +++ b/phpBB/templates/subSilver/memberslist_view.html @@ -0,0 +1,105 @@ + + + + + + +
{L_INDEX}
+ + + + + + + + + + + + + + + + + + + + + +
{USER_PROFILE}
{L_USER_PRESENCE}{L_USER_FORUM}
{AVATAR_IMG}
{POSTER_RANK}
+ + + + + + + + + + + + + + + + +
{L_JOINED}: {JOINED}
{L_TOTAL_POSTS}: {POSTS}
[{POSTS_PCT} / {POSTS_DAY}]
{L_SEARCH_USER_POSTS}
{L_ACTIVE_IN_FORUM}: {ACTIVE_FORUM}
[ {ACTIVE_FORUM_POSTS} / {ACTIVE_FORUM_PCT} ]{L_NO_POSTS}
{L_ACTIVE_IN_TOPIC}: {ACTIVE_TOPIC}
[ {ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT} ]{L_NO_POSTS}
{L_CONTACT_USER}{L_ABOUT_USER}
+ + + + + + + + + + + + + + + + + + + + + + + + +
{L_EMAIL_ADDRESS}: {EMAIL_IMG}
{L_PM}: {PM_IMG}
{L_MSNM}: {MSN}
{L_YIM}: {YIM_IMG}
{L_AIM}: {AIM_IMG}
{L_ICQ}:
+ + + + + + + + + + + + + + + + +
{L_LOCATION}: {LOCATION}
{L_OCCUPATION}: {OCCUPATION}
{L_INTERESTS}: {INTERESTS}
{L_WEBSITE}: {WWW}
+ +
+ + + + + +
+ + \ No newline at end of file diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php index 04b8ad1597..d268fab721 100644 --- a/phpBB/viewforum.php +++ b/phpBB/viewforum.php @@ -239,6 +239,7 @@ if ($forum_data['forum_postable']) 'S_TOPIC_ICONS' => ($forum_data['enable_icons']) ? true : false, 'S_WATCH_FORUM' => $s_watching_forum, 'S_FORUM_ACTION' => 'viewforum.' . $phpEx . $SID . '&f=' . $forum_id . "&start=$start", + 'S_SHOW_SEARCHBOX' => ($auth->acl_gets('f_search', 'm_', 'a_', $forum_id)) ? true : false, 'S_SEARCHBOX_ACTION'=> "search.$phpEx$SID&f=$forum_id", 'U_POST_NEW_TOPIC' => 'posting.' . $phpEx . $SID . '&mode=post&f=' . $forum_id, @@ -444,11 +445,11 @@ if ($forum_data['forum_postable']) $last_post_img = '' . $user->img('goto_post_latest', 'VIEW_LATEST_POST') . ''; - $topic_author = ($row['topic_poster'] != ANONYMOUS) ? '' : ''; + $topic_author = ($row['topic_poster'] != ANONYMOUS) ? "' : ''; $topic_author .= ($row['topic_poster'] != ANONYMOUS) ? $row['topic_first_poster_name'] : (($row['topic_first_poster_name'] != '') ? $row['topic_first_poster_name'] : $user->lang['GUEST']); $topic_author .= ($row['topic_poster'] != ANONYMOUS) ? '' : ''; - $last_post_author = ($row['topic_last_poster_id'] == ANONYMOUS) ? (($row['topic_last_poster_name'] != '') ? $row['topic_last_poster_name'] . ' ' : $user->lang['GUEST'] . ' ') : '' . $row['topic_last_poster_name'] . ''; + $last_post_author = ($row['topic_last_poster_id'] == ANONYMOUS) ? (($row['topic_last_poster_name'] != '') ? $row['topic_last_poster_name'] . ' ' : $user->lang['GUEST'] . ' ') : "' . $row['topic_last_poster_name'] . ''; $first_post_time = $user->format_date($row['topic_time'], $config['board_timezone']); diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 5258952d7e..aca75c8ffd 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -222,8 +222,9 @@ $sort_order = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'AS // Cache this? ... it is after all doing a simple data grab -$sql = "SELECT * - FROM " . RANKS_TABLE; +$sql = "SELECT * + FROM " . RANKS_TABLE . " + ORDER BY rank_special, rank_min DESC"; $result = $db->sql_query($sql, 120); $ranksrow = array(); @@ -347,6 +348,7 @@ $template->assign_vars(array( 'S_TOPIC_MOD' => ($topic_mod != '') ? '' : '', 'S_MOD_ACTION' => "mcp.$phpEx?sid=" . $user->session_id . "&t=$topic_id&quickmod=1", 'S_WATCH_TOPIC' => $s_watching_topic, + 'S_SHOW_SEARCHBOX' => ($auth->acl_gets('f_search', 'm_', 'a_', $forum_id)) ? true : false, 'S_SEARCHBOX_ACTION' => "search.$phpEx$SID&f=$forum_id", 'U_TOPIC' => $server_path . 'viewtopic.' . $phpEx . '?t=' . $topic_id, @@ -532,29 +534,23 @@ if ($row = $db->sql_fetchrow($result)) } - // Generate ranks, set them to empty string initially. - if (!isset($user_cache[$poster_id]['rank_title'])) + // Set poster rank + if (!isset($user_cache[$poster_id]['rank_title']) && $poster_id != ANONYMOUS) { - if ($row['user_rank']) + foreach ($ranksrow as $rank) { - for($j = 0; $j < count($ranksrow); $j++) + if (empty($row['user_rank']) && $row['user_posts'] >= $rank['rank_min']) { - if ($row['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special']) - { - $user_cache[$poster_id]['rank_title'] = $ranksrow[$j]['rank_title']; - $user_cache[$poster_id]['rank_image'] = ($ranksrow[$j]['rank_image']) ? '' . $poster_rank . '
' : ''; - } + $user_cache[$poster_id]['rank_title'] = $rank['rank_title']; + $user_cache[$poster_id]['rank_image'] = (!empty($rank['rank_image'])) ? '' . $user_cache[$poster_id]['rank_title'] . '
' : ''; + break; } - } - else - { - for($j = 0; $j < count($ranksrow); $j++) + + if (!empty($rank['rank_special']) && $row['user_rank'] == $rank['rank_id']) { - if ($row['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special']) - { - $user_cache[$poster_id]['rank_title'] = $ranksrow[$j]['rank_title']; - $user_cache[$poster_id]['rank_image'] = ($ranksrow[$j]['rank_image']) ? '' . $poster_rank . '
' : ''; - } + $user_cache[$poster_id]['rank_title'] = $rank['rank_title']; + $user_cache[$poster_id]['rank_image'] = (!empty($rank['rank_image'])) ? '' . $user_cache[$poster_id]['rank_title'] . '
' : ''; + break; } } } @@ -573,7 +569,7 @@ if ($row = $db->sql_fetchrow($result)) // this each time the same user appears on this page if (!isset($user_cache[$poster_id]['profile']) && $poster_id != ANONYMOUS) { - $temp_url = "ucp.$phpEx$SID&mode=viewprofile&u=$poster_id"; + $temp_url = "memberlist.$phpEx$SID&mode=viewprofile&u=$poster_id"; $user_cache[$poster_id]['profile_img'] = '' . $user->img('icon_profile', $user->lang['READ_PROFILE']) . ''; $user_cache[$poster_id]['profile'] = '' . $user->lang['READ_PROFILE'] . ''; @@ -613,7 +609,7 @@ if ($row = $db->sql_fetchrow($result)) $user_cache[$poster_id]['aim_img'] = ($row['user_aim']) ? '' . $user->img('icon_aim', $user->lang['AIM']) . '' : ''; $user_cache[$poster_id]['aim'] = ($row['user_aim']) ? '' . $user->lang['AIM'] . '' : ''; - $temp_url = "ucp.$phpEx$SID&mode=viewprofile&u=$poster_id"; + $temp_url = "memberlist.$phpEx$SID&mode=viewprofile&u=$poster_id"; $user_cache[$poster_id]['msn_img'] = ($row['user_msnm']) ? '' . $user->img('icon_msnm', $user->lang['MSNM']) . '' : ''; $user_cache[$poster_id]['msn'] = ($row['user_msnm']) ? '' . $user->lang['MSNM'] . '' : '';