MyBB Community Forums

Full Version: "Go to first unread post" always seems to go to first post in thread
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
MyBB 1.4.6 fresh install, PostgreSQL 8.3.7 database (from postgres yum repository), CentOS 5.3 w/ php-5.1.6-23.el5 & httpd-2.2.3-22.el5.centos ...

When I click on the green "Go to first unread post" arrow next to a thread's header entry in forumdisplay or any of the other places that threads are listed (search, etc), it always takes me to the first post in the thread and not the new posts.

My forum has one long long thread thats going to get a lot longer, if users can't navigate to the first unread post in this thread, its going to be painful.
What's your threadreadcut set to?

Problem is, when a thread drops below the threadreadcut (i.e. it counts as read because it's too old, no matter wether it was actually read or not), and then pops back up due to a new reply, instead of jumping to the first post after threadreadcut, it jumps to the first post of the thread.

So if you have set threadreadcut to something very low (like 1 day), you'll regularly have the case where threads pop back up... especially in low traffic forums it's not unusual for it to take a day for someone to reply.

In our forum we set threadreadcut to 60 days and the issue rarely comes up, since not every day someone replies to a thread that's been dead for 60 days. But in a high traffic forum, setting threadreadcut to such a huge value may cause your threadsread table to grow very large.
(2009-06-14, 09:05 PM)frostschutz Wrote: [ -> ]What's your threadreadcut set to?

Assuming thats "Read Threads in Database (Days)" in "Show Thread Options" (I'm still -very- new to MyBB and its taking me awhile to find everything), it was 7 days, i've upped it to 30, but I only created this board last night Confused

this board likely will have relatively few threads, and a few dozen very active posters but a few 100 readers, I'd hope that there would be at most one entry per registered user per thread in this table?
One entry is entered into the threadsread table. Pressing the green arrow then grabs the date the user last read the thread (within the threadreadcut date) then figures out the post that's after that date (making it the first unread post).

If it can't find that information in the database, then it will default to the first post. (At least, this is how I think it works!).

My only suggestion would be to monitor it. For example, does it happen here on MyBB?
It would be really cool if in the "default to first post" case could be extended to default to threadreadcut date. The green arrow would then jump to the position where people started posting in an old thread again.
(2009-06-29, 08:47 AM)frostschutz Wrote: [ -> ]It would be really cool if in the "default to first post" case could be extended to default to threadreadcut date. The green arrow would then jump to the position where people started posting in an old thread again.

Well then, if there is no date in the threadsread table then that means you have not read the thread yet. Why should it go to the end, when you haven't read any of the posts yet?
Quote:Well then, if there is no date in the threadsread table then that means you have not read the thread yet.

That's not true. I did read the thread. But the threadsread table entry was removed by MyBB, because the thread did not get any reply or I didn't revisit it for some time. The daily clean up task does this:

        // Delete old read topics
        if($mybb->settings['threadreadcut'] > 0)
        {
                $cut = TIME_NOW-($mybb->settings['threadreadcut']*60*60*24);
                $db->delete_query("threadsread", "dateline < '{$cut}'");
                $db->delete_query("forumsread", "dateline < '{$cut}'");
        }

Threads older than $cut automatically marked as read, so wether or not I really read that thread, MyBB considers all those old threads as read, so I read all those threads. There's no distinction anymore between a thread that I actually read, and a thread that just became too old at some point.

When the cut is set to 7 days, and a thread gets no reply for 7 days, the thread is read. I have read that thread or at least MyBB thinks so and shows it as read to me when I browse the forum. And if a thread is read, the postings within that thread must be read too.

Now let's say someone made a reply, and because of this a new discussion started in the thread so there are 25 new replies by the time I see this thread. Since the green arrow jumps to the first post, instead of the first post that's newer than threadreadcut, the green arrow is no help at all! Instead, I have to search for the first new posting manually, by starting from the end of the thread and going backwards page by page.

Why can't the green arrow do that for me? It jumps to the first unread posting while the thread is active, however once the thread jumps below threadreadcut (which only means it's completely read), and pops back up, the postings that were formerly marked read by MyBB (the whole thread, so any post that's older than threadreadcut) are suddenly no longer considered read. It should jump to the first new posting here too.

If someone wants to read from the beginning of the thread, they can always click the thread title instead of the arrow, so they don't lose anything.

When I click the arrow, I want to be jumped into the middle of the thread, to an interesting point such as the part of the thread where the most recent discussion takes place.
You could also reduce the number of entries in the threadsread table; currently it even adds an entry when I browse through old threads, when the entry is really only required for threads with posts newer than threadreadcut.
(2009-06-30, 08:33 AM)frostschutz Wrote: [ -> ]Threads older than $cut automatically marked as read, so wether or not I really read that thread, MyBB considers all those old threads as read, so I read all those threads. There's no distinction anymore between a thread that I actually read, and a thread that just became too old at some point.

When the cut is set to 7 days, and a thread gets no reply for 7 days, the thread is read. I have read that thread or at least MyBB thinks so and shows it as read to me when I browse the forum. And if a thread is read, the postings within that thread must be read too.

Now let's say someone made a reply, and because of this a new discussion started in the thread so there are 25 new replies by the time I see this thread. Since the green arrow jumps to the first post, instead of the first post that's newer than threadreadcut, the green arrow is no help at all! Instead, I have to search for the first new posting manually, by starting from the end of the thread and going backwards page by page.

That's simply how it works, yep. If you want me to remove the tracking limit and then deal with the hundreds of bug reports and support requests dealing with crashed or overloaded threadsread table then you're going to have to be more convincing then what you've said.
well, on my mybb install the green arrow -always- seems to take me to the first post in the thread, regardless of everything said above. it has nothing to do with cut times (the board isn't evenn that old yet) or the read threads limit.

the big variable is, I'm using postgresql and not mysql. I've since discoverd that the postgresql support in mybb is fairly untested (I've found a bunch of postgres-specific SQL errors in the adminCP, never mind quite a few mods that are pure mysql-isms).
Then please report the bugs on PostgreSQL. We can't fix them if no one reports them. I have run MyBB on PostgreSQL a lot, but I can't test all of the components in MyBB. There are just too many.
Pages: 1 2 3