aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/index.php')
-rw-r--r--phpBB/index.php84
1 files changed, 72 insertions, 12 deletions
diff --git a/phpBB/index.php b/phpBB/index.php
index e2db35a677..d94f167e01 100644
--- a/phpBB/index.php
+++ b/phpBB/index.php
@@ -48,6 +48,58 @@ if(empty($viewcat))
$viewcat = -1;
}
+
+/*
+//
+// This code allows for individual topic
+// read tracking, on small, low volume sites
+// it'll probably work very well. However, for
+// busy sites the use of a text field in the DB
+// combined with the additional UPDATE's required
+// in viewtopic may be unacceptable. So, by default
+// this code is off, however you may want to play
+// ... remember that the users table needs a
+// 'user_topics_unvisited' field of type TEXT ( or
+// equiv) and you need to remove the commented
+// out code above the folder_img code in the loop
+// below (this applies to viewforum too).
+//
+// psoTFX
+//
+if($userdata['user_id'] != ANONYMOUS)
+{
+ $unread_topic_list = unserialize($userdata['user_topics_unvisited']);
+
+ $last_update_time = (isset($unread_topic_list['lastupdate'])) ? $unread_topic_list['lastupdate'] : $userdata['session_last_visit'];
+
+ $sql = "SELECT forum_id, topic_id
+ FROM " . TOPICS_TABLE . "
+ WHERE topic_time > $last_update_time";
+ if(!$s_topic_times = $db->sql_query($sql))
+ {
+ error_die(SQL_QUERY, "Could not query topic times.", __LINE__, __FILE__);
+ }
+
+ if($db->sql_numrows($s_topic_times))
+ {
+ while($new_topics_ary = $db->sql_fetchrow($s_topic_times))
+ {
+ $unread_topic_list[$new_topics_ary['forum_id']][$new_topics_ary['topic_id']] = 1;
+ }
+
+ $unread_topic_list['lastupdate'] = time();
+
+ $sql = "UPDATE " . USERS_TABLE . "
+ SET user_topics_unvisited = '" . serialize($unread_topic_list) . "'
+ WHERE user_id = " . $userdata['user_id'];
+ if(!$s_topic_times = $db->sql_query($sql))
+ {
+ error_die(SQL_QUERY, "Could not update user topics list.", __LINE__, __FILE__);
+ }
+ }
+}
+*/
+
//
// Output page header and
// open the index body template
@@ -95,10 +147,11 @@ if($total_categories)
case 'postgresql':
$limit_forums = ($viewcat != -1) ? "AND f.cat_id = $viewcat " : "";
$sql = "SELECT f.*, t.topic_id, t.topic_replies, t.topic_last_post_id, u.username, u.user_id, p.post_time
- FROM ".FORUMS_TABLE." f, ".TOPICS_TABLE." t, ".POSTS_TABLE." p, ".USERS_TABLE." u
+ FROM ".FORUMS_TABLE." f, ".TOPICS_TABLE." t, ".POSTS_TABLE." p, ".USERS_TABLE." u, ".AUTH_FORUMS_TABLE." af
WHERE f.forum_last_post_id = p.post_id
AND p.post_id = t.topic_last_post_id
AND p.poster_id = u.user_id
+ AND af.forum_id = f.forum_id
$limit_forums
UNION (
SELECT f.*, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
@@ -116,10 +169,11 @@ if($total_categories)
case 'oracle':
$limit_forums = ($viewcat != -1) ? "AND f.cat_id = $viewcat " : "";
$sql = "SELECT f.*, t.topic_id, t.topic_replies, t.topic_last_post_id, u.username, u.user_id, p.post_time
- FROM ".FORUMS_TABLE." f, ".POSTS_TABLE." p, ".TOPICS_TABLE." t, ".USERS_TABLE." u
+ FROM ".FORUMS_TABLE." f, ".POSTS_TABLE." p, ".TOPICS_TABLE." t, ".USERS_TABLE." u, ".AUTH_FORUMS_TABLE." af
WHERE f.forum_last_post_id = p.post_id(+)
AND p.post_id = t.topic_last_post_id(+)
- AND p.poster_id = u.user_id(+)
+ AND p.poster_id = u.user_id(+)
+ AND af.forum_id = f.forum_id(+)
$limit_forums
ORDER BY f.cat_id, f.forum_order";
break;
@@ -209,15 +263,21 @@ if($total_categories)
if( ( ($forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $viewcat == -1) ||
($category_rows[$i]['cat_id'] == $viewcat) ) && $is_auth_ary[$forum_rows[$j]['forum_id']]['auth_view'])
{
-
- if($userdata['session_start'] == $userdata['session_time'])
- {
- $folder_image = ($forum_rows[$j]['post_time'] > $userdata['session_last_visit']) ? "<img src=\"".$images['new_folder']."\">" : "<img src=\"".$images['folder']."\">";
- }
- else
- {
- $folder_image = ($forum_rows[$j]['post_time'] > $userdata['session_time'] - 300) ? "<img src=\"".$images['new_folder']."\">" : "<img src=\"".$images['folder']."\">";
- }
+// if($userdata['user_id'] != ANONYMOUS)
+// {
+// $folder_image = (count($unread_topic_list[$forum_rows[$j]['forum_id']])) ? "<img src=\"".$images['new_folder']."\">" : "<img src=\"".$images['folder']."\">";
+// }
+// else
+// {
+ if($userdata['session_start'] == $userdata['session_time'])
+ {
+ $folder_image = ($forum_rows[$j]['post_time'] > $userdata['session_last_visit']) ? "<img src=\"".$images['new_folder']."\">" : "<img src=\"".$images['folder']."\">";
+ }
+ else
+ {
+ $folder_image = ($forum_rows[$j]['post_time'] > $userdata['session_time'] - 300) ? "<img src=\"".$images['new_folder']."\">" : "<img src=\"".$images['folder']."\">";
+ }
+// }
$posts = $forum_rows[$j]['forum_posts'];
$topics = $forum_rows[$j]['forum_topics'];