Version: , by ethank
Developer Last Online: Jun 2010
Version: 2.2.x
Rating:
Released: 11-02-2001
Last Update: Never
Installs: 25
No support by the author.
Hack: Persistent Mark Forum Read Version of VB: 2.2.5 Current version: 1.3 Description: This hack replaces the bahavior of vBulletin's "Mark Forum Read" and "Mark All Forums Read" with a system that uses a database to track when forums are set read. By eliminating the use of cookies for this feature, a user can come onto your boards, read a bit, mark forums read as they go through and logout. The next time they come into the forums, the status of which forums they've read and which they haven't, as well as new posts since the last time they read is preserved.
This functions a lot like EZBoard and Chatspace's Webboard.
Included in this hack are three search routines: searing the entire forum for new messages, an individual forum and a section of the hierarchy (parent + children)
Also: Mark All Forums Read, Mark Individual Forum Read and Mark Hierarchy Section (Parent + Children) Read
Note: The install is not all pretty yet and requires a degree of knowledge of MySQL (to add a table) and PHP (as it requires heavy modifications to core files). It is recommended that you backup everything before using this.
After installation, behavior might be a bit odd until a default "markread" record is created for users. This is created when they first login if one does not exist.
This hack has been tweaked to now not add more than two queries to your index page. It will add load on sub-forum pages currently if you have a lot of nested forums. This will be fixed in the next release.
Instructions:
Follow the instructions in the included text file TO THE LETTER. If you run into problems, post here so we can work through them and improve the instructions. Look for a better install utility soon.
I recommend doing the text editing using a DIFF utility to see where you made changes, it honestly helps.
Place the images in your vbulletin image folder. I included PSD files for them if you want to change colors.
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
Originally posted by DarkReaper So what exactly does this do? What's it add, and what does it do differently?
Its explained in the first post, or you can register on http://www.murmurs.com and see for yourself:
Quote:
This hack replaces the bahavior of vBulletin's "Mark Forum Read" and "Mark All Forums Read" with a system that uses a database to track when forums are set read. By eliminating the use of cookies for this feature, a user can come onto your boards, read a bit, mark forums read as they go through and logout. The next time they come into the forums, the status of which forums they've read and which they haven't, as well as new posts since the last time they read is preserved.
This functions a lot like EZBoard and Chatspace's Webboard.
Included in this hack are three search routines: searing the entire forum for new messages, an individual forum and a section of the hierarchy (parent + children)
Also: Mark All Forums Read, Mark Individual Forum Read and Mark Hierarchy Section (Parent + Children) Read
Ethan's hack is the proper way to do it. I have no idea how anyone could manage with vB's built-in mark read feature (which was introduced only in 2.2.0 btw!).
Originally posted by Tommy Boy Ethan's hack is the proper way to do it. I have no idea how anyone could manage with vB's built-in mark read feature (which was introduced only in 2.2.0 btw!).
Well, there is the caveat that it does add a substantial amount of queries. If you use this and the sub-forums hack you'd better have a well tuned MySQL box!
Although I'm going to start using a cache engine for the sub-forums display as soon as I get the latest version of my site up and running.
// do light bulb
if ($bbuserinfo['lastvisitdate']=='Never') {
$forum['onoff']='on';
} else {
if (isset($bbforumview[$forum['forumid']]) and $bbforumview[$forum['forumid']]>$bbuserinfo['lastvisit']) {
$userlastvisit=$bbforumview[$forum['forumid']];
} else {
$userlastvisit=$bbuserinfo['lastvisit'];
}
// ** CODE ADDED BY ETHANK TO SEE IF THE FORUM WAS MARKED READ SEPERATELY
/* Select id from forum where parentlist like forumid
cycle through, for each if lates thread is greater than mark read time or bbuserinfo, select lastpost, limit 1, if true flag
*/
$forum['onoff'] = 'off';
I hope, this will work.
(But i'm not finished with everything until now. Maybe in just an hour i will try to install this all.)
(The part in index.php is the same like in forumdisplay.php ... isn't it?)