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

overclockers.at v4 - extending vb

.deRElict. 03.07.2002 - 16:53 21620 42 Thread rating
Posts

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
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.

[pagebreak]About the Author[/pagebreak]

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.

[pagebreak]And so it begins...[/pagebreak]
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.

[pagebreak]The Results[/pagebreak]
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.

[pagebreak]Other Stuff[/pagebreak]
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)

[pagebreak]The Future[/pagebreak]
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

Tex

got r00t?
Avatar
Registered: Aug 2000
Location: salzburg
Posts: 1844
absolut interessanter artikel. :)

bin schon gespannt was dieses "beast" aka v5 wirklich leisten wird...

Doomed ACE

Addicted
Avatar
Registered: Dec 2000
Location: Wien 23
Posts: 586
letzte seite: head made contect with table. Sollt das nciht "contact" heissen?

Zum Artikel: Cool!

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
Hint für alle Artikel in Zukunft: spellflames bitte per PM ... daran ist außer dem Autor nicht wirklich jemand interessiert :)

Daywalker

im Stress
Registered: Apr 2002
Location: Linz
Posts: 2820
w00t!
the history of v4 (and derelict himself) :cool:

not bad
and your english is ins't bad at all :D ;) :)

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Like always: :dup:

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
nice, congrats.

das mit den classes find ich genial gelöst... :)

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Aja so nebenbei, weil du sagst es gibt keine Software (du erwähnst es kurz am Ende) die sowas kann,

http://www.phpnuke.org ;)

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
@Vir@s: don't try to 0wn me :p
ich kenn phpnuke - nur wenn ich einen Wolkenkratzer bauen kann, miete ich mir keine Lehmhütte.
Zum Verständnis: für ein Standard-CMS isses nett, nur hinkt es den Community-Funktionen von vB/v4 doch stark hinterher. an den Grad an Integration die für v5 geplant ist, kommt es nicht ansatzweise ran (sonst würden wir es ja installieren und auf v4 pissen :D)

HVG

untitled
Avatar
Registered: Jun 2000
Location: NÖ
Posts: 5982
hrhr
baust ma a an dere? :D

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
hehe :)
Naja phpnuke is bei weitem keine Lehmhütte mehr!

Außerdem hab ich des auch mehr erwähnt wegen OpenSource Gedanken ;)

Und phpnuke 0wned vB ganz leicht ;)

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
Zitat von Vir@s
hehe :)
Naja phpnuke is bei weitem keine Lehmhütte mehr!
Außerdem hab ich des auch mehr erwähnt wegen OpenSource Gedanken ;)
Und phpnuke 0wned vB ganz leicht ;)

War natürlich ein übertriebener Vergleich.
Zeig mir bitte ein gscheites phpnuke-based board, hab noch keins gefunden - nur so portalseiten a'la /.

Und dieses Comment-System kamma wohl kaum mit einem effizienten Board-System vergleichen wie vB, UBB oder phpBB es bieten.

Warum wohl hat jede wichtige Seite die phpnuke einsetzt ein richtiges Board im Hintergrund zusätzlich laufen?

Selbst wenn hast du durch das Modul-Konzept von phpnuke, slashcode etc. noch immer die fehlende integration wie ich es auch im Artikel angesprochen habe.

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Nana, ned des du mich jetzt falsch verstehst.

PHPNuke so wie du es aus der "Fabrik" bekommst ist keineswegs genau das was du brauchst. Nur du kannst es sicha einfacher ausbauen, vorallem weil es genau dafür gemacht ist.

Abgesehen davon hast du schon von alleine deine Community mit der Seite connected! Also ich denke es ist sicherlich eine gute alternative zu dem allen - und leicht verschiedene Anforderungen anzupassen ;)

und phpBB mit einen effizienten Board-System zu vergleichen ist nicht wirklich gut - setze es auf einer UT-Developer site ein und bin nicht wirklich damit zufrieden ;)

[edit]
unter http://www.nukeforums.com/ findest du einen (graphisch zwar schlechten) Vorschlag für eine Integration von forum und Seite. Nicht schlecht gelöst, allerdings eben graphisch nicht sehr schön ;)
[/edit]

[edit2]
http://nukestars.com/ auch nicht schlecht ;)
[/edit2]
Bearbeitet von Vir@s am 07.07.2002, 22:31

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
Du erzählst mir nix neues :rolleyes: - weiter ausbauen kann man jede Software wovon du den Code hast - dennoch ist man vom Grundgerüst abhängig ... und wenn das nicht grob das ist was man braucht, wirds schmerzhaft damit zu arbeiten.

Weiters geht es um die Funktionen die die Software dem User gegenüber bietet - und da ist das flache threading-modell einfach allem anderen überlegen.

phpBB ist ja wieder nur eine Implementierung, über das Konzept machen deine Erfahrungen damit keine Aussage.

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
PHPNuke ist aber genau das was du brauchst. vB ist da nicht mal grob des was du brauchst :D

Mit PHPNuke kannst du wie die oben angegeben Links zeigen wirklich effizient alles ineinander Integrieren, und die Anpassungen benötigen nur wenig Zeit.

Meine Erfahrungen sagen schon was über das Konzept aus, wenn ich eine Software nicht nützlich finde kann es kein gutes Konzept sein oder? Natürlich kann auch einfach nur die Umsetzung ******e sein, aber bei phpBB fehlt es hauptsächlich an Features ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz