diff options
author | Nils Adermann <naderman@naderman.de> | 2007-01-27 16:04:58 +0000 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2007-01-27 16:04:58 +0000 |
commit | aa8ebc7bf3126e21b07fffffb50ac49fc7215fad (patch) | |
tree | 76680ebd31a4163a77a09319b71d91f048bc2c00 /phpBB/includes/mcp/mcp_forum.php | |
parent | 14e209a487abc134812147907ef4e03d2850a767 (diff) | |
download | forums-aa8ebc7bf3126e21b07fffffb50ac49fc7215fad.tar forums-aa8ebc7bf3126e21b07fffffb50ac49fc7215fad.tar.gz forums-aa8ebc7bf3126e21b07fffffb50ac49fc7215fad.tar.bz2 forums-aa8ebc7bf3126e21b07fffffb50ac49fc7215fad.tar.xz forums-aa8ebc7bf3126e21b07fffffb50ac49fc7215fad.zip |
- introducing read/unread images in the MCP, if you view something through the MCP it will not update the "read" status of a post/topic/forum [includes Bug #6796]
git-svn-id: file:///svn/phpbb/trunk@6936 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/mcp/mcp_forum.php')
-rw-r--r-- | phpBB/includes/mcp/mcp_forum.php | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/phpBB/includes/mcp/mcp_forum.php b/phpBB/includes/mcp/mcp_forum.php index 4b8961bf38..cf41df646d 100644 --- a/phpBB/includes/mcp/mcp_forum.php +++ b/phpBB/includes/mcp/mcp_forum.php @@ -99,8 +99,18 @@ function mcp_forum_view($id, $mode, $action, $forum_info) $topic_rows = array(); - $sql = 'SELECT t.* - FROM ' . TOPICS_TABLE . " t + if ($config['load_db_lastread']) + { + $read_tracking_join = ' LEFT JOIN ' . TOPICS_TRACK_TABLE . ' tt ON (tt.topic_id = t.topic_id AND tt.user_id = ' . $user->data['user_id'] . ')'; + $read_tracking_select = ', tt.mark_time'; + } + else + { + $read_tracking_join = $read_tracking_select = ''; + } + + $sql = "SELECT t.*$read_tracking_select + FROM " . TOPICS_TABLE . " t $read_tracking_join WHERE (t.forum_id = $forum_id OR t.forum_id = 0) " . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1') . " $limit_time_sql @@ -109,19 +119,40 @@ function mcp_forum_view($id, $mode, $action, $forum_info) while ($row = $db->sql_fetchrow($result)) { - $topic_rows[] = $row; + $topic_rows[$row['topic_id']] = $row; + $topic_list[] = $row['topic_id']; } $db->sql_freeresult($result); - foreach ($topic_rows as $row) + $topic_tracking_info = array(); + // Get topic tracking info + if ($config['load_db_lastread']) + { + $topic_tracking_info = get_topic_tracking($forum_id, $topic_list, $topic_rows, array($forum_id => $forum_info['mark_time']), array()); + } + else + { + $topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_list, array()); + } + + foreach ($topic_rows as $topic_id => $row) { $topic_title = ''; $replies = ($auth->acl_get('m_approve', $forum_id)) ? $row['topic_replies_real'] : $row['topic_replies']; + if ($row['topic_status'] == ITEM_MOVED) + { + $unread_topic = false; + } + else + { + $unread_topic = (isset($topic_tracking_info[$topic_id]) && $row['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false; + } + // Get folder img, topic status/type related information $folder_img = $folder_alt = $topic_type = ''; - topic_status($row, $replies, false, $folder_img, $folder_alt, $topic_type); + topic_status($row, $replies, $unread_topic, $folder_img, $folder_alt, $topic_type); $topic_title = censor_text($row['topic_title']); @@ -159,6 +190,7 @@ function mcp_forum_view($id, $mode, $action, $forum_info) 'S_TOPIC_REPORTED' => (!empty($row['topic_reported']) && $auth->acl_get('m_report', $row['forum_id'])) ? true : false, 'S_TOPIC_UNAPPROVED' => $topic_unapproved, 'S_POSTS_UNAPPROVED' => $posts_unapproved, + 'S_UNREAD_TOPIC' => $unread_topic, ); if ($row['topic_status'] == ITEM_MOVED) |