diff options
| author | Andreas Fischer <bantu@phpbb.com> | 2009-07-28 14:56:39 +0000 |
|---|---|---|
| committer | Andreas Fischer <bantu@phpbb.com> | 2009-07-28 14:56:39 +0000 |
| commit | e2d24413b6323ec1863b01413082ef7f7daa739b (patch) | |
| tree | b13ecf99f921741e4e3dcd0efbb17567ccaf9db1 /phpBB/includes | |
| parent | d2420fe5550454871e784be846849d3e57dde5e8 (diff) | |
| download | forums-e2d24413b6323ec1863b01413082ef7f7daa739b.tar forums-e2d24413b6323ec1863b01413082ef7f7daa739b.tar.gz forums-e2d24413b6323ec1863b01413082ef7f7daa739b.tar.bz2 forums-e2d24413b6323ec1863b01413082ef7f7daa739b.tar.xz forums-e2d24413b6323ec1863b01413082ef7f7daa739b.zip | |
More small adjustments to get_unread_topics_list(). #46765
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9883 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/functions.php | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 639e9aa899..289f7f084f 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -4139,7 +4139,7 @@ function get_unread_topics_list($user_id = false, $sql_extra = '') if ($user_id === false) { - $user_id = $user->data['user_id']; + $user_id = (int) $user->data['user_id']; } $tracked_topics_list = $unread_topics_list = $read_topics_list = array(); @@ -4151,11 +4151,12 @@ function get_unread_topics_list($user_id = false, $sql_extra = '') // This list is to fetch later the forums user never read (fully) before $sql = 'SELECT forum_id FROM ' . FORUMS_TRACK_TABLE . " - WHERE user_id = {$user_id}"; + WHERE user_id = $user_id"; $result = $db->sql_query($sql); + while ($row = $db->sql_fetchrow($result)) { - $tracked_forums_list[] = $row['forum_id']; + $tracked_forums_list[] = (int) $row['forum_id']; } $db->sql_freeresult($result); @@ -4164,20 +4165,21 @@ function get_unread_topics_list($user_id = false, $sql_extra = '') FROM ' . TOPICS_TABLE . ' t, ' . TOPICS_TRACK_TABLE . " tt WHERE t.topic_id = tt.topic_id AND t.topic_last_post_time >= tt.mark_time - AND tt.user_id = {$user_id} + AND tt.user_id = $user_id $sql_extra ORDER BY t.topic_last_post_time DESC"; $result = $db->sql_query($sql); + while ($row = $db->sql_fetchrow($result)) { if ($row['topic_last_post_time'] == $row['mark_time']) { // Check if there're read topics for the forums having unread ones - $read_topics_list[$row['topic_id']] = $row['mark_time']; + $read_topics_list[$row['topic_id']] = (int) $row['mark_time']; } else { - $unread_topics_list[$row['topic_id']] = $row['mark_time']; + $unread_topics_list[$row['topic_id']] = (int) $row['mark_time']; } } $db->sql_freeresult($result); @@ -4192,13 +4194,14 @@ function get_unread_topics_list($user_id = false, $sql_extra = '') WHERE t.forum_id = ft.forum_id AND t.topic_last_post_time > ft.mark_time AND ' . $db->sql_in_set('t.topic_id', $tracked_topics_list, true, true) . " - AND ft.user_id = {$user_id} + AND ft.user_id = $user_id $sql_extra ORDER BY t.topic_last_post_time DESC"; $result = $db->sql_query($sql); + while ($row = $db->sql_fetchrow($result)) { - $unread_topics_list[$row['topic_id']] = $row['mark_time']; + $unread_topics_list[$row['topic_id']] = (int) $row['mark_time']; } $db->sql_freeresult($result); @@ -4208,16 +4211,17 @@ function get_unread_topics_list($user_id = false, $sql_extra = '') // And the last step - find unread topics were not found before (that can mean a user has never read some forums) $sql = 'SELECT topic_id - FROM ' . TOPICS_TABLE . " - WHERE topic_last_post_time > {$user->data['user_lastmark']} - AND " . $db->sql_in_set('topic_id', $tracked_topics_list, true, true) . ' + FROM ' . TOPICS_TABLE . ' + WHERE topic_last_post_time > ' . (int) $user->data['user_lastmark'] . ' + AND ' . $db->sql_in_set('topic_id', $tracked_topics_list, true, true) . ' AND ' . $db->sql_in_set('forum_id', $tracked_forums_list, true, true) . " $sql_extra ORDER BY topic_last_post_time DESC"; $result = $db->sql_query_limit($sql, 1000); + while ($row = $db->sql_fetchrow($result)) { - $unread_topics_list[$row['topic_id']] = $user->data['user_lastmark']; + $unread_topics_list[$row['topic_id']] = (int) $user->data['user_lastmark']; } $db->sql_freeresult($result); } |
