vBulletin |

Installing vBulletin |
The following documents will take you through this process step-by-step.
Note:
Before installing vBulletin you need to have PHP and MySQL and have created a database within the MySQL engine to hold vBulletin's data.
Downloading the vBulletin Package |
You will need to log-in to the Members' Area using the Customer Number and Customer Password that was emailed to you when you purchased your license.

Click the link for the license you want to use and you will be taken to the download page, where you will be given options for how to download the latest vBulletin package.
By default compression is performed on the JavaScript files included within the clientscript directory in order to reduce the size of the files. YUI Compressor is used to do this but you can choose uncompressed JavaScript files using the option described below.
You can choose from the following options:
- PHP File Extension
As a general rule, web servers will use .php as the extension for PHP scripts, but some servers may use a different extension, or you may simply wish to use a different extension out of your own preference. Various extensions are available here for you to choose. - Download File Format
This option allows you to choose the compression format of the package you are about to download. Most people will want to download the .zip package as Windows® has in-built support for zip files. However, if you are downloading the package directly to a Linux server you may prefer to use the tarball (.tar.gz) format. - CGI Shebang
This option will only be of use to you if your server runs PHP as a CGI rather than as a web server module. If your server runs PHP as a CGI and requires a shebang (such as #!/usr/bin/php) then you can enter the required text here and it will automatically be inserted into whichever PHP files in vBulletin require its use. - Download File
Use this option to control the contents of the package you are about to download. For example, if you have previously installed vBulletin you will probably not need to download the images again, so you can use this control to specify that the package you download does not contain the images directory. You can also download the uncompressed JavaScript package with this option.


Preparing the vBulletin Files for Upload |


upload - This folder contains the vBulletin files that need to be uploaded to your web server.
However, before you upload the files you must make some changes to the vBulletin configuration file. This file is located in the includes folder (within the upload folder) and is called config.php.new.
The first thing you must do is to rename this file from config.php.new to config.php (removing the temporary .new extension).

- searchshell.php - This file will allow you to rebuild the search index.
- vb_backup.sh - This file will allow you to run a database backup via SSH/Telnet or a scheduled backup through cron.
- tools.php - This file must be uploaded to the admincp folder and allows you to perform certain tasks should your board go down or you accidentally lock yourself out of the Admin Control Panel. This file must be deleted immediately after use or it will cause a SEVERE security problem.
Editing the vBulletin Configuration File |
To edit the config.php file, you will need to open the file in a text editor such as Windows® WordPad. (Note that we do not recommend that you use Windows® Notepad to edit config.php, as Notepad has problems displaying the line breaks in some file types.)

Of the settings in this file, only a few need to be edited in order to create a working vBulletin configuration file. These settings are:
| $config['Database']['dbname'] | This value should be altered to state the name of the database that will contain your vBulletin installation on the database server. |
| $config['Database']['technicalemail'] | An email address should be entered here. All database error messages will be forwarded to the email address provided. |
| $config['MasterServer']['servername'] | This sets the address of your database server. On most installations the database server is located on the same computer as the web server, in which case the address should be set to 'localhost', otherwise use the address of the database server as supplied by your web host. |
| $config['MasterServer']['username'] | This variable contains the username provided to you by your host for connecting to your database server. |
| $config['MasterServer']['password'] | The password that accompanies the database username should be entered here. |
Note:
Please note that Jelsoft / vBulletin Support can not provide the values you require for $config['Database']['dbname'], $config['MasterServer']['servername'], $config['MasterServer']['username'], and $config['MasterServer']['password']. These variables are only available from the web host providing your web/database server.
If you need to create a new database for vBulletin to use, instructions for doing so in a variety of systems are available here.
Also note that you only edit the info to the right of the equal sign. Do NOT edit the names in the brackets to the left of the equal sign. For instance in this line:
$config['MasterServer']['username'] = 'root';
You change 'root' to the appropriate database username and leave everything else as is.
This is correct:
$config['MasterServer']['username'] = 'your_dbusername';
This is NOT correct:
$config['MasterServer']['your_dbusename'] = 'root';
Never edit anything to the left of the equal sign.
On Yahoo Small Business Server, $config['MasterServer']['servername'] should be set to 'mysql'.
If you need to create a new database for vBulletin to use, instructions for doing so in a variety of systems are available here.
Also note that you only edit the info to the right of the equal sign. Do NOT edit the names in the brackets to the left of the equal sign. For instance in this line:
$config['MasterServer']['username'] = 'root';
You change 'root' to the appropriate database username and leave everything else as is.
This is correct:
$config['MasterServer']['username'] = 'your_dbusername';
This is NOT correct:
$config['MasterServer']['your_dbusename'] = 'root';
Never edit anything to the left of the equal sign.
On Yahoo Small Business Server, $config['MasterServer']['servername'] should be set to 'mysql'.
| $config['Database']['dbtype'] | If you are using PHP5 in combination with MySQL 4.1.x you may want to change this variable to 'mysqli' to take advantage of the MySQL Improved engine |
| $config['Database']['tableprefix'] | In order to easily identify the tables related to vBulletin in your database, you may prefix the names of all tables with a few letters or a word. For example, if you specify the $config['Database']['tableprefix'] as 'vb_' then all tables will be prefixed with vb_, making vb_forum, vb_user etc. If you choose to change your $config['Database']['tableprefix'] at some point after you have installed your vBulletin, tools are provided to do this. |
| $config['Database']['force_sql_mode'] | New versions of MySQL (4.1+) have introduced some behaviors that are incompatible with vBulletin. These behaviors are enabled by default with MySQL 5. Setting this value to "true" disables those behaviors. You only need to modify this value if vBulletin recommends it. |
| $config['MasterServer']['usepconnect'] | Setting this variable to 1 will cause PHP to use persistent connections to the MySQL server. For very large vBulletin installations, using persistent connections may result in a slight performance boost but in most cases leaving it set to 0 (off) is the best option. If you are unsure, leave it set to 0 |
| Slave Database Configuration | These variables only apply if you have a Slave Database configured. If you are not sure, you should leave these variables alone. This is an advanced setting! |
| $config['Misc']['admincpdir'] | By default, vBulletin will install the files for the Administrators' Control Panel into a folder called admincp, but you may wish to rename this folder this for security purposes. If you rename the folder, enter the new name here. Note that you can only rename the folder, if you move the folder to a new location the system will be unable to function. |
| $config['Misc']['modcpdir'] | This variable is similar to the $admincpdir setting, with the exception that $modcpdir refers to the Moderators' Control Panel rather than the Administrators' Control Panel. |
| $config['Misc']['cookieprefix'] | When vBulletin sets cookies on users' computers they will all be prefixed with a few characters in order to be easily identified as cookies set by vBulletin. By default this prefix is bb but you can change it to be whatever you like. This option is particularly useful if you have many vBulletin installations running on the same domain. |
| $config['Misc']['forumpath'] | Some systems may require a full path to the forum files. If vBulletin does not tell you that you need this, leave this blank. |
| $config['SpecialUsers']['canviewadminlog'] | All actions performed in the vBulletin Administrators' Control Panel are logged in the database. This variable controls the permissions for which users are allowed to view this log. The variable takes the form of a list of user IDs separated by commas. For example, if you would like the users with user IDs 1, 15 and 16 to be able to view the Admin Log, this variable would be set like this: $config['SpecialUsers']['canviewadminlog'] = '1,15,16'; |
| $config['SpecialUsers']['canpruneadminlog'] | In the same way as $config['SpecialUsers']['canviewadminlog'] controls which users can view the Admin Log, $config['SpecialUsers']['canpruneadminlog'] controls which users are permitted to prune (delete items from) the Admin Log. Use the same user IDs separated with commas system as with the $config['SpecialUsers']['canviewadminlog'] setting. |
| $config['SpecialUsers']['canrunqueries'] | The vBulletin Administrators' Control Panel contains a simple interface for running queries directly on the database. This variable contains the IDs of the users with permission to do this. For security reasons you may wish to leave this list totally empty. |
| $config['SpecialUsers']['undeletableusers'] | If your vBulletin installation is going to have multiple users with administrative privileges, you may wish to protect certain users from accidental (or even malicious) deletion or editing. Any user IDs entered into this list will not be editable or deletable from the Administrators' Control Panel by anybody. |
| $config['SpecialUsers']['superadministrators'] | Any users whose user IDs are specified within the $config['SpecialUsers']['superadministrators'] setting will be automatically granted full access to all vBulletin features, including the ability to set the permission levels of other administrators. |
| $config['Mysqli']['charset'] | If you need to set the default connection charset because your database is using a charset other than latin1, you can set the charset here. If you don't set the charset to be the same as your database, you may receive collation errors. Ignore this setting unless you are sure you need to use it. |
| $config['Mysqli']['ini_file'] | PHP can be instructed to set connection parameters by reading from the file named in 'ini_file'. Please use a full path to the file. This is generally used to set the connection's default character set. This setting should also be ignored unless you are sure you need to use it. |
Note:
The variables $config['SpecialUsers']['canviewadminlog'], $config['SpecialUsers']['canpruneadminlog'], $config['SpecialUsers']['canrunqueries'], $config['SpecialUsers']['undeletableusers'] and $config['SpecialUsers']['superadministrators'] should all contain a single userid number, a comma-separated list of user id numbers, or nothing at all. For example:
$config['SpecialUsers']['canviewadminlog'] = '1,15,16';
$config['SpecialUsers']['canpruneadminlog'] = '1';
$config['SpecialUsers']['canrunqueries'] = '';
$config['SpecialUsers']['undeletableusers'] = '1,15';
$config['SpecialUsers']['superadministrators'] = '1';
Note:
Later versions of vBulletin may not have the ?> at the end. This is to help prevent this kind of error from happening.
config.php |
<?php
/*======================================================================*\
|| #################################################################### ||
|| # vBulletin 3.6.6 - Licence Number 1a2b3c4
|| # ---------------------------------------------------------------- # ||
|| # All PHP code in this file is ©2000-2007 Jelsoft Enterprises Ltd. # ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| #################################################################### ||
\*======================================================================*/
/*-------------------------------------------------------*\
| ****** NOTE REGARDING THE VARIABLES IN THIS FILE ****** |
+---------------------------------------------------------+
| If you get any errors while attempting to connect to |
| MySQL, you will need to email your webhost because we |
| cannot tell you the correct values for the variables |
| in this file. |
\*-------------------------------------------------------*/
// ****** DATABASE TYPE ******
// This is the type of the database server on which your vBulletin database will be located.
// Valid options are mysql and mysqli, for slave support add _slave. Try to use mysqli if you are using PHP 5 and MySQL 4.1+
// for slave options just append _slave to your preferred database type.
$config['Database']['dbtype'] = 'mysql';
// ****** DATABASE NAME ******
// This is the name of the database where your vBulletin will be located.
// This must be created by your webhost.
$config['Database']['dbname'] = 'forum';
// ****** TABLE PREFIX ******
// Prefix that your vBulletin tables have in the database.
$config['Database']['tableprefix'] = '';
// ****** TECHNICAL EMAIL ADDRESS ******
// If any database errors occur, they will be emailed to the address specified here.
// Leave this blank to not send any emails when there is a database error.
$config['Database']['technicalemail'] = 'dbmaster@example.com';
// ****** FORCE EMPTY SQL MODE ******
// New versions of MySQL (4.1+) have introduced some behaviors that are
// incompatible with vBulletin. Setting this value to "true" disables those
// behaviors. You only need to modify this value if vBulletin recommends it.
$config['Database']['force_sql_mode'] = false;
// ****** MASTER DATABASE SERVER NAME AND PORT ******
// This is the hostname or IP address and port of the database server.
// If you are unsure of what to put here, leave the default values.
$config['MasterServer']['servername'] = 'localhost';
$config['MasterServer']['port'] = 3306;
// ****** MASTER DATABASE USERNAME & PASSWORD ******
// This is the username and password you use to access MySQL.
// These must be obtained through your webhost.
$config['MasterServer']['username'] = 'root';
$config['MasterServer']['password'] = '';
// ****** MASTER DATABASE PERSISTENT CONNECTIONS ******
// This option allows you to turn persistent connections to MySQL on or off.
// The difference in performance is negligible for all but the largest boards.
// If you are unsure what this should be, leave it off. (0 = off; 1 = on)
$config['MasterServer']['usepconnect'] = 0;
// ****** SLAVE DATABASE CONFIGURATION ******
// If you have multiple database backends, this is the information for your slave
// server. If you are not 100% sure you need to fill in this information,
// do not change any of the values here.
$config['SlaveServer']['servername'] = '';
$config['SlaveServer']['port'] = 3306;
$config['SlaveServer']['username'] = '';
$config['SlaveServer']['password'] = '';
$config['SlaveServer']['usepconnect'] = 0;
// ****** PATH TO ADMIN & MODERATOR CONTROL PANELS ******
// This setting allows you to change the name of the folders that the admin and
// moderator control panels reside in. You may wish to do this for security purposes.
// Please note that if you change the name of the directory here, you will still need
// to manually change the name of the directory on the server.
$config['Misc']['admincpdir'] = 'admincp';
$config['Misc']['modcpdir'] = 'modcp';
// Prefix that all vBulletin cookies will have
// Keep this short and only use numbers and letters, i.e. 1-9 and a-Z
$config['Misc']['cookieprefix'] = 'bb';
// ******** FULL PATH TO FORUMS DIRECTORY ******
// On a few systems it may be necessary to input the full path to your forums directory
// for vBulletin to function normally. You can ignore this setting unless vBulletin
// tells you to fill this in. Do not include a trailing slash!
// Example Unix:
// $config['Misc']['forumpath'] = '/home/users/public_html/forums';
// Example Win32:
// $config['Misc']['forumpath'] = 'c:\program files\apache group\apache\htdocs\vb3';
$config['Misc']['forumpath'] = '';
// ****** USERS WITH ADMIN LOG VIEWING PERMISSIONS ******
// The users specified here will be allowed to view the admin log in the control panel.
// Users must be specified by *ID number* here. To obtain a user's ID number,
// view their profile via the control panel. If this is a new installation, leave
// the first user created will have a user ID of 1. Seperate each userid with a comma.
$config['SpecialUsers']['canviewadminlog'] = '1';
// ****** USERS WITH ADMIN LOG PRUNING PERMISSIONS ******
// The users specified here will be allowed to remove ("prune") entries from the admin
// log. See the above entry for more information on the format.
$config['SpecialUsers']['canpruneadminlog'] = '1';
// ****** USERS WITH QUERY RUNNING PERMISSIONS ******
// The users specified here will be allowed to run queries from the control panel.
// See the above entries for more information on the format.
// Please note that the ability to run queries is quite powerful. You may wish
// to remove all user IDs from this list for security reasons.
$config['SpecialUsers']['canrunqueries'] = '';
// ****** UNDELETABLE / UNALTERABLE USERS ******
// The users specified here will not be deletable or alterable from the control panel by any users.
// To specify more than one user, separate userids with commas.
$config['SpecialUsers']['undeletableusers'] = '';
// ****** SUPER ADMINISTRATORS ******
// The users specified below will have permission to access the administrator permissions
// page, which controls the permissions of other administrators
$config['SpecialUsers']['superadministrators'] = '1';
// ****** DATASTORE CACHE CONFIGURATION *****
// Here you can configure different methods for caching datastore items.
// vB_Datastore_Filecache - for using a cache file
// $config['Datastore']['class'] = 'vB_Datastore_Filecache';
// vB_Datastore_Memcached - for using a Memcache server
// It is also necessary to specify the hostname or IP address and the port the server is listening on
/*
$config['Datastore']['class'] = 'vB_Datastore_Memcached';
$i = 0;
// First Server
$i++;
$config['Misc']['memcacheserver'][$i] = '127.0.0.1';
$config['Misc']['memcacheport'][$i] = 11211;
$config['Misc']['memcachepersistent'][$i] = true;
$config['Misc']['memcacheweight'][$i] = 1;
$config['Misc']['memcachetimeout'][$i] = 1;
$config['Misc']['memcacheretry_interval'][$i] = 15;
*/
// ****** The following options are only needed in special cases ******
// ****** MySQLI OPTIONS *****
// When using MySQL 4.1+, MySQLi should be used to connect to the database.
// If you need to set the default connection charset because your database
// is using a charset other than latin1, you can set the charset here.
// If you don't set the charset to be the same as your database, you
// may receive collation errors. Ignore this setting unless you
// are sure you need to use it.
// $config['Mysqli']['charset'] = 'utf8';
// Optionally, PHP can be instructed to set connection parameters by reading from the
// file named in 'ini_file'. Please use a full path to the file.
// Example:
// $config['Mysqli']['ini_file'] = 'c:\program files\MySQL\MySQL Server 4.1\my.ini';
$config['Mysqli']['ini_file'] = '';
// Image Processing Options
// Images that exceed either dimension below will not be resized by vBulletin. If you need to resize larger images, alter these settings.
$config['Misc']['maxwidth'] = 2592;
$config['Misc']['maxheight'] = 1944;
/*======================================================================*\
|| ####################################################################
|| # Downloaded: 12:00, Sun Nov 26th 2007
|| # CVS: $RCSfile$ - $Revision$
|| ####################################################################
\*======================================================================*/
MySQLi |
To enable MySQLi, view Editing the vBulletin Configuration File.
config.php contains two advanced settings that you may need when MySQLi is in use. These settings are to be ignored as long as you are not having issues of the following type:
MySQL Error : Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (utf8_general_ci,IMPLICIT) for operation
From the Administrator Control Panel, go to Admin CP->Maintenance->Execute SQL Query. If you receive a no permissions message, please refer back to Editing the vBulletin Configuration File on how to grant the appropriate permissions so that you may execute queries.
Enter the following query in the Manual Query input box and press
SHOW VARIABLES LIKE 'char%'


Note:
If the values are the same, then your problem will not be solved by this solution. Please contact vBulletin Support in this case. You may have tables in your database that are configured to use a different character set than your database is. All of your tables will need to be updated to use the same character set. This condition can be caused by changing the character set of your database after vBulletin has been installed. Upgrades may create tables that are in your new character set, which will cause problems.
Create a new file in your forums include directory named mysqli.ini. Inside of this file place:
[client] default-character-set=utf8
Edit the vBulletin Configuration File file by following the instructions in the previous section.
Uncomment the following line by removing the two slashes from the beginning
// $config['Mysqli']['ini_file'] = 'c:\program files\MySQL\MySQL Server 4.1\my.ini';
$config['Mysqli']['ini_file'] = 'c:\program files\apache group\apache\htdocs\forums\includes\mysqli.ini';
Uploading vBulletin Scripts to Your Web Server |
The uploading process should be familiar to anyone who has published pages to a web site before, but a brief description of the process is given here.
Although there are several methods available to transfer the vBulletin files from your computer to your web server, by far the most common method in use is transfer via FTP. Most operating systems have built-in tools for opening FTP connections although they are often limited in their usefulness and many people opt to use a third party FTP client application. For this example we will use Smart FTP.
Note:
We do not recommend using the built-in file transfer features in WYSIWYG editors such as Adobe Dreamweaver, Adobe GoLive!, Microsoft Frontpage, or Microsoft Expressions. These programs often add information to vBulletin's files or do not maintain their structure properly which will cause problems while installing or upgrading the software. We also do not recommend using any web-based file managers that your hosting service may provide as a solution. For best performance and reliability you are recommended to use a stand along FTP client like SmartFTP or Filezilla.

- All text files to be transferred in ASCII mode
All files containing plain text from the vBulletin package should be transferred in ASCII mode.
Text file types you will find in vBulletin are: .html, .php, .js, .xml, .css. - All non-text files to be transferred in Binary mode
The remaining files, which are mostly images, should be transferred to your web server in Binary mode.
Binary file types used in vBulletin include: .gif, .png, .jpg, .ico.
Note:
The web publishing folder is usually called public_html, www or htdocs and is located within your home directory. If you are unsure of where to find your own web publishing folder, your host will be able to help you.


Running the vBulletin Install Script |
The Installer runs as a PHP script using your web browser. To start the installation process, open your browser and type the HTTP address of your forums directory, followed by /install/install.php, then hit the <Enter> key or press the button to open the script.

Note:
Your customer number is the string of numbers and letters used as the login user name for the vBulletin Members' Area. You should type your customer number carefully to avoid errors. Note that your customer number is not the same as your vBulletin license number.

The first page of the installer script will greet you and give you some basic instructions relating to what will happen during the rest of the install process.

Warning:
Certain browser plug-ins, most notably the popular Google Toolbar can have an adverse effect up the vBulletin installation and upgrade scripts. We recommend that all browser plugins be disabled while running install and upgrade scripts for vBulletin.
A further click will bring you to step 2, in which the installer attempts to connect to the database. If the connection is made successfully, the installer will ask you if you want to empty the database. If you click this link your database will be totally emptied. All data stored in that database (including any data not related to vBulletin) will be irreversibly erased.
Warning:
Don't click the 'empty database' link unless you are really sure that's what you want to do!
However, you will soon be present with a page entitled Obtain Some Default Settings. This page does not have a button, as it requires that you fill in a few details about how you are installing vBulletin.

| BB Title | This is the title you will give to your vBulletin forums. It appears in the title of every page, and items such as notification emails sent from vBulletin to your members will identify the sender using this name. (BB Title is short for bulletin board title). |
| Homepage Title | Less important than the BB Title, this setting is used for a link at the bottom of every page which points to the address specified in Home URL (see below). It represents the title of your web site. |
| BB URL | The BB URL setting is very important. It represents the URL that people should visit in order to find your vBulletin forums. The system will make a best-guess at filling-in this setting automatically, so you should only change it if the given value is definitely wrong. Note that this setting should not end with a slash (/) character. |
| Home URL | This is the web address of your main web site, and is used in conjunction with the Home Title setting to create a link to your web site from the bottom of each forum page. |
| Cookie Path | When cookies are stored on visitors' computers, this setting will be used to define to what location on your server the cookies apply. Unless you have a reason to change this setting it's probably a good idea to leave it at the default value of '/' (meaning that the cookies can be read by the entire site). |
| Cookie Domain | Rather like the cookie path setting, this allows you to specify the domain to which cookies belong. Generally speaking this setting can be left empty. |

Note:
When choosing a password, we would suggest a combination of letters, numbers and punctuation characters in both upper and lower case, and a length of at least eight characters.
After a few pages the installation process will complete, and you will be presented with a link to your Admin Control Panel. Before clicking this link, you should open up your FTP client application again and browse to the install folder inside your forums directory.

Note:
You will not be able to enter the Admin Control Panel until you have deleted the install.php file.
Upgrading vBulletin |
You can upgrade to the latest version of vBulletin 3 from the following vBulletin versions:
- Any previous version of vBulletin 3, from version 3.0.0 Beta 3 to the current version.
- Any version of vBulletin 2 from version 2.2.9 and newer. If your vBulletin version is older than 2.2.9, you will need to upgrade to at least vBulletin 2.2.9 before you can upgrade to vBulletin 3.
When upgrading, the first step is always the same, in that you must log in to the vBulletin Members' Area and download the latest vBulletin package available, as described in the installation instructions.
Warning:
We strongly recommend that you back up your database prior to any upgrade.
A document detailing how to back up your database is available in the Technical Documents section of the vBulletin Manual's Appendices, here.
A document detailing how to back up your database is available in the Technical Documents section of the vBulletin Manual's Appendices, here.
Preparing the vBulletin Files for Upload |
The first thing to do is to decompress the package into its constituent files. If you downloaded the .zip package and your computer is running a recent version of Windows® all the tools you need to do this are available as part of Windows®. This section will assume that you have downloaded the .zip package and that your computer is running Windows XP.
To extract the files from the package, open the folder on your computer where you saved the vBulletin package and right-click on its icon, then choose Extract All from the pop-up menu.


upload - This folder contains the vBulletin files that need to be uploaded to your web server.
You should now rename the 'upload' folder to match whatever name you gave to the directory containing your vBulletin files on your web server. In this example, the folder containing the vBulletin files is called 'forums'.
NOTE: If you have changed the names of the 'admincp' and 'modcp' directories in your config.php file, be sure to make the same change to these subdirectories prior to uploading.

- searchshell.php - This file will allow you to rebuild the search index.
- vb_backup.sh - This file will allow you to run a database backup via SSH/Telnet or a scheduled backup through cron.
- tools.php - This file must be uploaded to the admincp folder and allows you to perform certain tasks should your board go down or you accidentally lock yourself out of the Admin Control Panel. This file must be deleted immediately after use or it will cause a SEVERE security problem.
Note:
As you already have a vBulletin installation running on your web server, you should delete the install.php file in the install directory before you proceed to upload the files.
Note:
These instructions are for 3.5.0 and higher. If you are upgrading from vBulletin 3.0.x to 3.5.0, you will also need to recreate your includes/config.php file based on the new version of includes/config.php.new. Please see this page in the installation section on how to edit the config file. This step is not necessary for individual upgrades within the 3.0.x or 3.5.x series.
If you are upgrading from vBulletin 3.5.x to vBulletin 3.6.x or newer you do not need to edit the config.php file.
If you are upgrading from vBulletin 3.5.x to vBulletin 3.6.x or newer you do not need to edit the config.php file.
Updating the vBulletin Scripts on Your Web Server |
For uploading there are two ways that this can be done.
The first method involves overwriting all the files that were previously uploaded to your web server, while the second method involves deleting all the old files and directories, and then uploading the new scripts. In this tutorial we will use the overwrite method.
Having renamed the upload folder as specified in the previous step, you should load up your FTP client of choice. In this example we will use Smart FTP.
Connect to your FTP server and with the new vBulletin files in the local pane and the existing old files in the remote pane, drag the forums directory into the parent directory of your remote vBulletin installation as shown here:


- All text files to be transferred in ASCII mode
All files containing plain text from the vBulletin package should be transferred in ASCII mode.
Text file types you will find in vBulletin are: .html, .php, .js, .xml, .css. - All non-text files to be transferred in Binary mode
The remaining files, which are mostly images, should be transferred to your web server in Binary mode.
Binary file types used in vBulletin include: .gif, .png, .jpg, .ico.
Warning:
It is extremely important that you upload all the files from the latest vBulletin package, including the entire contents of the install directory.
Failure to upload all the files may result in the upgrade script being unable to successfully complete the upgrade process.
Failure to upload all the files may result in the upgrade script being unable to successfully complete the upgrade process.
Running the vBulletin Upgrade Script |
Warning:
Certain browser plug-ins, most notably the popular Google Toolbar can have an adverse effect up the vBulletin installation and upgrade scripts. We recommend that all browser plugins be disabled while running install and upgrade scripts for vBulletin.
The first thing you will see from the install script is a log in prompt, asking you to enter your customer number. This is done to prevent other users from accidentally stumbling across your upgrade script and running it. Only you should know your customer number.
Note:
Your customer number is the string of numbers and letters used as the login user name for the vBulletin Members' Area. You should type your customer number carefully to avoid errors. Note that your customer number is not the same as your vBulletin license number.

The first page of the upgrade script will greet you and provide you with some details about the purpose of the current script.

As each step completes, a will appear at the bottom of the page. When the button appears, the step has completed successfully and clicking the button will advance you to the next step.
Warning:
Do not refresh/reload any page of the upgrade scripts. Doing so may cause database alterations to be applied twice, which can cause errors.
When all the necessary upgrade scripts have been run, you will be automatically redirected to the Admin CP login page.
Checking for Updated Templates |
When a new version of vBulletin is released, it is common for some of the default templates to have been updated to accommodate new features or fix bugs.
If you have not customized any of your templates, this need not concern you, but if you have customized some of the default templates there are a few steps you will need to follow after you have finished running all the appropriate upgrade scripts.
Note:
When running vBulletin upgrade scripts, one of the final steps imports the newest version of the default style.
Any templates that you have not customized will automatically be updated to use the newest versions.
However, any templates that you have customized will not be altered or overwritten by importing the latest style, hence the need for the following steps.
Any templates that you have not customized will automatically be updated to use the newest versions.
However, any templates that you have customized will not be altered or overwritten by importing the latest style, hence the need for the following steps.
| 1 | Firstly, you should visit the Styles & Templates > Find Updated Templates page to find out which (if any) of your customized templates may have updated default versions.
|
| 2 | If you find that some of your customized templates do have updated default versions, you have three choices. You can either
|
This list will often tell you whether or not the changes made to each template were purely cosmetic, in which case you will have no need to perform the steps above for that template, or if the changes require you to revert or manually edit your customized templates to maintain full working order.
Checking for Updated Phrases |
If you have not customized any of your phrases, this need not concern you, but if you have customized some of the default phrases, there are a few steps you will need to follow after you have finished running all the appropriate upgrade scripts.
Note:
When running vBulletin upgrade scripts, one of the final steps imports the newest version of the default phrases.
Any phrases that you have not customized will automatically be updated to use the newest versions.
However, any phrases that you have customized will not be altered or overwritten by importing the latest phrases, hence the need for the following steps.
Any phrases that you have not customized will automatically be updated to use the newest versions.
However, any phrases that you have customized will not be altered or overwritten by importing the latest phrases, hence the need for the following steps.
| 1 | Firstly, you should visit the Languages & Phrases > Find Updated Phrases page to find out which (if any) of your customized phrases may have updated default versions.
|
| 2 | If you find that some of your customized phrases do have updated default versions, you can either:
|
Installing A Patch Level |
A patch level release contains fixes for only the most critical issues in the previous release. In most cases, these are released to address a security issue. However they can be released for data integrity issues as well.
A patch level is designed to be installed directly over top of your existing installation, with no other action. You do not need to run any upgrade scripts.
How to Upgrade
This is not a full upgrade. You do not need to run any upgrade scripts to complete the upgrade.
Patch: Download a patch file discussed in this thread and upload them to your web server, overwriting the existing files. The patch is available from the Members' Area patch page.
Full Package: Alternatively you can download the full package in the vBulletin Members Area and again upload the affected files mentioned in the release thread.
Note:
Patch Level Releases are only supported for their targeted version. If you are using a previous version, you will need to perform a complete upgrade for full functionality and support. Patch Levels will only be released for the latest version in an active vBulletin series.
The Admin Control Panel |
Logging-in to the Control Panel |
The first thing you will see when you access the Control Panel is a prompt to log in. You will be presented with this login prompt even if you are already logged into the public area of the board. This is an additional level of security.

There are a couple of extra options that can be set on the login form. To see them, click the button to expand the form to its full size.

- Style Choice
vBulletin comes with a selection of styles in which you can view the control panel. Try them out and see which one you like best, or if you are feeling adventurous, create your own! - Save Open Groups Automatically
This option allows you to have the system automatically save your preferences for which options in the Admin CP navigation panel are opened and which are collapsed by default, without you having to manually save the preferences.
Note:
If you changed the value of $admincpdir in the config.php file and have renamed the admincp directory, the location at which you access the control panel will have changed accordingly.
Getting Around the Admin Control Panel |

At the top of the page is a narrow strip that contains information about the vBulletin version you are currently running and the latest version available to download. To the right of the strip are links allowing you to click through to the Forum Home Page (the starting point of the public area of the board), and a link allowing you to log out of the control panel.
| To the left of the page is the navigation panel. This long, thin area is the key to getting around the Admin CP. When you first visit the Admin CP, you will notice that all the sections of this panel are in a collapsed state. You can click the gadget on each section to expand it and show its contents, and click the gadget again to collapse that section again. Double-clicking a section's title will also toggle its state and either expand or contract it. |
| You can expand and collapse any sections at any time. You are not limited to having just a single group expanded at any one time. When you have a section or sections expanded, hovering your mouse over the included links will highlight that link. You can then click to open the corresponding page in the main panel. You can use the expanding and contracting sections to build a customized control panel layout for yourself. For example, you may find that you regularly use the 'Styles & Templates' tools, but very infrequently use the FAQ manager. |
| When you have established a set of expanded and collapsed sections that suits your way of working, you can save the state of the sections by clicking the [Save Prefs] link. When you reload the Admin CP, you will find that the sections in the left navigation panel will have automatically expanded and collapsed in the manner that they were when you clicked the [Save Prefs] link. You can expand and collapse any section in your administration session, and at any time you can click the [Revert Prefs] link, which will revert the expanded/collapsed state of all the sections to how they were when you saved your preferences. |
vBulletin Options |
When you first enter this section, you will be presented with a screen that allows you to select what settings you wish to display. The select box will look one of two ways:
| Unexpanded This is the default view. It will display each setting group. To display a group, double click its name or select it and click . If you wish to display all settings, select [Show All Settings]. |
| Expanded To use this view, click [Expand Setting Groups] on the left-hand side of the screen. This view will display each setting within a group. To display a setting, double click its name or select it and click . |

Once you have changed the all the options you wish to change, click . Changes will take effect immediately.
vBulletin Options |
Turn Your vBulletin On and Off |
Only users in the Administrator usergroup will be able to browse the site, visitors will be presented with a closed message which you can set in this setting group.
- Forum Active
From time to time, you may want to turn your forum off to the public while you perform maintenance, update versions, etc.
Selecting 'Yes' will set the forum Active.
Selecting 'No' will set the forum Inactive (turns it off for the public).
When the forum is set Inactive users in the Administrator usergroup will be able to browse the forum. They will see a notice displayed in the header and footer of each page stating that the forum is closed. Visitors who browse any page on the forum will receive a message that states that the forum is temporarily unavailable. You could set a custom message.
Do not forget to set the forum active again when you are done with your maintenance. - Reason For Turning Forum Off
When you have set your forum to inactive, this is the message that a visitor will receive when they browse any page on the forum.Note:This field expects the use of HTML code.
You can not use BBCode here.
Site Name / URL / Contact Details |
After a fresh installation or upgrade, server or site move it is advised to walk through these site details setting group to ensure they are up to date.
- Forum Name - Name of your forum. This appears in the title of every page.
- Forum URL - URL of your forum.
Note: do not add a trailing slash. ("/") - Homepage Name - Name of your homepage. This appears at the bottom of every page.
- Homepage URL -URL of your home page. This appears at the bottom of every page.
- Contact Us Link - Link for contacting the site admin. To use the built-in email form, specify sendmessage.php otherwise use something such as 'mailto:webmaster@example.com' or your own custom form. This appears at the bottom of every page.
- Allow Unregistered Users to use 'Contact Us' - The last option only applies if you specify 'sendmessage.php' in the previous option. You may require guests to pass Human Verification in order to use this form by enabling the option found in the Human Verification Options.
- Contact Us Options - You may pre-define subjects (and corresponding recipients) for users to pick from when using the default Contact Us form listed above. Please place one subject per line. An 'Other' option will be automatically added to the end when the form is viewed. For more information on how to set this up, view the inline help within the Admin Control Panel
- Webmaster's Email - Email address of the webmaster. This can be different than the technical contact listed in the includes/config.php. This is the person who will receive all emails from vBulletin itself except for database errors.
- Privacy Statement URL - Enter the URL of your privacy statement, if you have one.
For more information on Privacy Policies check out http://www.truste.org. - Copyright Text - Copyright text to insert in the footer of the page.
- Company Name - The name of your company. This is required for COPPA compliance.
- Company Fax - Fax number for your company. COPPA forms will be faxed to this number.
You may wish to check out http://www.efax.com. - Company Address - Address of your company. COPPA forms will be posted to this address.
General Settings |
This ranges from meta tags to the use of forumjump, enabling access masks to the display of IM icons.
- Meta Keywords
Enter the meta keywords for all pages. These are used by search engines to index your pages with more relevance.
Meta Keywords are used by some search engines to determine what your pages are about and to rank them. Other search engines such as Google do not take keywords into account.
All keywords you enter here will be put in the keywords meta tag in the header of every page. Separate keywords or phrases with a single comma and no space.
Example: vbulletin,forum,bbs,discussion,jelsoft,bulletin board
- Meta Description
Enter the meta description for all pages. This is used by search engines to index your pages more relevantly.
The Meta Description is used by some search engines to determine what your pages are about and to rank them. Other search engines such as Google do not take the description into account.
Enter a short description of your site here and it will be placed in the meta description tag in the header of every page. Most engines will accept a maximum of 255 characters for the description.
Example: This is a discussion forum powered by vBulletin. To find out about vBulletin, go to http://www.vbulletin.com/ .
- Use Forum Jump Menu
The Forum Jump menu appears by default on most pages and provides a quick jump to any of the forums on your forum as well as several other places (search, private messaging, etc.). While it can have a marginal impact on performance, typically you will only want to disable this if you have an extremely large number of forums as it will generate a large amount of HTML in that case, which will increase the size of pages and bandwidth usage.
Set this option to 'no' if you want to turn it off.
- Number of Pages Visible in Page Navigator
On thread and forum pages, as well as private messaging lists and other places, if there are multiple page number links to be displayed, this setting determines how many are shown on either side of the page currently being viewed. Setting this to 0 will cause all page links to be displayed.
Example: 3
- Enable Access Masks
Access masks allow you to enable or disable access to a particular forum for individual user(s). To use them, you must enable this option. This option also affects whether or not users will be able to see forums they do not have access to on forumhome and forumdisplay. (If this is off, they will see them in forum listings but not be able to enter them. If this is on, they will not see them at all.)
Set this option to 'no' if you want to turn it off.
- Add Template Name in HTML Comments
Setting this to 'yes' will add the template name at the beginning and end of every template rendered on any page. This is useful for debugging and analyzing the HTML code, but turn it off to save bandwidth when running in a production environment.
When modifying templates, it is often helpful to have this setting enabled so you can view the source of a page to determine what template(s) control it. In the course of normal usage, however, you will usually want this disabled as it will increase your page sizes and therefore bandwidth usage.
- Use Login "Strikes" System
Setting this to 'yes' will enable a system that tracks a user's (with a specific IP address) login attempts. After 5 incorrect login attempts the account is locked from that IP address for 15 minutes. This is to prevent bruteforce login attacks.
- Enable Forum Leaders
Forum Leaders is a listing of your important user groups. The display of assigned forum Moderators on this page is controlled with this option while the display of other groups is controlled via the usergroup manager.
- Post Referrer Whitelist
For security purposes, vBulletin only allows data to be submitted via post from within the domain the board is installed on. If you are submitting post requests from a different domain or subdomain, you must add them here.
- Thread/Forum Read Marking Type
This option controls how threads and forums are marked as read. The options are:
1) Inactivity/Cookie Based - once a user has been inactive for a certain amount of time (the value of the cookie timeout option) all threads and forums are considered read. Individual threads are marked as read within a session via cookies. This option is how all versions of vBulletin before 3.5 functioned.
2) Database (no automatic forum marking) - this option uses the database to store thread and forum read times. This allows accurate read markers to be kept indefinitely. However, in order for a forum to be marked read when all threads are read, the user must view the list of threads for that forum. This option is more space and processor intensive than inactivity-based marking.
3) Database (automatic forum marking) - this option is the same as a previous option, but forums are automatically marked as read when the last new thread is read. This is the most usable option for end users, but most processor intensive.Note:Changing this setting to database marking will mark all threads in the time set in the 'Database Read Marking Limit' as unread - Database Read Marking Limit
The amount of time in days to store the topic and forum read times. All topics or forums without posts in this many days will be considered read.
- Disable AJAX Features
This allows you to disable all AJAX Features or problematic AJAX Features only. Some languages, such as Arabic based languages, require this to be set to Disable Problematic AJAX Features in certain server and database configurations
- Enable Inline Moderation Authentication
Inline moderation actions will require a user to authenticate again prior to being performed. The timeout is based on the admin control panel timeout, or one hour if that option is disabled.
If you do not wish moderators and administrators to authenticate when using inline moderation then you can disable this using this setting.
Image Settings |
- Image Processing Library
vBulletin provides two options for manipulating attachment thumbnails, custom avatars, and profile pictures.
The first is GD, which is bundled with PHP 4.3.0 and later. GD supports the following file types: GIF, JPEG, and PNG.
The second supported library is ImageMagick v6 by ImageMagick Studio LLC. ImageMagick is an executable binary that must be installed at the server level to be called by PHP. Only the identify and convert binaries from ImageMagick are required by vBulletin. ImageMagick supports the following file types: GIF, JPEG, PNG, BMP, TIFF, and PSD. ImageMagick also has better support for handling animated GIF.
- Image Verification Library
This is similar to the option above but it chooses the Image Manipulation Library for inline image verification. These verification images can be enabled for registration and the Contact Us forms. There are two options for GD. The first, "GD (Simple Font)" will use an internal GD font. The second, "GD (True Type Font)" will use the fonts located in the images/regimage/fonts directory of your forum. On some PHP installations the TTF font option will not work. If you have the TTF font option selected and are seeing no fonts, try the Simple Font option.
- Image Verification Options
There are several options that allow you to control the level of difficulty presented by the image verification.
- ImageMagick Binary Path
Path to the ImageMagick 6 binaries (convert and identify). Example:
Unix: /usr/local/bin/
Windows: C:\imagemagick\
Human Verification Options |
- Verify at Registration
New users will be required to pass the Human Verification test during registration. - Verify Guest Posts
Guest posters will be required to pass the Human Verification test before their messages are posted. - Verify Guest Searches
Searches by guests will be required to pass the Human Verification test before searching is executed. - Verify Guest Contact Us
Guests will be required to pass the Human Verification test before leaving feedback. This only applies if sendmessage.php is being used as the Contact Us Link and Guests are allowed to use Contact Us in Site Name / URL / Contact Details
Date and Time Options |
- Datestamp Display Option
This option controls the display of dates throughout your forum
'Normal' uses the date and time formats below this option.
'Yesterday / Today' will show 'Yesterday' and 'Today' for dates that fall in those periods.
'Detailed' will show times such as '1 Minute Ago', '1 Hour Ago', '1 Day Ago', and '1 Week Ago'.
- Default Time Zone Offset
Time zone offset for guests and new users. Do not take DST into consideration, rather use the next option to enable/disable DST.
- Enable Daylight Savings
If Daylight Savings Time is currently in effect for the above time zone, enable this option so that guests will see the correct times on posts and events. This has no effect on registered users as they control their DST options in the User CP. This setting is not automatic and it will need to be changed when the timezone changes twice a year.
- Format For Date
Format in which the date is presented on vBulletin pages.
Examples:
US Format (e.g., 04-25-98): m-d-y
Expanded US Format (e.g., April 25th, 1998): F jS, Y
European Format (e.g., 25-04-98): d-m-y
Expanded European Format (e.g., 25th April 1998): jS F Y
- Format For Time
Format in which the time is presented on all vBulletin pages.
Examples:
AM/PM Time Format (eg, 11:15 PM): h:i A
24-Hour Format Time (eg, 23:15): H:i
- Format For Registration Date
This is used to format dates shown with users' posts. In the left hand column of a topic display, under the username and title, there is some text showing when the user registered.
- Format For Birthdays with Year Specified
Format of date shown in profile when user gives their birth-year.
- Format For Birthdays with Year Unspecified
Format of user's birthday shown on profile when the user does not specify their birth-year. DO NOT put in a code for the year.
- Log Date Format
Format of dates shown in Control Panel logs.
Note:
Date and Time formats follow PHP formatting rules. You can find out more about these rules by visiting the PHP manual.
For information on date and time formats in PHP please visit the following page: http://www.php.net/manual-lookup.php?function=date
For information on date and time formats in PHP please visit the following page: http://www.php.net/manual-lookup.php?function=date
Cookies and HTTP Header Options |
- Session Timeout
This is the time in seconds that a user must remain inactive before any unread posts are marked read. This setting also controls how long a user will remain on Who's Online after their last activity.
- Path to Save Cookies
The path to which the cookie is saved. If you run more than one forum on the same domain, it will be necessary to set this to the individual directories of the forums. Otherwise, just leave it as / .
Please note that your path should always end in a forward-slash; for example '/forums/', '/vbulletin/' etc.Warning:Entering an invalid setting can leave you unable to login to your forum. Only change this setting if you absolutely need to do so. - Cookie Domain
This option sets the domain on which the cookie is active. The most common reason to change this setting is that you have two different urls to your forum, i.e. example.com and forums.example.com. To allow users to stay logged into the forum if they visit via either url, you would set this to .example.com (note the domain begins with a dot.Warning:You most likely want to leave this setting blank as entering an invalid setting can leave you unable to login to your forum. - GZIP HTML Output
Selecting yes will enable vBulletin to GZIP compress the HTML output of pages, thus reducing bandwidth requirements. This will be only used on clients that support it, and are HTTP 1.1 compliant. There will be a small performance overhead.If you are already using mod_gzip on your server, do not enable this option.Note:This feature requires the ZLIB library.
- GZIP Compression Level
Set the level of GZIP compression that will take place on the output. 0=none; 9=max.
We strongly recommend that you use level 1 for optimum results.
- Add Standard HTTP Headers
This option does not work with some combinations of web server, so is off by default. However, some IIS setups may need it turned on.
It will send the 200 OK HTTP headers if turned on.
- Send Internet Explorer 7 Compatibility Header
This option sends an HTTP header that instructs Internet Explorer 8 to render pages as Internet Explorer 7 would do so, rather than enabling full standards-compliance mode, which may result in rendering problems for templates that have not been updated for IE8.
- Add No-Cache HTTP Headers
Selecting yes will cause vBulletin to add no-cache HTTP headers. These are very effective, so adding them may cause server load to increase due to an increase in page requests.
- Remove Redirection Message Pages
Enabling this option will remove the update pages that are displayed after a user makes a post, starts a search, etc. These pages provide assurance to the user that their information has been processed by the forum. Disabling these pages will save you bandwidth and may lessen the load of the forum on your server.Note:Some pages will still use the redirection page when cookies are involved to prevent some potential problems.
Server Settings and Optimization Options |
- Public phpinfo() Display Enabled
If you enable this option, anyone can view your phpinfo() page by adding &do=phpinfo to a forum URL. vBulletin Support may ask you to temporarily enable this to help diagnose problems if you request technical support. Otherwise, we recommend turning it off.
- Cached Posts Lifespan
Posts are normally stored with bbcode tags etc. in the same form as the user posted them with so that it may be edited later, and then parsed at display time. By caching them, they are parsed at post time (instead of display time) into the HTML they will be displayed in and stored separately from the pre-parsed posts. This results in a faster display on topics, since the posts do not have to be parsed at display time.
This option determines how long posts are stored. While a post is cached, it will take approximately twice as much storage space since it is essentially being stored twice. If you have a busy site, and topics typically don't last very long, you can probably set this to a lower value such as 10 days. If you have a slower site, and topics typically last longer, 20 to 30 days might be a better choice. If you have the disc space, you can set this to a higher value for better performance.
- Update Thread Views Immediately
If you enable this option, the thread view counter for a thread will be updated in realtime as threads are viewed. Otherwise, they will be stored and updated every hour (by default) en masse. We recommend disabling this option for larger or busier forums as updating them in realtime can have a performance impact.
- Update Attachment Views Immediately
If you enable this option, the attachment view counter for an attachment will be updated in realtime as attachments are viewed. Otherwise, they will be stored and updated every hour (by default) en masse. We recommend disabling this option for larger or busier forums as updating them in realtime can have a performance impact.
- Simultaneous Sessions Limit
Set this to the maximum number of simultaneous sessions that you want to be active at any one time. If this number is exceeded, new users are turned away until the server is less busy.
Set this to 0 to disable this option.
- *NIX Server Load Limit
vBulletin can read the overall load of the server on certain *NIX setups (including Linux).
This allows vBulletin to determine the load on the server and processor, and to turn away further users if the load becomes too high. If you do not want to use this option, set it to 0. A typical level would be 5.00 for a reasonable warning level.
- Safe Mode Upload Enabled
If your server has Safe Mode enabled, you should set this to Yes. You can determine if Safe Mode is enabled by viewing your phpinfo page and searching for Safe Mode.
- Safe Mode Temporary Directory
If your server is running in PHP Safe Mode, you'll need to specify a directory that is CHMOD to 777 that will act as a temporary directory for uploads. All files are removed from this directory after database insertion.Note:Do NOT include the trailing slash ('/') after the directory name. - Duplicate Search Index Information on Topic Copy?
It is not strictly necessary to index a copied topic since the original topic is already indexed. However, you may wish to index copied topics for the sake of completeness. Setting this option to yes will cause search index information to be copied with each post in the topic. This allows the copied version of the topic to be searchable as well. However, on larger boards, this may cause significant delays in copying a topic. If this is a problem for you, we recommend disabling this option.
- Session IP Octet Length Check
This is used to specify to which octet an IP is verified to during session retrieval. This means that if for some reason an IP changes between requests as long as it is within the allowed length the session will remain. This is most likely to happen when an ISP has transparent proxies such is the case with AOL.
- Use Remote YUI
YUI (Yahoo! User Interface Library) script files, used for some functions in vBulletin, are hosted locally on your server, you may however have them served from Yahoo's own servers, saving you some bandwidth and potentially decreasing load times.
More information about this service can be found here.
Style & Language Settings |
Here you can setup the behaviours for the CSS file (store as file), Popup menus (hide or show) and postbit (new or legacy).
- Default Language - Set the default language for your forums. This language will be used for all guests, and any members who have not expressed a language preference in their options.
- Default Style - Set the default style for your forums. This style will be used for all guests, and any members who have not expressed a style preference in their options, or are attempting to use a style that does not exist or is forbidden.
- Allow Users To Change Styles - This allows users to set their preferred style set on registration or when editing their option. Setting this to 'No' disables that option and will force them to use whatever style has been specified.
- Location of clear.gif - Please enter the path of your clear.gif image, relative to your forum directory. By default, the value of this setting is 'clear.gif', meaning that the image is located in the base directory of your vBulletin installation (in the same folder as forumdisplay.php).
This URL must be relative, NOT beginning with 'http://'. - Store CSS Stylesheets as Files? - If you would like to store the CSS stylesheet for each style as a file, you must ensure that you have a directory called 'vbulletin_css' inside the 'clientscript' folder, and that the web server has permission to write and delete files within that directory.
- Use 'vBMenu' DHTML Popup Menus? - Use dynamic HTML popup menus to reduce screen clutter if user's browser is capable? Please note that disabling this option will also disable some AJAX features, such as user name suggestion.
- Use Legacy (Vertical) Postbit Template - If you prefer the old-style postbit, using two vertical columns rather than the new horizontal layout, you can switch back to using that template with this switch. Please note that if you enable this option and wish to customize the template, you should edit the 'postbit_legacy' template rather than the 'postbit'.
- Show Instant Messaging Program Icons
Setting this option to yes will show the images for ICQ, AIM, MSN, and Yahoo! Messenger if the user has entered the correct information in his/her profile. These links are shown in various places through out the forum, on posts, who's online, memberlist, profile, etc. When set to no the information will be displayed in their profile in the form of text.
- Use SkypeWeb Graphics
If set to 'Yes', load Skype™ icon from the SkypeWeb server in order to show users' online status, otherwise use local (static) graphic.
If set to 'Language Specific', graphics in the language being used by the visiting user will be loaded.
Email Options |
Here you can setup everything related to how your forum sends and handles email.
- Enable Email features? - Enable the following email-sending features: Report Bad Post, 'Contact Us' Link, Email a Member, Email this Page to a Friend, New Post Notifications to Members
You can turn off the 'Send to Friend' feature for individual user groups in the User Permissions area. - Allow Users to Email Other Members - Allow users to send emails to other users. Use the option below to determine how the emails are sent.
- Use Secure Email Sending - If 'Allow Users to Email Other Members' is set to 'Yes', how should members' email addresses be displayed? If this is set to 'Yes', then an online form must be filled in to send a user an email, thus hiding the destination email address. Setting 'No' will mean that the user is just given the email address in order to send email using their email client application.
- Email Flood Check - Specify in seconds how much time must elapse before a user may send consecutive emails. Set to 0 to disable this flood check.
- Use Mailqueue System - When enabled, subscription emails generated by your site will be processed in batches to lessen the load on your server. Account activation, lost passwords and other vital emails are sent instantly regardless of this setting. If your site has low traffic, subscription emails may be delayed.
If you have a large site, you may wish to enable locking. This prevents a rare situation where the same email is sent multiple times. - Number of Emails to Send Per Batch - vBulletin includes a mail queuing system to prevent bottlenecks when sending lots of email. Use this option to specify how many emails will be sent per batch.
- Bounce Email Address - The email address where bounce messages will be directed. If this field is blank, the Webmaster Email address will be used.
This email is used when using an SMTP server, or when the 'Enable -f Parameter' email for sendmail is switched on. - Enable "-f" Parameter - Some sendmail servers may require the "-f" parameter to be sent with email calls from PHP. If you are having problems with users not receiving email, try enabling this option. In all likelihood, your problem will not be caused by this setting.
- SMTP Email - Set this option to yes to use a SMTP server rather than the internal PHP mail() function.
- SMTP Host - If you've enabled SMTP mail, please specify the host here. You may find that specifying an IP Address rather than a domain name, results in better performance. Example: smtp.gmail.com
- SMTP Port - If you've enabled SMTP mail, please specify the port here.[/b]
- SMTP Username - If you've enabled SMTP mail and your server requires authentication, please specify your username here.
- SMTP Password - If you've enabled SMTP mail and your server requires authentication, please specify your password here.
- SMTP Secure Connection - If you've enabled SMTP mail and your server requires a TLS connection, please set this to yes. This requires OpenSSL support to be compiled into PHP.
Warning:
To obtain your SMTP information, you will need to contact your SMTP provider. This is not information that can be obtained through vBulletin or from support staff.
Sending Email via SMTP |
The SMTP server options can be edited via the Email Options in the vBulletin Options, this will be enabled via the SMTP Email switch and then the appropriate settings must be completed.


Censorship Options |
All message titles and messages will be affected.
Note:
To use the censor feature on your site, don't forget to activate it!
- Censorship Enabled - You may have certain words censored on your forum. Words you choose to censor will be replaced by the character you specify below. All message titles and messages will be affected.
- Character to Replace Censored Words - This character (or characters) will be used to replace censored words. For example, if you have censored the word 'dog' and you set the censor character here to an asterisk (*) then any occurrences of 'dog' in messages will appear as '***'.
- Censored Words - Type all words you want censored in the field below. Do not use commas to separate words, just use spaces. For example, type "dog cat boy", rather than "dog, cat, boy."
If you type "dog", all words containing the string "dog" would be censored (dogma, for instance, would appear as "***ma"). To censor more accurately, you can require that censors occur only for exact words. You can do this by placing a censor word in curly braces, as in {dog}. Signifying "dog" in the curly braces would mean that dogma would appear as dogma, but dog would appear as "***". Thus your censor list may appear as: cat {dog} {barn} barn
Do not use quotation marks and make sure you use curly braces, not parentheses, when specifying exact words. - Blank ASCII Character Stripper - If there are certain raw ASCII characters you would like to strip from posts/usernames etc, enter their ASCII numbers here, separated by spaces.
Please note that stripping raw ASCII characters with this setting may break some double-byte languages. If you are unsure, remove the contents of this setting.Note:If your forum is set up to use UTF-8 character encoding then this setting will need to be emptied.
User Registration Options |
vBulletin Options > vBulletin Options > User Registration Options
- Allow New User Registrations - If you would like to temporarily (or permanently) prevent anyone new from registering, you can do so. Anyone attempting to register will be told that you are not accepting new registrations at this time.
- Use COPPA Registration System - Use the COPPA registration system. This complies with the COPPA laws and requires children under the age of 13 to get parental consent before they can post.
For more info about this law, see here: http://www.ftc.gov/bcp/conline/pubs/buspubs/coppa.htm - COPPA Registration System Cookie Check - This option will save a cookie onto the user's computer if an age under 13 is entered. Subsequent registration attempts will be failed, no matter what age is entered. This only applies if the previous option is set to either Enable COPPA or Deny registration for users under 13 years.
- Moderate New Members - Allows you to validate new members before they are classified as registered members and are allowed to post.
- Send Welcome Email - Enabling this option will send a welcome email to new users using the email body/subject phrases for 'welcomemail'.
Note: If you require emails to be verified, this email will be sent after the user has activated his or her account. If you moderate new memberships, no welcome mail will be sent as the user will already be receiving an email. - Welcome Private Message - Enabling this option will send a welcome private message to new users. Please input the username of the user that this PM is to be sent from. To alter or translate this message, use the email body/subject phrases for 'welcomepm'.
Note: If you require emails to be verified, this message will be sent after the user has activated his or her account. Also ensure that Receive Private Messages is enabled in the Default Registration Options. - Email Address to Notify About New Members - This email address will receive an email message when a new user signs up. Leave the option blank to disable this function.
- Allow Multiple Registrations Per User - Normally, vBulletin will stop users signing up for multiple names by checking for a cookie on the user's machine. If one exists, then the user may not sign up for additional names. Note: This does not stop users from logging out and then registering new accounts.
If you wish to allow your users to sign up for multiple names, then select yes for this option, and they will not be blocked from registering additional usernames. - Verify Email address in Registration - If you set this option to 'Yes' new members will not be allowed to post messages until they visit a link that is sent to them in an email when they sign up.
If a user's account is not activated by the user visiting the link, it will remain in the 'Users Awaiting Activation' usergroup. - Require Unique Email Addresses - The default option is to require unique email addresses for each registered user. This means that no two users can have the same email address. You can disable this requirement by setting this option to 'No'.
- Minimum Username Length - Enter the minimum number of characters in a valid username, for the purpose of ensuring that new members create valid usernames.
- Maximum Username Length -
Enter the maximum number of characters in a valid username, for the purpose of ensuring that new members create valid usernames. - Illegal User Names - Enter names in here that you do not want people to be able to register. If any of the names here are included within the username, the user will told that there is an error. For example, if you make the name John illegal, the name Johnathan will also be disallowed. Separate names by spaces.
- Username Regular Expression - You may require the username to match a regular expression (PCRE). The admin help provides some examples that may be useful. To disable this function leave the option blank.
- User Referrer - If you enable the User Referrer system, then a user who visits your forum through a link that contains 'referrerid=XXX' will give referral credit to the owner of the referrerid when they register (where XXX is the userid of the referring user).
- Default Registration Options - The user options on the New User creation form in the Admin Control Panel, as well as the New User registration form will default to the following settings.
You can control the following settings:
Receive Admin Emails
Invisible Mode
Display Email
Receive Private Messages
Send Notification Email When a Private Message is Received
Pop up a Notification Box When a Private Message is Received
Enable Visitor Messaging
Limit usage of Visitor Messages to Contacts and Moderators
Allow vCard Download
Display Signatures
Display Avatars
Display Images
Display Reputation
Automatic Thread Subscription Mode
Message Editor Interface
Thread Display Mode
Require Birthday - Username Reuse Delay - When a username is changed, you may wish to prevent users from registering with that name for a certain length of time. Use this setting to determine the time before a deleted or previous username can be reused, or set it to 0 to disable this function.
User Infractions & Post Reporting Options |
- User Infraction Discussion Forum
A discussion thread can be created for each user infraction for moderators to discuss the infraction further. Choose a forum for the discussion threads to be created in.
If you do not wish a discussion thread to be created for user infractions, set this to Select Forum - Require Infraction Message
This option requires that the user sending an infraction include a PM or Email, depending on your forum settings. - Post Reporting Discussion Forum
A discussion thread can be created for each reported post for moderators to discuss the post further. Choose a forum for the discussion threads to be created in.If you do not wish a discussion thread to be created for reported items, set this to Select ForumNote:Reported Visitor Messages, Social Group Messages and Album Pictures & Messages also are posted in the forum set here. - Post Reporting User
Reported post discussion threads default to being posted under the username of the reporter. To have the threads reported under another username, enter an existing username. - Post Reporting Email
This option sends an email to the specified users when a post is reported. It can be sent to moderators, super moderators and administrators, moderators only, or no email sent.Note:If the Post Reporting Email is set to No Email and the Post Reporting Discussion Forum is set to Select Forum then no notifications of any kind will be issued for reported items.
User Profile Options |
vBulletin Options > vBulletin Options > User Profile Options
Enabled User Profile Features
Use this option to globally enable or disable the various user profile-related features. Additional options are available for each feature in their respective sections.
Require Date of Birth
Require users to provide a valid date of birth (1902 to current year).
[note]When this is set to Yes users cannot edit their date of birth once it has been set.
User Title Maximum Characters
This is the maximum number of characters allowed for a user's custom title.
Censored Words for Usertitle
Type all words you want censored in the Usertitle in the field below. Do not use commas to separate words, just use spaces. For example, type "dog cat boy", rather than "dog, cat, boy."
If you type "dog", all words containing the string "dog" would be censored (dogma, for instance, would appear as "***ma"). To censor more accurately, you can require that censors occur only for exact words. You can do this by placing a censor word in curly braces, as in {dog}. Signifying "dog" in the curly braces would mean that dogma would appear as dogma, but dog would appear as "***". Thus your censor list may appear as: cat {dog} {barn} barn
Do not use quotation marks and make sure you use curly braces, not parentheses, when specifying exact words.
Exempt Moderators From Censor
Do you want to exempt your forum Moderators from the censor words? You will want to set this to yes if you censor anything that is part of a moderator's title like 'moderator' as they have custom titles by default and will get censored.
Number of friends to display in the small friends block
The Number of Friends to display in the Small Friends Block on the Users' Profile Pages
Friends Per Page on Full Friends List[b]
The Amount of Friends to show "per page" on the large friends list.
[b]Maximum Visitors to Show on Profile Page
Set an upper limit for the number of recent visitors to show. Recent visitor records are cleaned out on a regular basis, so keep this to a reasonably small number. Somewhere between 5 to 30 is ideal.
Show Last Post on Profile Page
Showing the last post on a member profile can cause large table scans which leads to table locking. This may increase load time on your forums as well as the load of your server. This option should only be enabled for smaller forums.
Signature Soft-Linebreak Character Limit
When counting the number of lines in a signature, this setting controls the number of characters that can be displayed before text wraps in the browser and is displayed as multiple lines. Once this value is surpassed, the run of text will be counted as multiple lines.
The value in this setting should be based on the number of normal-sized characters. Other sized characters will be scaled appropriately to this setting.
Allow Users to 'Ignore' Moderators
Allow users to add Moderators and Administrators to their ignore list?
User Profile: Album Options |
vBulletin Options > vBulletin Options > User Profile: Album Options
Albums Per Page
When listing multiple albums on one page, this controls how many will be displayed before pagination occurs.
Number of Albums to display in the Users Profile
The Maximum Number of Albums to Display on the Users' Profile Pages
Pictures Per Page
When viewing an album, this controls how many pictures are displayed before pagination occurs.
Picture Moderation
When enabled, all new pictures are placed into moderation. This can also be enabled in usergroup permissions.
Album Thumbnail Size
The maximum height and width of thumbnails in the album system. Each picture's aspect ratio will be maintained when it is thumbnailed.
Caption Preview Length
The amount of characters from a picture's caption that will be shown when a user hovers over the picture.
Number of Pictures that can be Uploaded Simultaneously
This controls the number of pictures users can upload simultaneously. They will not be able to violate any album- or usergroup-implied size limits if you set this value too large.
Maximum Pictures per Album
You may choose to limit the number of pictures that a user can have in one album. This is primarily useful for encouraging your users to have albums for smaller topics, but it does have minor performance considerations as well. Setting this to 0 disables the limit.
Enable Picture Comments
Set this option to yes if you would like to enable commenting on album and group pictures. Comments are associated with the picture itself, so comments will be shown anywhere the picture is shown.
Moderate Picture Comments
When enabled, all new picture comments are placed into moderation. This can also be enabled in usergroup permissions.
Default Picture Comments Per-Page
This setting allows you to define the default number of picture comments displayed per-page with a picture.
Maximum Picture Comments Per-Page
This setting allows you to limit the number of picture comments users may display per page with a picture.
Allowed BB Code Tags in Picture Comments
This setting allows you to enable and disable the use of various BB codes in picture comments.
User Profile: Style Customization Options |
vBulletin Options > vBulletin Options > User Profile: Style Customization Options
Allowed Fonts
The list of allowed fonts for profile style customizations. Each font must be on its own line.
Allowed Font Sizes
The list of allowed fonts size for profile style customizations. Put each font size on its own line. You may use any size that is valid in CSS.
Allowed Border Widths
The list of allowed border width sizes for profile style customizations. Put each border width size on its own line.
Allowed Padding
The list of allowed padding sizes for profile style customizations. Put each padding size on its own line.
User Profile: Visitor Messaging Options |
vBulletin Options > vBulletin Options > User Profile: Visitor Messaging Options
Maximum Characters Per Visitor Message
Maximum characters to allow in a visitor message. Set this to 0 for no limit.
Default Visitor Messages Per-Page
This setting allows you to define the default number of messages displayed per-page in the user profiles.
Maximum Visitor Messages Per-Page
This setting allows you to limit the number of messages users may display per page in the user profiles.
Visitor Message Moderation
When enabled, all new visitor messages are placed into moderation. This can also be enabled in usergroup permissions.
Allowed BB Code Tags in Visitor Messages
This setting allows you to enable and disable the use of various BB codes in visitor messages.
Social Group Options |
vBulletin Options > vBulletin Options > Social Group Options
Social Group Name Maximum Length
Enter the maximum number of characters allowed in social group names. Names longer than this limit will be rejected.
Social Group Message Moderation
When enabled, all new group messages are placed into moderation. This can also be enabled in usergroup permissions.
Enable Social Group Messages
If you select this options, members of each group will be able to post messages in the group. Users who are not part of the group will still be able to read the messages.
Allow Groups Owners to Force New Group Messages into Moderation Queue
This option allows a group owner (with the Manage Own Social Groups' Content Permission) to set the group so that all Group Messages are automatically sent to the moderation queue.
Enable Social Group Pictures
If this option is selected, any users with albums will be able to add pictures from an album to groups they belong to.
Allow Join-to-View Groups
When set, this allows the creator of a group the option to only show contents (messages, pictures) of the group to members of that group (or Administrators and Moderators).
Allowed BB Code Tags in Social Group Messages
This setting allows you to enable and disable the use of various BB codes in group messages.
Allow Owners to Delete Social Group if Empty
This option will allow any group owner to delete a Social Group if they are the only member of that group (even if they lack the "Can Delete Own Social Groups" permission)
User Picture Options |
Note:
This is the section for the global switch, use the usergroup permissions to setup the permissions on a usergroup basis.

- Avatars Enabled
Use this option to enable/disable the overall use of avatars.
Avatars are small images chosen by the user and displayed under usernames in thread display and user info pages.
You can enable/disable avatars on a per-usergroup level by disabling their ability to use any avatar categories under Avatars > Avatar Manager. You can enable/disable custom avatars in Usergroups > Usergroup Manager.
Set this option to 'no' to turn it off.
- Avatar Display Width
How many columns of avatars do you wish to display of pre-defined avatars in the User Control Panel to the user when selecting a pre-defined avatar?
Example: 5
- Avatars Per-Page
How many avatars do you want to display per-page on the 'Edit Avatar' page within the profile editor, broken into columns by the Avatar Display Width setting above?
Example: 10
- Profile Pictures Enabled
Use this option to enable/disable the overall use of profile pictures.
Profile pictures are small images (although usually larger than avatars) that users can upload to their profile pages. You can set this per-usergroup with the Can Upload Profile Pictures setting in Usergroup Manager.
Set this option to 'no' to turn it off.
Note:
To manage your pre-defined avatars, or to control the storage of avatars, go to the Avatars section.
User Reputation |
- Enable User Reputation system
This is the global switch for the reputation system. If you disable this, users will not be able to rate each other nor will their scores be visible. - Default Reputation
This is the reputation score that new users will start out with. - Number of Reputation Levels to Display
When a user enters their User CP, they will see a list of their most recent reputation ratings. This affects how many of the latest ratings to display. - Administrator's Reputation Power
If you wish to have administrator's wield a certain reputation power independent of their calculated score, enter it here. Otherwise, set this to 0 and they will use the same calculations as everyone else. - Register Date Factor
The number of reputation points that a user is able to give or take is dependant on several factors, with the length they have been registered as one of them. A user's power is first initialized at 1 and then this factor and the factors that follow are used to increase it. For example if you set this to 365, every 365 days that the user has been a member of your forum, they would gain one point. So if they have been a member for five years, they would gain 5 points of power for a total of 6. - Post Count Factor
The amount of posts that a user has can also affect their reputation power. Set this to number of posts that you want to award one point for. For example, set this to 50 and for a user with 500 posts, they would gain 10 points of power. - Reputation Point Factor
The users current reputation score can also affect their reputation power. Set this to 100 and a user with a reputation of 1000 would gain 10 points of reputation power. If you set any of the power factors to 0, that will effectively remove that factor from having an effect on the user's reputation power. - Minimum Post Count
If the reputation system is enabled, anyone will be able to rate a post but only users with a post count above the level you set here will be able to actually give points or take points from another user. - Minimum Reputation Count
As with the post count above, a user must have a reputation above this level to be able to give or take points from another user's score. - Daily Reputation Clicks Limit
This sets how many unique members that a forum user will be able to rate in any 24 hour period. Administrators can rate as many people as they wish. - Reputation User Spread
This setting dictates how many unique members that a user must rate before they are able to rate the same member twice. The goal of this setting is to stop a member from either artificially bumping or dropping a user by repeatedly rating their posts.
User Notes Options |
The vBulletin Options > vBulletin Options > User Notes Options setting group allows you to set up the parsing for a usernote. You can turn on or off the use of BB Code, Smilies, [IMG] tags and usage of HTML.
Note:
The ability to use usernotes, read them, read your own, allow others to reply or manage them is a usergroup setting. Do not forget to walk through each usergroup to set the use and permissions of usernotes correctly.

- Allow vB Code in User Notes
If you want to markup the text with BOLD or ITALIC or other common vBulletin BB Code tags, set this option to Yes.
- Allow Smilies in User Notes
If you want a smilie like :) parsed to an image, set this option to Yes.
- Allow [IMG] Code in User Notes
If you want to allow insertion of images into the usernotes, set this option to Yes.
- Allow HTML in User Notes
If you even want to allow HTML to be used, set this option to Yes.
Warning! If you allow HTML to be inserted, you are open for risks of abuse - it is strongly not recommended.
User Listing Options |
This section of the Admin Control Panel allows you to set options for the Member List including:
- Members List Enabled
This allows users to view all users who belong to those usergroups that have "Viewable on Memberlist" enabled (See Usergroups & Permissions). - Minimum Posts
You can define a minimum post count that a user must reach before they are displayed on the memberlist. - Member List Field Options
Allows you to select which User Profile fields are viewable on the memberlist. - Members Per Page
The number of records per page that will be shown by default in the members list before the results are split over multiple pages. - Allow Advanced Searches
Allow the use of the advanced search tool for the Member List. If turned off, members will only be able to search by username.
User Banning Options |
This section of the Admin Control Panel allows you to set the Banning Options for your forum along with IP bans.
- Enable Banning Options
Banning allows you to stop certain IP addresses and email addresses from registering and posting to the forum. - Banned IP Addresses
Use this option to prevent certain IP addresses from accessing any part of your board.
If you enter a complete IP address (242.21.11.7), only that IP will be banned.
If you enter a partial IP (243.21.11. or 243.21.11), any IPs that begin with the partial IP will be banned. For example, banning 243.21.11 will prevent 243.21.11.7 from accessing your board. However, 243.21.115.7 would still be able to access your board.
You may also use an '*' as a wildcard for increased flexibility. For example, if you enter 243.21.11*, many IPs will be banned including: 243.21.11.7, 243.21.115.7, 243.21.119.225.Warning:Use this option with caution. Entering an incorrect IP can result in banning yourself or other genuine users from your forums. - Banned Email Addresses
Email address ban lists: You may ban any email addresses from registering and posting. Type in the complete email address (user@example.com), or use a partial email address (as in @example.com).
Note that partial email addresses are matched from the end of the address unless you enable 'Aggressive Email Banning' below. Therefore if you ban @example.com you will ban user@example.com, but if you ban @example that user will not be banned. If you enable 'Aggressive Email Banning', user@example.com would be banned by @example.
If the email address of a user attempting to register or change their email address matches any of the addresses you specify here will see a no-permission error. For example, if you have banned 'example.com' then a user attempting to use 'someone@example.com' will be rejected. - Aggressive Email Banning
If this option is enabled, when checking for banned emails, incomplete addresses are matched anywhere in the email address, not just the end.
For example, if this option is enabled 'yahoo' will block any email address with 'yahoo' in it. If this option is disabled, no emails will be banned unless the ban was changed to 'yahoo.com'. - Allow User to Keep Banned Email Addresses
If you ban an email address and a user already uses that address, a problem will occur. Using this option, you can specify whether the user will have to enter a new email address in their profile when they next modify their email address, or whether the user can just keep the email address which you have banned. - Tachy Goes to Coventry
This option allows you to effectively add a user or users to every member's 'Ignore List'. However, users in this list can still see their own posts and threads...
Enter a list of userid numbers, separated by spaces (for example: 4 12 68 102).Note:If you change this option, you need to rebuild thread and then forum information in Maintenance > Update Counters.
BB Code Settings |
- Enabled Built-in BB Code Tags
This setting allows you to enable and disable various built-in BB code tags in vBulletin. The BB Codes that can be enabled or disabled here are:
Basic BB Code (Bold, Italic, Underline)
Color BB Code
Size BB Code
Font BB Code
Alignment BB Code
List BB Code
Link BB Code
Code BB Code
PHP BB Code
HTML BB CodeNote:Disabling a BB code tag will prevent it from working anywhere on the forum, including signatures, private messages, user notes etc. - Maximum [CODE] Lines
When a user posts a block of [CODE], [PHP] or [HTML] in one of their messages, the system will place it in a box, which expands to contain their message.
This value controls the number of lines at which the box stops adding height and inserts a scrollbar.
- Allow BB Code in Non Forum Specific Areas
Allow users to include BB code in non-forum-specific areas? (Such as [b], [i] etc.) - Allow Smilies in Non Forum Specific Areas
Allow users to include smilies in Non Forum Specific Areas? - Allow [IMG] Code in Non Forum Specific Areas
Allow users to include [IMG] codes in Non Forum Specific Areas? - Allow HTML in Non Forum Specific Areas
Allow users to include raw HTML code in Non Forum Specific Areas?Warning:Enabling this setting is strongly not recommended.
Message Posting and Editing Options |
- Quick Reply
If you enable Quick Reply, a box will appear on the showthread.php page allowing users to reply to the current thread without needing to load the full newreply.php page.
When Quick Reply is enabled, you may specify whether or not users must click the Quick Reply icon in order to start typing in the Quick Reply editor.
If you choose not to require a click, the system will not know to which post a user is replying, making both the threaded and hybrid display modes nonsensical.Note:We strongly recommend that you set the option to require a click if you use Quick Reply and have Threaded Mode available on your forums. - Quick Edit
By enabling Quick Edit, a click on the Edit button in a post will open an editor within that post via AJAX if the visitor's browser is compatible.
Users may use the full editor by clicking the 'Go Advanced' button in the inline editor. - Multi-Quote Enabled
If this option is enabled, an additional button will appear on posts. A user may click as many of these buttons as they wish. Once they click a reply button, the content of each of the selected posts will be quoted and shown in the reply window. - Multi-Quote Quote Limit
Enter a value to limit the number of quotes that can be created with Multi-Quote, once this limit is reached the user will be unable to add any more quotes.Note:The Quote BB code can still be entered manually, this is not a limit on the number of quotes in a post. - Minimum Characters Per Post
If this number is set to a value greater than 0, users must enter at least that number of characters in each new post.Note:Setting this to 0 will not completely disable the minimum characters per post check. Users must always enter at least 1 character. - Maximum Characters Per Post
Posts that contain more characters than the value specified here will be rejected with a message telling the user to shorten their post.
Set the value to 0 to disable this function. - Maximum Characters Per Thread/Post Title
Thread and post titles will be limited to this number of characters. Please choose a value larger than 0 and less than 251. - Ignore Words in [QUOTE] Tags For Min Chars Check
Setting this option to 'YES' will cause the system to not count words in [QUOTE] tags towards the total number of characters posted.
The primary use for this is to prevent users posting messages with enormous quotes and a single short word of their own. - Automatically Quote Post / Thread Title
Setting this to 'Yes' will automatically fill the title field of new posts with either the thread or the parent post title, prefixed by 'Re: '.
The user may specify their own title if they want to do so. - Maximum Images Per Post
When a new post is submitted or edited vBulletin will check the number of images and smilies in the text and reject it if the number is greater than the value specified here.
Set the value to 0 to disable this function. - Prevent 'SHOUTING'
Prevent your users 'shouting' in their thread titles/message text by changing all-uppercase titles with at least this many characters to capitalization only on the first letters of some words.
Set the value to 0 to disable this function.Note:Disable this for some international forums with different character sets, as this may cause problems. - Minimum Time Between Posts
You may prevent your users from flooding your forum with posts by activating this feature.
By enabling floodcheck, you disallow users from making another post within a given time span of their last posting. In other words, if you set a floodcheck time span of 30 seconds, a user may not post again within 30 seconds of making his last post.Recommended: 30 seconds. Type the number of seconds only. Enter 0 to disable this function.Note:Administrators and moderators are exempt from floodcheck. - Time Limit on Editing of Thread Title
Specify the time-limit (in minutes) within which the thread title may be edited by the user whom started the thread. - Time Limit on Adding a Poll to a Thread
Specify the time-limit (in minutes) within which the thread may have a poll added to it. - Time Limit on Editing of Posts
Time limit (in minutes) to impose on editing of messages. After this time limit only moderators will be able edit or delete the message. 1 day is 1440 minutes.
Set the value to 0 to allow users to edit their posts indefinitely. - Time to Wait Before Starting to Display 'Last Edited by...'
Time limit (in minutes) to allow user to edit the post without the "Last edited by..." message appearing at the bottom of the edited post. - Log IP Addresses
For security reasons, you may wish to display the IP address of the person posting a message. - Post Edit History
Enable this option to log the previous versions of posts when they are edited.
Edits will not be logged if an 'edited by' notice is not displayed or updated. This occurs in the following situations:- The editing user is in a group that does not show edited by notices and no reason for editing is specified.
- The post is edited quickly enough after being posted to trigger the Time to Wait Before Starting to Display 'Last Edited by...' option.
Note:This will increase the amount of disk space used by vBulletin for database storage.
Message Posting Interface Options |
- Enable Clickable Message Formatting Controls
This global switch allows you to set the available message formatting toolbar and clickable smilies for the Full Editor, Quick Reply and Quick Edit individually. The option set for each one here is the maximum toolbar level available for each area.
- Smiliebox Total Smilies
How many smilies should be displayed in the smiliebox before the user is prompted to click for the more smilies popup window?
Set this value to 0 if you would like to hide the clickable smiliebox completely. - Smiliebox Smilies Per Row
If the smiliebox is enabled, how many smilies should be shown per row of the box? - Smilie Menu Total Smilies
Use this option to set the number of smilies that will appear in the WYSIWYG popup smilie menu before the 'show all smilies' link is displayed.
Set this value to 0 if you would like to hide the popup smilie menu completely.
Message Attachment Options |
- Limit Space Taken Up By Attachments (Total)
Use this option to limit the total combined amount of disk space in bytes that all attachments can occupy.
Set the option to 0 to have no disk space limit. - Attachments Per Post
Number of files that may be attached to a single post. Set to '0' to have no limit. - Attachment Upload Inputs
This option sets how many attachment upload input boxes are displayed on the upload form. - Attachment URL Inputs
This option sets how many attachment URL input boxes are displayed on the upload form. - Allow Deletion of Attachments Beyond Edit Time Limit
Allow users to delete attachments, even if the post edit time limit has been exceeded? If you have attachment quotas enabled then you will need this option enabled to allow users to delete attachments once they reach their quota. The user will still need permission to edit posts in the forum for this to apply. - Allow Deletion of Attachments in Closed Threads
Allow users to delete attachments from threads that are closed? If you have attachment quotas enabled then you might need this option enabled to allow users to delete attachments once they reach their quota. The user will still need permission to edit posts in the forum for this to apply. If the above option is set to NO then this option will only apply up to the edit time limit setting. - Allow Duplicate Attached Images
This setting only checks for attachments posted by the user that is making the post. - Resize Images
If an image is larger than your maximum allowed dimensions or filesize, an attempt to resize it will be tried. This may fail if the image is too large to be successfully processed or if the image type is not supported for resizing. When this option is enabled, you should limit the Attachment Input options above to one, otherwise the uploading of multiple large images by one user could strain your server. - View Attached Images Inline
If thumbnails are enabled, any image without a thumbnail will be shown as a link, regardless of this setting's status, unless the image size happens to be within the thumbnail size limits.
Set this to 'No' if you want to preserve bandwidth or server processor resources. - Thumbnail Creation
If your version of PHP supports image functions, you may enable the creation of thumbnails for images. This is the master switch to enable/disable thumbnail display. Go to Attachments -> Attachment Manager -> Edit -> Display to choose what image types will be thumbnailed. You will need to go to Maintenance -> Update Counters -> Rebuild Attachment Thumbnails after changing this setting. - Thumbnail Size
Maximum width and height that the thumbnail can have. The image will be proportionately resized so that the longest side is no larger than this setting. If you change this setting, you will need to go to Maintenance -> Update Counters -> Rebuild Attachment Thumbnails. - Thumbnail Quality
Quality of JPG thumbnails. 75 is a good balance between file size and image quality. - Thumbnails Per Row
How many thumbnails do you wish to display per line on user's post, assuming you allow more than one attachment per post? - Thumbnail Color
This setting controls the border and label color in the Thumbnail Creation option above. Please specify the color using standard Web Colors. - Use Image Lightbox
Use the lightbox for quick display of attached image thumbnails rather than instantly loading the full size image on a new page.
Poll and Thread Rating Options |
- Maximum Poll Options
Maximum number of options a user can select for the poll.
Set this option to 0 to allow any number of options. - Poll Option Length
Maximum length that a poll option can be. - Update Thread Last Post on Poll Vote
If you set this option to 'Yes' the thread's last post time will be updated when a vote is placed, thereby returning it to the top of its parent forum listing.Note:This option can cause confusion. The last post time of a thread will be changed with no visible post. - Required Thread Rating Votes to Show Rating
This option specifies the number of thread rating votes that must be cast of a particular thread before the current rating is displayed on forumdisplay.php and showthread.php. - Allow Thread Rating Vote Changes
Allow users to change their original rating of a thread
Message Searching Options |
- Search Engine Enabled
Allow searching for posts and threads within the forums. This is a relatively server-intensive process so you may want to disable it if you have problems.
- Minimum Time Between Searches
The minimum time (in seconds) that must expire before the user can perform a new search.
Set this to 0 to allow users to search as frequently as they want. - Search Results Posts Per Page
Number of successful search results to display per page. - Maximum Search Results to Return
Any search results over this number will be discarded. - Search Index Minimum Word Length
When using the vBulletin default search, this option limits the size of indexed words. The smaller this number is, the larger your search index, and conversely your database is going to be.Note:When using the Fulltext search, this option limits the size of words that may be searched for. Smaller words take longer to search for as they are more common. MySQL Fulltext has its own minimum word length as well that must be changed at the server level. - Automatic Similar Thread Search
Setting this option will cause a search for similar threads to be automatically done when a new thread is posted. These similar threads are then linked to from the newly posted thread's page. This can have an effect on performance. - Search Result Sharing
In order to conserve resources, vBulletin will allow search results to be shared among users for one hour. The downside of this is that search results can appear out of order if a thread is updated in the interim. - Similar Threads Relevance Threshold
For a post to be matched in a search for similar threads, it must have a score of this number or greater, per searchable word. For more information on how post scores are determined, see the Search Algorithms section. - Words to be excluded from search
If there are special words that are very common for your forum, you may wish to remove them from being searchable. Searching for very common words on a large forum can be server intensive. Separate each word with a space.
Message Searching Options (vBulletin Internal Search) |
Words to be Included Despite Character Limit
If there are special words that are important for your forum but are outside the word length limits you specified above, you may enter them here so that they will be included in the search index.
For example, a web-programming forum with a minimum word length of 4 characters might want to include 'PHP' in the search index, even though the word is only 3 characters long.
Separate each word with a space.
Search Index Maximum Word Length
Enter the maximum word length that the search engine is to index. The larger this number is, the larger your search index, and conversely your database is going to be.
Allow Search Wild Cards (yes/no)
Allow users to use a star (*) in searches to match partial words? (Eg: 'bu*' matches 'building' and '*bu*' matches 'vBulletin').
Message Searching Relevance Options (vBulletin Internal Search) |
Note:
These settings only apply if you are using the vBulletin Search Engine. They do not apply if you are using Full Text Search.
- Search Relevance Multi-Word Match Bonus Score
If the search query is for multiple words, this number will be added to the score for the item each time another word from the query is found. - Search Relevance Date Score
The newest item in the result set will score this number, with the score decreasing to 0 for the oldest item in the result set. - Search Relevance Thread Title Score
Score for a word appearing in the thread title. - Search Relevance Post Title Score
Score for a word appearing in the post title. - Search Relevance Reply Score
Amount to multiply the number of replies in a thread to get the score for the thread. - Search Relevance Reply Function
Allows you to specify a function to operate on the number of replies of a thread.
Works like: = func($thread[replies]) * $replyscore - Search Relevance View Score
Amount to multiply the number of views of a thread to get the score for the thread. - Search Relevance Views Function
Allows you to specify a function to operate on the number of views of a thread.
Works like: = func($thread[views]) * $viewscore - Search Relevance Rating Score
Amount to multiply the average rating of a thread to get the score for the thread. - Search Relevance Rating Function
Allows you to specify a function to operate on the average rating of a thread.
Works like: = func($thread[rating]) * $ratingscore
Tagging Options |
- Enable Thread Tagging
This is a global option to enable or disable the thread tagging system. You may choose which usergroups can apply tags to threads in the usergroup permissions section. - Tag Minimum Length
The minimum number of characters in a tag name. This can be between 1 and 100. - Tag Maximum Length
The maximum number of characters in a tag name. This can be between 0 and 100. - Thread Tag Banned Words
These words will be checked in addition to those listed in includes/searchwords.php to form a list of words whose use is banned in tagging.
Separate each word with a space or carriage return. - Thread Tag Allowed Words
Words entered here will be allowed as tags, regardless of whether or not their use would be otherwise disallowed due to length, censorship, commonality etc.
If a word is specified in the 'Banned' words group and here, it will be allowed.
Separate each word with a space or carriage return. - Tag Separators
This option allows you to specify additional tag separators. Regardless of the value here, a comma will always be used as a separator.
Separate each tag separators with a space. If you would like to use a space in a tag separator, click the '?' for information on the advanced separator syntax. - Maximum Tags per Thread
The maximum total tags per thread. No users may add more tags than this to an individual thread.
0 disables this. - Maximum Tags Applied by Thread Starter
The maximum number of tags the thread starter can apply. Even if this setting allows it, the number of tags in a thread cannot exceed the "Maximum Tags per Thread" setting.
0 disables this limit. To prevent a user from tagging a thread, use user group permissions. - Maximum Tags Applied by Other Users
The maximum number of tags the users other than the thread starter can apply. Even if this setting allows it, the number of tags in a thread cannot exceed the "Maximum Tags per Thread" setting.
0 disables this limit. To prevent a user from tagging a thread, use user group permissions. - Force Tags to be Lower Case
If you enable this option, "A" through "Z" will be replaced with "a" through "z" in tag names. Other characters will not be changed. - Tag Cloud: Number of Tags
The maximum number of tags to display in the tag cloud. - Tag Cloud: Number of Levels
The number of levels to be shown in the tag cloud.
By default, there are 5 levels named level1 to level5, with the font size growing from its smallest size at level 1 to its largest at level 5.
Increasing this value above 5 requires a template change. - Tag Cloud: Cache Time
Amount of time in minutes before the tag cloud data cache is regenerated.
A value of 0 will generate the tag cloud on each view. - Tag Cloud: Usage History (Days)
The number of days worth of data that should be used to generate the usage-based tag cloud here.
Tags added more than this many days ago will not change the size of the link in the cloud. - Tag Cloud: Build Usergroup
The tag cloud pulls together data from threads in many forums. Users may not be able to see all the threads that make up the tag cloud results. With this option, you can force the tag cloud to be built as if it were viewed by a particular usergroup.
Live permission checking is the most accurate, but disables the above specified caching. - Enable Search Tag Cloud
This option controls whether a tag cloud relating to the frequency of tag searches is shown at the bottom of the advanced search.
A usage-based tag cloud is always shown here. - Search Tag Cloud: History (Days)
Amount of days that the system will keep a record of tag searches for use in the search tag cloud.
0 means to use all data available.
Forums Home Page Options |
- Script Name for Forum Home Page
This option allows you to set the script name of the page that acts as your forum home page. By default this will be 'index' (meaning index.php but you may want to call it 'forum' or whatever else you like for your own purposes.Note:If you change this value you must manually rename the forumhome PHP script to match the new value. - Display Logged in Users?
Displays those users that have been active in the last XXX seconds on the home page, where XXX is the value specified by your Cookie Time-Out option (Default is last 15 minutes). Not recommended for sites with hundreds of simultaneous users. The Alphabetical option requires more resources than the random option. - Display Today's Birthdays?
Displays today's birthdays for those usergroups that have birthday display enabled (see User Groups->Usergroup Manager). - Display Calendar Events?
Choose the number of upcoming days that you wish to display upcoming events from.
Set to 0 to disable upcoming events. - Display Custom Holidays
Display upcoming custom holidays in the above events list? - Upcoming Event Type
Choose the method by which you wish to display the upcoming events if the "Display Calendar Events" option is enabled. - Active Members Time Cut-Off
Enter a number of days here that represents a threshold for 'active' members. If a user has visited the board within the past number of days you specify, they are considered 'active'.
Enter '0' to treat all members as 'active'. - Active Members Options
Using the boxes here, you can choose to show only birthdays for those members considered 'active', and to show or hide the total number of 'active' members.
A member is considered 'active' if they have visited the board within the number of days specified in 'Active Members Time Cut-Off'.
Forum Listings Display Options |
- Depth of Forums - Forum Home
Depth to show forums on forum home forum listings. If you set this value to '2', forum listings will show the current forum level and any child forums one level below (etc.) - Depth of Forums - Forum Display
This setting does the same job as the setting above, but this time for forumdisplay.php pages, rather than forum home. - Depth of Sub-Forums
If you have forums below the depth specified in the 'Depth of Forums' settings above, you can display them as sub-forum links in each forum's display area.
Set this value to 0 if you want to display no sub-forums. - Show Forum Descriptions in Forum Listings
Show forum descriptions below forum titles in forum listings? - Show Private Forums
Select 'No' here will hide private forums from users who are not allowed to access them. Users who do have permission to access them will have to log in before they can see these forums too.
This option applies to any forum listing, including the Forum Jump menu, and Search Results. - Show Lock Icons to Users
Do you wish to have the new post indicators shown on the index page (on.gif and off.gif) be shown with locks to guests and other members who have no permission to post? - Last Thread Title Maximum Displayed Characters
This value will chop the title of the last thread posted down to a specific number of characters for its display on a forum listing.
A value of 0 will not trim the titles at all. - Show Moderator Column
Turns the moderator column on and off for forumhome, forumdisplay and usercp. - Show Thread Prefix in Last Post Column?
You may choose to show a thread's prefix in the last post column, along with the title. This will increase the size of the data included in that column, however.
Forum Display Options (forumdisplay) |
- Enable Forum Description
This option displays the forum description in the navbar. Helps visitors to know what the topic of a forum is, as well as possibly increasing search engine rankings. - Show Users Browsing Forums
Enabling this option will show the current users browsing a particular forum on forumdisplay.php while adding one query. This can have an effect on performance. The Alphabetical option requires more resources than the random option. - Maximum Displayed Threads Before Page Split
The number of threads to display on a forum page before splitting it over multiple pages.
Note: This number must be at least 1. - Show Sticky Threads on All Pages
Select 'Yes' to show sticky threads on every forumdisplay.php page, regardless of page number. Set 'No' to only display them on page one. - Highlight Threads in Which User Has Posted
When this feature is enabled, a logged in user will see an 'arrow' (or whatever graphic you choose) on the folder icons (hot folders, new folders, etc.) next to the threads that they have posted in. - Hot Threads Enabled
Hot threads indicate threads with a lot of activity. - Hot Threads Qualifying Views
If 'Hot Threads' are enabled, threads with the specified number of views or more will be shown as hot. - Hot Threads Qualifying Posts
If 'Hot Threads' are enabled, threads with the specified number of posts or more will be shown as hot. - Multi-Page Thread Links Enabled
Link to individual pages of a thread spanning multiple pages on the forum listing? - Multi-Page Thread Maximum Links
When linking to multiple pages in the forum display, this allows you to set the cut-off point on which long posts stop adding more page numbers and are replaced by 'more...' - Length of Thread Preview Text
This setting allows you to specify how many characters of the first post in a thread to display in the 'title' tag of the thread title on the forumdisplay page.
Set this value to 0 to disable thread previews. - Group Announcements
Combine a forum's announcements into one listing, where the newest announcement is displayed?
Setting this to No lists all active announcements individually in their applicable forums
Thread Display Options (showthread) |
- Show Users Browsing Threads
Enabling this option will show the current users browsing a particular thread on showthread.php while adding one query. This can have an effect on performance. The Alphabetical option requires more resources than the Random option. - Maximum Displayed Posts Before Page Split
The number of posts to display on a thread page in linear or hybrid mode before splitting it over multiple pages.
Note: This number must be at least 1. - User-Settable Maximum Displayed Posts
If you would like to allow the user to set their own maximum posts per thread then give the options separated by commas. Leave this option blank to force users to use the 'Maximum Displayed Posts Before Page Split' setting above this option.
Example setting: 10,20,30,40 - Show Default Post Icon
If you would like to use a default icon for messages without an icon, enter the path to the image here. - Number of Characters Before Wrapping Text
If you want posts to automatically insert spaces into long words to make them wrap after a certain number of characters, set the number of characters in the box above.
If you do not want this to occur, enter 0.Note:This should be set to 0 with some language sets - Check Thread Rating
If enabled, this option will check if a user voted on a thread and show their vote if they have. Otherwise, they will see the voting options even if they are not able to vote again. This can have an effect on performance. - Check Thread Subscription
If enabled, this option will notify the user that they are subscribed to a thread by displaying a small icon when viewing forumdisplay and search results. It will also change the "Subscribe to this thread" text on showthread to "Unsubscribe from this thread". This can have an effect on performance. - Show Similar Threads?
Set this value to 'Yes' if you would like to see 'similar threads' displayed on the show thread page.Note:This setting will only work if you have 'Automatic Similar Thread Search' enabled in the message searching options section. - Post Elements
There is optional user information that you may display on each post. These options require a bit of processing time to calculate. This information includes Age, Reputation Power and Infractions - Enable Social Bookmarking
Use this switch to quickly disable the display of the bookmarks section of the page, on which links to social bookmarking sites (set up through the Social Bookmarking Manager) are shown.Note:Social bookmarking links will only be displayed in guest-viewable threads.
Threaded / Hybrid Mode Options (showthread) |
- Enable Threaded / Hybrid Mode
Use this setting to enable or completely disable the Threaded and Hybrid thread display modes. - Use Threaded Mode by Default
Set this value to 'Yes' if you would like users (who have not explicitly set a preference) to view threads in the threaded display mode.Note:This setting will have no effect if 'Enable Threaded / Hybrid Mode' is set to 'No'. - Threaded Mode: Posts Depth
When in the threaded display mode, a list of posts within the current thread is displayed at the bottom of the page. This option allows you to set how 'deep' this list displays beyond the currently selected post. - Threaded Mode: Maximum Cached Posts
When in the threaded display mode, a list of posts within the current thread is displayed at the bottom of the page. This option allows you to set how 'deep' into the tree of posts that vBulletin uses the Javascript 'caching' mechanism. This makes the initial download larger, but means that the page does not have to be reloaded for every post that is viewed. - Threaded Mode: Trim Titles
This value will chop the title of the thread titles in the viewing pane down to a specific number of characters. A value of 0 will not trim the titles at all.
Private Messaging Options |
Private Messaging Enabled (yes/no)
Turns the entire private messaging system on and off.
Instant Messaging Support - Check for New Private Messages (yes/no)
Selecting 'Yes' for this option will cause the system to check the private message database every time a user loads a page, and will display a visible prompt if a new message has just been saved.
Maximum Characters Per Private Message (default: 5000)
Maximum characters to allow in a private message.
Set this to 0 for no limit.
Floodcheck - Minimum Time Between Messages (default: 60)
Private Message Flood Checking. Select the minimum time that must pass before a user can send another private message. This is to prevent a single user 'spamming' by sending lots of messages very quickly.
Set this to 0 to disable the option.
Default Messages Per-Page (default: 50)
This setting allows you to define the default number of messages displayed per-page on the private messages listings pages.
Maximum Messages Per-Page (default: 100)
This setting allows you to limit the number of messages users may display per page on the private messages folder view pages.
Allow Message Icons for Private Messages (yes/no)
Allow the use of the standard message icons for private messages.
Allow vB Code in Private Messages (yes/no)
Allow users to include vB Code in their Private Messages? (Such as [b], [i] etc.)
Allow Smilies in Private Messages (yes/no)
Allows users to include smilies in their Private Messages.
Allow [IMG] Code in Private Messages (yes/no)
Allows users to include [IMG] codes in their Private Messages.
Allow HTML in Private Messages (yes/no)
Allow users to include raw HTML code in their Private Messages?
(Strongly not recommended.)
Who's Online Options |
- Who's Online Enabled
This is the master switch for the Who's Online page. If you select no, anyone who tries to access the page will be shown a no permission page.
If you select yes, you may still control usergroup permissions for Who's Online via Usergroups > Usergroup Manager. - Who's Online Refresh Period
If you set this to a value greater than 0, after that many seconds of being on the same page in Who's Online, your browser will automatically refresh the page. - Who's Online Display Guests
Controls whether guests are shown on Who's Online. Browsing registered users are always shown. - Who's Online Resolve IP Addresses
If you have permission to view IP addresses on Who's Online, this controls whether you will be shown a raw IP address or something that has been resolved to a name-based host. The name-based host cannot always be resolved, but when it can additional information about the browsing user can be more easily determined (for example, his or her Internet Service Provider).
Resolving IP addresses to names is a very slow process. If you have problems displaying Who's Online, you should disable this option. - Enable Spider Display
Controls whether spiders are shown as spiders instead of guests on Who's Online. Identification of spiders is controlled via an XML file, which is discussed here.
Identifying Spiders on Who's Online |
The file looks similar to this:
<?xml version="1.0" encoding="ISO-8859-1"?>
<searchspiders>
<spider ident="http://www.almaden.ibm.com/cs/crawler">
<name>Almaden Crawler</name>
<info>http://www.almaden.ibm.com/cs/crawler/</info>
<email>crawler@us.ibm.com</email>
</spider>
<spider ident="Ask Jeeves">
<name>AskJeeves</name>
</spider>
<spider ident="Googlebot">
<name>Google</name>
</spider>
<spider ident="Mediapartners-Google">
<name>Google AdSense</name>
<info>https://www.google.com/adsense/faq</info>
<email>adsense-support@google.com</email>
</spider>
Place additional spiders here!
</searchspiders>At the minimum, you should provide the ident attribute and the name tag. Other tags are simply for your information and not used. The ident attribute is used to distinguish a regular guest from a spider. The value of this attribute is looked up in the browsing user's user agent (what the user's browser identifies him/her as). If a match is found, the value of the name tag is displayed on Who's Online.
Search Engine Friendly Archive |
Forum Archive Enabled (yes/no)
The Search-Friendly Archive works only under the Apache web server with PHP compiled as a module.
It provides a basic structure that search engines can spider to grab all the content on your site.
Display Simple View of Threads (yes/no)
By default, threads in the Archive are displayed in a simple manner. Set this to no to have the real threads linked from the archive.
Forum Archive Threads Per Page (default: 250)
The number of threads to display per page in the threads listing.
This is done on a per-forum basis.
Forum Archive Posts Per Page (default: 250)
The number of posts to display per page in the thread listing.
Note:
On your own forum you can find the Archive here: http://www.yourforum.com/forumdir/archive/
(live example: http://www.vBulletin.com/forum/archive/)
(live example: http://www.vBulletin.com/forum/archive/)
Admin Control Panel Options |
Control Panel Style Folder
This setting allows you to specify an alternative style for the Admin / Moderator Control Panels, based on a folder contained within the 'cpstyles/' folder. The style you select here will be displayed to all Moderators, and any Administrators who have not expressed their own preference.
Comes default with 5 different Admin Control Panel Styles to choose from. You can set a default here, but upon login one could select the style they prefer.
Folders in the 'cpstyles' folder must contain at least the following:
- controlpanel.css
- cp_logo.gif
- cp_help.gif
Timeout Admin Login (yes/no)
After a period of inactivity, Administrators are logged out of the Admin Control Panel. If this option is set to yes, the inactivity period will be the same as the Cookie Timout setting found in vBulletin Options -> Help Cookies and HTTP Header Options (defaults to 15 minutes). If this option is disabled, then the period will be one hour.
Logins to the admincp are more secure with this enabled.
Control Panel Quick Statistics (yes/no)
Displays the 'Quick Stats' on the main index page of the Admin Control Panel.
Forum Manager Display
There are three options for the display of the Forum Manager:
- Default - Displays all of the forums on one page but may not work on all browsers, especially if you have a large number of forums.
- Collapsible - Allows collapsing/expansion of certain forums within the forum manager. This may reduce the ease of usability of the forum manager, but will prevent rendering problems with the dropdown menus with certain browsers/operating systems.
- Single - Display a single dropdown from which you may choose the forum you wish to modify. This is most useful if you have a large number of forums.
Number of columns to display in user editor. Smaller resolutions will probably want to set this to 1.
External Data Provider |
Here you can select which type can be turned on/off. You can choose between javascript, rss and/or xml.

- Enable External Javascript
This setting allows you to enable/disable the Javascript content syndication system that allows you to embed vBulletin data in HTML pages.
If you set this option to 'yes', you can call it by going to:
http://www.example.com/forum/external.php?type=js
You could use javascript directly in your html pages to control the returned data.
- Enable RSS Syndication
This setting allows you to enable/disable the RSS 0.91, 1.0, and 2.0 content syndication system.
If you set this option to 'yes', you can call it by going to:
http://www.example.com/forum/external.php?type=rss
http://www.example.com/forum/external.php?type=rss1
http://www.example.com/forum/external.php?type=rss2
(example) There is a news-plugin, 'Good News', for Trillian which lets you use RSS feeds to get the latest information posted in your Trillian program.
- Enable Podcasting (RSS Enclosure)
This option includes the first attachment of each thread as an enclosure within RSS 2.0 feeds. If the feed is requested with &lastpost=1 appended to the url then the first attachment of the last post in the thread will be included. This is the method by which Podcasting is enabled for your forum. iTunes specific settings are configures per forum in the Forum Manager.
The iTunes specific features will be only included if a specific forum is specified via the addition of &forumids=X where X is the forumid.
- Enable XML Syndication
This setting allows you to enable/disable the XML content syndication system.
If you set this option to 'yes', you can call it by going to:
http://www.example.com/forum/external.php?type=xml
- Thread Cutoff
This value controls how many days in the past that updated threads will be chosen from. Busy forums will want a smaller number. The smallest valid value is 1 day; the default is 30 days.
- Cache Lifespan
This setting controls how long thread content will be cached. Valid settings are 1 to 1440, anything else will be treated as the default value of 60.
vBulletin uses a an internal cache system as well as a http cache to lessen the load of calls to external.php.
- Maximum External Records
This option limits the maximum amount of records that can be returned by the external data provider. By default 15 records will be returned. This option allows the user to tack on &count=X to their RSS feed to retrieve more records.
Implementing the External Data Provider |
Below are examples on how you can control what is shown on these websites.
To syndicate in a Javascript format you would call the following URL from your external site. This will require additional javascript on the external site (an example is listed below).
www.yourdomain.com/forumpath/external.php?type=js
Example Code:
<script src="http://www.yourdomain.com/forumpath/external.php?type=js" type="text/javascript"></script>
<script type="text/javascript">
<!--
for (i in threads)
{
document.writeln(threads[i].title + " (" + threads[i].poster + ")<br />");
}
//-->
</script>
The URLS to access these feeds are:
XML - www.yourdomain.com/forumpath/external.php?type=xml
RSS - www.yourdomain.com/forumpath/external.php?type=rss
RSS 1.0 - www.yourdomain.com/forumpath/external.php?type=rss1
RSS 2.0 - www.yourdomain.com/forumpath/external.php?type=rss2
You can refine the listings by specifying forumids in the path. For multiple forums separate them with a comma. This will limit the feed to the specified forums only. (Below example uses xml as type, but it works with rss, rss2, and js too)
http://www.vbulletin.com/forum/external.php?type=xml&forumids=1,2,3,4
Threads will be returned in descending order based on the date of their creation. Description information will be returned from the first post of the thread.
If &lastpost=1 is added to the feed URL, threads will be returned in descending order based on the date of the last post of the thread. Description information will be returned from the last post of the thread.
If vBulletin Options > External Data Provider > Enable Podcasting is enabled, the first attachment of the post will also be returned within an <enclosure> tag. The enclosure tag is used within iTunes and other RSS aggregates to allow files to be downloaded from the feed.
Error Handling & Logging |
Log Database Errors to a File
If you would like to log all database errors to a file, enter the path to the file here. The file will be saved as {filename}.log.
Note:
Please note that the directory in which this file is to be created must be writable by the web server.
If you would like to log all failed Admin Control Panel login attempts to a file, enter the path to the file here. The file will be saved as {filename}.log
Note:
Please note that the directory in which this file is to be created must be writable by the web server.
If you would like to log all PHP fatal errors to a file, enter the path to the file here. The file will be saved as {filename}.log.
Note:
Please note that the directory in which this file is to be created must be writable by the web server.
If you would like to log all emails to a file, enter the path to the file here. The file will be saved as {filename}.log. You should only enable email logging if you suspect problems with the email system within vBulletin.
Note:
Please note that the directory in which this file is to be created must be writable by the web server.
If you would like your vBulletin error logs to be rotated when they reach a certain size, enter the maximum file size in bytes here.
1048576 bytes = 1 megabyte.
When a log file reaches this size, it will be renamed as {filename}{unix timestamp}.log and a new file will be created.
Set this value to 0 to disable log rotation.
Disable Database Error Email Sending (yes/no)
If you would like to prevent vBulletin from sending email to the $config['Database']['technicalemail'] address you specified in config.php, set this value to 'Yes'.
- Error reports about database connection errors will still be sent.
- It is not recommended that you set this value to 'Yes' unless you are logging database errors to a file. (see above)
Paid Subscriptions |
Paid Subscription Email Notification
An email will be sent to this email address when a paid subscription is purchased or reversed.
Note:
The main Paid Subscription settings are found at Paid Subscriptions > Paid Subscription Manager. The main manual section relating to Paid Subscriptions can be found here
Plugin/Hook System |
Enable Plugin/Hook System (yes/no)
This setting allows you to globally enable or disable the plugin/hook system.
The plugin/hook systems allows for insertion of arbitrary code into specific locations in the PHP files without having to edit the files (see Plugin Manager). This can be used to extend the functionality of vBulletin without hacking. When upgrading to future versions you do not have to re-apply these modifications to the original vBulletin files, making upgrading an easier task.
By switching the system off, only vBulletin-native code will be run, so it can be used to establish whether errors exist within vBulletin itself or in plugin code.
Note:
You can code these plugins yourself or download existing ones from the official resource community at http://www.vBulletin.org/. Please note that these plugins are unofficial and are not supported by Jelsoft.
Warning:
If you have attempted to import a product or a plugin and run into the problem of being unable to navigate/work with your forum or control panel you might require to update the config.php file with this variable, which will force-disable the hook system. Allowing you to restore your forum and uninstall the bad code/plugin.(Remove from the config.php file when done.)
define('DISABLE_HOOKS', true);Spam Management |
vBulletin Anti-Spam Key Powered by Akismet
Enter a vBulletin Anti-Spam service key to enable scanning of user data where supported.
You can get an anti-spam key here: http://www.akismet.com
Spam Scanning Post Threshold
This setting controls how many of a user's posts will be scanned by the Anti-Spam Service. Once a user's post count exceeds this threshold, his or her posts will not be scanned for spam content. To always scan posts set this value to 0.
Download / Upload Options |
To download options choose Download / Upload Options from the vBulletin Options section of the admin control panel.
From there you can choose the product you wish to download, vBulletin will export a XML file that you can use at a later date to upload.
To upload settings for a product, on the same Download / Upload Options page there is a section to Import Settings XML File, from there you can choose a file to upload.
Backup / Restore Options |
This is useful when backing up a board or moving an install from one site to another, or for replicating a board from a test environment to a live site, or visa versa for testing purposes.
To download and back the settings, choose the product you wish to download from the select list and click backup.
To restore either upload the XML file from your computer or restore the XML file from your server, do that by either locating the file to upload then clicking restore or giving the path to the XML settings file on your local server, then clicking restore.
Blacklisted settings by default are ignore, though you can override that with the option during restore.
Blacklisted options are ignore because they are specific to the server and local settings and will need to be changed when moved so its better to use the local setting of the server you are restoring to, by default the following are blacklisted :
- subscriptionmethods
- attachfile
- attachpath
- usefileavatar
- avatarpath
- avatarurl
- profilepicpath
- profilepicurl
- sigpicpath
- sigpicurl
- fulltextsearch
- cookiepath
- cookiedomain
Search Type |
You set the search type here:
Admin CP -> vBulletin Options -> Search Type
By default, vBulletin will use its internal indexing feature. The results of this indexing process is stored in two tables, word and postindex. This provides a fast search mechanism but can cause problems on larger forums due to the ever increasing size of these tables. Each unique word is indexed in the word table and each occurrence of the word is indexed in the postindex table. To get around the large amount of space these tables can occupy we implemented MySQL Fulltext Search. The search type screen allows you to switch between the two of these. It is a simple toggle so submitting the screen switches between the two modes.
When switching a forum to the fulltext search mode, you will want to consider emptying the indices that the default search engine built. These indices are not used by the fulltext search and consume a large portion of your database. You should be certain that you are going to permanently use the fulltext search before removing these indices since, generally, it takes a lot of time and server load to rebuild these indices. Another consideration is during any time that the fulltext option is enabled, these indices will not be updated by any new posts. Using fulltext search for an extended period of time will leave these indices stale and you may still wish to rebuild them.
Note:
The minimum and maximum length of words to be indexed is defined by the ft_min_word_len and ft_max_word_len system variables (available as of MySQL 4.0.0). The default minimum value is four characters. The default maximum depends on your version of MySQL. If you change either value, you must rebuild your FULLTEXT indexes. For example, if you want three-character words to be searchable, you can set the ft_min_word_len variable by putting the following lines in an option file:
[mysqld]
ft_min_word_len=3
Then restart the server and rebuild your FULLTEXT indexes. Also note particularly the remarks regarding myisamchk in the instructions following this list.
For more on Fulltext Search from MySQL please visit:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html
[mysqld]
ft_min_word_len=3
Then restart the server and rebuild your FULLTEXT indexes. Also note particularly the remarks regarding myisamchk in the instructions following this list.
For more on Fulltext Search from MySQL please visit:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html
You may want to optimize the postindex and word tables afterwards by going to the Repair / Optimize Tables section of Maintenance.
Human Verification |
This system will not stop spammers who manually spam your forums as there is nothing that can prevent those users. The spammers who uses programs to mass spam are the larger issue and this system goes along way towards foiling them.
An Introduction to Human Verification |
- Image Verification - Image verification presents a series of distorted numbers and letters that the user is required to enter. Either GD2 or ImageMagick support is required from your PHP server in order to use this option. This is the classic option that most users are accustomed to encountering. Disabled users will be blocked with this option.
- Question & Answer Verification - Question & Answer verification employs a random question challenge with a predefined set of appropriate answers. The questions and answers must be defined by the administrator. This allows the questions to be tailored to the forum content as well as preventing a common set of questions from becoming prevalent across a large section of vBulletin forums. Maintaining unique questions is required for this option to be successful. This option should be accessible to any impaired user that is able to use the Internet.
- reCAPTCHA -
reCAPCTHA employs an image verification provided by recaptcha.net. Two obscured words are provided for the user to enter. This feature offers the user the option to choose an audio test.

Image Verification |

The difficulty of the image verification image can be controlled with these settings. The more options that are enabled, the more difficult it will be for your users to identify the text. Enabling a setting will cause that option to be applied to each character.
- Random Font - This option causes each letter and number to be selected from a random font.
- Random Font Size - This options causes each letter and number to be randomly sized.
- Random Slant - This option causes each letter and number to twist at a random angle to the right or the left.
- Random Color - This option causes each letter and number to appear in a random color.
- Random Shapes - This option will add random patterns and lines to the image. This option can make the image extremely difficult to discern.
Image Verification Library
vBulletin provides two options for generating the dynamic image verification image.
The first is GD, which is bundled with PHP 4.3.0 and later. The GD v2+ library is required along with having PHP compiled with freetype2 support. Having PHP compiled with freetype1 will sometimes result in the font not displaying.
The second supported library is ImageMagick v6 by ImageMagick Studio LLC. ImageMagick is an executable binary that must be installed at the server level to be called by PHP. Only the identify and convert binaries from ImageMagick are required by vBulletin. Imagemagick must be compiled with Freetype support in order to display the proper image verification.
If you do not have ImageMagick available, then your Image Verification options will look like this instead of the image at the top of the page:

Question & Answer Verification |

An unlimited amount of questions may be specified and each question may have an unspecified amount of answers.
To add a new question, select the button. Existing questions may be deleted, modified or have answers modified by selecting the controls on the right of the question.
Before adding any questions, the following screen will be shown:

New Questions |

Regular Expression - You may require the answer to match a PCRE-type regular expression. You are not required to provide answers to a question if you choose to define a regular expression as satisfying the answer. You may also offer both a regular expression and a list of answers if you wish.
(Do not start or end the expression with an escape character)
Examples:
^[A-Z]+$ - Characters from A-Z only
^[A-Z ]+$ - Characters from A-Z including space
^[A-Z0-9 ]+$- Alphanumeric characters including space
^[\x20-\x7E]+$ - ASCII characters from 32-127
See PHP.net for more information on regular expressions.
Answers may be added after the question is saved.
Adding Answers
Modifying Questions |

Regular Expression - You may require the answer to match a PCRE-type regular expression. You are not required to provide answers to a question if you choose to define a regular expression as satisfying the answer. You may also offer both a regular expression and a list of answers if you wish.
(Do not start or end the expression with an escape character)
Examples:
^[A-Z]+$ - Characters from A-Z only
^[A-Z ]+$ - Characters from A-Z including space
^[A-Z0-9 ]+$- Alphanumeric characters including space
^[\x20-\x7E]+$ - ASCII characters from 32-127
See PHP.net for more information on regular expressions.
You may add a new answer by selecting the . Existing answers can be modified or deleted by using the controls to the right of the answer.
Modifying Answers |

reCAPTCHA Verification |

Private Key - Acquired from recaptcha.net
Public Key - Acquired from recaptcha.net
Theme - There are three themes, at the time of this writing, for which the recaptcha form will display.
You can also leave the Public and Private keys blank then the default keys will be used. However, this is not recommended if there are multiple vBulletin installations on the same server. If you are leaving the keys blank, the screen will appear as follows:

Social Bookmarking |
When a user views a publicly accessible thread they will be presented with a set of links at the bottom which allow the addition of the page to admin defined social bookmarking sites.
The Social Bookmarking Manager |

Adding or Editing a Social Bookmarking Site |

- Title -Title of the Social Bookmarking Site
- Icon - A 16 x 16 icon that will be used to link to the social bookmarking site, this image should be in the miscellaneous images directory which by default is images/misc.
- Link - Link to the add page of the social bookmarking site, you can use {TITLE} and {URL} as replacements for the current page title and link.
- Display Order - The sort order for this social bookmarking site. Lower values will be displayed first.
- Active - If this is set to 'Yes' then the icon will appear at the bottom of the thread template.
Social Bookmarking Sites
Styles & Templates |
The first part of this section of the vBulletin Manual deals with how the vBulletin 3 style system actually works, and includes a reference guide for various important elements.
vBulletin 3 Style Reference
The second part deals with using the tools provided to you in the Style & Templates area of the Admin CP.
The Style Manager
Note:
To modify the look and feel of your vBulletin forums, a knowledge of XHTML 1.0 and CSS 1.0 is required. To learn the basics of these markup languages please visit W3schools.com. If you have questions please visit our community forums.
vBulletin 3 Style Reference |
A variety of controls are available for your use, allowing you to make both minor changes, such as the font used for the interface, right through to changing the underlying HTML used to generate the board's individual pages.
The look of your board can be altered to your own custom preferences through a simple-to-use interface that allows you to change fonts, colors and images etc. If you want to get down and dirty with the underlying HTML of the board, you can also do this by editing individual templates via the Style Manager.
A vBulletin 3 style comprises several elements that work together to create a complete look for your board.
Those components are as follows:
Templates |
How do Templates Work? |
A simple example template might look like this:
<table class="tborder">
<tr>
<td class="tcat" colspan="2">My Table</td>
</tr>
$tablebits
</table>
For example, we may have another template that looks like this:
<tr>
<td class="alt1">$username</td>
<td class="alt2">$message</td>
</tr>
<tr>
<td class="alt1">Mister User</td>
<td class="alt2">This is my message</td>
</tr>
<table class="tborder">
<tr>
<td class="tcat" colspan="2">My Table</td>
</tr>
<tr>
<td class="alt1">Mister User</td>
<td class="alt2">This is my message</td>
</tr>
<tr>
<td class="alt1">Another Person</td>
<td class="alt2">This message is in reply to that posted above.</td>
</tr>
<tr>
<td class="alt1">Mister User</td>
<td class="alt2">Hey, thanks for responding to my message!</td>
</tr>
</table>
Template Conditionals |
For example you may want to show a different welcome message on the front page of your board to registered users and to guests. The way to know whether or not the person visiting a page is a guest, or a logged-in user is to check the value of $bbuserinfo[userid]. If the value is 0, the visitor is a guest (or not logged-in), otherwise the visitor is a registered member.
This is a simple conditional to show a welcome message to guests only.
<if condition="$bbuserinfo['userid'] == 0">
<p>Welcome to the forum!<br />
If this is your first visit, we hope you enjoy your stay!</p>
</if>
This example extends the previous conditional to show a different message to registered members from that shown to guests.
<if condition="$bbuserinfo['userid'] == 0">
<p>Welcome to the forum!<br />
If this is your first visit, we hope you enjoy your stay!</p>
<else />
<p>Welcome back, $bbuserinfo[username].<br />
<a href="search.php?do=getnew">Click here to view new posts</a>.
</if>
Perhaps the easiest way to illustrate this is to demonstrate a simple example of PHP code being embedded as a template conditional.
Let us assume for the purposes of this example that we want to have the equivalent of this PHP code in our template:
if ($my_variable == 1)
{
echo "<p>My variable is equal to one.</p>";
}
<if condition="$my_variable == 1">
<p>My variable is equal to one.</p>
</if>
if ($my_variable == 1)
{
echo "<p>My variable is equal to one.</p>";
}
else
{
echo "<p>My variable is not equal to one.</p>";
}
<if condition="$my_variable == 1">
<p>My variable is equal to one.</p>
<else />
<p>My variable is not equal to one.</p>
</if>
if ($my_variable == 1)
{
echo "<p>My variable is equal to one.</p>";
}
else if ($my_variable == 2)
{
echo "<p>My variable is equal to two.</p>";
}
else
{
echo "<p>My variable is equal to neither one nor two.</p>";
}
<if condition="$my_variable == 1">
<p>My variable is equal to one.</p>
<else />
<if condition="$my_variable == 2">
<p>My variable is equal to two.</p>
<else />
<p>My variable is equal to neither one nor two.</p>
</if>
</if>
Using PHP Functions in Template Conditionals |
This, for example, would be disallowed by the vBulletin template system, as it contains a call to a 'forbidden' function: mysql_query.
<if condition="$my_variable = mysql_query('SELECT * FROM mytable')">
<!-- naughty naughty... -->
</if>
- in_array
- is_array
- is_numeric
- isset
- empty
- defined
- array
- can_moderate*
- can_moderate_calendar*
- exec_switch_bg*
- is_browser*
- is_member_of*
Note:
Functions marked * are custom functions defined by vBulletin itself. Each function name is a link that will take you to the documentation for that function. Use of these functions requires knowledge of PHP
<if condition="isset($my_variable) AND is_browser('ie')">
<!-- $my_variable is set and the browser is Internet Explorer -->
</if>
Collapsing Elements |

Firstly, you need to decide on a unique identifying name for your collapsing element. The name can use numbers, letters (in upper or lower case) and underscores. Using any other characters in the identifier may cause problems.
Here, we'll call it MyELEMENT.
A collapsible element consists of two parts - a control (usually a button) to control the expanding and collapsing behavior, and the actual content to be expanded and collapsed.
A collapse control looks like this:
<a href="#top" onclick="return toggle_collapse('MyELEMENT')"><img
id="collapseimg_MyELEMENT"
src="$stylevar[imgdir_button]/collapse_thead$vbcollapse[collapseimg_MyELEMENT].gif"
alt="" border="0" /></a>Note:
In the example, the image being used for the collapse control has a prefix of collapse_thead. This is because the image is designed to blend into the background color of elements using the '.thead' CSS class.
There are also images to blend with the '.tcat' and '.alt1' / '.alt2' CSS classes, with prefixes of collapse_tcat and collapse_alt respectively.
There are also images to blend with the '.tcat' and '.alt1' / '.alt2' CSS classes, with prefixes of collapse_tcat and collapse_alt respectively.
A very simple example of a collapsible element container for MyELEMENT looks like this:
<div id="collapseobj_MyELEMENT" style="$vbcollapse[collapseobj_MyELEMENT]">
<!-- any HTML here will be hidden when the
'MyELEMENT' collapse control is clicked -->
</div>The following example shows a complete collapsing element.
<div class="tborder">
<div class="tcat" style="padding:4px">
<a href="#top" style="float:$stylevar[right]"
onclick="return toggle_collapse('MyELEMENT')"><img
id="collapseimg_MyELEMENT"
src="$stylevar[imgdir_button]/collapse_tcat$vbcollapse[collapseimg_MyELEMENT].gif"
alt="" border="0" /></a>
Click this button to show/hide the content below:
</div>
<div id="collapseobj_MyELEMENT" style="$vbcollapse[collapseobj_MyELEMENT]">
<div class="alt1" style="padding:8px">
<p><strong>Hello!</strong> Welcome, $bbuserinfo[username].</p>
<p>If you would like to check your private messages,
<a href="private.php?$session[sessionurl]">Click here</a>.</p>
</div>
</div>
</div>

Collapsing <table> Rows |
Sometimes you will want to allow your users to collapse individual rows (or groups of rows) within an HTML <table>. In order to be cross-browser compatible, and to ensure that your pages remain XHTML compliant, there are a few additional rules you need to follow.
It is not possible to arbitrarily collapse every tag in HTML. To collapse rows within a <table>, you must surround those rows with the little-known <tbody> tag.
The original idea of the <tbody> tag was to enable browsers to display the top (head) and bottom (foot) of a table, and then load the body of the table in between the head and foot. Unfortunately, very few browsers can actually make use of this system.
However, the <tbody> tag is very useful to us, as it allows us to define a container for one or more table rows, and we can expand and collapse that container using our collapsible elements system.
There is one caveat. In order to be legal XHTML, we can't just stuff <tbody> tags selectively around arbitrary groups of rows in a table, and leave the other rows without a container. We must include the <thead> tag, and ensure that all rows in the table are enclosed either by the <thead> or a <tbody> tag.
The following code is not XHTML compliant because it does not include the <thead> tag, and there are rows that are not enclosed by <thead>, <tbody> or <tfoot> tags:
<table class="tborder" cellpadding="$stylevar[cellpadding]" width="100%">
<tr><td class="tcat"><strong>Table title</strong></td></tr>
<tbody>
<tr><td class="alt1">First row of collapsible element</td></tr>
<tr><td class="alt2">Second row of collapsible element</td></tr>
</tbody>
<tr><td class="alt1">Another row</td></tr>
</table><table class="tborder" cellpadding="$stylevar[cellpadding]" width="100%">
<thead>
<tr><td class="tcat"><strong>Table title</strong></td></tr>
</thead>
<tbody>
<tr><td class="alt1">First row of collapsible element</td></tr>
<tr><td class="alt2">Second row of collapsible element</td></tr>
</tbody>
<tbody>
<tr><td class="alt1">Another row</td></tr>
</tbody>
</table><table class="tborder" cellpadding="$stylevar[cellpadding]" width="100%">
<thead>
<tr><td class="tcat">
<a href="#top" style="float:$stylevar[right]"
onclick="return toggle_collapse('MyELEMENT')"><img
id="collapseimg_MyELEMENT"
src="$stylevar[imgdir_button]/collapse_tcat$vbcollapse[collapseimg_MyELEMENT].gif"
alt="" border="0" /></a>
<strong>Table title</strong>
</td></tr>
</thead>
<tbody id="collapseobj_MyELEMENT" style="$vbcollapse[collapseobj_MyELEMENT]">
<tr><td class="alt1">First row of collapsible element</td></tr>
<tr><td class="alt2">Second row of collapsible element</td></tr>
</tbody>
<tbody>
<tr><td class="alt1">Another row</td></tr>
</tbody>
</table>

vBMenu Popup Menus |

A vBMenu popup consist of two elements: The popup control, and the popup itself. Any popup can have any number of controls, and clicking any one of the controls will open the popup immediately below the control.
Each vBMenu popup must have a unique identifying name, which will be used by the vBMenu system to distinguish popups from each other and allows popup controls to communicate with their associated popup elements.
For our example, we will call our vBMenu MyMENU.
The HTML code for a vBMenu popup control looks like this:
<td id="MyMENU" class="vbmenu_control">
<a href="#">My vBMenu Example</a>
<script type="text/javascript">
vbmenu_register("MyMENU");
</script>
</td>- A block-level tag (<td>, <div> etc.) with an id attribute using the vBMenu identifying name (in this case, MyMENU).
- A hyperlink (the href attribute of which should point somewhere relevant to the menu).
- A Javascript block containing a call to the vbmenu_register() function, using the vBMenu identifying name as the argument to the function.
<script type="text/javascript">
vbmenu_register("MyMENU", true);
</script>
<div class="vbmenu_popup" id="MyMENU_menu" style="display:none">
<!-- Any HTML here will be a part of the
vBMenu popup identified as 'MyMENU' -->
</div>- Must use the vbmenu_popup CSS class
- Must be identified by 'MenuName_menu' (In our example, 'MyMENU_menu' would be the correct id)
- Must have a style="display:none" CSS attribute
vBMenu Popup Content |
vBMenu popups usually take the form of a <table> with individual rows for separate options on the menu, with a single hyperlink inside each cell, which points to the desired page.

An example of content for a vBMenu popup element might look like this:
<table cellpadding="4" cellspacing="1" border="0">
<tr>
<td class="thead">This is my example vBMenu</td>
</tr>
<tr>
<td class="vbmenu_option"><a href="index.php">Home Page</a></td>
</tr>
<tr>
<td class="vbmenu_option"><a href="usercp.php">User CP</a></td>
</tr>
</table>
<tr>
<td class="vbmenu_option" title="nohilite">
This row will not hilight on mouse-over.
</td>
</tr>
Multiple Popup Controls, Single vBMenu Popup |
![]()
With a single control, the id attribute of the popup control uses the unique identifier for the vBMenu it controls, like this:
<td id="MyMENU" class="vbmenu_control">
<a href="#">Single Popup Control</a>
<script type="text/javascript">
vbmenu_register("MyMENU");
</script>
</td>
<td id="MyMENU.first" class="vbmenu_control">
<a href="#">First Multiple Popup Control</a>
<script type="text/javascript">
vbmenu_register("MyMENU.first");
</script>
</td>
<td id="MyMENU.second" class="vbmenu_control">
<a href="#">Second Multiple Popup Control</a>
<script type="text/javascript">
vbmenu_register("MyMENU.second");
</script>
</td>
The $show['popups'] Conditional |
In order to prevent these browsers from attempting to initialize menus that they can't use, a special template conditional is used.
$show['popups']
By surrounding all vBMenu controls and popups in a conditional that checks the value of $show['popups'], Javascript errors can be avoided, and alternative HTML can be shown to browsers that can't use popups.
For example:
<if condition="$show['popups']">
<!-- content here is for browsers that
are able to use the vBMenu system -->
<else />
<!-- content here is shown to browsers
that are unable to use vBMenu popups -->
</if>
Example vBMenu HTML Code |
<if condition="$show['popups']">
<!-- start vBMenu control element -->
<table class="tborder" cellpadding="4" cellspacing="1">
<tr>
<td id="MyMENU" class="vbmenu_control">
<a href="#">Second Multiple Popup Control</a>
<script type="text/javascript">
<!--
vbmenu_register("MyMENU");
//-->
</script>
</td>
</tr>
</table>
<!-- end vBMenu control element -->
<!-- start vBMenu popup element -->
<div class="vbmenu_popup" id="MyMENU_menu" style="display:none">
<table cellpadding="4" cellspacing="1" border="0">
<tr>
<td class="thead">This is my example vBMenu</td>
</tr>
<tr>
<td class="vbmenu_option"><a href="index.php">Home Page</a></td>
</tr>
<tr>
<td class="vbmenu_option"><a href="usercp.php">User CP</a></td>
</tr>
</table>
</div>
<!-- end vBMenu popup element -->
<else />
<!-- start alternative, non-vBMenu content -->
<table class="tborder" cellpadding="4" cellspacing="1">
<tr>
<td class="vbmenu_control"><a href="index.php">Home Page</a></td>
<td class="vbmenu_control"><a href="usercp.php">User CP</a></td>
</tr>
</table>
<!-- end alternative content -->
</if>
Disabling the vBMenu System |

The Legacy Postbit Template |
New Postbit

Old (Legacy) Postbit

If you would like to run your board using the old-style postbit template, you can do so by going to vBulletin Options > Style & Template Options and switching the Use Legacy (Vertical) Postbit Template? setting to Yes.

Note:
If your board is set to use the Legacy Postbit template you should be aware that you will need to make any postbit-related template customizations to the postbit_legacy template instead of the postbit template.
Including External Files |
Warning:
This is considered modifying the code. To get further help and support with including external files you will need to visit http://www.vbulletin.org/.
Note:
The Plugin system must be enabled in vBulletin Options -> Plugin System for plugins to work. It is disabled by default.
1. Create a Plugin for global_start with this code:
$includedhtml = implode('', file('path/to/this/file/myfile.html'));2. Place $includedhtml in one of your templates, such as header, navbar, FORUMHOME, depending upon where you want the contents of your HTML file to appear.
Including a PHP file:
1. Create a Plug-in for global_start with these contents:
ob_start();
include('path/to/this/file/myfile.php');
$includedphp = ob_get_contents();
ob_end_clean();
2. Place $includedphp in one of your templates, such as header, navbar, FORUMHOME, depending upon where you want the contents of your PHP file to appear.
Warning:
Plugins that contain invalid or malicious code may cause your forum to stop functioning or even lead to data loss. Using Plugins is not supported and you'll be asked to disable them in the event that you request tech support. If a Plugin has made your forum inaccessible, please disable plugins. Troubleshooting errant plugins and products is handled at our sister site, http://www.vBulletin.org.
Most PHP files that you might wish to include in your forum contain echo or other output statements in your PHP file, it will break vBulletin because it is still in the process of initializing when it loads your PHP file. All echo and other output commands must be output buffered using ob_start, ob_clean, etc. commands. The output of your PHP script will be buffered for later use and inserted into a variable. All other statements in the PHP script will execute normally.
A word about variables.
It is very important that any variables initialized in your PHP script do not overlap built-in vBulletin variables or you will get unpredictable results. It may be advisable to create a PHP script just for inclusion in your forum rather than including a larger script used by another part of your website.
Variables are also subject to scope. You may need to access your variable out of the $global array like $global[variablename] instead of simply $variablename. You may also need work with a hook location that is more accessible to the template that you wish to alter.
Please see the PHP documentation for more information on variable scope:
http://www.php.net/manual/en/language.variables.scope.php
Placing braces around your variable can specify it explicitly in a template if it is part of a larger string. e.g. {$somevariable}
Which hook should I use?
The hook used above (global_start) makes your HTML or PHP file available in almost every template on your vBulletin forum. You may wish to include a PHP file or HTML file only on certain pages or parts of your forum. You'll need to select the correct hook where your code should be loaded. To determine which hook you should use, turn on Debug and then make this change to the appropriate functions php file.
How do I turn on debug mode?
Please note that you should not turn on debug mode in a live environment.
Open the config.php file.
At the top, on a new line below <?php
add: $config['Misc']['debug'] = true;
Note:
If you wish to include() multiple PHP files, make sure you use ob_clean() before each include() to reset the buffer.
CSS |
For the most part, vBulletin hides the nitty-gritty of editing CSS from you, instead presenting you with a user-friendly interface in the Style Manager in which to enter values to control the styling of your board. However, in the interest of a knowledge of what is going on behind the scenes in the vBulletin style system, we'll talk a little about CSS here.
CSS is a system designed to allow the style of a web site to be separated from the content itself.
Before CSS, web sites had to include HTML code defining how to display content along with the content itself. For example, to display a page of text using a bold, red, medium-sized font, it was necessary to include <font> tags in the actual content:
<p><font size="2" face="verdana, arial, helvetica, sans-serif" color="red">
<b>This is my first paragraph.</b>
</font></p>
<p><font size="2" face="verdana, arial, helvetica, sans-serif" color="red">
<b>This is my second paragraph.</b>
</font></p>
<p><font size="2" face="verdana, arial, helvetica, sans-serif" color="red">
<b>This is my third paragraph.</b>
</font></p>
The net result is HTML code that is bloated by display-related code. Worse still, if we decided at a later date that we wanted to change all the text on our site to use an italic, blue font rather than a bold, red font, we would have to edit the HTML code of every page on the site.
CSS allows us to get away from this far-from-ideal situation by allowing us to define style rules, known as classes.
We could set up a class wherein all content with the class applied would appear with our bold, red, medium-sized font. For now, we'll call this 'myclass'.
<p class="myclass">This is my first paragraph.</p> <p class="myclass">This is my second paragraph.</p> <p class="myclass">This is my third paragraph.</p>
The CSS code that defines 'myclass' looks like this:
<style type="text/css">
<!--
.myclass
{
font: bold 10pt verdana, arial, helvetica, sans-serif;
color: red;
}
-->
</style>Better still, the class definitions can be kept entirely separate from the HTML code by putting them into a .css file and linking to the file from each HTML page. Therefore, updating a single .css file can change the style of an entire web site, without having to edit a single HTML file.
To demonstrate the extent of use of CSS in vBulletin, here is a comparison of a page from the vBulletin.com web site shown with and without CSS.

Body |
Applied directly to the <body> tag of every vBulletin page, the Body class is arguably the most important of the CSS classes used by vBulletin.
Its main use is to control the background color of the outermost portion of pages.

All links in the outermost portion of vBulletin pages, and for that matter, all links unless overridden by subsequent CSS classes, will be controlled by the Body class.
Example of element using this class:
<body> <!-- The BODY tag uses this class --> </body>
Page Background |
The majority of content on vBulletin pages is contained within an inner-block that starts at the end of the header template and finishes at the beginning of the footer template.
In the default vBulletin style, this can be seen as the white surround of the main page content.


<div class="page" style="width:100%; text-align:left"> <!-- The DIV tag above uses this class --> </div>
<td>, <th>, <p>, <li> |
Some browsers will fail to fully or properly inherit the display settings for text specified in the Body class. The purpose of this class is to set in stone the desired display settings for text, so that less-than-cooperative browsers have no room for arbitrary interpretation of what you might have meant when you specified text display settings in the Body class.
For the best results, you should only specify values for font size and font family in this class.
Examples of elements using this class:
<p>This P tag uses the class in question</p>
<table>
<tr>
<th>This TH tag uses the class in question</th>
<td>This TD tag uses the class in question</td>
</tr>
</table>
<ul>
<li>This LI tag uses the class in question</li>
</ul>
Table Border |
The Table Border class is applied to the majority of table tags in vBulletin.
It controls the background color of tables, which is usually only seen in the margins between cells (the width of which is controlled by the Inner Border Width StyleVar).
The Table Border class is also often used to create a border around the outside of tables.


<table class="tborder" cellspacing="1" cellpadding="6">
<tr>
<td>The TABLE tag above uses this class</td>
</tr>
</table>
Category Strips |
The first use of the Category Strips CSS class is to provide the styling for the parts of forum listings that represent a no-posting forum (also known as a category).


Example of element using this class:
<table class="tborder" cellspacing="1" cellpadding="6">
<tr>
<td class="tcat">This TD tag uses this class</td>
</tr>
</table>
Table Header |
Like the Category Strips class, the Table Header class serves multiple purposes.
It primary use is to serve as a control mechanism for column headings in tables of data/results, acting as a label for each column.



<table class="tborder" cellspacing="1" cellpadding="6">
<tr>
<td class="thead">This TD tag uses this class</td>
</tr>
</table>
Table Footer |
Some tables in vBulletin include controls at the bottom of the table, or otherwise require some visual cues to show that the table finishes at a certain point. In these cases, the Table Footer class is used.

Example of element using this class:
<table class="tborder" cellspacing="1" cellpadding="6">
<tr>
<td class="tfoot">This TD tag uses this class</td>
</tr>
</table>
First / Second Alternating Color |
When presenting data in a table, vBulletin will usually alternate the background color of cells to assist in readability.
The background colors used for these two alternating cells are controlled by the First and Second Alternating Color classes.

Example of element using these classes:
<table class="tborder" cellspacing="1" cellpadding="6">
<tr>
<td class="alt1">Tag using the First Alt. Color class</td>
<td class="alt2">Tag using the Second Alt. Color class</td>
</tr>
</table>
Active First / Second Alternating Color |
A special case applies to the Active First and Second Alternating Color classes, which use the CSS selectors .alt1Active and .alt2Active.
The actual styling of the Active classes is taken directly from the styling applied to the First and Second Alternating Color classes.
When enabled in the footer template, these classes respond to the mouse pointer being hovered over them by switching their background color to that of the opposite Alternating Color class. That is, when your mouse hovers over a cell using the Active First Alternating Color class, it will switch to use the Second Alternating Color class, and when your mouse leaves the cell again it will revert to its original class.

That special information will consist of a letter, followed by a string of digits. The letter indicates the type of the item to which the link will point, and the digits represent the item id of the item in question. For example id="t123" indicates that the item points to thread (t) id 123, so the browser will be redirected to [http://www.example.com/forums/showthread.php?t=123].
The various letters used by vBulletin are listed here:
| Letter | Represents | Redirects to |
u | User (userid) | member.php?u=[userid] |
t | Thread (threadid) | showthread.php?t=[threadid] |
p | Post (postid) | showthread.php?p=[postid] |
f | Forum (forumid) | forumdisplay.php?f=[forumid] |
m | Private Message (pmid) | private.php?pmid=[pmid] |
To enable this functionality, you will need to edit the footer template and un-comment the call to the activecells_init() Javascript function by changing this code:
// Initialize 'Active' Table Cells
//activecells_init(); // Initialize 'Active' Table Cells
activecells_init();Example of element using these classes:
<table class="tborder" cellspacing="1" cellpadding="6">
<tr>
<td class="alt1Active" id="t1138">
Click anywhere inside this cell to be
taken to the thread with thread ID 1138.
</td>
</tr>
</table>
WYSIWYG Editor |
The WYSIWYG class is applied to the text input area of the WYSIWYG version of the vBulletin message editor.

Therefore, for the best results, you should duplicate the settings used for the First Alternating Color class here in the WYSIWYG class.

Example of element using this class:
<div id="htmlbox" class="wysiwyg">
This DIV uses the WYSIWYG class.
</div>
Input Fields |
The Input Fields class is applied to text box form elements, including <textarea>, <input type="text" /> and <input type="password" />.

Warning:
If values are omitted from the available fields in this class, the values that will appear on the page will be inherited from the visitor's own PC's system preferences.
This can cause problems if you have specified the background color for the class but not the text color if your visitor has a non-standard color scheme on their computer.
For example, if you specify only the background color, setting it as white, but leave the font color field empty, it may look fine to you, but a visitor using an inverted white-on-black type system color scheme such as the High Contrast Black color scheme available in Windows® will have black text on a black background!
Therefore, if you edit either the background color for this class, make sure you also edit the font color to a suitable value, and vice-versa.
This can cause problems if you have specified the background color for the class but not the text color if your visitor has a non-standard color scheme on their computer.
For example, if you specify only the background color, setting it as white, but leave the font color field empty, it may look fine to you, but a visitor using an inverted white-on-black type system color scheme such as the High Contrast Black color scheme available in Windows® will have black text on a black background!
Therefore, if you edit either the background color for this class, make sure you also edit the font color to a suitable value, and vice-versa.
<div><input type="text" class="bginput" name="myinput" /></div> <div><textarea name="mytextarea" rows="4" cols="60"></textarea></div> <div>The INPUT and TEXTAREA tags above use the Input Fields class.</div>
Buttons |
The Buttons class is used to style all button-type elements within forms in vBulletin. These include <input type="button" />, <input type="submit" /> and <input type="reset" />.

Note:
Under Windows® XP, form buttons will use the 'Luna' theme for their background and borders, unless a background color or a border style is applied. Specifying either one of these attributes will cause buttons to use the classic Windows® styling.

<input type="submit" class="button" value="Save Changes" accesskey="s" /> <br /> The button above uses the 'Button' class.
<select> Menus |
This class is applied to every <select> menu seen in vBulletin.

You should find that you can set values for background color, font size and font family successfully. However, certain operating systems; most notably Mac OS X on the Apple Macintosh, will completely ignore all CSS applied to <select> tags, choosing instead to use the system themes engine to display the menus.
Example of element using this class:
<select name="myselect">
<option value="1">One</option>
<option value="2">Two</option>
</select>
<div>The SELECT tag above has its style controlled by this class.</div>
Small Font |
The Small Font class is used liberally throughout vBulletin, and does 'exactly what it says on the tin', that being to specify a style for a smaller-than-normal font.

Example of element using this class:
<p>This text does not use the Small Font class, <span class="smallfont">but this text <strong>does</strong> use the Small Font class!</span></p>
Time Color |
The Time class is applied to (most) elements containing a time in vBulletin.

Example of element using this class:
<div>Tuesday, March 9th 2004, <span class="time">5:10pm</span>.</div>
NavBar Text |
The NavBar Text class is applied to all text making up the navigation 'breadcrumb' in the navbar template.

Example of element using this class:
<span class="navbar">Example Forums</span> <span class="navbar">> Main Category</span> <span class="navbar">> Main Forum</span>
Highlighted Font |
The Highlighted Font class is used primarily to highlight words in messages that match the conditions of a search. For example, if you searched for 'vBulletin' and then clicked to view the matching threads or posts, the word 'vBulletin' would be highlighted in matching posts.

Example of element using this class:
<p>Only one word of this sentence uses the <span class="highlight">highlight</span> class.</p>
Panel Surround |
The majority of forms in vBulletin appear as a raised panel inside a table.
The Panel Surround class is used to define the style for the thick border that surrounds the panel and includes the submit and reset buttons.

<table class="tborder" cellspacing="5" cellspacing="1">
<tr>
<td class="panelsurround">
This cell uses the Panel Surround class.
</td>
</tr>
</table>
Panel (Forms) |
Used in conjunction with the Panel Surround class, the Panel class is used to control the style of the raised panel used to house controls on most vBulletin forms.

Example of element using this class:
<div class="panel">
This DIV uses the Panel class.
</div>
<legend> |
Elements within forms in vBulletin are often grouped inside a <fieldset> tag. The titles of these fieldsets are set inside <legend> tags, which take their styling from the <legend> class.

Example of element using this class:
<form>
<fieldset>
<legend>This uses the Legend class</legend>
<div>Some form elements here...</div>
</fieldset>
</form>
Popup Menu Controls |
vBulletin hides complex and infrequently used functionality from immediate view by placing it in vBMenu popup menus.
For the most part, vBMenu popups are controlled by clicking on an element that opens or closes the menu, and these elements' style is controlled with the Popup Menu Controls class.

Example of element using this class:
<table class="tborder" cellpadding="6" cellspacing="1">
<tr>
<td id="myMenu" class="vbmenu_control">
<a href="#myMenu">The TD tag Uses This Class</a>
<script type="text/javascript"> vbmenu_register("myMenu"); </script>
</td>
</tr>
</table>
Popup Menu Body |
When a vBMenu popup menu is opened, its contents are usually bordered by a bounding box, and a color is visible through the margins between individual components of the menu itself.
This border and the color showing through the gaps is controlled by the Popup Menu Body class.

Example of element using this class:
<div class="vbmenu_popup" id="myMenu_menu" style="display:none">
<table cellpadding="4" cellspacing="1" border="0">
<tr>
<td class="thead">
The DIV surrounding this table
uses the Popup Menu Body class
</td>
</tr>
</table>
</div>
Popup Menu Option Row |
Individual elements of a vBMenu popup menu will usually derive their styling from the Popup Menu Option class.
Elements within popup menus usually take the form of a <td> tag within a table.

Example of element using this class:
<div class="vbmenu_popup" id="myMenu_menu" style="display:none">
<table cellpadding="4" cellspacing="1" border="0">
<tr>
<td class="vbmenu_option">
This element within a popup menu
uses the Popup Menu Option class.
</td>
</tr>
</table>
</div>
Popup Menu Highlighted Option |
The Popup Menu Highlighted Option class is unusual in that it is not actually applied to any elements in the vBulletin templates. Instead, it is applied dynamically via Javascript when a user's mouse pointer hovers over an element with the Popup Menu Option Row class applied, making a rollover effect.

Note:
For best results, you should apply similar settings to this class as you applied to the Popup Menu Option Row class, making only subtle changes such as the background color and the text color. Making extreme changes such as changing the font family or size will result in menus that appear to 'jump around' when rolling over options.
<div class="vbmenu_popup" id="myMenu_menu" style="display:none">
<table cellpadding="4" cellspacing="1" border="0">
<tr>
<td class="vbmenu_option">
This element will have the Popup
Menu Highlighted Option class applied
when the user's mouse pointer hovers over it.
</td>
</tr>
</table>
</div>
Forum Jump Menu Classes |
| .fjsel | Selected Menu Item | .fjdpth0 | Depth 0 Menu Item |
| .fjdpth1 | Depth 1 Menu Item | .fjdpth2 | Depth 2 Menu Item |
| .fjdpth3 | Depth 3 Menu Item | .fjdpth4 | Depth 4 Menu Item |
Of the six classes, the first (.fjsel) is applied to whatever <option> tag is currently selected, thereby creating a cue for the user to see where they are in relation to the rest of the board.
The remaining five classes, .fjdpth0 to .fjdpth4 are applied to <option> tags containing forums in the menu, with the depth determined by the level of nesting of each forum.

Note:
As with the <select> Menus class, the Forum Jump Menu classes are applied to <select> and <option> tags, which on non-Windows® operating systems (in particular Macintosh operating systems) can sometimes not be styled.
At most you will be able to style the background color and the text color for these classes, and all other styling will be inherited from the <select> Menus class, if indeed the operating system allows these elements to be styled at all.
At most you will be able to style the background color and the text color for these classes, and all other styling will be inherited from the <select> Menus class, if indeed the operating system allows these elements to be styled at all.
<select name="myselect">
<option class="fjsel" selected="selected">Selected item</option>
<option class="fjdpth0">Depth 0 item</option>
<option class="fjdpth1">Depth 1 item</option>
<option class="fjdpth2">Depth 2 item</option>
<option class="fjdpth3">Depth 3 item</option>
<option class="fjdpth4">Depth 4 item</option>
</select>
Additional CSS Definitions |
These two boxes allow raw CSS code to be entered. The contents of these two boxes will be appended to the final CSS stylesheet generated automatically by vBulletin from the values entered for all the other classes.
The values in the first box as set by the default vBulletin style define a few small classes that do little jobs and as such don't really warrant getting a full CSS editor like the main classes previously described.
This page will summarize the contents of the first Additional CSS Definitions box and explain what the various classes and definitions do.
| Big User Name .bigusername | The 'Big User Name' class is used to control the size of the user name seen on the postbit template. .bigusername { font-size: 14pt; } |
| Table Header Blocks td.thead, div.thead | This definition extends the style of the Table Header class by instructing any <td> or <div> tags using the Table Header class to have a specific amount of padding around the content. td.thead, div.thead { padding: 4px; } |
| Page Navigation Links .pagenav a | The PageNav class is applied to a container around all multi-page navigation controls. This definition instructs all hyperlinks within the PageNav container to have no underline decoration. .pagenav a { text-decoration: none; } |
| Page Navigation Cells .pagenav td | Also related to the PageNav container, this definition causes all <td> tags within the container to have a smaller-than-normal amount of cell padding in order to keep the overall size of the multi-page navigation control bar to a minimum. .pagenav td { padding: 2px 4px 2px 4px; } |
| Fieldset Spacing .fieldset | This class is applied to all <fieldset> tags in vBulletin templates, and causes those tags to have a small amount of margin below themselves in order to aid in page spacing. .fieldset { margin-bottom: 6px; } |
| Fieldset Text Size .fieldset, .fieldset td, .fieldset p, .fieldset li | This group of definitions specifies the size of all text found within <fieldset> tags in vBulletin templates. .fieldset, .fieldset td, .fieldset p, .fieldset li { font-size: 11px; } |
| Inline Forms form | This simple definition instructs browsers that render <form> tags as block-level elements with a margin around them to treat <form> tags as inline elements, thereby preventing unwanted white space from being displayed on the page. form { display: inline; } |
| Label Pointer label | Another simple definition, this causes the mouse pointer for all <label> tags to be displayed as a pointer icon, rather than as a text cursor, indicating that the element can be clicked. label { cursor: default; } |
| Normal Text .normal | This class is used to place normally weighted text inside elements that would normally be displayed as bold. .normal { font-weight: normal; } |
| Inline Images .inlineimg | This class is applied to certain <img /> tags in vBulletin templates in order to have them appear to be vertically aligned to the middle of any text in which they are located. In some cases this makes for a more pleasing display. .inlineimg { vertical-align: middle; } |
Why are there two Additional CSS Definitions boxes? |
Should you wish to change the values of any of the CSS classes defined in the first Additional CSS Definitions box, you can do so by copying the class definition from the first box, pasting it into the second box and making the appropriate changes there.
As the contents of the second box appears after the contents of the first box in the final style sheet, any classes defined in the first box and redefined in the second will take their final values from the second box.
For example, the first box contains a definition for .bigusername, setting the font size to 14pt. By redefining the font size for .bigusername in the second box, the definition made in the first box is overridden.

Replacement Variables |
Their uses are many and when used correctly they can be very powerful. A common use for replacement variables is to correct annoying spelling mistakes. For example, on the vBulletin Community Forums a replacement variable exists to replace all instances of the incorrect abbreviation for vBulletin VBB with the correct abbreviation vB.
Another use for replacement variables is to insert commonly-used blocks of HTML. For example, a replacement variable could be set up to replace <tablestart> with <table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">.
Therefore, your templates could have blocks of code like this:
<tablestart>
<tr>
<td class="alt1">Cell contents...</td>
</tr>
</table>
<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">
<tr>
<td class="alt1">Cell contents...</td>
</tr>
</table>
The replacement variable system is activated in the last stages of page processing before the HTML is delivered to a visitor's browser. The system searches for target text in the completed, parsed templates. In some ways this can be very useful, but there are caveats of which you should be aware.
Warning:
While powerful, replacement variables can also break the functionality of your board if used incorrectly.
For example, creating a replacement variable to search for 'html' and replace it with 'HTML', any hyperlinks pointing to files with a .html suffix will have those links replaced with .HTML, which is not the same file as far as Unix web servers are concerned.
Worse still, you might choose to use a replacement variable to turn every instance of the word home into a hyperlink pointing to your home page: <a href="home.html">home</a>.
While this will work, you will have the situation where the word 'home' is used in locations where creating a hyperlink would cause invalid HTML, such as this:
For example, creating a replacement variable to search for 'html' and replace it with 'HTML', any hyperlinks pointing to files with a .html suffix will have those links replaced with .HTML, which is not the same file as far as Unix web servers are concerned.
Worse still, you might choose to use a replacement variable to turn every instance of the word home into a hyperlink pointing to your home page: <a href="home.html">home</a>.
While this will work, you will have the situation where the word 'home' is used in locations where creating a hyperlink would cause invalid HTML, such as this:
<img src="home.gif" alt="" />...which would end up being delivered to the browser as
<img src="<a href="home.html">home</a>.gif" alt="" />...which is obviously invalid HTML and will not function correctly.
Preventing Visitors from Activating Replacement Variables |
For this reason, it is recommended that you set any replacement variables that should be used in templates only to appear as HTML tags, such as <myreplacement>.
This is done because most forums do not allow visitors to post raw HTML in their messages (this is seen as a serious security risk). In forums where HTML posting is disallowed, any special HTML characters such as the < and > characters are replaced with their equivalent HTML character entities to prevent the HTML code from being interpreted as HTML rather than printed text.
For example, the < character is replaced with < and the > character is replaced with >. This replacing of special HTML characters makes it impossible for a user to post <myreplacement> in their messages, as it would be translated into <myreplacement>, which does not match the trigger text. It will therefore not be replaced with the replacement text for your <myreplacement> variable.
Where are the Replacement Vars from vB2? |
Where did they all go?
The answer is that all of the replacement variables from vBulletin 2 have been translated into CSS classes, or have been migrated to the new StyleVars system.
The new systems are less processor-intensive (easier on your server's resources) than using replacement variables, and offer a lot more flexibility in the way that they can be used.
The following table lists all the default vBulletin 2 replacement variables, and shows how they have been translated for use in vBulletin 3.
| Item Name | Replacement Text | vBulletin 3 Equivalent | Description |
| HTML Doctype | {htmldoctype} | StyleVar: HTML Doctype | The HTML Doctype replacement variable has been migrated directly to the HTML Doctype StyleVar. |
| Body Tag | <body> | CSS: Body class | All attributes controlled by the <body> tag replacement variable in vBulletin 2 are now managed by the Body CSS class. |
| Main Table Width | {tablewidth} | StyleVar: Main Table Width | The width of vBulletin tables; controlled by the {tablewidth} replacement variable in vBulletin 2, is now controlled by the Main Table Width StyleVar. |
| Content Table Width | {contenttablewidth} | StyleVar: Spacer Size | The width of tables inside the main page body; previously controlled by the {contenttablewidth} replacement variable, is now handled in a different way by the Spacer Size StyleVar. |
| Outer Borders Width | {tableouterborderwidth} | CSS: Table Border class | The width of the border around tables in vBulletin is now controlled via CSS as part of the Table Border class. |
| Inner Borders Width | {tableinnerborderwidth} | StyleVar: Inner Border Width | Control of the amount of spacing between table cells has been transferred to the Inner Border Width StyleVar. |
| 'Extra' Table Attributes | {tableouterextra} {tableinnerextra} {tableinvisibleextra} | n/a | In vBulletin 2 these replacement variables were used to allow arbitrary code to be inserted into <table> tags. This functionality is no longer necessary, as any code that might have been inserted here can now be emulated using CSS. |
| Page Background / Text Colors | {pagebgcolor} {pagetextcolor} | CSS: Page Background class | The background color and text color of the main page body is now controlled by the Page Background CSS class. |
| Table Border Color | {tablebordercolor} | CSS: Table Border class | The {tablebordercolor} replacement variable was used to set the color of all borders around and inside <table> tags in vBulletin 2. This functionality is now managed by CSS in the Table Border class. |
| Category Strip Background / Text Colors | {categorybackcolor} {categoryfontcolor} | CSS: Category Strips class | The background and text colors used in category strips and main table title bars is now controlled by the Category Strips CSS class. |
| Table Heading Background / Text Colors | {tableheadbgcolor} {tableheadtextcolor} | CSS: Table Header class | Previously controlled by the {tableheadbgcolor} and {tableheadtextcolor} replacement variables, the style of column headings is now a part of the Table Header CSS class. |
| First Alternating Table Background Color | {firstaltcolor} | CSS: First Alternating Color class | In vBulletin 2, only the background color of elements using the First Alternating Color could be specified. In vBulletin 3 the First Alternating Color CSS class allows significantly more control. |
| Second Alternating Table Background Color | {secondaltcolor} | CSS: Second Alternating Color class | Partnering the First Alternating Color CSS class, the Second Alternating Color CSS class defines the style of elements previously colored with the {secondaltcolor} replacement variable. |
| Hyperlink Normal / Hover Colors | {linkcolor} {hovercolor} | CSS: Body and Page Background classes | vBulletin 2 allowed administrators to control the color of standard hyperlinks, and to also specify a color for those links when a mouse pointer is hovered over them. In vBulletin 3, almost every individual CSS class can define its own settings for hyperlink styling, although it is often the case that only the Body CSS class will have link styles defined, in which case this class will control all hyperlinks. |
| Time Color | {timecolor} | CSS: Time Color class | In order to control the color of times shown on vBulletin pages, it is now necessary to look at the Time Color class, which allows not only the color but a variety of other attributes to be controlled for the styling of time displays. |
| Calendar Colors | {calbgcolor} {calbirthdaycolor} {caldaycolor} {calprivatecolor} {calpubliccolor} {caltodaycolor} | n/a | The various colors defined by the calendar color replacement variables in vBulletin 2 have become redundant with the new calendar system in vBulletin 3. |
| Image Folder Path | {imagesfolder} | StyleVar: Image Directory Paths | While vBulletin 2 defined a single images directory with the {imagesfolder} replacement variable, vBulletin 3 defines a variety of folders to serve different purposes. These are controlled by the Image Directory Paths StyleVars. |
| Title Image Path | {titleimage} | StyleVar: Title Image | The path controlled by the Title Image Path replacement variable is now controlled by the Title Image StyleVar in vBulletin 3. |
| New Thread / Reply / Closed Image Paths | {newthreadimage} {replyimage} {closedthreadimage} | n/a | While vBulletin 2 specified replacement variables for three button images relating to posting new threads and replying to posts, all of these images are now found in the $stylevar[imgdir_button] StyleVar, one of the Image Directory Path StyleVars. |
| Main Font | <normalfont> | CSS: Body and <td>, <th>, <p>, <li> classes | In vBulletin 2 it was necessary to surround all text with <normalfont> tags in order to have it use the fonts and sizes specified. In vBulletin 3 this is no longer the case, and text display is controlled by the Body and <td>, <th>, <p>, <li> CSS classes. |
| Small Font | <smallfont> | CSS: Small Font class | When a smaller-than-normal font size is required in vBulletin 3, it is a simple matter of applying the Small Font CSS class to an HTML tag surrounding the text to be made small. |
| Large Font | <largefont> | n/a | The <largefont> replacement variable was used so infrequently in vBulletin 2 that it was decided not to waste resources on replicating it in vBulletin 3, so it is no longer available. |
| Highlighted Font | <highlight> | CSS: Highlighted Font class | In vBulletin 2 the color of highlighted text was controlled by the <highlight> replacement variable, but much more control is afforded by the vBulletin 3 Highlighted Font CSS class that replaces it. |
| Textarea Column Settings | {textareacols_IE} {textareacols_NS4} {textareacols_NS6} | n/a | In the bad old days before CSS was widely supported by browsers it was necessary to rely on the cols="x" attribute of <textarea> tags to specify the width of a <textarea>. Different browsers interpreted this value with a different resultant width, resulting in the need for a set of replacement variables in order to achieve roughly the same width for <textarea> tags in all browsers. With CSS the 'width' style attribute can be used to control the width more precisely, rendering these three replacement variables obsolete. |
StyleVars |
For example, one StyleVar (called $stylevar[cellspacing]) controls the spacing between cells in all <table> tags used in vBulletin, as you can see from the following examples:
| Firstly, with the $stylevar[cellspacing] StyleVar set at its default value of 1, you can see a single-pixel border between cells in the table. |
| Next, with $stylevar[cellspacing] set to equal 0, you can see that the border between cells has completely disappeared. |
| Finally, with $stylevar[cellspacing] set at 3, a much wider, 3 pixel border is produced between each cell. |
| At the default value of $stylevar[cellpadding]: 6, tables appear with a large amount of padding around the content of each cell. |
| After reducing $stylevar[cellpadding] to 3, the margin around cell content is halved from the default amount of padding. |
| And finally, with $stylevar[cellpadding] set at 0, all padding is removed, leaving a rather nasty, cluttered layout having no margin between cell content and cell border at all. |
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]">
<tr>
<td class="thead" align="$stylevar[left]">Welcome to vBulletin</td>
<td class="thead" align="$stylevar[right]">$bbuserinfo[username]</td>
</tr>
<tr>
<td class="alt1" colspan="2">
<img src="$stylevar[titleimage]" alt="vBulletin Logo" />
</td>
</tr>
</table>The following sections list and explain all the StyleVars used by vBulletin, so you can edit them with confidence, and incorporate them into any custom templates you might create.
HTML Doctype |
The HTML doctype StyleVar controls the first line of the HTML code for every vBulletin page.
It is used to instruct the browser how to render the page, according to a particular type of HTML.
For example, the HTML doctype for XHTML 1.0 Transitional, which is the default for vBulletin 3 is this:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
Note:
You may leave the HTML doctype completely blank, but if you do so, Internet Explorer 6 will use the 'Quirky Rendering' mode as used by previous versions of Internet Explorer.
When attempting to achieve a layout that will look the same between Internet Explorer, Mozilla, Opera and all the other browsers out there, 'Quirky Rendering' mode can be extremely unhelpful!
When attempting to achieve a layout that will look the same between Internet Explorer, Mozilla, Opera and all the other browsers out there, 'Quirky Rendering' mode can be extremely unhelpful!
Main Table Width |
The main table width StyleVar is used to set the overall width of vBulletin pages.
It can accept values both as a percentage of the total page width for a 'liquid' layout, or an explicit value set in pixels to create a fixed layout.
Here you can see examples of the same board with different values for $stylevar[outertablewidth].

Note:
If you wish to enter a value in pixels, you should enter the number alone, do not add 'px' to the value.
For example: 640.
To set the value as a percentage, simply enter the percentage value, followed by the % symbol.
For example: 85%.
For example: 640.
To set the value as a percentage, simply enter the percentage value, followed by the % symbol.
For example: 85%.
Example of $stylevar[outertablewidth] in use:
<table width="$stylevar[outertablewidth]" align="center">
<tr>
<td>This table's width is set by $stylevar[outertablewidth].</td>
</tr>
</table><div style="text-align: center">
<div style="width: $stylevar[outerdivwidth]; text-align: left">
This div's width is being set by $stylevar[outerdivwidth].
</div>
</div>Spacer Size |
The spacer size StyleVar is used to define the width in pixels of the space between the edge of the vBulletin page and the content within it.
The red arrow on this image shows the distance controlled by $stylevar[spacersize].

Note:
Do not add 'px' to the number you specify as the value for $stylevar[spacersize].
Inner Border Width |
The inner border width StyleVar is used as the value for the 'cellspacing' attribute of all tables in vBulletin. It controls the width of the border apparent between table cells.
By setting a value of 1 or greater, a margin will appear between table cells, showing the background color of the underlying table as defined in the .tborder CSS class.
At the default value of 1, a thin, one pixel border is seen between table cells:



<table class="tborder" cellspacing="$stylevar[cellspacing]" cellpadding="5">
<tr>
<td class="alt1">First Cell</td>
<td class="alt2">Second Cell</td>
</tr>
</table>Note:
Do not add 'px' to the value of this StyleVar.
Table Cell Padding |
The table cell padding StyleVar is used as the value for the 'cellpadding' attribute of all tables in vBulletin. It controls the amount of margin shown between the content of a cell and its border.
At the default value of 6, a wide margin is apparent between the content of each cell and its surrounding border.



<table class="tborder" cellspacing="1" cellpadding="$stylevar[cellpadding]">
<tr>
<td class="alt1">First Cell</td>
<td class="alt2">Second Cell</td>
</tr>
</table>Note:
Do not add 'px' to the value of this StyleVar.
Form Element Spacer Size |
The form element spacer size StyleVar defines a distance in pixels between elements of a form in vBulletin. Its purpose is to allow a comfortable distance to be placed between form controls in order to provide a less cluttered appearance to forms.
At the default $stylevar[formspacer] value of 3, a small gap is placed between controls on a form.


Note:
Do not add 'px' to the number you specify as the value for $stylevar[spacersize].
Form Width |
The form width StyleVar is used to set the width of all forms in vBulletin. Its primary function is to restrict the way that forms can stretch to fill all the available space in a window, which can cause form elements and their descriptions to stretch to levels at which the form becomes difficult to manage.
Here, at the default value of 640px, the form elements do not expand with the rest of the page, resulting in an easy-to-manage set of controls located in the center of the page:


- 640px (640 pixels, fixed width)
- 75% (75% of available width)
- auto (Expand to fill all available space)
<div style="width:$stylevar[formwidth]">
<form method="index.php" method="post">
<fieldset>
<legend>My Form Example</legend>
<input type="text" name="mytextfield" value="Hello" />
This is my text field.
</fieldset>
</form>
</div>Note:
This StyleVar is used as a CSS value. If you enter a width in pixels, you must add 'px' after the number of pixels desired, for example: '500px'.
User CP Form Width |
The user control panel form width StyleVar does exactly the same job as the form width StyleVar $stylevar[formwidth], except that it allows the width of the navigation panel in the User Control Panel to be taken into account.
The red arrow shows the width controlled by $stylevar[formwidth_usercp].

Message Area Width |
The message area with StyleVar controls with width of the text input area used for posting messages etc. in vBulletin.
The red arrow indicates the width controlled by this StyleVar.

- 540px (540 pixels, fixed width)
- 75% (75% of available width)
- auto (Expand to fill all available space)
Warning:
While it is possible to use values of 'auto' or a percentage width, testing has shown that many browsers produce unpredictable results when using these methods for the message width StyleVar.
It is therefore recommended that a fixed pixel value such as '540px' be used in this case.
It is therefore recommended that a fixed pixel value such as '540px' be used in this case.
User CP Message Width |
This StyleVar is used to control the width of message input text boxes within the User Control Panel (such as the input area for the Private Message posting page).
Its functionality is identical to that of $stylevar[messagewidth], but it allows the width of the navigation panel in the User Control Panel to be taken into account.
The red arrow indicates the width controlled by this StyleVar:

Code Block Width |
The code block width StyleVar is used to set the width of blocks of code in messages, as defined by the [CODE], [PHP] and [HTML] tags.
The red arrow indicates the width controlled by the $stylevar[codeblockwidth] StyleVar.

- 640px (640 pixels, fixed width)
- 75% (75% of available width)
- auto (Expand to fill all available space)
Note:
This StyleVar is used as a CSS value. If you enter a width in pixels, you must add 'px' after the number of pixels desired, for example: '500px'.
Title Image |
The title image StyleVar stores the URL of the main logo image that usually appears in the header template of vBulletin.
Rather than being bunched in with all the other images, the title image is given its own StyleVar in order to make it as easy as possible to make simple customizations to your board, such as changing the colors and the logo image.
The red border indicates the position of the title image at the top-left of a vBulletin page:

- A complete URL, such as http://www.example.com/forums/images/titleimage.gif
- An absolute path URL such as /forums/images/titleimage.gif
- A file path relative to your forum's URL such as images/titleimage.gif
<img src="$stylevar[titleimage]" border="0" alt="$vboptions[bbtitle]" />
Image Directory Paths |
| $stylevar[imgdir_button] | Button Images Folder |
| $stylevar[imgdir_status] | Item Status Icon Folder |
| $stylevar[imgdir_attach] | Attachment Icons Folder |
| $stylevar[imgdir_misc] | Miscellaneous Images Folder |
| $stylevar[imgdir_editor] | Text Editor Controls Folder |
| $stylevar[imgdir_poll] | Poll Images Folder |
| $stylevar[imgdir_rating] | Ratings Images Folder |
| $stylevar[imgdir_reputation] | Reputation Images Folder |
The purpose of having several different StyleVars pointing to different image directories is to allow the administrator to choose which images are shared between styles, and which images are unique to each style.
For example, if a board has three different styles called 'Red', 'Green' and 'Blue', where the only difference between the three styles is the color scheme, the administrator may decide that each style will share all of its images, except for the button images, where he has created specially colored versions of the buttons to match the color schemes of the three styles.
In this case, all the image directory StyleVars could point to the same group of directories, with the exception of the $stylevar[imgdir_button] StyleVar, which would have a unique value for each style to point to the appropriate directory containing the colored buttons for each style.
In use, you will find the image directory StyleVars throughout the templates whenever an image is referenced. For example:
<img src="$stylevar[imgdir_button]/newthread.gif" alt="Post New Thread" />
If our 'Red', 'Green' and 'Blue' styles have unique values for the button images folder, we might see that StyleVar being evaluated in the templates in this sort of manner:
'Red' Style
<img src="images/red_buttons/newthread.gif" alt="Post New Thread" />
<img src="images/greenButtons/newthread.gif" alt="Post New Thread" />
<img src="images/buttons_for_blue/newthread.gif" alt="Post New Thread" />
- A complete URL, such as http://www.example.com/forums/images/buttons
- An absolute path URL such as /forums/images/buttons
- A file path relative to your forum's URL such as images/buttons
Warning:
Do not include a trailing slash at the end of your image directory paths.
This is correct:
images/buttons
This is incorrect:
images/buttons/
This is correct:
images/buttons
This is incorrect:
images/buttons/
Style Inheritance |
In essence, this means that you can create an unlimited number of styles in which your board can be viewed, and customizations made in one style will be inherited by all of its 'child' styles.
Inheritance Example |
Many site owners will want to customize the look of their vBulletin installation so that it fits in with the style of the rest of the site. This is normally done by editing the colors used by vBulletin, and by editing the header and footer templates.
Let us imagine that we want to customize your header and footer templates, but we also want to offer three different color schemes for our visitors to choose between. For argument's sake, we'll call these the 'Red', 'Green' and 'Blue' styles.
We could create three new styles, calling one 'Blue', one 'Green' and one 'Red', then customize the header and footer templates in each style. That would be a perfectly valid solution, but has one serious disadvantage, in that should we decide that we want to alter the HTML in the customized header template, we would need to go through and edit the template in each of our three styles individually.


Each of these child styles will inherit the customized header and footer templates from the 'Custom Header / Footer' parent style, so we will not need to edit that template in the child styles, and if we choose to change the HTML of either the header or footer templates at some point in the future, we need only edit those templates in the parent style, and the changes will be automatically inherited by the three child styles.

In the next section we will look into the mechanics behind this system in order to gain a good understanding of how to use vBulletin styles most effectively.
Inheritance Mechanics |
In order to explain this in simple terms, let us assume that a vBulletin style consists of [x] individual elements, those being a background color, a text color, a font style and a few templates. For the purposes of this example, we will represent the contents of a style like this:
| Background Color | Text Color | Font Style | Header Template | Footer Template | |
| vBulletin Default | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is the default 'header' template!</p> | <div>This is the default 'footer' template!</div> |
| Background Color | Text Color | Font Style | Header Template | Footer Template | |
| vBulletin Default | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is the default 'header' template!</p> | <div>This is the default 'footer' template!</div> |
| Custom Header / Footer | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is my custom 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
We will now add the final branch of the style tree from our previous example, namely the 'Blue' style.
| Background Color | Text Color | Font Style | Header Template | Footer Template | |
| vBulletin Default | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is the default 'header' template!</p> | <div>This is the default 'footer' template!</div> |
| Custom Header / Footer | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is my custom 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
| Blue | #0000FF | #FFFFFF | 10pt verdana, arial, helvetica, sans-serif | <p>This is my custom 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
Furthermore, if we now decided to customize the header template in the 'Blue' style, we would have something like this:
| Background Color | Text Color | Font Style | Header Template | Footer Template | |
| vBulletin Default | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is the default 'header' template!</p> | <div>This is the default 'footer' template!</div> |
| Custom Header / Footer | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is my custom 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
| Blue | #0000FF | #FFFF00 | 10pt verdana, arial, helvetica, sans-serif | <p>This is my special BLUE 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
To illustrate the ability of vBulletin's style system to allow a theoretically infinte level of parent/child relationships between styles, we will now add a child style to the 'Blue' style, in which we will set the font size to be extra large. We will call this style 'Big Font Blue'.

| Background Color | Text Color | Font Style | Header Template | Footer Template | |
| vBulletin Default | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is the default 'header' template!</p> | <div>This is the default 'footer' template!</div> |
| Custom Header / Footer | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is my custom 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
| Blue | #0000FF | #FFFF00 | 10pt verdana, arial, helvetica, sans-serif | <p>This is my special BLUE 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
| Big Font Blue | #0000FF | #FFFF00 | 14pt verdana, arial, helvetica, sans-serif | <p>This is my special BLUE 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
Were we to now customize the font style in the 'Custom Header / Footer' style, the change would automatically be inherited by the 'Blue' style, but would not be inherited by the 'Big Font Blue' style, as it has its own customized version.
| Background Color | Text Color | Font Style | Header Template | Footer Template | |
| vBulletin Default | #FFFFFF | #000000 | 10pt verdana, arial, helvetica, sans-serif | <p>This is the default 'header' template!</p> | <div>This is the default 'footer' template!</div> |
| Custom Header / Footer | #FFFFFF | #000000 | 12pt verdana, arial, helvetica, sans-serif | <p>This is my custom 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
| Blue | #0000FF | #FFFF00 | 12pt verdana, arial, helvetica, sans-serif | <p>This is my special BLUE 'header' template!</p> | <div>This is my custom 'footer' template!</div> |
| Big Font Blue | #0000FF | #FFFF00 | 14pt verdana, arial, helvetica, sans-serif |






