MyBB Community Forums

Full Version: [F] On/Off Status in SQLite [C-Michael83]
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
MyBB Version: 1.4.4
SQLite Version: 2.8.17
Problem: No matter whether you view a forum, read all the posts in a forum, or click 'Mark All Forums Read' in the footer, the forums always say that there are new posts and display [Image: on.gif]
To reproduce: Make a forum and make just one post in it. Go to the index, and you'll see it's showing there's unread posts. Read the thread, then go back to the forum it was in, and then the index, and it will still say there are unread posts. Click 'Mark All Forums Read' in the footer, it will still say there are new posts.
Extra Info: I have a 1.4.4 forum set up on the same server (localhost) using MySQL and it works fine with that. Also, on the SQLite forum, cookie settings etc are all correct. It also seems to work correctly on SQLite if you are viewing as a Guest. EDIT: Ok, it also seems this might be some sort of cookie issue... I reinstalled and the first time I tried to mark as read, it worked fine, but after that, it didn't, just stayed showing it was unread. 2nd EDIT: Also, when you click the on.gif image, it turns to off.gif, like it should... but when you refresh, it shows as on.gif again.

Here's a quick video if you're interested.
I can confirm the Problem on my 1.4.4 installation with SQLite. Another Problem is, that the function "go to last unread post" is stuck und points alway to the same post although there are many followups in the threads.

For performance reasons I moved the database to MYSql and the problem still exists even on my new database.
Thank you for your bug report.

This bug has been fixed in our internal code repository. Please note that the problem will not be fixed here until these forums are updated.

With regards,
MyBB Group
In inc/functions_indicators.php you need to find:

switch($db->type)
{
	case "pgsql":
		$db->shutdown_query($db->build_replace_query("forumsread", array('fid' => $fid, 'uid' => $mybb->user['uid'], 'dateline' => TIME_NOW), "fid"));
		break;

replace with

switch($db->type)
{
	case "pgsql":
	case "sqlite2":
	case "sqlite3":
		$db->shutdown_query($db->build_replace_query("forumsread", array('fid' => $fid, 'uid' => $mybb->user['uid'], 'dateline' => TIME_NOW), "fid"));
		break;

and then you'll need the build_replace_query functions for db_sqlite2.php and db_sqlite3.php but I'll commit those since they're not small changes.