"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

overclockers.at v4 - extending vb

.deRElict. 03.07.2002 20628 42
click to enlarge
o.v.e.r.clockers.at
Overclocking a forums engine

When the guys from oc.at hired me, the mission was clear: integrate their forums with the website that contained content like articles and news. The result of three months of brainstorming, development and testing launched a month ago. Time to look back and talk about this phase and the things to come.

About the Author



Dear beloved Reader,

I am protected, Main Developer of o.v.e.r.clockers.at.

I started working with computers when I was eleven, soon left the dark side known as proprietary software, and was hooked on the open source principle.
Today I can look back at almost twelve years of programming experience and two years of project-experience in developing Content Management Systems.

And so it begins...


And so it begins...

When I became a part of the oc.at staff, the site already contained a living community of over 2000 members. The site was based on the popular vBulletin Forums software, the NewsPro News-Script, and a tiny CMS for its articles. The problems the site had, were:

- The guests visiting the Frontpage often ignored the Forums, because there was only one Link in its navigation pointing at it.
- The regular members spent their time in the forums only and missed the content that was published at the Frontpage.
- The vBulletin software is indeed a nice piece of software, but lacks important features a user can expect from a modern web application.

So the primary task was to integrate site and forums, giving the forums a chance to aquire new members trough the content on the site, and offering our members a comfortable way of dealing with the content.

Secondary task was to create a modern forum that offers our regular members more efficient ways of discussion.
Because the vBulletin software is Open Source, we had the option to simply take the forum and adapt it the way we need.

The Results


The Results

click to enlarge
Setup Classes
Content Management

All the modifications for vB that we were aware of were only some Plugins, with their own database-backend, and some ugly page to display them. What we wanted was a real integration into vB. The Idea is to simply create a new thread with the content inside the first post.

But what is needed then?

click to enlarge
One of Our Forums
First you need a way to separate the items from normal threads - what we did is to implement a property "Class", where you can simply set parameters like prefix (for forumdisplay), default sticky-state, and the bbcodes allowed (we added a lot of them but didn't wanted them to be used by normal threads). All easy to set up using the Admin Panel. Just create a usergroup "Newsposter", put some users inside and allow them to create threads with the class "News".

click to enlarge
Posting a New Item
The second thing required was some kind of workflow management - we've choosen a very simple concept here - just a flag "published" - set by creating/editing posts, you can set it to be unpublished - now it can only be seen by Administrators and the thread creator of course and is highlighted using a pink color on forum and thread display.

Coding the mainpage was easy, just some queries, a cache to dramatically increase performance and done.
The result is a fully integrated Content Management System that works exactly like our users want.

The Textparser

click to enlarge
Textparser in Action
The Idea is not very far ... every community has its slang-words, and you often get questions by newbies "What does pr0n mean?". So its a nice idea to have these words highligted in your forums and when pointed at it it displays the description in a tooltip. What we did?
Took the vbglossary-hack (thanks to TWTCommish, user @vb.org), and used its database-concept to highlight the words inside. Additionaly we added a switch to each glossary-term to enable/disable highlighting.
A second feature that comes out of this is product placement. So when the name of one of our partners is written, it will be converted to a href to the homepage. effective and not annoying - exactly what we wanted.

click to enlarge
Our Casemod Gallery
Attachments, Pictures and more

What vB really lacks is the ability to upload multiple attachments per post - so we added that. Then just do a modification to the thread display, hook a caching-engine between, and you get a nice thumbnail-function. For forums that are destined to hold pictures only, we modded the forumsdisplay; preview-thumbnails instead of thread titles. Very nice for our Casemod-Gallery.

What's new?

It's something that really annoyed me in vB - the way it saves the status of unread threads. The problem was - you log in, see new threads, do something else for 15 minutes and all is marked read automatically. That sucks!

So our first idea was to simply increase the timeout-value. Didn't work, because a browser can store only 20 cookies per page. And think of the Traffic when it could handle more!

click to enlarge
The New New-Posts
It was paramount to us to change that, so we implemented a comletely new, database-driven system.
Benefits of this systems are:

- Database-driven, so even when you log in from another machine or Browser you don't miss anything or read it twice
- Hundred percent accurate
- Number of new posts/threads aren't only displayed on the Forums Home Page, they are visible anywhere in the forums.
- When a thread has 2 Pages and you only visit Page one, the Posts from page 2 are still unread.
- Fast: using a caching-engine, the new system is as performant as the old one.

Other Stuff


Other Stuff

click to enlarge
the user-profile
We made a lot of other other modifications (w3c-compliance, cpu-db, ...) not worth explaining here.
Also we installed some of them from vb.org and modded them to fit our needs. Thanks fly to the following Hacks:

http://www.vbulletin.org/forum/show...;threadid=34014 (Who was online Today)
http://www.vbulletin.org/hacks/inde...k&hackid=16 (Sig control)
http://www.vbulletin.org/forum/show...;threadid=28561 (Last Threadtitle on Forumhome)
http://www.vbulletin.org/forum/show...;threadid=32849 (Add Locations to who's online)
http://www.vbulletin.org/forum/show...;threadid=29760 (VBPAd)
http://www.vbulletin.org/forum/show...;threadid=31983 (Attachment-Viewer)
http://www.vbulletin.org/forum/show...;threadid=34385 (vbglossary)
http://www.vbulletin.org/forum/show...;threadid=34597 (Quick Reply)
http://www.vbulletin.org/hacks/inde...k&hackid=53 (Reason for Edit)
http://www.vbulletin.org/hacks/inde...k&hackid=91 (New bbcode.js)

The Future


The Future

There are a lot of other ideas a forum could be improved - task is to fully melt content management and community ... haven't seen any project that does this as well as we need it til now.

Would I again choose vB as a codebase? to be honest: no. The monolithic way vB is designed often was a pain in the ass when I had to change anything. Don't get me wrong, it's just obvious that vB is a product that has grown over the years. good when you don't want to throw something completely new at your community with every version, but bad for developers. I got some experience with vB's code - some concepts are very interesting, e.g. the way something is cached to improve performance, on the other hand my head often made contact with the table due to the monolithic approach mentioned above.
Let's just say I think I know WHY vb.com is developing a completely new version, I'm excited to see it when it's done.

But I still think that it wouldn't be the thing we want. As mentioned above we want a system that fully integrates all the communities needs into one standarized interface - flexible, fast, blah blah. Going away from these lousy concept every second portal-engine offers, module for this, module for that; this just sucks! What the User really wants is integration!

I'll give an example: The user comes to our frontpage, reads some review about on of the new graphics-cards. From there he can directly participate in discussions (The the discussions themself will reveal possibilities today only known from good mail-clients), about these topics, read reviews about other cards, compare them and can directly buy the hardware from our site - directly without anything else to do, and he will be billed through his membership-account. The site itself will adapt itself to exactly fit the users intrests and surfing style. Powerful customization features will help him to accomplish this.
The big picture is to offer our members a whole new, very efficient surfing experience, giving them no need to even visit other webpages of its kind anymore.

So the mission for the future is to create such a beast - hard to do, but we have a very clear picture of what it will be. stay tuned.

If you are interested in v4, or in details regarding the new project mentioned above (I'm currently seeking for partners supporting the development), feel free to contact me - protected
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz