Already Read entries [message #162033] |
Mon, 15 March 2010 02:03  |
|
After Update from 2.7.6 to 3.0 we noticed the following problem:
In treeview the read entries are not marked as read (in difference to the old version)
So if you go through the thread you need to "Update" the page with the browser to see what has been read already. Should happen directly after reading ...
Alopezie.de - das Forum zum Thema Haarausfall
|
|
|
|
|
|
|
|
Aw: Already Read entries [message #167356 is a reply to message #162109] |
Sat, 09 June 2012 11:38   |
|
After upgrading to 3.0.4. RC2 this feature shows another problem :
- when going through the tree all seen entries are correctly marked
- when leaving the thread or reloading the forum does not save this information, so coming back everything is "unread"
Alopezie.de - das Forum zum Thema Haarausfall
|
|
|
|
Re: Aw: Already Read entries [message #187051 is a reply to message #167356] |
Thu, 28 January 2016 06:20   |
|
I've just upgraded from 2.7.7 to 3.0.5 and I'm having this problem too:
- messages show as read in the tree view
- after leaving the thread most of the ones that were read are not marked as read (I suspect just the first one you read is marked as read)
|
|
|
Re: Aw: Already Read entries [message #187053 is a reply to message #187051] |
Sat, 30 January 2016 09:29   |
|
I'm thinking that the problem is in tree_msg.php.t and root_index.php.t
Back on 17/04/2011 a change was made to tree_msg.php.t, the following was removed:
th_inc_view_count($msg_obj->thread_id);
if (_uid && $msg_obj) {
if ($msg_obj->last_forum_view < $msg_obj->post_stamp) {
user_register_forum_view($msg_obj->forum_id);
}
if ($msg_obj->last_view < $msg_obj->post_stamp) {
user_register_thread_view($msg_obj->thread_id, $msg_obj->post_stamp, $msg_obj->id);
}
}
at the same time a switch statement was added to root_index.php.t:
switch ($t) {
case 'msg':
if (!isset($_GET['prevloaded'])) {
th_inc_view_count($frm->id);
}
if (_uid && $obj2) {
if ($frm->last_forum_view < $obj2->post_stamp) {
user_register_forum_view($frm->forum_id);
}
if ($frm->last_view < $obj2->post_stamp) {
user_register_thread_view($frm->id, $obj2->post_stamp, $obj2->id);
}
}
break;
case 'tree':
th_inc_view_count($msg_obj->thread_id);
if (_uid && $msg_obj) {
if ($msg_obj->last_forum_view < $msg_obj->post_stamp) {
user_register_forum_view($msg_obj->forum_id);
}
if ($msg_obj->last_view < $msg_obj->post_stamp) {
user_register_thread_view($msg_obj->thread_id, $msg_obj->post_stamp, $msg_obj->id);
}
}
break;
case 'login':
/* Clear expired sessions AND anonymous sessions older than 1 day. */
q('DELETE FROM {SQL_TABLE_PREFIX}ses WHERE time_sec<'. (__request_timestamp__- ($FUD_OPT_3 & 1 ? $SESSION_TIMEOUT : $COOKIE_TIMEOUT)) .' OR (user_id>2000000000 AND time_sec<'. (__request_timestamp__- 86400) .')');
break;
case 'thread':
case 'threadt':
if (_uid) {
user_register_forum_view($frm_id);
}
break;
}
I've changed the switch statement to add an item for 'tree_msg' that falls through to 'tree'. That means that it then gets called when navigating the thread tree via AJAX.
I'm not sure whether this fix is 100% correct yet, it is possible that it is marking stuff read that it shouldn't be.
|
|
|
|
Re: Aw: Already Read entries [message #187055 is a reply to message #187054] |
Sun, 31 January 2016 06:15   |
|
That change definitely makes marking read work better in tree view (as it wasn't really working at all before).
However, I could claim it is a complete fix. It still isn't working as well as it did in 2.7.7
I don't yet understand enough about how the read table is supposed to work to know if there is anything more I can do to improve it. I don't really know my way around the FUDforum code.
[Updated on: Sun, 31 January 2016 06:15] Report message to a moderator
|
|
|
|
|
Re: Aw: Already Read entries [message #187104 is a reply to message #187101] |
Mon, 04 April 2016 09:28   |
|
Ok, I have a better fix. In root_index.php.t, add the following to the switch statement:
case 'tree_msg':
if (_uid && $msg_obj) {
th_inc_view_count($msg_obj->thread_id);
if ($msg_obj->last_forum_view < $msg_obj->post_stamp) {
user_register_forum_view($msg_obj->forum_id);
}
if ($msg_obj->last_view < $msg_obj->post_stamp) {
user_register_thread_view($msg_obj->thread_id, $msg_obj->post_stamp,
}
}
break;
[Updated on: Tue, 05 April 2016 10:34] Report message to a moderator
|
|
|
|