Hi,
With all the problems we are having with the 6.5.x.x
post tracking , I would like to suggest at REAL post tracking solution.
It goes like this:
1. Make a new postread table in the DB.
2. Make a new "read daylimit" setting in config. That setting controls for how many days, countring from the posting date of a post, the system should track the reading of that post:
- a. All posts that are within the daylimit are tracked as read in the db when visited.
- b. All posts inside the daylimit that is not in the postread db, are unread.
- c. All posts outside the daylimit are read pr. definition. No DB needs to be invoked.
3. When calculating the number of unread posts, for example pr. topic level (and if enabled in the config), do the following:
- a. Select a sum count for all posts within the daylimit in post table
- b. Select a sum count for all read posts within the daylimit in new postread table
- c. calculate a - b.
4. When showing, for instance, a threaded postlist, select in the readpost table, all the threads read posts within the daylimit into an array, and compare post by post: is the post id in the array?. Apply the logic of 2.a - c, as shown above, to determine how to render the post: Read or Unread.
5. When reading a post (threaded) or a group of posts (flat), put the one(s) within the daylimit into the postread table.
6. Some sort of pruning of read posts in the postread table outside the daylimit should be worked in.
All of the above, point 2-5, is of course pr. user.
This WILL work. Regardless of cookies, sessions, how many browsers you have open and so on. Yes, it will put a toll on the DB, but I would rather have a strain on my servers than on my users because they cant find out what they have read and what they havent read. One can always reduce the daylimit setting to put some of the load of the DB.
Best of all: The users can understand this principle. If you tell them that they have about, say 5 days, to catch new posts they will accept it because it makes sense to them. They'll just have to come visiting more often.
Tough! ;-)