MyBB 1.2.8 is now available on the MyBB website and is a general maintenance release as well as a security update release that patches a recently discovered low threat vulnerability.

This release also fixes over 30 identified issues with 1.2.7, some causing incorrect functionality of MyBB as well as other internally discovered problems with the post counting system introduced with 1.2.7. These bugs have been fixed to provide a more stable version of MyBB for public use.

What's added/changed in this version?

Setting to enable/disable the forum jump menus - useful for boards with a large number of forums.

Additional plugin hooks have been added to both inc/class_moderation.php and the archive mode. (by request)

Information on upgrading, template changes and language changes can be found in the posts below. MyBB 1.1.x patches can also be found below.

If for some reason you cannot immediately update to this release:
We recommend applying the attached manual patch instructions, or patch plugin for the vulnerability found in MyBB 1.2.7. You should only consider these as temporary solutions and make the effort to upgrade to 1.2.8 as soon as possible.

To manually patch your 1.2.7 to fix these vulnerabilities please follow the following instructions:

Upgrading from the 1.2 series
When upgrading from 1.2, you will not lose any custom themes, plugins or language packs which you may have installed.

Follow the general [Wiki: Upgrading](Broken link, head over to docs.mybb.com instead) guide outlined on the MyBB Wiki to complete the upgrade process. You may download a ZIP archive of changed files here:

You must then check for modified templates using the instructions in the next post.

Upgrading from other versions
If you are upgrading from a version earlier than 1.2 then you will lose your custom themes, templates and language packs due to the number of changes between your version and the 1.2 series.

Before you attempt to upgrade, ensure you have a database backup and a copy of the files currently in use on your board. This is so you can revert back to your earlier version if you need to or something goes horribly wrong with the upgrade process.

Follow the general [Wiki: Upgrading](Broken link, head over to docs.mybb.com instead) guide outlined on the MyBB Wiki to complete the upgrade process.

Changed files since MyBB 1.2.7Green indicates files which have been added since the MyBB 1.2.7 release.

Theme and template changes
Using the "Find Updated" link under the "Templates" section in the Admin CP you can find a list of the templates that have changed in this release that you've got one or more custom copies of.

After identifying changed templates using the tool you can either revert your custom template to the default (delete it) or use the "diff" tool to perform a difference analysis on your custom template and the default.

Since MyBB 1.2.7 the following templates have been changed. "Revert required" indicates that for this template to work correctly with MyBB 1.2.8 you'll either need to revert it to the default or modify your custom template to include the changes in the default. If a revert is not required your custom version of the template should work perfectly fine.

changeuserbox - Revert required

forumdisplay_announcements_announcement_modbit - Added

forumdisplay_announcements_announcement - Revert required

header_welcomeblock_member - Revert required

index_logoutlink - Revert required

misc_imcenter_icq - Revert required

Language packs changes
Since MyBB 1.2.7 the following language files have had changes to them:

global.lang.php

helpdocs.lang.php

misc.lang.php

Either update your language packs to include the changes in these files or revert to the standard English language pack.

Plugins
Most of your MyBB 1.2.x plugins will work correctly with 1.2.8 without any updates.

[Info] New Plugin Hooks
This was posted on the Discussion thread by Chris Boulton, but I thought it would be easier for people to find here.

Archive Mode:

archive_start
Called at the top of archive/index.php.

archive_announcement_start
Called at the start of display of an announcement.

archive_announcement_end
Called at the end of display of an announcement.

archive_thread_start
Called at the start of display of a thread.

archive_thread_post
Called immediately before a post in a thread is sent to the browser.

archive_thread_end
Called at the end of display of a thread.

archive_forum_start
Called at the start of display of a forum.

archive_forum_thread
Called immediately before a thread in a forum is sent to the browser.

archive_forum_end
Called at the end of display of a forum.

archive_index_start
Called at the start of display of the archive index.

archive_index_end
Called at the end of display of the archive index.

archive_end
Called at the end of archive/index.php

