Version: , by (Guest)
Developer Last Online: Jan 1970
Version: Unknown
Rating:
Released: 11-13-2000
Last Update: Never
Installs: 0
No support by the author.
I, personally, think that ezboards best feature is the Mark Forum Read hack.
I don't especially like how vbulletin has a cookie timeout instead. I have a particularly active forum, and it's almost impossible to read every topic. Thus, I think implementing an alternative to the cookie timeout would be great.
Is there anyway someone could create this useful hack? Here is a basic breakdown of how it works:
Inside of every individual forum, there is a Mark Forum Read link. It marks every post in that individual forum read. On the ForumHome page, there is a Mark All Forums Read link. This would (obviously) mark every forum read.
I would certainly prefer this over the cookie timeout. Let me know if it can be done.
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
I for one requested this feature or hack 1000's of times
According to Wluke the problem would be that the cookie must be less than 4k in size and this would increase the size of the cookie, especially on board with lots of forums
Use a database then. Ezboard does it, Webboard did it, etc. Not too much overhead if you cache the results in the session possibly. I'm going to try my hand at doing it with a database in much the same way that Webboard did it.
I made the first step toward fixing the issue. I got it so that instead of relying on a cookie to do the "lastvisit," which is basically how it sets what is read and what isn't, I modified the code in sessions.php to use a database instead. Two columns.
Code:
+----------+------------------+
| Field | Type |
+----------+------------------+
| readtime | int(10) unsigned |
| userid | int(10) unsigned |
+----------+------------------+
So all the code that uses $bbuserinfo[lastvisit] to set whether things are new or not now gets said date from the database instead. I also modified the code to "member.php" which contains the "mark all forums read" code.
Very simple, after I learned some PHP.
I should have the marking of individual forums as read done tommorow evening. It will use a seperate table. I could probably do them in one table (just using a null in the forumid field to indicate a global mark, or a 0), and I actually might now that I think about it.
To do the forum thing, I'll put a line in the global.php to check if the user is displaying anything within a forum (threads, forum listing) and if so, checks the forums mark-read timestamp, compares it against the master all forum mark read time, and if the one for the forum is more current, sets $bbuserinfo[lastvisit] to the forums instead.
The only thing that needs some tricky stuff is the "find new messages." I'm still not certain how I'm going to do it. What I think I'll do is have a "mark all read" clear the individual forum-marks when its clicked. So that way when a user checks for new messages, they could have a blanket "mark all read" and a few forum-specific timestamps. The search would look for anything newer than the mark-all-read timestamp for any forum, unless it has a timestamp that is newer than the all-forum one. In that case it looks at those forums individually for new messages....its an idea. Need to figure that one out a bit more.
Till tommorow!
I'll try to package this hack nicely. I'm really new to this whole vBulletin thing, so what is the best way for me to distribute this once its done?
Good news! I finsihed the Mark Forum Read hack pretty much, including the search for new messages functionality.
I need to go through and clean up code, also marking where I put modifications. What is the standard procedure for doing this in terms of making it easy for you all to put the code in? Should I do them as seperate files that you include in certain spots?
Those who need this hack all appreciate your work very much
How long before we can get our grubby little mits on the code then?
Onslo
Hopefully today. I developed it on my dev workstation (win2k). I'm going to go through and clean up the code, and then do a test install on the production box before packaging it up for you all. If not today, this weekend.