Version: 1.00, by JohnWoo
Developer Last Online: Apr 2014
Version: 2.2.x
Rating:
Released: 12-26-2002
Last Update: Never
Installs: 1
Is in Beta Stage
No support by the author.
Hello everybody !
Few words how it works
As you know vb "marking threads and posts read" system is time and cookie based. This hack is based on adding to "post" table one extra field - "view" (suppose that it must work fine with TEXT type, but for really large forums we can make it LONGTEXT
Now when somebody open thread, his usedid will be added to that "view" field of last post of thread. After several users (who open that thread) string in that field may look like
37 298 16879 7287 29087 28 298
So it will be just a long string with userid-s separated by space
Now then user open forumdisplay.php script will check each last post of each thread for part of string
[space userid space]
and if is will be found thread will be marked as read. If you think that it will use too much database space, i can say that it will use some place of course, but not too much, because after each reply in thread (new last post in thread) all old data in all "view" fields of all old posts in thread will be deleted. On forum home page script looks for userid number in "view" field of last post in each forum and if it found display that there were no new posts in that forum. To make it work faster (with less database requests) i added "lastpostid" field in thread table
Additionally read\unread marking can be time based (new field ) "marktime" in users table. And users are able to select number of hours (all posts older then that number of hours will be marked as read) in their CP options.
And at last to mark forum (or all forums) read we just mark read last post in that forum (or in all forums
Sorry for my English and please ask questions if you don't understand something
I don't know if you can use a JOIN for that.
You combine two or more tables with a JOIN, and if that JOIN doesn't find something in one of the tables which matches the WHERE criteria, the entire query doesn't return anything if I am not mistaken. So you would have to enter something into that table thread_read (or however you want to call it) for every thread there is on your forum.
I REALLY HATE how vbulletin uses cookies for this... If I read a thread i like the stupid ON gif to turn off!!!
yet you have to wait 15 minutes for timeout so it will be marked as read.. isn't that stupid?! When online it's hard to see which forum you have read because the ON gif does not switch to OFF.
I wish vbulletin would have a better system for read/unread threads and forums because the current system really sucks.
I like the idea your trying to do though,.. only if someone could put some sense into vbulletin team to find a workaround for this.