From d16afb456d5c1d7667b8424552004a2e75b9cdda Mon Sep 17 00:00:00 2001 From: glix08 Date: Thu, 8 Aug 2013 21:10:01 +0000 Subject: [PATCH] r542 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Частичный откат r541 из-за текущей невозможности полноценной реализации задуманного (новый механизм работы с сессиями будет позднее). Фикс отправки личных сообщений с просьбой о скачивании гостю. git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@542 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293 --- upload/callseed.php | 2 +- upload/config.php | 4 ++-- upload/includes/functions.php | 21 +++++++++++++++------ upload/includes/sessions.php | 4 ++-- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/upload/callseed.php b/upload/callseed.php index 197c985e9..bbe680f77 100644 --- a/upload/callseed.php +++ b/upload/callseed.php @@ -103,7 +103,7 @@ function call_seed($topic_id, $t_info, $to_user_id) $row = DB()->fetch_row($sql); if ($row['seeders'] <= 2) { - $sql = "SELECT user_id FROM ". BB_BT_DLSTATUS ." WHERE topic_id = $topic_id AND user_id != {$userdata['user_id']}"; + $sql = "SELECT user_id FROM ". BB_BT_DLSTATUS ." WHERE topic_id = $topic_id AND user_id NOT IN ({$userdata['user_id']}, ". EXCLUDED_USERS_CSV .")"; foreach(DB()->fetch_rowset($sql) as $row) { diff --git a/upload/config.php b/upload/config.php index e88e1a060..3e8062c5c 100644 --- a/upload/config.php +++ b/upload/config.php @@ -55,8 +55,8 @@ $domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $do // Increase number of revision after update $bb_cfg['tp_version'] = '2.5 (unstable)'; -$bb_cfg['tp_release_date'] = '08-08-2013'; -$bb_cfg['tp_release_state'] = 'R541'; +$bb_cfg['tp_release_date'] = '09-08-2013'; +$bb_cfg['tp_release_state'] = 'R542'; // Database $charset = 'utf8'; diff --git a/upload/includes/functions.php b/upload/includes/functions.php index a73571b57..6bb2a8203 100644 --- a/upload/includes/functions.php +++ b/upload/includes/functions.php @@ -1357,13 +1357,21 @@ function phpbb_rtrim($str, $charlist = false) } // Get Userdata, $u can be username or user_id. If $force_name is true, the username will be forced. -function get_userdata ($u, $force_name = false) +function get_userdata ($u, $force_name = false, $allow_guest = false) { if (!$u) return false; + if (intval($u) == GUEST_UID && $allow_guest) + { + if ($u_data = CACHE('bb_cache')->get('guest_userdata')) + { + return $u_data; + } + } + $u_data = array(); $name_search = false; - $exclude_anon_sql = "AND user_id != ". GUEST_UID; + $exclude_anon_sql = (!$allow_guest) ? "AND user_id != ". GUEST_UID : ''; if ($force_name || !is_numeric($u)) { @@ -1372,10 +1380,6 @@ function get_userdata ($u, $force_name = false) } else { - if ($u == GUEST_UID) - { - return false; - } $where_sql = "WHERE user_id = ". (int) $u; } @@ -1391,6 +1395,11 @@ function get_userdata ($u, $force_name = false) } } + if ($u_data['user_id'] == GUEST_UID) + { + CACHE('bb_cache')->set('guest_userdata', $u_data); + } + return $u_data; } diff --git a/upload/includes/sessions.php b/upload/includes/sessions.php index 49f880a8f..4466c45c4 100644 --- a/upload/includes/sessions.php +++ b/upload/includes/sessions.php @@ -181,7 +181,7 @@ class user_common $login = false; $user_id = ($bb_cfg['allow_autologin'] && $this->sessiondata['uk'] && $this->sessiondata['uid']) ? $this->sessiondata['uid'] : GUEST_UID; - if ($userdata = get_userdata(intval($user_id), false)) + if ($userdata = get_userdata(intval($user_id), false, true)) { if ($userdata['user_id'] != GUEST_UID && $userdata['user_active']) { @@ -193,7 +193,7 @@ class user_common } if (!$userdata || ($userdata['user_id'] != GUEST_UID && !$login)) { - $userdata = get_userdata(GUEST_UID, false); + $userdata = get_userdata(GUEST_UID, false, true); } $this->session_create($userdata, true);