Best way to keep track of all topics viewed by a member

Started by Biology Forums, September 24, 2019, 01:56:14 PM

Previous topic - Next topic

Biology Forums

Hi all,

Just want your opinions, what's the best way to keep track of all topics viewed by a member?

First -- does anyone have a mod already made?
Second -- would the code have to be implemented in display.php?

Aleksi "Lex" Kilpinen

For what purpose would this be? I mean, in a way SMF already keeps tabs on what every user has read, and how far in the topic, but it's not exactly something that was designed for sharing the info with anyone else than the user themselves.
Slava
Ukraini!
"Before you allow people access to your forum, especially in an administrative position, you must be aware that that person can seriously damage your forum. Therefore, you should only allow people that you trust, implicitly, to have such access." -Douglas

How you can help SMF

Diego Andrés

Why not recycle stuff from the read posts/topics? Depending on what you want to do with it of course

SMF Tricks - Free & Premium Responsive Themes for SMF.

Biology Forums

I know about the read/unread table. The issue with that is that you can mark it unread, and it'll no longer be logged.

I was thinking of implementing a log for my members so that they can keep track of all the topics they've viewed. This is important when you're running a question/answer website, as you may want to revisit questions you've seen.

Diego Andrés

log_topics table will always have an entry of the topic if the user visited it no matter what, at least on 2.0.x, it will only update id_msg column

SMF Tricks - Free & Premium Responsive Themes for SMF.

shadav

I use this mod to show who's read the topic (or well, they visited it anyways)
thought it'd be helpful for when someone says that they didn't see the rules or important posts ;) so the staff can check to see if they have or haven't actually seen the topic

https://custom.simplemachines.org/mods/index.php?mod=4172

you can set permissions for which groups can see it, i have it set just to staff.....
there's also one for the boards, if you want to see that as well
https://custom.simplemachines.org/mods/index.php?mod=4212

Arantor

Best way is to not do it at all, fastest and most space efficient. Would be intrigued to know what benefit it has.

Diego Andrés

Quote from: shadav on September 24, 2019, 02:46:10 PM
I use this mod to show who's read the topic (or well, they visited it anyways)
thought it'd be helpful for when someone says that they didn't see the rules or important posts ;) so the staff can check to see if they have or haven't actually seen the topic

https://custom.simplemachines.org/mods/index.php?mod=4172

I was actually trying to find that mod but doesn't seem to have any keyword related to what people are actually searching.

Quote from: Arantor on September 24, 2019, 02:49:53 PM
Best way is to not do it at all, fastest and most space efficient. Would be intrigued to know what benefit it has.

If it's for a custom page per user I guess it should be fine, maybe

SMF Tricks - Free & Premium Responsive Themes for SMF.

Arantor

Still means at least one query per page view per user (not guest). On a busy site this is not trivial.

Biology Forums

Quote from: Diego Andrés on September 24, 2019, 02:42:22 PM
log_topics table will always have an entry of the topic if the user visited it no matter what, at least on 2.0.x, it will only update id_msg column

Did not know that. Thanks

@arantor, "best way is to not do it at all" ... is that in reference to my request or pertaining to another comment. If in reference to my request, I explained why it's necessary in my previous post.

Moving forward I will analyze the topic_log table (or whatever it's named)...

shawnb61

#10
A word of caution:  Yes, log_topics tracks which topics you've seen (& last msg#, so it knows how far into that topic you've viewed). 

BUT...  log_topics rows are temporary.  The "Mark Read" buttons DELETE log_topics rows. 

The problem with log_topics is that it can grow uncontrollably.  Theoretically up to every topic x every member, it's very easy to get millions (even 10s of millions) of rows in log_topics. 

When you "Mark Read", what it does is provide a board-level entry into log_mark_read, that says "for this entire board, all topics have been read up to XXX", and it then deletes all of the log_topics entries for that user/board.  This drastically reduces the # of records required to track what you've looked at.  "Mark all boards as read" does this for all boards - deleting all log_topics for that user. 

If you want to use log_topics, you need to bear that in mind.  I do not recommend disabling marking boards read, as log_topics can become problematically large.  (I also do not recommend the existing utilities out there that mark all boards read for EVERYONE, as that can make matters worse...)
Address the process rather than the outcome.  Then, the outcome becomes more likely.   - Fripp

Arantor

And ^^ is why you don't want to do it at all if you can possibly help it, because you're now going to end up with this table, likely plus another table that doesn't autoprune, which will get big.

And actually in my experience of being on Q&A sites, unread replies to my questions and to be able to go to my profile to see my questions are usually the only two things I care about.

Advertisement: