No announcement yet.

vBulletin Development Update: vBulletin 3.5

  • Time
  • Show
Clear All
new posts
  • Kier
    Former Lead Developer, vBulletin
    • Sep 2000
    • 8179

    vBulletin Development Update: vBulletin 3.5

    If things have seemed quiet on the vBulletin development front for a few months, it's because the whole team has been hard at work getting vBulletin 3.5 ready for its public debut.

    We have decided to name this new version '3.5.0' rather than '3.1.0' because the code contains some rather fundamental changes at a core level in order to support some of the new features we have implemented, some of which I will describe briefly here.

    Hooks and Plugins

    It has long been a problem that while a major draw towards vBulletin has been the huge number of hacks and modifications available for the software, for the most part applying hacks to your vBulletin installation would invalidate your right to support.

    The new plugin system is designed to allow modifications to the code to be made without editing the PHP files, meaning that not only can you still receive support, but upgrading vBulletin to a new version will leave your modifications intact, so you won't need to re-apply them every time.

    At this time there are over four hundred locations where plugin code can run and we expect to add more in response to hack authors during the beta period, with the goal that all major hacks will migrate to the new plugin format.

    Inline Moderation

    Easily one of the features for which we have had the most requests, vBulletin 3.5 now includes a comprehensive inline moderation system.

    Administrators and Moderators can now manage threads and posts wherever the threadbit or postbit is displayed, and this even includes search results!

    Actions include stick/unstick, open/close, delete/undelete, approve/un-approve, move and merge.

    You can also manage individual posts directly on the showthread page. From here you can move a post or posts to a different thread, or to a new thread completely. You can merge multiple posts into a single post, delete or undelete posts and approve/un-approve posts in the moderation queue.

    Moderation can also occur across multiple pages. You can check a box on one page of the thread, another box on a different page and then perform an action on both of them!

    AJAX Integration

    AJAX (Asynchronous Javascript and XML) allows your browser to send data to and receive data from a server without reloading the current page. This technology, whose use is being pioneered by Google, allows developers to create rich, fast-responding interactive pages.

    For example, in vBulletin 3.5 moderators can simply click on the status icon for a thread in the forumdisplay page to toggle its open/closed status, or double click in the table cell of a thread title to instantly edit the thread title without having to navigate away to a dedicated editing page.

    Floris has put together a short video showing some of our AJAX and inline moderation tools in action:

    No doubt the template editors amongst you will be curious to know how much we have had to modify the templates in order to allow these features, and the good news is hardly at all. When the release comes we will detail exactly how to get the AJAX features into your customized templates. It usually involves just adding an id attribute to a few elements in the templates.

    More good news is that AJAX tools are very quick and easy to implement, so you will see more of them popping up in various places in vBulletin in due course.

    Data APIs (Data Managers)

    If you've ever tried to integrate third-party software with vBulletin then the data managers are for you.

    There are now central objects with which to interface when saving various types of vBulletin data. Error handling and denormalized fields are handled automatically for you by the data manager system.

    For example, if you want to insert a new thread or post, you need only pass your data to the data manager, which will check to make sure all the data you feed it is valid (not too short, not too long, not too many images etc.). If the data is not valid, the data manager will do its best to make the data valid.

    Once all the required data is received by the data manager it will save the data to the database and automatically update the forum last post information.

    Naturally, plugins can attach themselves to the data managers, allowing you to add code that runs before or after saving, or even to add new fields.

    Template History and Comparison

    Many customers have wanted to save each revision of their templates so that they can view the exact changes between versions.

    Not only is this now possible in vBulletin 3.5 but you can now also view the actual line-by-line differences between the current default template, your modified template and any previous revisions you've saved. This view will be familiar to anyone who has browsed a CVS repository, but a screenshot will explain it to everyone else.

    Database-Based Thread and Forum Read Marking

    Yes, it's finally here! Now, instead of using cookies and inactivity timeouts to determine what should be considered unread versus read, you can now opt to track this via the database.

    Individual threads are considered read only if you have actually read them. Also, as soon as you have read all threads in a forum, it's light bulb will go out; no need to visit the forum list!

    Of course, it's also an option. Should you wish to stick with the original system, you'll be able to do so.

    MySQL Full Text Search

    While fulltext searching appeared as an unsupported technology preview in the later 3.0.x versions, vBulletin 3.5 has fulltext searching fully implemented and supported.

    vBulletin 3.5 supports both types of search provided by MySQL 4: Natural language and Boolean.

    A boolean search works very closely to the way the current search works (with some additional options, such as phrase searching); a natural language search is easier on the server but doesn't always returns the results you want.

    Of course, there are also permissions to control who has access to which type of search.

    Additional Datastore Storage Methods

    For those with very large boards, especially those who use a separate database and web server, this will be very helpful.

    You can now cache certain commonly-retreived datastore items (such as the forumcache) in a local file, or in shared memory.

    This is a great way to reduce the overhead of retrieving that data from MySQL, especially if MySQL is located on a different physical server from the web server.

    SMTP Mail Wrapper

    Using vBulletin 3.5, you'll no longer need to rely on PHP's built-in email function mail(). You can now specify an arbitrary SMTP server with a username and password.

    MySQLi Wrapper

    The standard database class for vBulletin 3.5 includes an option to use the Improved MySQL Extension should you so desire.

    PHPDoc'd Source Code

    An ongoing project is to apply PHPDoc to all the vBulletin functions and a good portion of this project is now complete.

    This will allow us to automatically generate much better technical documentation for those who would like to use. Even without the generated documents, when viewing the code you'll see a PHPDoc block before a class or function that will describe its purpose, inputs and return values, making the code more accessible.
         * Fetches an array containing info for the specified user, or false if user is not found
    * Values for Option parameter:
    * 1 - Join the reputationlevel table to get the user's reputation description
    * 2 - Get avatar
    * 4 - Process user's online location
    * 8 - Join the customprofilpic table to get the userid just to check if we have a picture
    * 16 - Join the administrator table to get various admin options
    * Therefore: Option = 6 means 'Get avatar' and 'Process online location'
    * See fetch_userinfo() in the do=getinfo section of member.php if you are still confused
    * @param integer (ref) User ID
    * @param integer Bitfield Option (see description)
    * @return array The information for the requested user
    Some Other Changes
    • Moderator log entries now support language abstraction. This will only apply to log entries made after the upgrade. Past entries will remain in the language of the moderator who generated them.
    • There is now an option to use a image check for guests using the Contact Us form.
    • There is now an option to enable / disable Forum Leaders as well as an option to enable Forum Leaders but not display moderators.
    • Webkit support for the color swatch in the Style Manager.
    • ImageMagick 6 support. This is experimental and relies on you to have ImageMagick properly installed. Image Verification requires ImageMagick to have been compiled with Freetype support and possibly have Ghostscript installed as well (under Unix).
    • Option for user to specify their own event start / end times.
    • Custom avatars and Profile pictures will be automatically resized to the maximim allowed image sizes (when possible). If you are using ImageMagick then they can also be automatically converted from .BMP, .PSD, .TIFF, and .PDF
    • Stats can now be ordered by results in addition to date. Also added an option to not display days/weeks/months with no results.
    • Profile Pictures can now be saved in the file system. If you currently have Custom Avatars stored in the file system, you need to move them back to the Database and then move them back out to the file system. If you don't do this, your users will need to reupload their profile pictures.
    • Each image attachment type can be set to generate thumbnails instead of All Images or None.
    • Each attachment type has an "Open in New Window" option now.
    • The NOSHUTDOWNFUNC switch has been moved to a setting in the vBulletin Options. If you've been told by support to enable this in the past (pm's don't mark as read), you will now set this to NO in the Server Settings and Optimizations section of the Admin CP.
    • Moderated posts and threads will no longer increase the poster's post count until the item is approved. Likewise, sending a thread or post back to moderation will decrease the poster's post count. When this is a thread, it will decrease the post count of all posters in the thread.
    • Language Chooser
    • [attach] BB code that allows you to reference an attachment directly in a post. Usage: [ attach ]attachmentid[ /attach ] or use the attachment drop down in the WYSIWYG and Enhanced editors to insert your attachments.
    • [noparse] BB code that allows you to disable BB code parsing in a specific section of a post.
    • Word wrap no longer applies to text in code/php/html tags.
    • BB code parser automatically fixes bad tag nesting
    • Fixed the issue of posts by users in Coventry showing up to everyone in the thread/forum last post info.
    • Native support for the MySQLi extension (for MySQL 4.1 and up)
    • Spider display on Who's Online is now configured via a .xml file which allows for several configuration options.
    • The unfinished Event Reminders feature is finally working. You select how long before an event that you would like to be reminded and vBulletin will send you an email reminding you.
    • New Can View Thread Content permission. You can now allow members to view thread titles but not the actual posts within.
    • New Can Upload Animated GIF permission for custom avatars and profile pictures.
    • Attachments can now be uploaded from an URL as well as from the user's computer.
    And Then The Big Question...

    So naturally you want to know when you can have all these goodies running on your own server?

    If our current schedules pan out, we are hoping to have vBulletin 3.5 running the forums next week, and if that goes well, we will release vBulletin 3.5 to public beta by early June.

    We hope that this update has whet your appetite for vBulletin 3.5, and we look forward to bringing you the new code soon.

    If you would like to discuss this announcement, a thread for you to do so is available here.
  • Kier
    Former Lead Developer, vBulletin
    • Sep 2000
    • 8179

    As you can see, this board is now running a preview version of vBulletin 3.5.

    The first thing you'll probably notice is lots of Javascript errors. These are caused by your browser having the old versions of the scripts stored in their cache. Simply hit the refresh button on pages that show an error and the errors should go away.

    It's also important that you hit refresh on a showthread.php page before you try to use the quick reply feature, as some of the code behind this has been changed.

    More news soon


    • Mike Sullivan
      Former vBulletin Developer
      • Apr 2000
      • 13327
      • 3.6.x

      I should also note that there is a bug tracker for 3.5. It's available here:


      • Steve Machol
        Former Customer Support Manager
        • Jul 2000
        • 154505

        Here is an update posted by Kier earlier in the vB 3.5.0 Discussion thread:

        We're still working through a few issues that we know about internally (and aren't in the bugtracker) - there's little point in releasing a beta for public testing if we know it has some issues. On the bright side, most of these things are just trivial issues and should be fixed soon. Expect the beta in days, not weeks.

        Regarding a question earlier in this thread about the plugin system - vBulletin itself does not use the plugin system, as we can simply edit the code to do what we need it to do. However, any additional products we release will use the plugin system extensively.
        Steve Machol, former vBulletin Customer Support Manager (and NOT retired!)
        Change CKEditor Colors to Match Style (for 4.1.4 and above)

        Steve Machol Photography

        Mankind is the only creature smart enough to know its own history, and dumb enough to ignore it.


        widgetinstance 262 (Related Topics) skipped due to lack of content & hide_module_if_empty option.