XF 2.1 Can we mark ALL threads as read?

creativeforge

Active member
After conversion to XF2.1, ALL forums are tagged NEW. Is ther a way to reset all this to a forum-wide "Mark read?" That way all new posts will really be new? This would only be done once.
 

Brogan

XenForo moderator
Staff member
I presume they mean for all members.

If so, no, that's not possible - each member has to do it for their own account.
 

sbj

Well-known member
Yes, that is correct. But how many of your users will read it and click on it?

You can tell your users to click on it and configure it to 1 day. So after a day it is sure that it is gone. After the day you can set the limit back to whatever you like.
 

creativeforge

Active member
Yes, that is correct. But how many of your users will read it and click on it?

You can tell your users to click on it and configure it to 1 day. So after a day it is sure that it is gone. After the day you can set the limit back to whatever you like.
Where do you access this setting?
 

Kirby

Well-known member
Changing the setting back and forth is rather pointless - that won't change any read markers in the DB.
While it would display content < 1 day as read, it would display content as unread again after changing the setting back to whatever it was before unless the user triggered a read marker update in DB

It is possible to mark all forums read for all users, but you really would not want to do this on any decent sized forum as it would generate a cartesian product.

Code:
TRUNCATE xf_thread_read;
TRUNCATE xf_forum_read;
INSERT INTO xf_forum_read
(user_id, node_id, forum_read_date)
VALUES
(
    SELECT xf_user.user_id, xf_forum.node_id, UNIX_TMESTAMP(NOW())
    FROM xf_user, xf_forum
);
 

creativeforge

Active member
Changing the setting back and forth is rather pointless - that won't change any read markers in the DB.
Wile it would display content < 1 day as read, it would display content as unread after changing the setting back to whatever it was before unless the user triggered a read marker update in DB

While it is possible to mark all forums read for all users, you really would not want to do this on any decent sized forum as it would generate a cartesian product.

Code:
TRUNCATE xf_thread_read;
TRUNCATE xf_forum_read;
INSERT INTO xf_forum_read
(user_id, node_id, forum_read_date)
VALUES
(
    SELECT xf_user.user_id, xf_forum.node_id, UNIX_TMESTAMP(NOW())
    FROM xf_user, xf_forum
);
I much prefer letting people clean up their own turf... That's for sure. I think I'll instruct them how to do it, and let them do it.

Thanks all for the response! :)
 

sbj

Well-known member
While it would display content < 1 day as read, it would display content as unread again after changing the setting back to whatever it was before unless the user triggered a read marker update in DB

It is possible to mark all forums read for all users, but you really would not want to do this on any decent sized forum as it would generate a cartesian product.
Hmm, I thought so that there is a catch with it but thought maybe the daily cleanup cron would take care of it. Anyway, thanks for the SQL, I bookmarked it for future reference.
 

djbaxter

Well-known member
Yes, that is correct. But how many of your users will read it and click on it?

You can tell your users to click on it and configure it to 1 day. So after a day it is sure that it is gone. After the day you can set the limit back to whatever you like.
Put it in a sitewide notice. If they ignore that, it's their choice and their problem.
 
  • Like
Reactions: sbj
Top