Extending – Styling & Language

YaBB is one of the oldest Forum Software Frameworks around, YaBB was born in 2000!  YaBB’s Strength has always been its flexibility.

Before we get into details, you will notice I used the term ‘frameworks’. This is because while the YaBB team worked diligently to make YaBB extensible and still make it accessible to non-professional developers, webmasters and hobbyists, they built in all the infrastructure to ‘make YaBB your own’. So although YaBB is a pioneer forum, internally it has many of the hallmarks of a framework (although not an Object Oriented framework).

So -

If you want to just change the colors of your forum, you can use YaBB’s built-in CSS Editor. Most of the changes can be done visually. Nothing Else needed.

If you wish to have new Icons and graphics you can either create new or rename elements in the Default images folder. Still no more work.

If you want to change or re-order the layout of the Main elements of YaBB, use the Template Editor to work on the primary HTML container. (Main Page Display/BoardIndex) That’s it.

If you want to REALLY change the presentation of individual content pages/screens in YaBB, we have .template files to edit. This creates new Template Sets.

If you want to add a new language, we have methods/tools for that — Language Packs and CSS Buttons that make it easy to create language-specific buttons (zero graphics skills needed)

YaBB’s Dynamic Presentation Hierarchy -

Templates -

/yabb2/Templates/Default/default.html is the YaBB Page Container. It contains the layout of the basic page (primarily as divs) and YaBBTags to generate the main (forum level) content

/yabb2/Templates/Default/*.template are the ‘action type’ containers. These contain Perl assignments + formatting (primarily as divs with some inline styling) to generate specific levels of content. (the content filler) + the YaBBTags + DisplayTxts needed for the details. A couple of examples Loginout.template (login screens) and Display.template

/yabb2/Templates/default/*.def are special purpose Definition files. micon.def and menu.def — used for Icons and Menus

What is a YaBBTag? A YaBBTag is a ‘call’ to YaBB’s main code to return a value i.e. {yabb location} returns the location information from a User Profile.

What is a DisplayTxt? — It is a combination of a Code (a scalar value or ‘string’) that is associated with a Phrase (prompt) e.g ’21’ => ‘Posts’, ‘118’ => ‘Topic’, … this mechanism allows YaBB to be language independent. The Display Text can be skinned in any language.


YaBB is built in English first (although you do NOT have to offer English once your forum is installed).  The ./Language folders structure allows you to create new complete translations of YaBB (even RTL or non-Latinate).  Each translated display element is mapped by its YaBBCode to the translation.

Even the buttons and icons that use text can now (Since YaBB 2.6) be translated using language definitions for their overlay. No more language bt language button sets. The feature is called CSS Buttons and consists of a background image selection (many built into the default installation) and the overlay text.  Yes, you can ‘roll your’ own in all languages, or change an existing translation.

We have a Language Tutorial in draft currently.