Moderation Class:
These hooks are particularly useful if yo want to perform an action whenever one of the below events occurs to a thread - regardless if it was via a moderator or internally by MyBB. Example use would be in a cash/points system where you want to subtract or adjust rewards for a particular thread or post. You should not output anything from these calls and the action will be performed regardless of the plugins returned result.

class_moderation_close_threads (tids)
Called when a thread or threads are closed. Array of thread IDs is passed.

class_moderation_open_threads (tids)
Called when a thred or threads are opened. Array of thread IDs is passed.

class_moderation_stick_threads (tids)
Called when a thread or threads are stuck. Array of thread IDs is passed.

class_moderation_unstick_threads (tids)
Called when a thread or threads are unstuck. Array of thread IDs is passed.

class_moderation_remove_redirects (tid)
Called when the remove redirects function is called. Thread ID is passed - all redirects to this thread are being deleted.

class_moderation_delete_thread (tid)
Called when a thread is deleted. Thread ID is passed.

class_moderation_delete_poll (pid)
Called when a poll is deleted. Poll ID is passed.

class_moderation_approve_threads (tids)
Called when a thread or threads are approved. Array of thread IDs is passed.

class_moderation_unapprove_threads (tids)
Called when a thread or threads are unapproved. Array of thread IDs is passed.

class_moderation_delete_post (pid)
Called when a post is deleted. Post ID is passed.

class_moderation_merge_posts (array)
Called when posts are merged together. Array of info is passed:
pids - Array of post IDs being merged together
tid - The ID of the thread they are in

class_moderation_move_thread_redirect (array)
Called when a thread is moved and redirect is left. Array of info is passed:
tid - Thread being moved
new_fid - The new forum ID

class_moderation_copy_thread (array)
Called when a thread is copied to another forum. Array of info is passed:
tid - The thread being copied
new_fid - The forum ID the thread is being copied to

class_moderation_move_simple (array)
Called when a standard move is performed. Array of info is passed:
tid - The thread being moved
new_fid - The new forum ID

class_moderation_merge_threads (array)
Called when two threads are being merged together. Array of info is passed:
mergetid - The thread being merged in to the other
tid - The destination thread ID
subject - The new subject of the merged thread

class_moderation_split_posts (array)
Called when one or more posts are split from a thread. Array of info is passed:
pids - Array of post IDs being split from a thread
tid - The thread the posts are being split from
moveto - The new forum for the resulting split posts
newsubject - The new thread subject for the split posts
destination_tid - The thread ID if we're splitting in to another thread

class_moderation_move_threads (array)
Called when more than one thread is being moved to another forum. Array of info is passed:
tids - Array of thread IDs
moveto - The new forum the threads are being moved to

class_moderation_approve_posts (pids)
Called when one or more posts are approved. Array of post IDs is passed.

class_moderation_unapprove_posts (pids)
Called when one or more posts are unapproved. Array of post IDs is passed.

class_moderation_change_thread_subject (array)
Called when a thread subject is changed using the custom moderation tools. Array of info is passed:
tids - Array of thread IDs
format - The format thread subjects are being changed to

class_moderation_expire_threadarray (array)
Called when an expiry time is set on a thread. Array of info is passed:
tid - The thread ID to be expired
deletetime - Unix timestamp of when the thread should expire.

class_moderation_remove_thread_subscriptions (array)
Called when subscriptions are removed by the use of a moderation tool. Array of info is passed:
tids - Array of thread IDs
all - Are we removing all subscriptions?
fid - Forum ID if not removing all

Moderator Tools
Several hooks previously existed in moderation.php however more have been added to cover all tools. These hooks are particularly useful if you want to perform extra checks whenever a moderation tool is being performed or display output to the browser. They should be pretty self explanatory.

A plugin which patches the XSS vulnerability has been offered as an alternative to the manual patch instructions. I'd like to emphasize that this plugin and the manual patch instructions should be considered as temporary solutions. They do not contain the additions and bug fixes contained in the complete upgrade of 1.2.8, but only the patch for the security vulnerability.