- •Table of Contents
- •Preface
- •What This Book Covers
- •Conventions
- •Reader Feedback
- •Customer Support
- •Downloading the Example Code for the Book
- •Errata
- •Questions
- •What is vBulletin?
- •Why Have a Discussion Board?
- •Benefits of a Discussion Board
- •Why vBulletin?
- •History
- •Development
- •The vBulletin Advantage
- •Versatile
- •Performance
- •Customizable
- •Easy to Maintain
- •Other Features
- •vBulletin Licensing Options
- •Leased License
- •Owned License
- •Choosing a License
- •Example vBulletin Sites
- •Summary
- •Requirements
- •Disk Space
- •Bandwidth
- •System Resources
- •Shared Hosting
- •Semi-Dedicated Hosting
- •Dedicated Hosting
- •Other Options
- •Installing vBulletin
- •Tools
- •Downloading the Installation Files
- •File Extraction
- •Upload Preparation
- •Creating the Database
- •Command-Line Database Creation
- •cPanel Database Creation
- •File Editing
- •Uploading the vBulletin Files
- •Running the vBulletin Installation Script
- •Troubleshooting
- •Database Access Issues
- •Images/Styling Not Showing
- •PHP Errors
- •The vBulletin Control Panel
- •Importing Data into vBulletin
- •Downloading the ImpEx Script
- •Compatibility
- •Preparing for Upload
- •Editing the Configuration File
- •Upload the ImpEx Script
- •Running the ImpEx Script
- •Default Usergroups
- •Securing vBulletin
- •Help & Support
- •Summary
- •The vBulletin User Experience
- •How to Get to the Board?
- •What the End Users See
- •Site Logo
- •Forum Title, Login Box, and Navbar
- •Welcome Banner
- •Main Body of the Forum
- •What's Going On
- •Footer
- •Touring the Main Forum—Unregistered Users
- •No "New Threads" for Unregistered Users
- •Registering on a vBulletin Board
- •Touring the Forum—Members
- •New Threads
- •Replying
- •Editing a Message
- •Private Messages
- •BB Code
- •User Tools
- •Display Modes
- •Navbar Changes for Members
- •The vBulletin Administrator Experience
- •Forum and Thread Tools
- •The AdminCP
- •Control Panel Home
- •Latest Version Information
- •vBulletin Options
- •Forum Management
- •Editing and Adding Forums
- •Editing Existing Forums
- •Moderation Options
- •Forum Styling
- •Access Control Options
- •Forum Posting Options
- •Enable/Disable Features
- •Branding
- •Changing the Logo
- •Undoing the Change
- •Summary
- •Types of Customization
- •CSS Modifications
- •Changing the Table Title Text
- •Viewing Changes
- •Undoing the Changes
- •Phrase Modifications
- •Searching for Phrases
- •Making Changes
- •Viewing the Changes
- •Undoing Changes
- •Template Modifications
- •Accessing Templates
- •Exploring a Template
- •Template Structure
- •Adding a FORUMHOME Sidebar
- •Two Changes
- •PHP Code Modifications
- •PayPal Modification
- •File Modification
- •Hacks
- •Pros and Cons of Hacking a vBulletin Board
- •Finding a Hack
- •Installing a Hack
- •Backing Up a Hack
- •Commercial Hacks
- •Summary
- •Setting Up a Forum
- •Creating the Forum
- •Forum Permissions
- •Viewing Permissions
- •Opening the Forum
- •Super Administrators
- •Creating a Super Administrator
- •Other Changes to the config.php File
- •Admin Log Viewing Permission
- •Admin Log Pruning Permission
- •Query Running Permission
- •Undeletable and Unalterable Users
- •Maintaining the Database
- •Backing Up the Database
- •Repairing and Optimizing the Database
- •Some Maintenance Issues
- •Smilies
- •Editing a Smilie
- •Adding a New Smilie
- •Uploading a Smilie
- •Creating Your Own Smilies
- •Avatars
- •Adding Avatars
- •Storing Avatars
- •Summary
- •When to Upgrade
- •Preparing for Upgrade
- •Migrating Changes
- •File Compare Utilities
- •Uploading the Files
- •Running the Upgrade Script
- •Testing the Upgrade
- •Unveiling the Upgrade
- •Summary
- •Styling vBulletin
- •Template Lifecycles
- •Lifecycle 1—Constant Change
- •Lifecycle 2—Working Behind the Scenes
- •Editing the Default Style
- •Changing Image Paths
- •Other Editable Elements
- •Some Tips about Editing Styles
- •Adding a New Style
- •Editing the Style
- •Saving the Style
- •Downloading the Style
- •Making the New Style into the Default
- •Distributing a Style
- •Installing a New Style
- •Summary
- •Hacking vBulletin
- •Making the Changes
- •Locating the Template
- •Hacking the pm_newpm Template
- •Testing the Hack
- •Hack Distribution
- •Tips for Hack Distribution
- •Plugins and Products
- •Getting Plugins and Products
- •Adding a Product
- •Adding a Plugin
- •What If Things Go Wrong?
- •Summary
- •Default Usergroup Settings
- •(COPPA) Users Awaiting Moderation
- •Administrators
- •Moderators
- •Registered Users
- •Super Moderators
- •Unregistered / Not Logged In
- •Users Awaiting Email Confirmation
- •Banned Users
- •Default vBulletin Database Tables
- •Moving Servers in Six Easy Steps
- •Cookie Check
- •Back up Database
- •Download the vBulletin Files
- •Transfer to New Server
- •Database Restoration
- •Back Online
- •Graphics
- •Global Post Text Find and Replace
- •Programming Standards
- •Braces
- •Indenting
- •Give Operators Space
- •String Quoting
- •Return Values
- •SQL Queries
- •Naming Conventions for Functions
- •Summary
- •vBulletin Directory Structure
- •Notes
- •Official vBulletin Sites
- •Main vBulletin Hack Site
- •vBulletin Styles and Templates
- •vBulletin Add-Ons
- •Index
Developing a Hack
Plugins and Products
One of the new features available in vBulletin 3.5 is plugins and products. Plugins and products are a new and easy way to add new features to a vBulletin installation.
There are some differences between a plugin and a product. A plugin allows new features to be added to a core vBuletin installation. In other words, it is a code snippet imported into vBulletin and executed by specific hooks. This is an easy way to extend functionality without making changes to the underlying PHP files of vBulletin.
A product is a downloadable package that contains notonly plugins but also templates, options, phrases, help files, and control panel entries. This means that these are a bigger, more integrated types of plugins.
Hooks are what drives plugins. These are locations within the PHP code of vBulletin that trigger events. These events can be used to run code contained in plugins. You can view these hooks from the AdminCP by clicking on Plugin System followed by Add New Plugin, and then clicking on the Hook Location drop-down box.
Getting Plugins and Products
Plenty of plugins and products that are designed to carry out a multitude of tasks are available for download. In fact, many hacks and board modifications have been converted to plugins and products because of the ease of installation.
The best place to begin your search for plugins is http://www.vbulletin.org.
174
Chapter 8
Adding a Product
After you have downloaded a product (which will be an XML file), access AdminCP and click on
Plugin System followed by Manage Products. From here click on Add/Import Product:
This will take you to the Import Product screen:
Using this, you can choose to import the plugin either from your computer (by uploading it to the server) or import the XML file from your server. One you have found the file, click Import. This will import the plugin into vBulletin and activate it and make it ready for use.
After you have installed the plugin, make sure to follow any additional installation instructions provided with the plugin.
Adding a Plugin
Adding a plugin to a vBulletin installation is much easier. From the AdminCP, click on Plugin System followed by Add New Plugin.
175
Developing a Hack
In this screen you can cut and paste the code from the instructions you have, and choose the necessary hook to execute the plugin.
After making all the changes, click on Save, and the plugin will be added to vBulletin and be ready to use.
What If Things Go Wrong?
Whenever you add any new code to a vBulletin installation, there is a chance that things may go wrong. The worst-case scenario is that you bring down the whole vBulletin board and make it totally inaccessible.
Fortunately, there's a global way to disable plugins, and it doesn't require access to the vBulleting interface, only FTP access to the server.
All you need to do is find the includes/config.php file and add the following code:
Define('DISABLE_HOOKS', true);
Save the file and upload it to the server. Now vBulletin will run without plugins, and this gives you a chance to remove the offending product or plugin using Manage Products or Manage Plugins from the AdminCP.
Once you have removed the offending plugin, you can reactivate the plugin system by removing that line of code from includes/config.php.
176