phpBB • Changelog

# phpBB 3.2.x Changelog

Skip

This is a non-exhaustive (but still near complete) changelog for phpBB 3.2.x including release candidate versions. Our thanks to all those people who've contributed bug reports and code fixes.

# Changelog

## 1. Changelog

### Changes since 3.2.6

#### Bug

- [PHPBB3-16034] - Links created with [url=] - are sometimes incorrectly shortened
- [PHPBB3-16036] - Cannot login with 3.2.6
- [PHPBB3-16037] - Private message ViewFolder Broken
- [PHPBB3-16039] - Unable to change announcement to standard topic due to missing global

#### Improvement

- [PHPBB3-16042] - Use S_LOGIN_REDIRECT to output login form token

### Changes since 3.2.6-RC1

#### Bug

- [PHPBB3-16027] - Appveyor builds fail on PHP 7.0

#### Security Issue

- [SECURITY-231] - Remote avatar functionality allows checking for files and ports on local network
- [SECURITY-235] - Fulltext native search can be used to cause long execution times

#### Hardening

- [SECURITY-228] - Require form token in login_box
- [SECURITY-233] - SMTP auth data shouldn't be cached
- [SECURITY-234] - Main website URL in Admin Control Panel should not support JS URLs

### Changes since 3.2.5

#### Bug

- [PHPBB3-15509] - Update database: info message is to scary
- [PHPBB3-15869] - Cookies Problem with domains with special chars
- [PHPBB3-15876] - Mysql 5.7 support Q&A plugin
- [PHPBB3-15883] - No error for invalid usernames on bulk add to usergroup
- [PHPBB3-15904] - PHP warning when accessing modules in ACP System tab
- [PHPBB3-15917] - Unapproved posts count towards forum post count
- [PHPBB3-15918] - Ban reason messages show backslash (\) before apostrophe -- ex. (don\'t).
- [PHPBB3-15919] - Lint test throws PHP warnings due to node modules folder
- [PHPBB3-15931] - Issues in PM report emails
- [PHPBB3-15954] - Some calls to include() don't have a safeguard
- [PHPBB3-15957] - User preferences show notification method "both" with disabled Jabber in ACP
- [PHPBB3-15959] - Travis Network Test is Failing for news.cnet.com
- [PHPBB3-15965] - Console command to handle thumbnails have files directory hardcoded
- [PHPBB3-15975] - Delete or prune an user doesn't remove its entries in the user_notifications table
- [PHPBB3-15986] - Add missing language key for posting.php
- [PHPBB3-15996] - Invalid data provider function name in migrator_tool_permission_test
- [PHPBB3-16006] - Duplicate form IDs in UCP oauth form

#### Improvement

- [PHPBB3-15884] - Add memberlist_body_* events
- [PHPBB3-15889] - Add core.memberlist_modify_memberrow_sql
- [PHPBB3-15890] - Add core.memberlist_modify_viewprofile_sql
- [PHPBB3-15891] - Add core.memberlist_modify_view_profile_template_vars
- [PHPBB3-15898] - Add core.ucp_pm_compose_template
- [PHPBB3-15899] - Add core.modify_attachment_sql_ary_on_* events
- [PHPBB3-15901] - Add mcp_post_* template events
- [PHPBB3-15910] - Pass object arguments by reference implicitly
- [PHPBB3-15914] - Add core.modify_memberlist_viewprofile_group_sql and core.modify_memberlist_viewprofile_group_data
- [PHPBB3-15915] - Add template events to posting_attach_body.html
- [PHPBB3-15924] - Move from precise to trusty builds
- [PHPBB3-15926] - Deny installs on PHP >= 7.3@dev - Increase min. req. to 5.4.7
- [PHPBB3-15928] - Remove support for backup download
- [PHPBB3-15939] - Pagination docblocks
- [PHPBB3-15941] - Replace MAX SQL in functions_posting.php
- [PHPBB3-15942] - Array to string conversion when permanently deleting a post
- [PHPBB3-15948] - Add core.mcp_change_topic_type_after/before
- [PHPBB3-15949] - [Template] - ucp_profile_signature_posting_editor_options_prepend
- [PHPBB3-15950] - Add SQL transactions to mcp_main.php
- [PHPBB3-15960] - Add SQL transactions to functions_admin.php
- [PHPBB3-15970] - Add core.message_admin_form_submit_before
- [PHPBB3-15972] - Add core.markread_after
- [PHPBB3-15992] - Fix breadcrumb schema
- [PHPBB3-15995] - Add core.memberlist_modify_sort_pagination_params
- [PHPBB3-15997] - Increase webdriver timeout for UI tests
- [PHPBB3-16001] - Append data to the OAuth's redirect URL
- [PHPBB3-16009] - Display OAuth login's buttons in a row.
- [PHPBB3-16010] - Automatically check order of events in events.md file
- [PHPBB3-16018] - Update composer and dependencies for 3.2.6
- [PHPBB3-16020] - Fix placement of event viewforum_body_topic_author_username_append

#### New Feature

- [PHPBB3-15944] - Add core.posting_modify_quote_attributes

#### Task

- [PHPBB3-15921] - Update TextFormatter to 1.3.2
- [PHPBB3-15953] - pm reported missing border color

### Changes since 3.2.5-RC1

#### Bug

- [PHPBB3-15888] - Update link to user guide
- [PHPBB3-15893] - Call to undefined $user in phpbb_format_quote() when BBCodes are disabled
- [PHPBB3-15911] - SQL general error on DB update from 3.0 branch

#### Hardening

- [SECURITY-229] - Update to latest version of jQuery 1.x and add ajax prefilter

### Changes since 3.2.4

#### Bug

- [PHPBB3-15665] - MSSQL implementation crashes when upload directory > 2GB
- [PHPBB3-15858] - Unapproved User(s) appearing as Guest in Team Page.
- [PHPBB3-15867] - Contact form without class
- [PHPBB3-15871] - PHP 7.1+ warning in ACP extensions module
- [PHPBB3-15875] - BBCode parsing error (PHP fatal error)
- [PHPBB3-15881] - Login keys are not reset after password update in some cases

#### Improvement

- [PHPBB3-15542] - Some JS files being called without assets version
- [PHPBB3-15859] - Modify the topic ordering if needed
- [PHPBB3-15863] - Modify the topic sort ordering from the beginning
- [PHPBB3-15870] - Modify the forum ID to handle the correct display of viewtopic if needed
- [PHPBB3-15872] - Add show_user_activity to display_user_activity_modify_actives
- [PHPBB3-15873] - Event to add/modify MCP report details template data.
- [PHPBB3-15878] - Add attachment to core.ucp_pm_view_message
- [PHPBB3-15879] - Modify attachment's poster_id for get_submitted_attachment_data

### Changes since 3.2.4-RC1

#### Bug

- [PHPBB3-15860] - Backups filenames arent saved in the expected format

#### Security Issue

- [SECURITY-227] - Phar deserialization in ACP leads to Remote Code Execution

### Changes since 3.2.3

#### Bug

- [PHPBB3-11453] - phpbb_notification_method_email unnecessarily loads data of banned users.
- [PHPBB3-12430] - hilit not removed from URL after search
- [PHPBB3-13043] - Fixing HTML5 conformance
- [PHPBB3-13128] - sql_query_info, max_matches and charset_type removed from sphinxsearch 2.2.2-beta
- [PHPBB3-14812] - No shadow pruning with system cron enabled
- [PHPBB3-15329] - View/Edit drafts contain underlying HTML coding
- [PHPBB3-15420] - Quote Notification Sent for Edited Posts by Non Author
- [PHPBB3-15494] - Users can only be removed once from newly registered users
- [PHPBB3-15507] - PHP 7.2 Warning
- [PHPBB3-15544] - Migrations don't delete modules in every case
- [PHPBB3-15552] - Private Message (PM) "find a member" button "select marked" not working
- [PHPBB3-15557] - Used composer version has bug with PHP 7.2
- [PHPBB3-15583] - Updating session time in AJAX request ignores 60 seconds check
- [PHPBB3-15593] - Disabling "print view" (permission or private messages settings) actually doesn't block the feature
- [PHPBB3-15600] - Ban reasons are not escaped in mcp_ban.html template
- [PHPBB3-15604] - Appveyor builds unable to download and unpack MSSQL drivers
- [PHPBB3-15606] - Hide/Reveal 'Profile' Link According to Permission Setting
- [PHPBB3-15607] - Board's cookies not deleted on disabled board
- [PHPBB3-15611] - Prosilver mobile layout: Misaligned text in user profile
- [PHPBB3-15612] - PHP warning with MSSQL on PHP 7.2
- [PHPBB3-15616] - Jumpbox doesn't display in the login forum page (access to forum with password)
- [PHPBB3-15618] - Team page link always appears when you are logout (anonymous), even if you don't have the permission (unlike memberlist link)
- [PHPBB3-15619] - Legends of custom profile fields could be hidden in memberlist, when viewing an user group
- [PHPBB3-15620] - Avatar gallery can be unusable on multilingual boards, unless people use the board default language
- [PHPBB3-15622] - Quoting messages (while viewing one, not inside post editor) can return a wrong chain
- [PHPBB3-15637] - Event list only has first line of PHP event description
- [PHPBB3-15651] - Migration 'if' conditions only support booleans
- [PHPBB3-15659] - retrieve_block_vars generates warnings in PHP 7.2
- [PHPBB3-15666] - Language system is not fully supported in Twig
- [PHPBB3-15670] - Group forum permission: Can see forum gives NO SQL ERROR
- [PHPBB3-15673] - Duplicated links for (ACP,MCP,FAQ) in QuickLinks and main nav bar
- [PHPBB3-15680] - INSTALL.html should point to 3.2 documentation instead of 3.1
- [PHPBB3-15693] - gen_rand_string() don't return a string with the expected length
- [PHPBB3-15695] - gen_rand_string can return less characters than expected
- [PHPBB3-15700] - {T_THEME_LANG_NAME} template variable could be wrong when log off
- [PHPBB3-15705] - phpbbcli language parse error in PHP <= 5.5.38
- [PHPBB3-15716] - OAuth link information remains after deleting a user, causes fatal exception
- [PHPBB3-15717] - Old email address missing from log when user changes email address
- [PHPBB3-15723] - gen_rand_string() return wrong number or characters sometimes
- [PHPBB3-15733] - Remove unused variables related to deprecated flood control
- [PHPBB3-15742] - Remove get_magic_quotes_gpc from type_cast_helper
- [PHPBB3-15751] - Warning when update with CLI
- [PHPBB3-15755] - Broken events in /phpbb/attachment/delete.php
- [PHPBB3-15758] - String INSECURE_REDIRECT is not shown translated
- [PHPBB3-15770] - Sphinx assertion fails on unread posts when exceeding an offset of 999
- [PHPBB3-15788] - Return button from privacy policy shows wrong text
- [PHPBB3-15817] - Unable to install in Oracle 11R2 Express
- [PHPBB3-15824] - UI test framework Broken for extensions
- [PHPBB3-15830] - 'core.modify_notification_message' event is useless
- [PHPBB3-15849] - PHP 7.2 compat for bitfield class
- [PHPBB3-15852] - IPv6 address not working in Whois

#### Improvement

- [PHPBB3-10432] - Don't require username when user forgets password
- [PHPBB3-11500] - on Custom profile fields the field_ident field lacks name
- [PHPBB3-12739] - Make the font color palette in ACP same as Prosilver
- [PHPBB3-14656] - Add a list-unsubscribe header with the unsubscribe URL
- [PHPBB3-14990] - Add core event to the Twig environment
- [PHPBB3-15554] - Simple footer after load js
- [PHPBB3-15579] - Add core.ucp_main_front_modify_sql and core.ucp_main_front_modify_template_vars
- [PHPBB3-15590] - Add PHP events after adding, updating and deleting BBCodes
- [PHPBB3-15628] - newtopic_notify.txt does not have directly link to the new topic
- [PHPBB3-15638] - Add word-break for overflowing.
- [PHPBB3-15642] - String to be used in HTML element contains ">"
- [PHPBB3-15656] - Add "View post" link in the mod logs on the ACP
- [PHPBB3-15661] - Add core.viewtopic_modify_poll_ajax_data
- [PHPBB3-15662] - Add $this->template to core.modify_notification_message
- [PHPBB3-15668] - Change JQuery .load(fn) event to .on('load',fn)
- [PHPBB3-15674] - Edit language lines in file en\acp\profile.php
- [PHPBB3-15683] - Better error message when commit message has CRLF
- [PHPBB3-15696] - 'if' module tool should support calling other tools
- [PHPBB3-15706] - [Template] - mcp_post_report_buttons_top_*
- [PHPBB3-15719] - Add core event on viewtopic post_list query for query modification
- [PHPBB3-15726] - Implement selective purge in APCu cache driver
- [PHPBB3-15735] - [Template] - *_content_after (for posts)
- [PHPBB3-15737] - [PHP] - Add $user_rows to core.delete_user_before
- [PHPBB3-15762] - Topics per page Conformity
- [PHPBB3-15768] - Add a license to a repository
- [PHPBB3-15771] - Q&A configuration instructions not optilmal
- [PHPBB3-15799] - Find correct poll for voting animation
- [PHPBB3-15803] - Add core events on ucp_pm_compose for additional message list actions
- [PHPBB3-15819] - Add core event to functions_posting to modify notifications
- [PHPBB3-15825] - Add core.acp_manage_forums_move_content_sql_before
- [PHPBB3-15826] - Add core.mcp_main_fork_sql_after
- [PHPBB3-15827] - [Template] - Add *_username_{prepend/append} template events
- [PHPBB3-15831] - ACP signature update should trigger event
- [PHPBB3-15832] - ACP avatar update event
- [PHPBB3-15833] - ACP and UCP avatar delete events
- [PHPBB3-15837] - Add core.ucp_register_welcome_email_before
- [PHPBB3-15838] - Add core.ucp_register_register_after
- [PHPBB3-15839] - Add core.ucp_login_link_template_after
- [PHPBB3-15841] - Allow postrow pm link to be modified by event
- [PHPBB3-15848] - Up-version plupload to v2.3.6 to fix image rotation issues
- [PHPBB3-15850] - Use standard SQL cache for notification types

#### New Feature

- [PHPBB3-15792] - [Template] - confirm_delete_body_delete_reason_before

#### Task

- [PHPBB3-15596] - Migrate from data-vocabulary.org to schema.org
- [PHPBB3-15621] - Some graphical inconsistencies with colored users groups in posting, UCP and MCP
- [PHPBB3-15701] - {SIGNATURE} variable is added in mcp_post.html but not defined in MCP
- [PHPBB3-15809] - Allow events with twig syntax
- [PHPBB3-15857] - Add rubencm to CREDITS.txt

### Changes since 3.2.3-RC2

#### Bug

- [PHPBB3-15504] - phpBB Debug warning in 3.2.2

#### Improvement

- [PHPBB3-15740] - Terms & Privavy hardcoded

### Changes since 3.2.3-RC1

#### Bug

- [PHPBB3-11847] - auth_provider_oauth migration must depend on at least one migration that ensures the module tables exist as expected
- [PHPBB3-15548] - Dead link in ACP_COOKIE_SETTINGS_EXPLAIN language entry
- [PHPBB3-15586] - When creating a module without the modes array a missing 'module_langname' index is accessed
- [PHPBB3-15613] - Notification dropdown said to be not RTL compliant
- [PHPBB3-15627] - Improve wording of YES_ACCURATE_PM_BUTTON + EXPLAIN
- [PHPBB3-15678] - PHP warning in filesystem.php
- [PHPBB3-15731] - Fix acp_search language parameters when deleting index

#### Improvement

- [PHPBB3-15630] - Change <b> to <strong>
- [PHPBB3-15633] - Remove extra space in GROUP_MAX_RECIPIENTS_EXPLAIN
- [PHPBB3-15657] - Add core.mcp_queue_get_posts_for_posts_query_before and core.mcp_queue_get_posts_modify_post_row
- [PHPBB3-15676] - Display privacy policy & terms of use more prominently

#### Task

- [PHPBB3-15677] - Updated dependencies for 3.2.3-RC2

### Changes since 3.2.2

#### Bug

- [PHPBB3-14936] - Missing language variable INST_ERR_DB
- [PHPBB3-15491] - Outdated linkes in installer support page
- [PHPBB3-15492] - Permissions role combobox does not work in RTL
- [PHPBB3-15500] - Docs outdated for new PHP 5.4.7 requirement
- [PHPBB3-15502] - Errors in migrations in 3.2.2 release
- [PHPBB3-15506] - Previewing new post empties attachment list of all but first attachment
- [PHPBB3-15512] - Avoid reparsing non-existent polls
- [PHPBB3-15513] - Signature edit in acp gives error
- [PHPBB3-15520] - DbDriver->sql_build_query cant cope with sub-selects
- [PHPBB3-15522] - Allow multiple color palettes per page
- [PHPBB3-15523] - AdBlocker may cause JS error when using CookieConsent
- [PHPBB3-15525] - composer.json License is Invalid/Deprecated
- [PHPBB3-15526] - Cast bbcode ID to integer
- [PHPBB3-15527] - Cannot interpret the BBCode definition
- [PHPBB3-15532] - Update pull request template
- [PHPBB3-15533] - Typo in viewtopic_topic_tools.html
- [PHPBB3-15558] - phpbb\report\report_handler_post.php
- [PHPBB3-15559] - phpbb\report\report_handler_pm.php:56
- [PHPBB3-15595] - Migration Module Exists Tool Broken

#### Improvement

- [PHPBB3-12579] - Add BUTTON_ language strings for post & PM buttons
- [PHPBB3-15495] - Use transactions for queries in move_forum
- [PHPBB3-15499] - Drop HHVM support
- [PHPBB3-15510] - Link Orphan attachments in ACP>General to Orphaned attachments page
- [PHPBB3-15514] - Improve accessibility by adding vital info from explanation to a title
- [PHPBB3-15518] - Do not attempt to accurately determine whether posters can read private messages in viewtopic
- [PHPBB3-15528] - Display the version of the installed styles in acp
- [PHPBB3-15529] - Color groups in ACP
- [PHPBB3-15531] - Log malformed BBCodes
- [PHPBB3-15534] - Outdated ACP extensions database link for phpBB 3.2
- [PHPBB3-15535] - Add S_FIRST_POST to postrow on viewtopic
- [PHPBB3-15537] - Add events core.search_(native|mysql|postgres|sphinx)_index_before
- [PHPBB3-15547] - Add file object to event core.avatar_driver_upload_move_file_before
- [PHPBB3-15561] - Add core events for adding columns to MySQL and Postgres search backends
- [PHPBB3-15568] - Update depencies to latest versions
- [PHPBB3-15569] - Adjust update instructions to suggest file replacement method

#### New Feature

- [PHPBB3-15398] - Add event to oauth login after ID check

#### Security Issue

- [PHPBB3-15570] - Extension version check is restricted to TLS 1.0

#### Task

- [PHPBB3-15466] - Move Nils in CREDITS.txt
- [PHPBB3-15516] - Add instructions on running UI tests

### Changes since 3.2.1

#### Security Issue

- [SECURITY-211] - URLs with javascript scheme should not be made clickable

#### Bug

- [PHPBB3-7845] - Error on posting local image when script path is empty
- [PHPBB3-13214] - Contact us page textarea looks narrow in responsive mode
- [PHPBB3-14629] - acp global quick reply will not enable quick reply correctly
- [PHPBB3-14857] - ordinal suffix in dateformat is not handled in translations
- [PHPBB3-15041] - Cannot delete Orphaned Attachments when large number of attachments
- [PHPBB3-15060] - Online user list fails on notifications
- [PHPBB3-15089] - Enable/Disable settings backwards for Cookie Secure
- [PHPBB3-15133] - Fast image size library sometimes returns no size or invalid sizes
- [PHPBB3-15149] - Unexpected Ctrl+Enter behavior on reply
- [PHPBB3-15171] - Confusing bitfield values
- [PHPBB3-15172] - $request->server('server_port') is returning wrong port
- [PHPBB3-15174] - Unable to purge cache (ext & acp)
- [PHPBB3-15195] - Code direction in print view is not defined as "ltr"
- [PHPBB3-15201] - Removing style sets user_style to 0
- [PHPBB3-15224] - Advanced search in "message text only" crashes with SQL error when using Mysql fulltext search index
- [PHPBB3-15245] - Relative URLs in atom feeds broken when accessing via app.php
- [PHPBB3-15262] - WebFontConfig google families script issue in 3.2.1
- [PHPBB3-15266] - Content visibility events do not allow what they describe
- [PHPBB3-15273] - 'COOKIE_PATH_EXPLAIN' does not make sense
- [PHPBB3-15285] - Travis tests are failing due to trusty changes
- [PHPBB3-15292] - Retina imageset is blurry when displayed in Chrome browser
- [PHPBB3-15297] - Current date in board index is broken into lines in RTL
- [PHPBB3-15298] - Errors being suppressed in cli
- [PHPBB3-15303] - Typo in memcached driver
- [PHPBB3-15306] - Error and missing information in core.acp_users_profile_validate event
- [PHPBB3-15309] - Improved fix for pagination layout in tables
- [PHPBB3-15314] - Wrong class constructor definition for convertor component
- [PHPBB3-15319] - Database update v310\style_update_p2 fails to drop sequences
- [PHPBB3-15320] - Redis cache does not save keys with expiration date 0 (no expiration)
- [PHPBB3-15322] - Wrong return Return-Path in emails
- [PHPBB3-15331] - Gravatars cannot be overridden
- [PHPBB3-15332] - Dark background is always removed after confirm popup
- [PHPBB3-15333] - Callback isn't called when confirm dialog is canceled
- [PHPBB3-15339] - Missing acp_send_statistics -> Upgrading to 3.2.0 fails for phpBB 3.0.5
- [PHPBB3-15346] - The installer tries to enable all extensions even if they are not enableable
- [PHPBB3-15347] - Password updater in cron generates invalid postgres SQL
- [PHPBB3-15349] - Cli doesn't check if an extension is enableable before enable it
- [PHPBB3-15350] - Links to Plural rules are outdated
- [PHPBB3-15351] - Confirm box function does not work with symlink on server config
- [PHPBB3-15353] - Invalid HTML in ACP board settings
- [PHPBB3-15355] - Empty version field in versioncheck when using the latest version
- [PHPBB3-15356] - Avatar remote upload doesn't work
- [PHPBB3-15361] - Topic / Forum Icons Look Withered (on Safari)
- [PHPBB3-15362] - Excessive value for {NOTIFICATION_TYPES_COLS}
- [PHPBB3-15365] - Fix invalidating OPcache
- [PHPBB3-15367] - Sphinx search backend doesn't escape special characters
- [PHPBB3-15368] - Schema upgrade fails in 3.2.1 when using SQL Server
- [PHPBB3-15379] - Reparser cron will always run
- [PHPBB3-15381] - L_CONTACT_US_ENABLE_EXPLAIN should specify that "Enable board-wide emails" is also needed for it to work
- [PHPBB3-15390] - Admin permissions role tooltip popup has vertical bar running through it.
- [PHPBB3-15396] - revert_schema() steps not executed in correct order
- [PHPBB3-15401] - Use separate constant for memcached driver config
- [PHPBB3-15419] - Sphinx does not search UTF keywords in delta index
- [PHPBB3-15423] - Wrong title for topic's "Unappproved posts" icon
- [PHPBB3-15432] - Don't remove dark background if fadedark is false
- [PHPBB3-15433] - phpbbcli can enable non-existent extension
- [PHPBB3-15445] - Git Contribution Guidelines in README.md is outdated
- [PHPBB3-15464] - Can't reparse [IMG] - in uppercase
- [PHPBB3-15475] - Restore Travis PR commit message validation
- [PHPBB3-15478] - core.js $loadingIndicator JavaScript errors
- [PHPBB3-15489] - Wrong footer text on forum of type "category"
- [PHPBB3-15496] - SQL Error in PostgreSQL Fulltext search when results displayed as topics
- [PHPBB3-15497] - Declaration of admin_activate_user::create_insert_array not compatible with base
- [PHPBB3-15498] - confirm_box() adds duplicate strings to URLs in extensions

#### Improvement

- [PHPBB3-7488] - View Only - Categories: No Message
- [PHPBB3-9819] - Move functions definitions out of mcp.php and includes/mcp/mcp_*.php
- [PHPBB3-12291] - Allow extensions to use custom topic icons
- [PHPBB3-12939] - Drop support for IE <11 on January 2016
- [PHPBB3-14677] - Extension update check is not very colorblind / colourblind friendly.
- [PHPBB3-14820] - Style Version Missing
- [PHPBB3-14919] - Inconsistent use of globals vs class elements in acp_extensions
- [PHPBB3-14927] - event core.user_add_modify_data
- [PHPBB3-14944] - Add possibility to search for template loop indexes by key
- [PHPBB3-14950] - Add possibility to delete a template block with alter_block_array
- [PHPBB3-14979] - Remove underline from unread icon
- [PHPBB3-14994] - Refactor template->assign_block_var to be consistent with alter_block_array
- [PHPBB3-14995] - Add ACP template events acp_ext_list_*_name_after
- [PHPBB3-15111] - Fix the typo in ucp_pm_view_messsage
- [PHPBB3-15134] - Avatar upload driver should use filesystem service
- [PHPBB3-15247] - Add driver for APCu v5.x cache
- [PHPBB3-15267] - Hide birthday block if the user cannot view profile
- [PHPBB3-15291] - Allow short array notation in event declarations
- [PHPBB3-15293] - Prevent skipping file changes in automatic updater
- [PHPBB3-15307] - Allow extensions to add custom modes to acp_users module
- [PHPBB3-15328] - Disable email/jabber checkbox if notification method isn't supported
- [PHPBB3-15340] - Update to plupload 2.3.1, stable for one year
- [PHPBB3-15352] - Add text to clarify forum descriptions won't display on categories
- [PHPBB3-15374] - Add core event to modify page title in viewforum.php
- [PHPBB3-15384] - Add linebreaks to SMTP configuration option explanations
- [PHPBB3-15385] - nginx sample config: www redirection, security regex
- [PHPBB3-15387] - prosilver: vertical bars on forum rows on index page not full height
- [PHPBB3-15389] - Simplify migration between event names
- [PHPBB3-15391] - Remove not needed image rendering from topic/forum images
- [PHPBB3-15394] - Add $user_cache and $post_edit_list to core.viewtopic_modify_post_row
- [PHPBB3-15408] - Reject duplicate BBCodes in ACP
- [PHPBB3-15409] - Add u_action to core.acp_users_overview_run_quicktool
- [PHPBB3-15442] - Allow unsafe HTML in bbcode.html
- [PHPBB3-15444] - Merge duplicate BBCodes via a migration
- [PHPBB3-15446] - Add event core.acp_profile_action
- [PHPBB3-15447] - Add event core.acp_profile_modify_profile_row
- [PHPBB3-15451] - [EVENT] - mcp_topic_postrow_attachments_before/after
- [PHPBB3-15452] - [EVENT] - mcp_topic_postrow_post_before
- [PHPBB3-15453] - Add event in acp_language after delete language
- [PHPBB3-15454] - event - mcp_queue_approve_details_template
- [PHPBB3-15470] - attachment boxes need there own font-size
- [PHPBB3-15471] - Add core events to ACP when pruning a forum
- [PHPBB3-15476] - Add core event before search rows are edited
- [PHPBB3-15485] - Add template event to forumlist_body > forum images
- [PHPBB3-15486] - Add core event to the function user_add() to modify notifications data

#### New Feature

- [PHPBB3-13344] - Add new events for logging
- [PHPBB3-15122] - Support using memcached instead of memcache
- [PHPBB3-15372] - Add a "Can view topics" permission

#### Sub-task

- [PHPBB3-13150] - [Event] - core.phpbb_log_get_topic_auth_sql_after
- [PHPBB3-15468] - Add a service to merge duplicate BBCodes

#### Task

- [PHPBB3-15179] - Update 3.2.x dependencies and fix Twig > 1.25 compatibility
- [PHPBB3-15304] - Update s9e/text-formatter dependency
- [PHPBB3-15455] - Margin discrepancy due to <!-- INCLUDE jumpbox.html -->
- [PHPBB3-15457] - Update s9e/text-formatter dependency

### Changes since 3.2.0

#### Bug

- [PHPBB3-7336] - Words in new topic title aren't found by search after topic is split
- [PHPBB3-11076] - Update notification in ACP for minimum PHP version missing essential information
- [PHPBB3-11611] - setup_github_network.php no longer creates a repository
- [PHPBB3-13250] - File cache does not write entries starting with _ and containing a slash
- [PHPBB3-14732] - Update/remove PHP Code syntax highlighting references
- [PHPBB3-14790] - Nested color/list BBCode is not parsed correctly
- [PHPBB3-14938] - Inconsistent data results from ext_mgr->all_available() vs ext_mgr->is_available()
- [PHPBB3-14967] - Cookie Notice
- [PHPBB3-14971] - PHP 7.1 warning on pagination
- [PHPBB3-14975] - incorrect RTL style appearance
- [PHPBB3-14984] - wrong arrow direction in PM inbox
- [PHPBB3-14985] - Plain text is stored as HTML and not decoded before usage
- [PHPBB3-14989] - url bbcode does not support irc protocol
- [PHPBB3-14992] - User notifications table allowing duplicate entries
- [PHPBB3-14999] - Next PM icon pointing in wrong direction
- [PHPBB3-15002] - Topic icons not showing in search results
- [PHPBB3-15003] - When using mark all, disabled check boxes should not become checked
- [PHPBB3-15006] - Permission inheritance with checkbox not working
- [PHPBB3-15008] - Disable emoji when smilies are disabled
- [PHPBB3-15010] - Crash on user profile custom field
- [PHPBB3-15011] - Error not checked on metadata load failure
- [PHPBB3-15012] - Invalid constructor in FTP file updater
- [PHPBB3-15015] - phpbb 3.2.0 install error in the board-wide emails description...
- [PHPBB3-15016] - Smilies that contain some characters cause an exception to be thrown
- [PHPBB3-15023] - Undo and properly fix post row paging
- [PHPBB3-15025] - Use SSL in version check for extension
- [PHPBB3-15035] - Add phpinfo.php to 3.2.x install directory
- [PHPBB3-15036] - Failure at board setup in functional tests with install_config present
- [PHPBB3-15044] - Installation does not create search index
- [PHPBB3-15047] - Error migrating from 3.0.12 to 3.2. MS SQL Server
- [PHPBB3-15050] - Updater incorrectly adds files when new file already exists
- [PHPBB3-15056] - Mark forums read does not update subforum icons
- [PHPBB3-15058] - At new feature release phpBB's CSS files should carry information for cache busting
- [PHPBB3-15062] - Update to Rhea version number the CSS files
- [PHPBB3-15079] - MySql Error when saving draft with Emoji
- [PHPBB3-15083] - emoji's not always size constrained
- [PHPBB3-15084] - Wrong order of breadcrumbs in module management
- [PHPBB3-15090] - Missing acp_send_statistics -> Upgrading to 3.2.0 fails for phpBBs < 3.0.6-rc1
- [PHPBB3-15102] - Missing parameter calling version_check
- [PHPBB3-15103] - JPEG dimensions undetectable when JFIF header is missing
- [PHPBB3-15118] - HTML error/typo in jumpbox.html
- [PHPBB3-15124] - Navbar icon titles don't get hidden in responsive view
- [PHPBB3-15126] - Incorrect links with clever quotes
- [PHPBB3-15135] - Undefined $user in metadata manager
- [PHPBB3-15137] - Global Announcements shouldn't always be never ending
- [PHPBB3-15150] - Yabber SSL/TLS certification
- [PHPBB3-15152] - Update Font Awesome
- [PHPBB3-15158] - Facebook OAuth login results in fatal error
- [PHPBB3-15163] - Braces in smilies "emotion" are not treated as literals
- [PHPBB3-15173] - Resizing the posting editor's text area lags
- [PHPBB3-15180] - Container broken because of template.twig.environment changes
- [PHPBB3-15186] - The force_delete_allowed flag does not affect actual posts deletion ability
- [PHPBB3-15187] - ACP Template files not purged during Extension Enable
- [PHPBB3-15198] - Fix phpBB and PHP version info displayed in the ACP
- [PHPBB3-15202] - Should not be possible to disable available extensions
- [PHPBB3-15212] - Code box has double horizontal scrollbars
- [PHPBB3-15217] - Allow extension to overwrite user::format_date()
- [PHPBB3-15221] - missing commas in language/en/install.php
- [PHPBB3-15222] - Typo in generate_text_for_display_test.php
- [PHPBB3-15243] - Check permissions before installing with SQLite
- [PHPBB3-15246] - Memcache driver incorrectly handles Unix sockets
- [PHPBB3-15248] - Event core.modify_posting_auth does not honor its parameters
- [PHPBB3-15252] - Wrapping poll title and options text by extra <t> tags if edited a topic by user having no f_poll permission

#### Improvement

- [PHPBB3-13603] - New event upon index_body_online_block_after
- [PHPBB3-14557] - Simplify updating overloaded events for extensions
- [PHPBB3-14849] - Add ACP extension event
- [PHPBB3-14928] - Users will not understand the phrase '"%s" is not a valid stability.'
- [PHPBB3-14973] - BC break with the rename of db/tools.php
- [PHPBB3-14974] - Cookie notice link not configurable but links to english website
- [PHPBB3-15037] - Make imageset retina capable
- [PHPBB3-15068] - Add ability to retrieve template vars from the template object
- [PHPBB3-15097] - Board statistics page should show PHP version
- [PHPBB3-15123] - Check if extension was enabled/disabled before enable or disable
- [PHPBB3-15142] - Extension Version Check Should Support Branches
- [PHPBB3-15157] - Fix lack of proper font support
- [PHPBB3-15176] - Add setting for the maximum number of posts a user must have to have his activity shown in profile
- [PHPBB3-15199] - Add core event to the function send() in the messenger
- [PHPBB3-15200] - Allow extensions using custom templates for help/faq controllers
- [PHPBB3-15205] - Add template events to forumlist_body.html
- [PHPBB3-15219] - Add cron to update passwords hashes to bcrypt
- [PHPBB3-15226] - Add index for latest topics query in feeds
- [PHPBB3-15227] - Remove unused code in startup
- [PHPBB3-15237] - Unguarded includes functions_user
- [PHPBB3-15238] - Add console command to fix left/right IDs for the forums and modules
- [PHPBB3-15241] - Add ACP template event acp_profile_contact_last
- [PHPBB3-15250] - Add core event to MCP at the end of merge_posts

#### New Feature

- [PHPBB3-13730] - [PHP] - core.delete_post_end
- [PHPBB3-14498] - Not possible to deactivate display of "who is online" and birthdays for guests

#### Task

- [PHPBB3-15040] - Update s9e\TextFormatter to 0.9.1
- [PHPBB3-15045] - Fix missing incorrect constructor for user object in version_test
- [PHPBB3-15086] - Replace quote.gif with fontawesome icon
- [PHPBB3-15125] - Remove the function play_qt_file in forum_fn.js
- [PHPBB3-15144] - Bug - MCP Multiple attachments icon display

### Changes since 3.2.0-RC1

#### Bug

- [PHPBB3-14588] - RTL Search Bar
- [PHPBB3-14612] - Double .panel class on confirmation page (ajax error?)
- [PHPBB3-14628] - CLI installer doesn't support the translatable error messages
- [PHPBB3-14633] - Creating a new topic leaves a white page
- [PHPBB3-14636] - BC compatibility broken using request_var
- [PHPBB3-14640] - Wrong link to documentation in language/en/install.php
- [PHPBB3-14660] - Emails are being sent unparsed
- [PHPBB3-14663] - Incorrect unicode chars handling in custom BBCode
- [PHPBB3-14665] - Invalid syntax in report_id_auto_increment migration
- [PHPBB3-14684] - Extension Sniff script should use NOTESTS
- [PHPBB3-14690] - Email queue cron task never runs for phpBB 3.2
- [PHPBB3-14692] - Duplicate subexpression in questionnaire.php
- [PHPBB3-14700] - Updating from 3.1 to 3.2, just stops
- [PHPBB3-14706] - nested BB-Code [list] - shows different behaviour between 3.1 and 3.2
- [PHPBB3-14709] - Deleting posts from mcp_main causes missing post_id notice
- [PHPBB3-14714] - Update composer dependencies to latest versions
- [PHPBB3-14716] - Impossible to install with open basedir restrictions
- [PHPBB3-14717] - Quote any scalar in yaml files
- [PHPBB3-14739] - Remove old SQLite 2.8.х database driver
- [PHPBB3-14740] - BBcodes with quotes dont get parsed correctly
- [PHPBB3-14742] - Improvements to migrator
- [PHPBB3-14746] - Don't depend on container in installer msg_handler
- [PHPBB3-14748] - Modify tests to pass PHP 7.1 tests
- [PHPBB3-14763] - Files services definition specifies form for local type
- [PHPBB3-14764] - Incomplete update notification points to wrong update-link
- [PHPBB3-14765] - Parameter vs requirement spelling mismatch in installer routing config
- [PHPBB3-14774] - Content-Range only supported for resuming downloads
- [PHPBB3-14782] - Quick Links > Your Posts gives mysql error
- [PHPBB3-14788] - Update developer list to reflect team changes
- [PHPBB3-14791] - Trying to get form from wrong button in search test base
- [PHPBB3-14793] - "A non-numeric value encountered" PHP warning on PHP 7.1+
- [PHPBB3-14794] - Fix redirect behavior in according to parse_url() behavior changes in PHP 7.1+
- [PHPBB3-14797] - Remove PHP 7.1 builds from allowed failures
- [PHPBB3-14799] - purge_notifications() leaves open transaction for bad notification types.
- [PHPBB3-14813] - functions_compatibility missing in phpbbcli
- [PHPBB3-14814] - Text reparser reparses already correctly [re] -parsed objects
- [PHPBB3-14821] - Do not expect parsed HTML in kernel subscriber output
- [PHPBB3-14846] - Swapped variables in bbcode, first one doesn't get parsed
- [PHPBB3-14873] - Missing width and height variables for smilies
- [PHPBB3-14875] - Cannot use HTML entity type database passwords during installation
- [PHPBB3-14883] - Text Reparser is Reparsing Empty Data
- [PHPBB3-14892] - Assets paths broken on Windows instances
- [PHPBB3-14894] - Update: download of conflict files offers .tar file without file extension
- [PHPBB3-14896] - Link after installation fails at redirecting to ACP
- [PHPBB3-14897] - IOHandler in the installer declares member variable only in the constructor
- [PHPBB3-14900] - Disabled extension breakage in ACP

#### Improvement

- [PHPBB3-10961] - "You are not authorised..." still sends HTTP status 200 instead of i.e. 403
- [PHPBB3-13709] - Fallback to english in email templates by extensions
- [PHPBB3-14586] - phpBB Oauth V1 Wrapper Support
- [PHPBB3-14595] - smtp port
- [PHPBB3-14620] - Update docs/ for 3.2.x
- [PHPBB3-14689] - Build 3.2.x API docs
- [PHPBB3-14729] - Report post controller and report helper require specific implementation of config class
- [PHPBB3-14734] - Use SVG emoji
- [PHPBB3-14805] - Allow building package for previous versions on PHP 7
- [PHPBB3-14867] - INCLUDECSS Path broken
- [PHPBB3-14885] - Migrator logs need line breaks

#### New Feature

- [PHPBB3-12610] - Add a command to check if the board is up to date.
- [PHPBB3-14484] - Support extensions in UI tests
- [PHPBB3-14492] - Improve send stats page and include VigLink
- [PHPBB3-14547] - Add Vagrant Support

#### Task

- [PHPBB3-10809] - Remove PHP MSSQL Support
- [PHPBB3-13573] - Investigate ability to use set_config() and similar compatibility functions.
- [PHPBB3-14671] - Deduplicate database schema definiton
- [PHPBB3-14696] - Fix email template test for '0' username
- [PHPBB3-14807] - Updates dependencies

### Changes since 3.2.0-b2

#### Bug

- [PHPBB3-9435] - "magic numbers" in message_parser.php/bbcode.php
- [PHPBB3-13616] - Pass lexer directly to TWIG environment
- [PHPBB3-13972] - 3.1.5 - Waiting time conflict
- [PHPBB3-14136] - IE compatibility meta is missing in overall_header.html
- [PHPBB3-14198] - Container cache filename doesn't depend on the build options
- [PHPBB3-14260] - Right parenthesis breaks (some?) magic URLs
- [PHPBB3-14318] - Board Notifications Config Migration Not Working
- [PHPBB3-14329] - Updater Cannot remove files
- [PHPBB3-14381] - Text Reparser fails with empty sql fields
- [PHPBB3-14393] - Update 3.2.0a1 to 3.2.0a2 --> Error: CANNOT_DELETE_FILES
- [PHPBB3-14426] - viewtopic error posts bbcode pregmatch
- [PHPBB3-14481] - phpBB does not obey HTTP_X_FORWARDED_PORT header
- [PHPBB3-14497] - Update nginx sample config for new installer
- [PHPBB3-14527] - Dataloss caused by link shortening
- [PHPBB3-14528] - Structured data - breadcrumbs error
- [PHPBB3-14530] - Signature parsing inconsistant
- [PHPBB3-14532] - Database column default incorrectly escaped on MSSQL
- [PHPBB3-14550] - function unique_id()
- [PHPBB3-14555] - Inconsistent usage of the cache directory
- [PHPBB3-14559] - Attachments' behaviour in quotes
- [PHPBB3-14562] - Extension's permissions don't have language fallback
- [PHPBB3-14564] - config cookie domain is empty
- [PHPBB3-14569] - Add a method for console progress bar initialisation
- [PHPBB3-14572] - Quote notifications deleted on edit
- [PHPBB3-14576] - Functional Test Framework should include functions.php
- [PHPBB3-14577] - Stop using sizeof() inside for() loop
- [PHPBB3-14589] - Requirements test showing required text for "yellow/amber" (optional) requirements
- [PHPBB3-14590] - Installer gets stuck at sending notification e-mail
- [PHPBB3-14591] - Some installation data not being inserted when running under MS SQL Server
- [PHPBB3-14607] - Missing Auto Increment in Report Table
- [PHPBB3-14619] - docs/ folder need work to change 3.1.x to 3.2.x in readme, install, changelog etc
- [PHPBB3-14648] - Users don't receive default notifications if another setting is set.
- [PHPBB3-14649] - Missing variable within event

#### Improvement

- [PHPBB3-13502] - controller resolver should handle callable functions and objects
- [PHPBB3-14540] - Adjust class recursive_dot_prefix_filter_iterator to increase performance
- [PHPBB3-14561] - Add additional commands for user actions
- [PHPBB3-14664] - Fix PHPDoc comment in cron manager

#### New Feature

- [PHPBB3-12684] - Add a command to add a user from the CLI

#### Task

- [PHPBB3-13969] - Remove old help_* language files
- [PHPBB3-14565] - Updates composer to 1.0.0-b2

### Changes since 3.2.0-b1

#### Bug

- [PHPBB3-14307] - Incorrect wording used in installer
- [PHPBB3-14315] - Changing multiple forum permissions at once forces identical permissions on all groups
- [PHPBB3-14416] - navlnks in header have incorrect tool tip styling
- [PHPBB3-14431] - Remote avatar uploading does not support https
- [PHPBB3-14440] - Paths can break for extensions with deep route patterns/paths
- [PHPBB3-14460] - Use the selected language in AJAX pages as well in the installer
- [PHPBB3-14461] - Text reparser migration might finish too late
- [PHPBB3-14488] - Grab correct session ID in ui tests
- [PHPBB3-14489] - Extension compiler pass cannot find class
- [PHPBB3-14503] - Allow superglobals in installer cli
- [PHPBB3-14510] - Prevent infinite loop in adding bots task

#### Improvement

- [PHPBB3-14312] - Allow installer updating only without updating files
- [PHPBB3-14448] - Use guzzle for remote files uploading
- [PHPBB3-14462] - Add further measures to prevent timeouts in the installer
- [PHPBB3-14478] - Move facebook/webdriver to main composer.json

#### New Feature

- [PHPBB3-14499] - CLI updater

#### Task

- [PHPBB3-14447] - Cleanup whitespaces in Prosilver
- [PHPBB3-14477] - Update text formatter to latest release

### Changes since 3.2.0-a2

#### Bug

- [PHPBB3-10628] - http:// prepended to "www." urls (but not reflected in preview)
- [PHPBB3-11875] - mediumint(8) too small for post_id
- [PHPBB3-12221] - URLs Containing javascript: are Garbled
- [PHPBB3-14129] - Adding custom extensions autoloaders feature slow downs the board
- [PHPBB3-14321] - Fatal error on download the merged conflicts archive during update from 3.1.6 to 3.2-a1
- [PHPBB3-14323] - Long urls are no longer shortened
- [PHPBB3-14368] - Post Editors Text Should Be Black, Not Blue
- [PHPBB3-14371] - Small fix for the aligment quick links
- [PHPBB3-14373] - Do not use strpos() on arrays in iohandler_base::add_error_message()
- [PHPBB3-14378] - Maintain consistent template var paths in 3.2 installer
- [PHPBB3-14380] - Maintain consistent template var paths in 3.2 installer
- [PHPBB3-14402] - Tidy plupload cron should not rely on user id/ip being available
- [PHPBB3-14403] - phpbb\log should still work even when no user data is given
- [PHPBB3-14405] - Text processor parses invalid use of url bbcode
- [PHPBB3-14419] - Update composer dependencies and fix outdated composer lock file
- [PHPBB3-14420] - Search Results pagination not up to date / broken
- [PHPBB3-14428] - Use other links for files remote test
- [PHPBB3-14431] - Remote avatar uploading does not support https
- [PHPBB3-14432] - The lang() function needs to handle key array
- [PHPBB3-14434] - Schema generator fails if extensions have non-migrations in migrations dir
- [PHPBB3-14436] - Default data type migration misses oauth_states dependency
- [PHPBB3-14442] - Use Goutte ~2.0 after allowing PHP >= 5.4
- [PHPBB3-14444] - Fatal error in functions_messenger.php
- [PHPBB3-14446] - Add predefined placeholder variables to twig
- [PHPBB3-14452] - Undefined $progressFillerText in installer.js
- [PHPBB3-14453] - Missing dependency in the text_reparser migration

#### Improvement

- [PHPBB3-13454] - Remove unused variables, globals, parameters
- [PHPBB3-13733] - Allow non-migration files inside migrations folder
- [PHPBB3-14177] - Catch exceptions and display a nice error page
- [PHPBB3-14253] - Show group requests pending aproval at the ACP groups summary
- [PHPBB3-14377] - Allow extensions to register custom compiler pass
- [PHPBB3-14418] - Add missing language string PM_TOOLS
- [PHPBB3-14445] - Force page refresh before the installer generates the schema

#### Task

- [PHPBB3-14250] - Review/bump composer dependencies
- [PHPBB3-14262] - Move converter code into a controller

### Changes since 3.2.0-a1

#### Bug

- [PHPBB3-9791] - invalid [] - chars on search URI
- [PHPBB3-13451] - A very long string inside message crashes PHP
- [PHPBB3-14273] - Unnecessary core.root_path dependency in files.upload service
- [PHPBB3-14293] - Responsive .postbody width not expanding
- [PHPBB3-14295] - Icon on left side of "Post awaiting approval" inside messages is missing
- [PHPBB3-14311] - Installer error messages not being reported back to client properly
- [PHPBB3-14317] - Run lang_migrate_help_lang script on master
- [PHPBB3-14320] - Language selector is broken in the installer
- [PHPBB3-14325] - Renamed Event Variables Backwards Incompatible
- [PHPBB3-14326] - Diffed files are not decoded at update
- [PHPBB3-14339] - State support for PHP 7.0 in docs
- [PHPBB3-14344] - Improve formatting of errors during install
- [PHPBB3-14345] - Check if message description exists in install cli iohandler
- [PHPBB3-14349] - Improve error messages and remove output of suppressed messages
- [PHPBB3-14350] - Remove duplicate semi-colon from functions_user
- [PHPBB3-14358] - Fatal error when running create_schema_files.php (missing composer autoloader)
- [PHPBB3-14359] - Wrong service definition for console.command.reparser.reparse

#### Improvement

- [PHPBB3-12649] - Change sort & display options in footers to dropdown menu
- [PHPBB3-14257] - Reparse after update
- [PHPBB3-14269] - Use http_exceptions instead of die() in installer controllers
- [PHPBB3-14310] - Progress bar in new installer not very clear
- [PHPBB3-14340] - Revert the workaround fix for segmentation fault error on phpBB 3.2 PHP 7 tests

#### Task

- [PHPBB3-14247] - Usage of @ at begining of an unquoted string in a yaml file is deprecated
- [PHPBB3-14341] - Update to Symfony 2.8
- [PHPBB3-14348] - Add an index.html to the install folder

### Changes since 3.1.x

#### Bug

- [PHPBB3-6466] - Permission Role Tooltips do not display in Safari
- [PHPBB3-7187] - Quote smilies error
- [PHPBB3-7275] - Custom bbodes trim('${1}')
- [PHPBB3-8064] - forum author sort not using username_clean
- [PHPBB3-8419] - custom tag eats up space character
- [PHPBB3-8420] - emoticon removes space before itself when using preview
- [PHPBB3-8613] - BBCode_uid- and censor-bug
- [PHPBB3-9073] - Word censoring in URLs
- [PHPBB3-9109] - Maximum allowed recepients restriction precedence
- [PHPBB3-9377] - Custom BB Code Nesting
- [PHPBB3-10002] - (incomplete) BBCode usage of [quote] - and [list] - forces closing [/list] - and [/quote] -s, ultimately breaking HTML/Design
- [PHPBB3-10388] - Template engine should use json_encode() to properly escape JS properties
- [PHPBB3-10572] - Unguarded includes in acp/
- [PHPBB3-10989] - Bug in BBCode
- [PHPBB3-11444] - Unnecessary notify column in phpbb_user_notifications table
- [PHPBB3-11967] - Notification settings are not respected
- [PHPBB3-12143] - Untranslated group name from index if not special group
- [PHPBB3-12195] - Double-slash URLs not supported
- [PHPBB3-12387] - mysqli_free_result is called with false value
- [PHPBB3-12554] - Quotes do not display correctly as list elements
- [PHPBB3-12698] - Replace all instances of magic numbers with constants in javascript
- [PHPBB3-12957] - The template engine is not constructed properly in install/index
- [PHPBB3-12974] - Update nightly version of develop to 3.2.0-a1-dev
- [PHPBB3-13101] - Remove WLM contact from profile
- [PHPBB3-13238] - \phpbb\db\migration\data\v310\mysql_fulltext_drop tries to drop non existent indexes
- [PHPBB3-13359] - Develop tests fail due to wrong template set up in tests
- [PHPBB3-13362] - The whole cache dir (excluding the .htaccess and index.html files) should be ignored by git
- [PHPBB3-13371] - Lang vars not loaded during install process
- [PHPBB3-13372] - Environment Bug - Routing broken for extensions
- [PHPBB3-13377] - Function decode_message() incorrectly decodes www type URLs
- [PHPBB3-13425] - Smiley code at start of text being quoted doesn't show smiley image in quote
- [PHPBB3-13513] - Mixed routing file paths in the router
- [PHPBB3-13555] - Poll options preview rendered incorrectly by <br /> collision
- [PHPBB3-13619] - Remove unneeded folders/files from vendor folder in release package
- [PHPBB3-13638] - INCLUDECSS and INCLUDEJS Broken in 3.2
- [PHPBB3-13670] - Fix fatal function name must be a string in functional tests
- [PHPBB3-13680] - Notification for a quote within a quote
- [PHPBB3-13718] - Spambot countermeasures/CAPTCHA admin panel won't load
- [PHPBB3-13749] - Add missing slash to base uri in helper route tests
- [PHPBB3-13766] - Missing style_parent_id in textformater's data_access::get_styles()
- [PHPBB3-13769] - bin/phpbbcli.php ignores PHPBB_ENVIRONMENT constant from config.php
- [PHPBB3-13772] - Error in @param variable type for phpbb\passwords\manager
- [PHPBB3-13782] - ACM null caching driver class is named with the reserved word 'null'
- [PHPBB3-13792] - Travis fails installing hhvm-nigthly
- [PHPBB3-13814] - phpbb_is_writable() method of the new filesystem class truncates files
- [PHPBB3-13825] - create_thumbnail() incorrectly calls phpbb\filesystem::phpbb_chmod
- [PHPBB3-13828] - Rename null driver to dummy for PHP7 compatibility in tests
- [PHPBB3-13829] - Router requires cache directory to be writable
- [PHPBB3-13839] - Failing test when the phpBB root directory isn't named phpbb
- [PHPBB3-13849] - Development environment broken
- [PHPBB3-13860] - Array to string conversion in parser service
- [PHPBB3-13871] - Call to a member function realpath() on a non-object in functions.php on line 3474
- [PHPBB3-13875] - Lint test should ignore cache, ext, and store folder
- [PHPBB3-13890] - Failling tests in master
- [PHPBB3-13896] - Coding style issue in master
- [PHPBB3-13897] - Non-existent environment causes fatal error
- [PHPBB3-13906] - BBCodes in signatures are not correctly parsed in post preview
- [PHPBB3-13990] - Reparse markup inside of forum rules/description
- [PHPBB3-13993] - Signature Editing Broken
- [PHPBB3-14008] - Do not add a user_id value to quotes from guests
- [PHPBB3-14033] - Correct docblock errors
- [PHPBB3-14034] - Fix reparser names that contain "text_reparser" in the middle
- [PHPBB3-14036] - Replace path_helper with a mock
- [PHPBB3-14052] - New installer - The commands are not translated
- [PHPBB3-14074] - Not possible to clear notification (mark as read)
- [PHPBB3-14076] - Notifications settings are not correctly handled when a non default setting is set
- [PHPBB3-14078] - Notification related sql general error on submission of editing post
- [PHPBB3-14079] - Cannot mark notification as read from the dropdown
- [PHPBB3-14094] - Current master branch is getting segmentation fault error on PHP 7 tests
- [PHPBB3-14128] - Image posting overflow regression
- [PHPBB3-14137] - Fix Notification Menu Settings spacing issue caused by new jump-box improvements
- [PHPBB3-14138] - Use span tags instead of abbr tags in the footer
- [PHPBB3-14165] - Fix layout of ucp/mcp after 14139
- [PHPBB3-14178] - Installer database helper tests fail if sqlite3 is not present
- [PHPBB3-14180] - Use unix line ending in files classes tests
- [PHPBB3-14182] - Move the v310\notifications_board migration to v320\notifications_board
- [PHPBB3-14183] - Remove deprecated max-device-width
- [PHPBB3-14193] - Custom BBCode Buttons Broken
- [PHPBB3-14194] - Responsive Quick Links Menu Broken
- [PHPBB3-14195] - Plupload Attachments Not Quite Working
- [PHPBB3-14199] - We need to hide icons from screen readers
- [PHPBB3-14202] - Add missing sr-only classes to icons
- [PHPBB3-14216] - Do not run thumbnail test if gd is not enabled
- [PHPBB3-14221] - Fix viewforum header issue
- [PHPBB3-14222] - ACP users page tries to cast deactivated_super_global to int
- [PHPBB3-14225] - Inject the resolver in routing loaders when using them
- [PHPBB3-14230] - Unread posts' icons don't have different color in viewtopic
- [PHPBB3-14234] - Do not use references in trigger_event()
- [PHPBB3-14235] - Font Awesome not available with simple_header.html
- [PHPBB3-14240] - Always include all config files in the update package
- [PHPBB3-14274] - New installer has weak inclusion of user functions
- [PHPBB3-14277] - Don't use user_id in migrations as it is not defined
- [PHPBB3-14278] - Don't use user_id in installer if not available

#### Improvement

- [PHPBB3-8672] - No file size limit in getimagesize() and remote upload
- [PHPBB3-8708] - Splitting global announcements from f_announce
- [PHPBB3-9485] - Please include link to specific post in moderator's activity logs.
- [PHPBB3-10268] - extend function make_clickable() to also recognize semicolons as leading URL borders
- [PHPBB3-10620] - Quote tag improvement
- [PHPBB3-10922] - Allow parameters for [email] - BBCode content instead of addresses only
- [PHPBB3-11649] - Move construction of twig environment to DIC
- [PHPBB3-11742] - BBCode 'code' doesn't support tabs
- [PHPBB3-12466] - Move classes from acp_database.php to their own files
- [PHPBB3-12487] - Update PHP code
- [PHPBB3-12608] - Improve notifications drop-down menu styling in header
- [PHPBB3-12654] - Improve header search-box styling
- [PHPBB3-12681] - Cache the compiled routes and dump the url_generator
- [PHPBB3-12719] - Convert to Normalize & SUITCSS - base for reset
- [PHPBB3-12745] - Allow Emoji characters in posts
- [PHPBB3-12769] - Add and use Font-Awesome to handle proSilver icons
- [PHPBB3-12821] - Use CSS instead of images for gradients
- [PHPBB3-12958] - Remove subsilver2
- [PHPBB3-13063] - Move functions_url_matcher to a proper class
- [PHPBB3-13132] - Twig: move the loops content from loops. to the root context
- [PHPBB3-13137] - Remove schema.json from repository
- [PHPBB3-13178] - Allow posting Emoji characters if the database supports it
- [PHPBB3-13206] - DEBUG mode should automatically recompile stale style components
- [PHPBB3-13266] - Enabling twig dump function if DEBUG is defined
- [PHPBB3-13388] - Integrate routing and di parameters resolution
- [PHPBB3-13450] - Type-hint return value of $phpbb_container->get()
- [PHPBB3-13455] - Change request_var() calls with $request->variable()
- [PHPBB3-13468] - Change add_log() calls with $phpbb_log->add()
- [PHPBB3-13494] - Replace set_config() calls with $config->set()
- [PHPBB3-13496] - Replace set_config_count() calls with $config->increment()
- [PHPBB3-13497] - Change get_tables() calls with $db_tools->sql_list_tables()
- [PHPBB3-13498] - Change get_user_avatar() calls with phpbb_get_avatar()
- [PHPBB3-13499] - Move get_remote_file() to functions_compatibility.php
- [PHPBB3-13595] - Remove unused instances of the bbcode class
- [PHPBB3-13614] - Remove phpbb_pcre_utf8_support() and assume Unicode is supported by PCRE
- [PHPBB3-13652] - Extend SQL query builder functionality
- [PHPBB3-13697] - Rewriting/moving file system functions to filesystem class
- [PHPBB3-13740] - Refactoring installer
- [PHPBB3-13762] - Moving translation loading and language related functions into a service
- [PHPBB3-13770] - Make DI Container builder constructor dependency free
- [PHPBB3-13789] - Implement Googles noCAPTCHA reCAPTCHA
- [PHPBB3-13801] - Decouple the user object from the text_formatter.s9e.parser service
- [PHPBB3-13803] - Implement a generic and scalable way to reparse rich text
- [PHPBB3-13805] - Make generate_text_for_storage() match the signature and feature set of message_parser::parse()
- [PHPBB3-13844] - Replace help_ language magic with a help manager and normal language files
- [PHPBB3-13847] - Move quote generation to text_formatter.utils
- [PHPBB3-13891] - Add CLI commands for reparsing text
- [PHPBB3-13901] - Give quotes more whitespace in the posting form for readability
- [PHPBB3-13902] - Increase the CSS margin around blockquote
- [PHPBB3-13904] - Refactor attachment upload functions into service
- [PHPBB3-13921] - Try harder to fix block elements BBCodes used inside of inline elements BBCodes
- [PHPBB3-13946] - Increase the CSS margin around [code] - and [list] -
- [PHPBB3-13970] - Save the value of the optional parameter in [code] - BBCode
- [PHPBB3-13986] - Add --resume option to reparser CLI
- [PHPBB3-13987] - Add --dry-run option to reparser CLI
- [PHPBB3-14000] - Make it possible to use emojis in posts
- [PHPBB3-14097] - Catch and show all exceptions
- [PHPBB3-14107] - dropdown rendering on rtl
- [PHPBB3-14124] - Automatically translate exception in CLI
- [PHPBB3-14139] - stop styling IDs
- [PHPBB3-14157] - Allow administrators to set an alt attribute for topic icons
- [PHPBB3-14162] - Add CLI commands to manage migrations
- [PHPBB3-14168] - Refactor attachment management functions into classes
- [PHPBB3-14174] - issues in language\en\install_new.php
- [PHPBB3-14175] - Refactor responsive implementation for easier manipulation
- [PHPBB3-14206] - Fix jumpbox incosistencies
- [PHPBB3-14220] - Adding routing file locator and route loader services
- [PHPBB3-14231] - Fix double home icon in breadcrumbs
- [PHPBB3-14237] - Use language class in the notifications component
- [PHPBB3-14264] - Don't use constants in textreparser plugins

#### New Feature

- [PHPBB3-10165] - Send test email feature on email settings ACP page
- [PHPBB3-11768] - Integrate s9e\TextFormatter
- [PHPBB3-12516] - Always preview signature in UCP/ACP module
- [PHPBB3-12620] - Allow the user to define multiples environments
- [PHPBB3-12692] - Add a console command to manage the thumbnail
- [PHPBB3-13329] - Rely on Intl and mbstring, use patchwork/utf8 as fallback
- [PHPBB3-13641] - problem with custom BBCode
- [PHPBB3-13961] - Add orderable service collections
- [PHPBB3-14125] - Add --env option to all CLI commands
- [PHPBB3-14158] - Add a lang_array function to the language service to avoid using call_user_func

#### Sub-task

- [PHPBB3-12577] - Use a lazy service to delay the construction of the passwords_manager
- [PHPBB3-12581] - Use the proxy pattern for the template lexer
- [PHPBB3-12632] - Use a twig.debug environment config value to enable Twig debug
- [PHPBB3-12633] - Add debug.template.events
- [PHPBB3-12699] - Replace instances in the message textarea keydown callback
- [PHPBB3-13421] - Create an interface for db\tools.php
- [PHPBB3-13487] - Add factory for db tool class
- [PHPBB3-13645] - Moving feeds to controllers
- [PHPBB3-13647] - Move FAQ to controller
- [PHPBB3-13654] - Moving reports to controller
- [PHPBB3-13881] - Unify quote removal in 3.1 and 3.2
- [PHPBB3-13935] - Allow more admin-configurable schemes in post links
- [PHPBB3-14039] - Refactoring the updater
- [PHPBB3-14044] - Deduplicate the installers

#### Task

- [PHPBB3-9457] - [Accessibility] - Add WAI-ARIA landmarks to the Prosilver template files
- [PHPBB3-11528] - Use mink for acceptance tests involving javascript execution
- [PHPBB3-12384] - Run Travis CI HHVM tests against MySQLi instead of MySQL
- [PHPBB3-12505] - Remove outdated media handling in attachment.html
- [PHPBB3-12564] - Remove obsolete version definitions from module info files
- [PHPBB3-12916] - Add separate nightly builds for 3.1 and 3.2
- [PHPBB3-13130] - Update dependencies to Symfony 2.5
- [PHPBB3-13139] - Update Twig to 1.18.0
- [PHPBB3-13363] - Replace phpbb\php\ini with composer package bantu/ini-get-wrapper
- [PHPBB3-13407] - Update Symfony Components to 2.7.x
- [PHPBB3-13572] - Upgrade composer to 1.0.0-alpha9
- [PHPBB3-13634] - Update README to show new branch names
- [PHPBB3-13725] - Coding guidelines: static public
- [PHPBB3-13767] - Remove .git from vendor/s9e/text-formatter
- [PHPBB3-13768] - Update to Symfony 2.8@dev
- [PHPBB3-13774] - Update s9e\TextFormatter
- [PHPBB3-13777] - Move acp/modules module handling code into a service
- [PHPBB3-13793] - Remove message translation from exceptions
- [PHPBB3-13800] - Make extension manager an optional dependency for the router
- [PHPBB3-13804] - Make template's user dependency optional
- [PHPBB3-13832] - Replace use of deprecated e modifier of preg_replace in bbcode functions
- [PHPBB3-13985] - Update s9e\TextFormatter
- [PHPBB3-14015] - Update Symfony to the latest 2.8@dev
- [PHPBB3-14053] - Remove @covers annotations from installer config test
- [PHPBB3-14056] - Keep install schema resources in the install folder
- [PHPBB3-14096] - Update Symfony to the latest 2.8@dev
- [PHPBB3-14140] - Update Symfony to benefit from improvement to the console component
- [PHPBB3-14150] - Update fast-image-size to newest release
- [PHPBB3-14205] - Bump PHP requirement to 5.4
- [PHPBB3-14238] - Update Symfony to the latest 2.8@dev
- [PHPBB3-14243] - Exclude every .git directory from the pakages
- [PHPBB3-14256] - Remove PHP7 from the allowed failures
- [PHPBB3-14265] - Make all tables available in the container

### Changes since 3.1.11

#### Security Issue

- [SECURITY-211] - URLs with javascript scheme should not be made clickable

#### Bug

- [PHPBB3-9533] - phpbb_own_realpath() doesn't always replicate realpath() behaviour
- [PHPBB3-12835] - Jump-box dropdown menu doesn't expand with according to line length in IE8
- [PHPBB3-13360] - rename_too_long_indexes migration never deleted the old unique index
- [PHPBB3-13464] - problem with drop down options and Arabic letters in chrome
- [PHPBB3-13574] - Last post not showing in "Active topics" when Prosilver goes responsive
- [PHPBB3-15174] - Unable to purge cache (ext & acp)
- [PHPBB3-15285] - Travis tests are failing due to trusty changes
- [PHPBB3-15303] - Typo in memcached driver
- [PHPBB3-15347] - Password updater in cron generates invalid postgres SQL
- [PHPBB3-15367] - Sphinx search backend doesn't escape special characters

#### Improvement

- [PHPBB3-10122] - [list=] - should support "none", along with CSS2 types
- [PHPBB3-11063] - Change version check to SSL
- [PHPBB3-14820] - Style Version Missing
- [PHPBB3-14919] - Inconsistent use of globals vs class elements in acp_extensions
- [PHPBB3-14927] - event core.user_add_modify_data
- [PHPBB3-14944] - Add possibility to search for template loop indexes by key
- [PHPBB3-14995] - Add ACP template events acp_ext_list_*_name_after

#### New Feature

- [PHPBB3-13344] - Add new events for logging
- [PHPBB3-15122] - Support using memcached instead of memcache

#### Sub-task

- [PHPBB3-11182] - Ensure that template files use L_COLON instead of colons.
- [PHPBB3-11676] - generate_text_for_storage on includes/acp/acp_users.php

#### Task

- [PHPBB3-10758] - Improve Functional Test Code Coverage
- [PHPBB3-10791] - Add a section for extensions to readme.html
- [PHPBB3-10792] - Add a section for 3.0 to 3.1 upgrades to install.html
- [PHPBB3-13874] - Add master to sami API docs

### Changes since 3.1.10

#### Bug

- [PHPBB3-7336] - Words in new topic title aren't found by search after topic is split
- [PHPBB3-8116] - Server timeout or browsercrash after viewing postdetails
- [PHPBB3-8301] - admin log generate slow queries
- [PHPBB3-9590] - Unable to update permissions for more than 6 forums at a time
- [PHPBB3-11076] - Update notification in ACP for minimum PHP version missing essential information
- [PHPBB3-11483] - Forced Activation needs looking at.
- [PHPBB3-11611] - setup_github_network.php no longer creates a repository
- [PHPBB3-13247] - Online indicator in post profile hides behind certain avatars
- [PHPBB3-13250] - File cache does not write entries starting with _ and containing a slash
- [PHPBB3-13429] - Changes tag in docblock of events should be unified
- [PHPBB3-13558] - Error - stream_socket_enable_crypto()
- [PHPBB3-13757] - Negative PM count
- [PHPBB3-14468] - [php] - 'core.viewforum_modify_topics_data' add parameter forum_id
- [PHPBB3-14549] - Correctly redirect back after topic merge in MCP
- [PHPBB3-14770] - Plupload: WRONG_FILESIZE is used wrong
- [PHPBB3-14795] - Topic merge bug
- [PHPBB3-14801] - Search highlight option doesn't always highlight unicode strings
- [PHPBB3-14802] - Empty/blank lines should not be additional poll options
- [PHPBB3-14806] - Authentication for e-mail is not working
- [PHPBB3-14819] - Soft deleted posts visible in topic review
- [PHPBB3-14821] - Do not expect parsed HTML in kernel subscriber output
- [PHPBB3-14830] - FORM_INVALID error on ACP search and CPF settings
- [PHPBB3-14831] - Extension migration file fails
- [PHPBB3-14838] - feeds.attachments_base - server 500 error for large attachment tables
- [PHPBB3-14844] - BBcodes B and I return <strong> and <em> tags instead of CSS under inherited styles
- [PHPBB3-14859] - PM report notifications only sent out to full Global Moderators
- [PHPBB3-14860] - Broken link on subscriptions page on mobile devices
- [PHPBB3-14863] - "Array" in message title when permanently deleting posts
- [PHPBB3-14864] - ACP datefromat text input still has 30 max length while dateformat field had been expanded to 64
- [PHPBB3-14876] - Multibyte message is not displayed properly on exception
- [PHPBB3-14877] - CSS error in ".codebox code" definition
- [PHPBB3-14881] - Problems using EVENT (overall_footer_content_after)
- [PHPBB3-14888] - Missing check for disabled profile field types
- [PHPBB3-14889] - Missing method declaration in profile fields type interface
- [PHPBB3-14890] - Wrong validation of input field in profile field type string
- [PHPBB3-14906] - Duplicated sig key in user_cache_data array
- [PHPBB3-14923] - SQL PostgreSQL blocking errors during DB update installation
- [PHPBB3-14938] - Inconsistent data results from ext_mgr->all_available() vs ext_mgr->is_available()
- [PHPBB3-14941] - MySQL Fulltext search index creating still fails on InnoDB
- [PHPBB3-14943] - Template loop access gives PHP error
- [PHPBB3-14953] - Incorrect "order by" definition in ucp_pm_viewfolder
- [PHPBB3-14968] - Version check marks 3.1.10 boards as outdated
- [PHPBB3-14997] - Bad Position for topiclist_row_topic_title_after
- [PHPBB3-14998] - ACP Update link is incorrect!
- [PHPBB3-15003] - When using mark all, disabled check boxes should not become checked
- [PHPBB3-15006] - Permission inheritance with checkbox not working
- [PHPBB3-15011] - Error not checked on metadata load failure
- [PHPBB3-15108] - Duplicate code in request->overwrite
- [PHPBB3-15143] - version check on branch is broken
- [PHPBB3-15146] - Date profile field validation incorrect
- [PHPBB3-15150] - Yabber SSL/TLS certification
- [PHPBB3-15186] - The force_delete_allowed flag does not affect actual posts deletion ability
- [PHPBB3-15187] - ACP Template files not purged during Extension Enable
- [PHPBB3-15246] - Memcache driver incorrectly handles Unix sockets
- [PHPBB3-15248] - Event core.modify_posting_auth does not honor its parameters

#### Improvement

- [PHPBB3-9211] - List subforums-links separately in parent-forums' legend
- [PHPBB3-12749] - core.submit_post_end add subject to the event data
- [PHPBB3-13457] - New Hooks for ucp_main
- [PHPBB3-13459] - New Template-Event in overall_header.html
- [PHPBB3-13479] - Add hook for modifying highlighting on viewtopic
- [PHPBB3-13601] - New event upon acl_clear_prefetch
- [PHPBB3-13603] - New event upon index_body_online_block_after
- [PHPBB3-13605] - New event upon ucp_pm_compose_predefined_message
- [PHPBB3-13608] - New event upon ucp_restore_permissions
- [PHPBB3-13609] - New event upon ucp_switch_permissions
- [PHPBB3-13845] - Add event when user changes or delete avatar
- [PHPBB3-14119] - [PHP] - (User) unban event request
- [PHPBB3-14239] - [PHP] - Add event ucp_remind_modify_select_sql
- [PHPBB3-14331] - Add rank calculation or result event access
- [PHPBB3-14520] - [Template] - ucp_pm_viewmessage_message_body_after
- [PHPBB3-14522] - [Template] - ucp_register_buttons_before
- [PHPBB3-14524] - [PHP] - core.ucp_register_requests_after
- [PHPBB3-14733] - Support increasing hashing cost factor
- [PHPBB3-14750] - Fileupload form should not set invalid attributes for file input
- [PHPBB3-14758] - ACP-Parameter "Maximum thumbnail width in pixel" should be "Maximum thumbnail width/heigth in pixel:"
- [PHPBB3-14759] - Event core.mcp_main_modify_shadow_sql
- [PHPBB3-14760] - Event core.mcp_main_modify_fork_sql
- [PHPBB3-14786] - Add mcp_forum_actions_before/after events
- [PHPBB3-14804] - Add core event to MCP after merging topics
- [PHPBB3-14805] - Allow building package for previous versions on PHP 7
- [PHPBB3-14808] - Add template event overall_header_searchbox_after
- [PHPBB3-14817] - Add core event on includes/functions_download.php
- [PHPBB3-14825] - Add OAuth events
- [PHPBB3-14827] - Possibility to add multiple form keys
- [PHPBB3-14842] - Avatar size 0 - unlimited
- [PHPBB3-14847] - Add php event to add options in ACP Attachments
- [PHPBB3-14848] - Add ACP template events after extensions list titles
- [PHPBB3-14849] - Add ACP extension event
- [PHPBB3-14850] - Add core events for smilies
- [PHPBB3-14852] - Add core event to the function build_header()
- [PHPBB3-14853] - Add core event to allow modifying PM attachments download auth
- [PHPBB3-14855] - Update notifications and PM alert bubbles
- [PHPBB3-14870] - Add php events to modify list of PMs
- [PHPBB3-14872] - Remove count versus sizeof restriction in coding guidelines
- [PHPBB3-14874] - Error on sending a .pak smiley
- [PHPBB3-14882] - Add core event to MCP after move posts sync
- [PHPBB3-14887] - ACP profile step 1 lang specific event
- [PHPBB3-14918] - Provide quick access to extension version metadata
- [PHPBB3-14940] - Add ACP template event acp_ext_details_end
- [PHPBB3-14957] - Do not cache database config
- [PHPBB3-14958] - Twig extension function lang() performs redundant template data copying
- [PHPBB3-15020] - Add Events for mcp_topic_postrow_post_subject
- [PHPBB3-15059] - Do not wrap content in code box
- [PHPBB3-15081] - Add ACP template event acp_ext_details_notice
- [PHPBB3-15107] - Add additional vars to event
- [PHPBB3-15131] - Add variable to the 'core.mcp_main_modify_fork_sql' event
- [PHPBB3-15142] - Extension Version Check Should Support Branches
- [PHPBB3-15151] - ACP Cookie settings should contain explanatory text for all fields
- [PHPBB3-15199] - Add core event to the function send() in the messenger
- [PHPBB3-15200] - Allow extensions using custom templates for help/faq controllers
- [PHPBB3-15205] - Add template events to forumlist_body.html
- [PHPBB3-15219] - Add cron to update passwords hashes to bcrypt
- [PHPBB3-15226] - Add index for latest topics query in feeds
- [PHPBB3-15237] - Unguarded includes functions_user
- [PHPBB3-15238] - Add console command to fix left/right IDs for the forums and modules
- [PHPBB3-15241] - Add ACP template event acp_profile_contact_last
- [PHPBB3-15250] - Add core event to MCP at the end of merge_posts

#### New Feature

- [PHPBB3-12545] - new pre-posting event
- [PHPBB3-13730] - [PHP] - core.delete_post_end
- [PHPBB3-14390] - [prosilver] - ucp_main_front_user_details_after
- [PHPBB3-14498] - Not possible to deactivate display of "who is online" and birthdays for guests
- [PHPBB3-14662] - [Template] - memberlist_team_username_prepend & append
- [PHPBB3-14868] - [Template] - mcp_forum_modify_select_after
- [PHPBB3-14996] - [event] - Add Event search_results_topictitle_after

#### Sub-task

- [PHPBB3-13149] - [Event] - core.phpbb_log_get_topic_auth_sql_before

#### Task

- [PHPBB3-15178] - Update 3.1.x dependencies

### Changes since 3.1.9

#### Bug

- [PHPBB3-11446] - Use sql_in_set as designed and consistent with the rest of phpBB code in phpbb_notification_manager
- [PHPBB3-12230] - Do not auto remove user group when Newly Registered Users group was disabled
- [PHPBB3-12925] - Use plural for permanent delete posts/topics confirmation
- [PHPBB3-14109] - MySQL InnoDB does not support multiple index definitions on the same query.
- [PHPBB3-14291] - Function send_file_to_browser() endlessly overwrites 'filesize' in ATTACHMENTS_TABLE
- [PHPBB3-14610] - Q&A CAPTCHA logs error when it has been solved
- [PHPBB3-14615] - delete avatar triggers the new min max value in the HTML5 inputs
- [PHPBB3-14616] - Auto-prune fails on large forums
- [PHPBB3-14631] - 3.1.9 DB cli update crashes with PHP Fatal error: Call to undefined function phpbb\truncate_string()
- [PHPBB3-14654] - Imagemagick > ImageMagick
- [PHPBB3-14661] - Fix a typo in twig.php
- [PHPBB3-14673] - Missing Language Variable
- [PHPBB3-14683] - Typos in operators in some email templates
- [PHPBB3-14703] - module.add adds a module to the wrong parent
- [PHPBB3-14704] - Remove unused language files and corresponding functions
- [PHPBB3-14721] - New registrants choosing old deleted usernames get linked to old accounts with namechange
- [PHPBB3-14742] - Improvements to migrator
- [PHPBB3-14745] - "U_NOTIFICATION_SETTINGS" contains an HTML entity but is printed in a plaintext email
- [PHPBB3-14755] - Error in MCP Move posts
- [PHPBB3-14782] - Quick Links > Your Posts gives mysql error
- [PHPBB3-14788] - Update developer list to reflect team changes
- [PHPBB3-14796] - Log table is using constant in log delete method

#### Improvement

- [PHPBB3-13709] - Fallback to english in email templates by extensions
- [PHPBB3-13716] - Check phpBB version constant against config version
- [PHPBB3-13865] - Complement core event search_modify_param
- [PHPBB3-14184] - Missing info on SMTP mail function option
- [PHPBB3-14429] - core.obtain_users_online_string_modify
- [PHPBB3-14466] - Add an event to cron.php
- [PHPBB3-14469] - [Template] - <!-- EVENT viewforum_topicrow_before -->
- [PHPBB3-14516] - [Template] - memberlist_email_before
- [PHPBB3-14581] - Add core events relating to soft delete
- [PHPBB3-14592] - [PHP] - core.search_backend_search_after
- [PHPBB3-14596] - Prevent installs of 3.1 on PHP 7
- [PHPBB3-14624] - Add event to ucp_profile in signature section
- [PHPBB3-14630] - Add event to ucp_pm_compose
- [PHPBB3-14638] - [PHP] - multiple UCP subscription events for form data and template variables
- [PHPBB3-14643] - Select newest file in restore list
- [PHPBB3-14652] - Typo birthdays
- [PHPBB3-14664] - Fix PHPDoc comment in cron manager
- [PHPBB3-14672] - Add template event to viewforum
- [PHPBB3-14685] - PHP event for altering announcements sql
- [PHPBB3-14687] - Modify viewforum_modify_topicrow
- [PHPBB3-14688] - Add core events to the feeds
- [PHPBB3-14689] - Build 3.2.x API docs
- [PHPBB3-14695] - Add posting_editor_subject_prepend/append template events
- [PHPBB3-14712] - Add search.php core event to allow modifying the forum select list
- [PHPBB3-14713] - Add core event to the admin function get_forum_list()
- [PHPBB3-14715] - Add template events in posting_topic_review & mcp_topic
- [PHPBB3-14720] - Add global javascript variable 'phpbb' to jshint settings
- [PHPBB3-14727] - Event core.search_modify_submit_parameters
- [PHPBB3-14738] - Add core events to improve modifying forum lists
- [PHPBB3-14747] - Add topic_last_poster_id and topic_last_post_time to Event core.modify_posting_auth
- [PHPBB3-14762] - Add core event to session.php to alter IP address
- [PHPBB3-14781] - Add core event to the function group_user_attributes()
- [PHPBB3-14783] - Event - ACP Posting Buttons Before Custom BBCodes
- [PHPBB3-14784] - missing rewrite for lighttpd
- [PHPBB3-14785] - [Template event] - overall_header_headerbar_append
- [PHPBB3-14787] - Add more parameters to the core.search_modify_url_parameters event
- [PHPBB3-14789] - Add missing link hash and form token checks to ACP

#### New Feature

- [PHPBB3-13978] - [PHP] - User control panel - on signature change
- [PHPBB3-14484] - Support extensions in UI tests
- [PHPBB3-14506] - [Template] - mcp_move_before

#### Task

- [PHPBB3-12133] - Update list of browsers supporting filename* in Content-Disposition
- [PHPBB3-14538] - Update composer dependencies
- [PHPBB3-14598] - Phing Sniffer Testing Use Statements in DocBlocks
- [PHPBB3-14743] - Remove PHP7 from test matrix in 3.1.x

### Changes since 3.1.8

#### Bug

- [PHPBB3-8058] - Default style in ACP->Board Settings not observing offset
- [PHPBB3-13028] - "View unanswered posts" link should be called instead "View unanswered topics"
- [PHPBB3-13264] - Editing an unapproved post as a moderator/admin approves it
- [PHPBB3-13521] - Q&A Captcha ACP, required fields error corrupts inputted data
- [PHPBB3-13630] - NULL value parsed into $select_single can cause 403 Forbidden on certain restrictive hosting environments for "Find a Member" function within Private Message composition
- [PHPBB3-13681] - Email queue shouldn't be cached by opcache
- [PHPBB3-13683] - Controller generates urls with absolute path of phpbb's root
- [PHPBB3-13842] - Missing rewrite module on IIS7 leads to an error
- [PHPBB3-13977] - Fatal error entering UCP if bookmarked topic was deleted
- [PHPBB3-14132] - SQL Error when creating a new subject on fresh installation
- [PHPBB3-14136] - IE compatibility meta is missing in overall_header.html
- [PHPBB3-14241] - Security bug into Spambot control Questions
- [PHPBB3-14272] - Use valid html5 input elements in forms
- [PHPBB3-14290] - Function set_modified_headers() never sends 304 'Not Modified' header
- [PHPBB3-14408] - Remove span corners
- [PHPBB3-14422] - Support cmd+enter & ctrl+enter for submitting message
- [PHPBB3-14437] - Place Inline Images on Post get scrambled up -- not follow the order you place them in.
- [PHPBB3-14443] - jabber notification-template prefix "short" breaks resolution of paths in extensions
- [PHPBB3-14475] - Do not log upon automatically removing users form newly registered users group
- [PHPBB3-14481] - phpBB does not obey HTTP_X_FORWARDED_PORT header
- [PHPBB3-14483] - call to header(arg, arg) function sendHeaders() in Response.php causes Error 500 in app.php generated links
- [PHPBB3-14496] - Automatic update relies on cache creating files in cache folder
- [PHPBB3-14500] - Duplicate newversion in build.xml
- [PHPBB3-14514] - Users get skipped in passwords_convert_p1 migration
- [PHPBB3-14519] - Do not query database for unread notifications if all are retrieved
- [PHPBB3-14532] - Database column default incorrectly escaped on MSSQL
- [PHPBB3-14533] - "U_NOTIFICATION_SETTINGS" doesn't return the correct URL
- [PHPBB3-14536] - Force timestamp to be integer in user::format_date()
- [PHPBB3-14559] - Attachments' behaviour in quotes
- [PHPBB3-14562] - Extension's permissions don't have language fallback
- [PHPBB3-14570] - Board versions for 3.2.x can be accidentally downgraded to 3.1.x
- [PHPBB3-14577] - Stop using sizeof() inside for() loop

#### Improvement

- [PHPBB3-10356] - Username search should find all users for administrators instead of NORMALs and FOUNDERs only
- [PHPBB3-12305] - Add new event core.viewforum_get_topic_id_sql to control forum topic listing
- [PHPBB3-14134] - Send warning notification PM in user's language.
- [PHPBB3-14316] - Add memberlist_view.html template events before/after the custom fields and zebra links
- [PHPBB3-14365] - Add core event to the function topic_review()
- [PHPBB3-14366] - Add core events to the function decode_message()
- [PHPBB3-14395] - Add event core.viewtopic_add_quickmod_option_after
- [PHPBB3-14471] - Add filedata var to the core.avatar_driver_upload_move_file_before event
- [PHPBB3-14486] - Add an event and fix an event in login_box()
- [PHPBB3-14508] - Change language notice on account activation
- [PHPBB3-14540] - Adjust class recursive_dot_prefix_filter_iterator to increase performance

#### New Feature

- [PHPBB3-12684] - Add a command to add a user from the CLI
- [PHPBB3-14189] - [PHP] - core.gen_sort_selects_after

#### Task

- [PHPBB3-14538] - Update composer dependencies
- [PHPBB3-14565] - Updates composer to 1.0.0-b2

### Changes since 3.1.7-PL1

#### Bug

- [PHPBB3-12441] - Database-size in ACP missing after update MariaDB from 5.5 to 10.0
- [PHPBB3-12618] - Extension Version Check does not support https
- [PHPBB3-13180] - Increase the field size of date format to allow more syntax for other calendars
- [PHPBB3-13908] - After clause in migration add_column schema tool not honored
- [PHPBB3-14046] - Instant message (jabber) dialog says message sent on the creation screen
- [PHPBB3-14303] - Some changes for UTF-8 variant on language pack?
- [PHPBB3-14374] - Update dynamically generated jquery CDN script tag
- [PHPBB3-14386] - open_basedir restriction in effect with remote upload avatar
- [PHPBB3-14387] - Extend avatar-driver by extension in ACP not possible
- [PHPBB3-14394] - Only purge cache in functional tests if necessary
- [PHPBB3-14396] - Use VCHAR_UNI instead of VCHAR for user_dateformat
- [PHPBB3-14397] - Fix @since tag in event 'core.ucp_prefs_view_after'
- [PHPBB3-14403] - phpbb\log should still work even when no user data is given
- [PHPBB3-14407] - Users not being removed from Newly Registered Users group
- [PHPBB3-14409] - Update session page info before displaying online list
- [PHPBB3-14411] - Delete permanently is not working as it should be
- [PHPBB3-14423] - Display database size for Aria storage engine
- [PHPBB3-14425] - Database tests do not allow using socket
- [PHPBB3-14427] - Memberlist Display Wrong
- [PHPBB3-14433] - Functional tests fail for extensions
- [PHPBB3-14439] - Error page shown in Manage users -> Anonymous -> Select Form -> Avatar when board wide all avatar settings are disabled
- [PHPBB3-14467] - Automatic resize of textarea calculates wrong height
- [PHPBB3-14475] - Do not log removal of users from newly registered group

#### Improvement

- [PHPBB3-14289] - Add events in navbar header
- [PHPBB3-14356] - Add template events to viewtopic around back2top link
- [PHPBB3-14412] - Comment fixes for PHPDoc in the events
- [PHPBB3-14458] - Explicitly state RewriteBase into .htaccess root file

### Changes since 3.1.7

#### Security Issue

- [SECURITY-188] - Check form key in acp_bbcodes

#### Bug

- [PHPBB3-14343] - Undefined variable $phpbb_dispatcher when (un-)locking a topic or post

### Changes since 3.1.6

#### Bug

- [PHPBB3-8839] - Wrong new status of subforumlink on index
- [PHPBB3-8920] - PM-Report for every moderator
- [PHPBB3-9153] - New member can delete pm just in one way
- [PHPBB3-9252] - Conflict when (dis)approving a post by two moderators at the same time
- [PHPBB3-11468] - Controllers can not set additional parameters of page_header()
- [PHPBB3-11971] - Validating not correctly in Spambot countermeasures
- [PHPBB3-12616] - Report notification is not removed when post is disapproved or deleted
- [PHPBB3-13202] - dead code in sessions.php
- [PHPBB3-13423] - Driver sqlite3 failed periodically
- [PHPBB3-13636] - Unexpect return to previous page behaviour
- [PHPBB3-13656] - database_upgrade.php fails when database password contains a % character
- [PHPBB3-13748] - Wrong tooltip after poll vote change
- [PHPBB3-13759] - submit_post doesn't take $data['post_time'] - into account
- [PHPBB3-13799] - Avatar gallery subfolders paths are handled incorrectly
- [PHPBB3-13831] - Post deletion reason is not appearing on moderation logs
- [PHPBB3-13835] - File upload of large files where filename contains umlauts fails
- [PHPBB3-13846] - Permissions around soft deleting are inconsistently handled
- [PHPBB3-13851] - "Can ignore flood limit" permission not taking effect
- [PHPBB3-13892] - "Someone reports a post" notification setting has no effect
- [PHPBB3-13945] - Account re-activation does not create a notification
- [PHPBB3-13950] - If disabled extension - no hidden permission set
- [PHPBB3-13960] - Profile field validation may break
- [PHPBB3-13976] - Fix comment typo in salted_md5 driver
- [PHPBB3-13988] - Atom feeds use relative links for image attachments
- [PHPBB3-13992] - Fix html5 error from output on w3.org its new validator
- [PHPBB3-14058] - subsilver2 Contact us form doesn't have an email subject field
- [PHPBB3-14070] - Disabled avatar types is still displayed on the forum
- [PHPBB3-14106] - Sorting is unworkable while moderating forum (merge topics)
- [PHPBB3-14114] - Inconsistency in install.html in 3.1.x Automatic uopdate package
- [PHPBB3-14127] - Error in the BBCode FAQ in 'Linking to another site'
- [PHPBB3-14142] - Remove unused ignore_configs from avatar drivers
- [PHPBB3-14143] - Flush the in-memory mail queue when writing it to the disk
- [PHPBB3-14153] - Notifications dropdown header doesn't clear floats
- [PHPBB3-14159] - Not accessible link on main ACP page
- [PHPBB3-14161] - The core.download_file_send_to_browser_before - $vars - 'extension' it does not exist
- [PHPBB3-14163] - Select All in code bug in Edge
- [PHPBB3-14181] - Custom report/denial reason not shown in user notifications
- [PHPBB3-14186] - Incorrect string concatenation in phpbb_mcp_sorting()
- [PHPBB3-14200] - Allow hidden users to see theself on viewonline
- [PHPBB3-14215] - [ticket/14212] - Adding event after users have been removed to a group
- [PHPBB3-14217] - [ticket/13591] - Change SQL query into array to allow
- [PHPBB3-14224] - Fix trailing whitespaces
- [PHPBB3-14228] - Vertical align of numbers in polls
- [PHPBB3-14236] - Race condition in the functional tests
- [PHPBB3-14242] - Fix on memberlist the sort method.
- [PHPBB3-14249] - Online list isn't sorted anymore
- [PHPBB3-14258] - Add event in auth::Login
- [PHPBB3-14271] - Update nginx sample config
- [PHPBB3-14276] - Function get_folder_status not setup for use of plurals
- [PHPBB3-14287] - Loading indicator not removed after confirming action that does not produce a message
- [PHPBB3-14297] - Uppercase and lowercase when sorting topics
- [PHPBB3-14334] - Do not use deprecated function get_user_avatar() in user_loader
- [PHPBB3-14339] - State support for PHP 7.0 in docs
- [PHPBB3-14346] - Improve version check output when phpbb.com is unreachable

#### Improvement

- [PHPBB3-7362] - Title/Post Icons Need Attribute Text
- [PHPBB3-8800] - Add "mark topics read" link to "View unread posts"
- [PHPBB3-10343] - ACP: searching for users does not show inactive accounts
- [PHPBB3-13684] - Only resize attached file comments vertically
- [PHPBB3-13934] - Enctype clause for forms may be needed for profile fields
- [PHPBB3-14066] - Add template events to search_body.html
- [PHPBB3-14073] - Add core events to the several places in includes/functions_admin.php
- [PHPBB3-14075] - Event in posting preview
- [PHPBB3-14080] - Add template events to viewforum_body.html before/after/append/prepend the topic row
- [PHPBB3-14088] - Add core events to the search.php
- [PHPBB3-14089] - [Template] - posting_topic_title_after
- [PHPBB3-14098] - Add core events to the search backends (fulltext_*.php)
- [PHPBB3-14102] - Add core event to the mcp_topic.php
- [PHPBB3-14113] - Add core events to the memberlist.php for customizing members search
- [PHPBB3-14117] - Add core events to index.php to allow modifying birthdays list
- [PHPBB3-14123] - Add more descriptive help to the CLI commands
- [PHPBB3-14126] - Add viewtopic_topic_title_after template event
- [PHPBB3-14133] - Comment fix for phpbb_get_user_rank()
- [PHPBB3-14154] - Include "Clean Name" for disabled Extensions
- [PHPBB3-14155] - Add row highlighting to extensions and style management
- [PHPBB3-14156] - Add the Symfony ResponseListener
- [PHPBB3-14164] - Helpful instructions for database updates
- [PHPBB3-14170] - Fix mcp_change_poster_after event
- [PHPBB3-14201] - Add ACP template events
- [PHPBB3-14213] - [PHP] - core.group_add_user_after
- [PHPBB3-14219] - Add email address into inactive user display in ACP
- [PHPBB3-14261] - Pages served from app.php can't disable the update of session_page
- [PHPBB3-14283] - Add a "Manage Group" link on a group page
- [PHPBB3-14313] - Don't display quote button on unapproved posts
- [PHPBB3-14343] - Add event when locking/unlocking posts/topics

#### New Feature

- [PHPBB3-14144] - [Template] - quickreply_editor_subject_before
- [PHPBB3-14146] - [Template] - viewtopic_body_post_subject_before
- [PHPBB3-14187] - [ACP Template] - acp_styles_before_table
- [PHPBB3-14188] - [PHP] - core.acp_styles_action_before
- [PHPBB3-14191] - [PHP] - core.get_gravatar_url_after
- [PHPBB3-14192] - [PHP] - core.memberlist_memberrow_before

#### Task

- [PHPBB3-14140] - Update Symfony to benefit from improvement to the console component

### Changes since 3.1.5

#### Bug

- [PHPBB3-10711] - SQL error DUPLICATE for KEY in FORUMS_TRACK_TABLE
- [PHPBB3-13711] - disabled accounts receive mails
- [PHPBB3-13815] - Event parameters in posting do not affect behavior as expected
- [PHPBB3-13903] - Container naming doesn't allow Windows' semicolon
- [PHPBB3-13930] - Check for correct spacing between keyword & parenthesis in codesniffer
- [PHPBB3-13941] - One test is blocked in an inifinite loop on php 5.5+ and with sqlite3
- [PHPBB3-13948] - Only reports top level WHOIS IP for a user in ACP
- [PHPBB3-13949] - Replace colon with colon lang key in memberlist search page
- [PHPBB3-13951] - Jump to page function does not work since 3.1.5 upgrade
- [PHPBB3-13952] - Fulltext Native errors from tidy_search cron task
- [PHPBB3-13955] - 3.1.5 not loading CDN resources
- [PHPBB3-13962] - Forum dropdown in MCP queue could expand beyond screen size
- [PHPBB3-13966] - Change post's author --> error message
- [PHPBB3-13967] - BBCode guide - loading phpBB logo image breaks https
- [PHPBB3-13980] - Current avatar not removed when uploading with different extension
- [PHPBB3-13984] - AJAX Loading Indicator broken
- [PHPBB3-14037] - Memberlist profile fields headlines not computed from same way as data
- [PHPBB3-14049] - Plupload delete request should use config headers
- [PHPBB3-14069] - Incorrect sql_fetchfield call in style_update_p1 migration
- [PHPBB3-14077] - Select all code not work in Microsoft Edge
- [PHPBB3-14082] - Fix wrong variables in fulltext native search for keyworded results
- [PHPBB3-14083] - Fix wrong variables in fulltext mysql search for author search
- [PHPBB3-14093] - Hardcoded language in ucp_pm_viewfolder.html
- [PHPBB3-14103] - Underline in abbreviations in Firefox 40
- [PHPBB3-14104] - Fix missing variable in fulltext native search query for total results for author
- [PHPBB3-14115] - Microdata is not valid in prosilver

#### Improvement

- [PHPBB3-11530] - Remove quotes that are too deep automatically
- [PHPBB3-12952] - Display HTTP Output along with Status code in case assertion fails in functional tests
- [PHPBB3-13598] - Add an option to post a locked topic
- [PHPBB3-13786] - Add core events to add MCP post options
- [PHPBB3-13818] - Browse Extensions Database link in Extension Manager
- [PHPBB3-13843] - Add templates events to insert custom panel-tab into posting editor
- [PHPBB3-13863] - [Template] - topiclist_row_append/topiclist_row_prepend in mcp_forum.html
- [PHPBB3-13879] - We're using px most places but ems in others
- [PHPBB3-13882] - Avatars in notifications should be lazy loaded
- [PHPBB3-13899] - Add items to core.search_results_modify_search_title
- [PHPBB3-13911] - Add configuration options to profile fields
- [PHPBB3-13931] - Wrong order in docs/events.md
- [PHPBB3-13968] - [PHP] - core.user_setup_after
- [PHPBB3-13971] - Add draft_id variable to event core.posting_modify_template_vars
- [PHPBB3-13981] - Events to intercept uploaded avatar deletion
- [PHPBB3-13995] - Invalid HTML using Projection Media Type
- [PHPBB3-14002] - Add template events before/after user details in ucp_main_front.html
- [PHPBB3-14005] - Allow extensions control post buttons displaying
- [PHPBB3-14014] - [PHP] - mcp_forum_view_actions
- [PHPBB3-14064] - Add template events to ucp_pm_history.html
- [PHPBB3-14065] - Add template events to attachment.html
- [PHPBB3-14067] - Add template events to overall_header.html around feeds
- [PHPBB3-14068] - New events around poll panel in viewtopic
- [PHPBB3-14072] - Add core event to the function format_display()
- [PHPBB3-14085] - [Template] - posting_topic_title_prepend
- [PHPBB3-14086] - [Template] - Add mcp_forum_topic_title_*
- [PHPBB3-14090] - [Template] - mcp_topic_topic_title_*
- [PHPBB3-14091] - [Template] - mcp_topic_subject_*
- [PHPBB3-14101] - Add core event to the download/file.php
- [PHPBB3-14116] - sql_affectedrows has no arguments

#### New Feature

- [PHPBB3-12692] - Add a console command to manage the thumbnail
- [PHPBB3-13311] - Add php event to acp manage_forums when deleting content
- [PHPBB3-13974] - Add php event for altering data when changing a post's poster
- [PHPBB3-13997] - [Template] - posting_editor_submit_buttons
- [PHPBB3-14006] - [PHP] - core.ucp_register_agreement
- [PHPBB3-14041] - [Template] - viewtopic_dropdown_top_custom
- [PHPBB3-14042] - [Template] - viewtopic_dropdown_bottom_custom
- [PHPBB3-14043] - [PHP] - core.get_avatar_after
- [PHPBB3-14087] - Add an event to ucp_activate.php.

#### Sub-task

- [PHPBB3-13694] - Allow modifying the Postgres author search query for results

#### Task

- [PHPBB3-13947] - Add CHItA to developer list
- [PHPBB3-14010] - Update Plupload to 2.1.8
- [PHPBB3-14099] - Update Twig to 1.20

### Changes since 3.1.4

#### Bug

- [PHPBB3-9563] - Empty categories showing up on index
- [PHPBB3-11521] - Missing language string when migration is invalid
- [PHPBB3-11532] - acp_users_overview.html autocompletes "confirm email" and "password" fields in chrome
- [PHPBB3-13516] - icc-profiler check should skip extensions vendor
- [PHPBB3-13564] - User is not removed from oauth tables upon deletion
- [PHPBB3-13664] - Allow changing total list for unapproved posts in mcp_front
- [PHPBB3-13755] - uploading attachments results in error: parsing server response.
- [PHPBB3-13763] - Language Spelling Error: Completly
- [PHPBB3-13771] - AJAX responses do not support exceptions messages
- [PHPBB3-13772] - Error in @param variable type for phpbb\passwords\manager
- [PHPBB3-13779] - Permission set migration tool grants regular users heightened permissions
- [PHPBB3-13787] - Duplicate entry of poll_delete in prosilver template
- [PHPBB3-13792] - Travis fails installing hhvm-nigthly
- [PHPBB3-13819] - Add missing sql_freeresult() to files in includes/
- [PHPBB3-13822] - Permissions are in the wrong category
- [PHPBB3-13823] - Update package is missing file with inline whitespace changes
- [PHPBB3-13827] - controller\helper::message does not return JSON object for AJAX requests
- [PHPBB3-13830] - phpcs doesn't detect class using in catch blocks
- [PHPBB3-13833] - Submit a lot of messages without timeout between messages
- [PHPBB3-13838] - Add a sniff to ensure that the opening brace of a control statement is on the line after
- [PHPBB3-13852] - Inconsistent tab navigation when login in
- [PHPBB3-13861] - Old styles are not removed by style update migration
- [PHPBB3-13868] - Adding multiple language files for acp/mcp/ucp modules is incorrectly handled for extensions
- [PHPBB3-13873] - Remove broken print stylesheet in preference of &view=print
- [PHPBB3-13875] - Lint test should ignore cache, ext, and store folder
- [PHPBB3-13878] - Properly display background images when printing with webkit browser
- [PHPBB3-13888] - "Couldn't fetch mysqli_result" error on username search and egosearch
- [PHPBB3-13913] - Post subject of password protected and list-only forums shown on board index
- [PHPBB3-13922] - Whitespace found at end of line phpBB/includes/functions_admin.php
- [PHPBB3-13928] - Fix build_cfg_template_test after ticket/sec-184
- [PHPBB3-13939] - phpBB no longer shows error messages when uploading files with drag/drop
- [PHPBB3-13942] - phpbb\user::set_lang() adds extra path and PHP extension to ext lang files

#### Improvement

- [PHPBB3-12101] - Redirect for Microsoft servers in /includes/functions.php:redirect()
- [PHPBB3-12542] - Highlight textarea when files are dragged over it
- [PHPBB3-12717] - Improve the code sniffer
- [PHPBB3-13200] - Add autocomplete="off" to additional password fields
- [PHPBB3-13648] - Allow extensions using custom bbcode validation methods
- [PHPBB3-13699] - Add template events in viewforum_body.html before and after the title
- [PHPBB3-13745] - Add veiwtopic.php core event to allow manipulating poll data
- [PHPBB3-13750] - Add generate_forum_nav() core event to allow modifying navlinks text
- [PHPBB3-13752] - Add viewonline.php core event to allow modifying forum data SQL query
- [PHPBB3-13753] - Add template events to forum category header
- [PHPBB3-13778] - Misleading instruction text for recaptcha plugin
- [PHPBB3-13790] - Update phpcs to 2.3.2
- [PHPBB3-13791] - Add more post buttons template events to viewtopic_body.html
- [PHPBB3-13808] - Add event before and after the search form
- [PHPBB3-13809] - Test php parsing on php7 on travis
- [PHPBB3-13841] - Add event when topics are moved
- [PHPBB3-13858] - Make the Plupload uploader instance available in the global namespace
- [PHPBB3-13872] - Allow template events to have a changed tag
- [PHPBB3-13876] - Use async webfontloader to load webfont from googles CDN
- [PHPBB3-13905] - loading.gif loaded before document load when it isn't needed

#### Security Issue

- [PHPBB3-13917] - Use hash_equals() if possible in password driver helper
- [SECURITY-184] - Do not output passwords to HTML input fields

#### Sub-task

- [PHPBB3-13660] - Allow changing the query for total reports in mcp_front
- [PHPBB3-13661] - Allow changing how and which logs are retrieved
- [PHPBB3-13668] - Allow modifying the query to get details from the post report
- [PHPBB3-13672] - Allow changing the query to obtain the user-submitted report.
- [PHPBB3-13685] - Allow modifying the keywords search query for mysql fulltext search
- [PHPBB3-13686] - Allow modifying the fulltext native search query for total results before before
- [PHPBB3-13689] - Allow modifying the Postgres native search query for results
- [PHPBB3-13691] - Allow modifying the fulltext native search query for total results for author
- [PHPBB3-13693] - Allow modifying the MySQL author search query for results

#### Task

- [PHPBB3-13807] - Extend event exporter to filter by min or max version to allow generating event diffs for releases
- [PHPBB3-13887] - JS could use some refactoring

### Changes since 3.1.3

#### Security

- [SECURITY-180] - An insufficient check allowed users of the Google Chrome browser to be redirected to external domains (e.g. on login)

#### Bug

- [PHPBB3-8050] - Avatar & Long PM recipients list break out of template
- [PHPBB3-8250] - Forum selections in MCP queue not working
- [PHPBB3-8494] - Cannot install two boards on the same postgresql database
- [PHPBB3-11424] - Quick-Mod Tools race condition results in NO_MODE
- [PHPBB3-12368] - Updating database fails in upgrade from 3.0 when trying twice without purging the cache
- [PHPBB3-13348] - sql_freeresult() should be called in feed base class
- [PHPBB3-13414] - download/file.php 304 Not Modified bug
- [PHPBB3-13433] - A dot in email address leads to unwanted extraneous dot
- [PHPBB3-13463] - Mark read icon displays on wrong side in RTL
- [PHPBB3-13469] - Soft delete fails with error message
- [PHPBB3-13472] - Notification for admin activation of user doesn't get pruned after the user is deleted
- [PHPBB3-13477] - File caching of extensions' version check file doesn't work
- [PHPBB3-13493] - $helper->route gives wrong path for guests with trailing slashes and mod_rewrite disabled
- [PHPBB3-13522] - Q&A Captcha ACP, admins can add blank answers
- [PHPBB3-13538] - Add tests for pagination in nested loops
- [PHPBB3-13542] - Add $error to core UCP event for better validating of new UCP options
- [PHPBB3-13550] - Invalid JSON response returned when plupload dir is not writable
- [PHPBB3-13551] - Authentication method- LDAP- entered value 'ldap base dn' does not display
- [PHPBB3-13555] - Poll options preview rendered incorrectly by <br /> collision
- [PHPBB3-13563] - No Private Message button shown in memberlist for subsilver2
- [PHPBB3-13568] - Imagick path validated as relative path although ACP asks for absolute path
- [PHPBB3-13569] - Use sql_freeresult for $result assignments and remove unneeded $result assignments
- [PHPBB3-13570] - Mysqli extension supports persistent connection since PHP 5.3.0
- [PHPBB3-13577] - Skip tests requiring fileinfo if fileinfo is not enabled
- [PHPBB3-13586] - Allow '0' as username with Jabber notifications
- [PHPBB3-13587] - SQL syntax errors in get_prune_users()
- [PHPBB3-13588] - Information message for disabled fsockopen() is not displayed correctly
- [PHPBB3-13590] - Remember me login keys should be centered
- [PHPBB3-13597] - Modify variable-variable syntax to be compatible with PHP7
- [PHPBB3-13612] - Functional test of extension fails if ext requires page refresh
- [PHPBB3-13615] - Avatar Gallery shows categories but no images in subsilver2
- [PHPBB3-13617] - Bot session continuation with invalid f= query paramter causes SQL error
- [PHPBB3-13618] - Small grammatical typo in the English FAQ regarding COPPA
- [PHPBB3-13631] - Fix variable name in core.phpbb_content_visibility_get_global_visibility_before event
- [PHPBB3-13639] - Unused class icon-search-advanced references nonexistent image
- [PHPBB3-13644] - Type hint dispatcher_interface instead of dispatcher
- [PHPBB3-13649] - Subforum tooltip always displays "no unread posts" on viewforum.php
- [PHPBB3-13655] - $phpbb_dispatcher undefined in phpbb_mcp_sorting()
- [PHPBB3-13657] - Start testing against PHP7
- [PHPBB3-13666] - data-clicked attribute is not always removed on ajax form submissions
- [PHPBB3-13667] - Big buttons are incorrectly aligned in Chrome on Windows
- [PHPBB3-13670] - Fix fatal function name must be a string in functional tests
- [PHPBB3-13698] - Incorrect password message shows unparsed "Board Administrator"-link
- [PHPBB3-13702] - Page is zoomed in by default on iOS devices in landscape mode
- [PHPBB3-13703] - Uploaded avatars are not loading correctly when passing through the events
- [PHPBB3-13719] - Remove superfluous $search_options in acp_search.php
- [PHPBB3-13721] - URL Rewriting doesn't work on IIS7
- [PHPBB3-13723] - Update docs/AUTHORS for 3.1.4-RC1
- [PHPBB3-13726] - Responsive breadcrumbs JavaScript incorrectly calculates width of hidden items
- [PHPBB3-13727] - Responsive breadcrumbs JavaScript doesn't reset wrap- classes when resizing
- [PHPBB3-13732] - Update composer for PHP7 compatibility
- [PHPBB3-13736] - Replace colons with colon lang keys in Contact us page
- [PHPBB3-13738] - Sami still refers to develop-* branches
- [PHPBB3-13741] - Remove outdated comments in CSS files
- [PHPBB3-13742] - Local avatar driver is not generating correct urls on index
- [PHPBB3-13743] - Missing global vars $phpbb_root_path and $phpEx in message_parser.php
- [PHPBB3-13747] - Fix test_validate_path_linux method
- [PHPBB3-13749] - Add missing slash to base uri in helper route tests

#### Improvement

- [PHPBB3-13313] - Add a core php event to the mass email form
- [PHPBB3-13467] - Add a CONTRIBUTING file to the project on Github
- [PHPBB3-13510] - Add template event before/after the pagination on viewtopic
- [PHPBB3-13512] - Add template events to viewtopic_body.html before/after the post details
- [PHPBB3-13518] - Add core event to markread() in functions.php
- [PHPBB3-13532] - Add core event to get_unread_topics() in functions.php
- [PHPBB3-13533] - Add template events to the header of search_results.html
- [PHPBB3-13535] - Add ucp_profile.php core event to allow modifying account settings on editing
- [PHPBB3-13536] - Add UCP/ACP core events to allow modifying user profile data on editing
- [PHPBB3-13537] - Add core events on mcp_queue for approval and disapproval
- [PHPBB3-13540] - Add events to the topic review while posting and moderating posts
- [PHPBB3-13578] - Add ucp_register.php core event
- [PHPBB3-13591] - Add functions.php core event to the function obtain_users_online_string()
- [PHPBB3-13595] - Remove unused instances of the bbcode class
- [PHPBB3-13596] - Add display_forums() core event to allow modifying forums list data
- [PHPBB3-13600] - Add core event to allow extensions to create a custom help page
- [PHPBB3-13602] - Add template event overall_header_navbar_before
- [PHPBB3-13628] - Add template events into ucp profile html files
- [PHPBB3-13635] - Add sql_ary to UCP profile event
- [PHPBB3-13637] - Add php event for modifying the data when composing a PM
- [PHPBB3-13643] - kernel_terminate_subscriber should have a very low priority
- [PHPBB3-13650] - New core event for UCP profile mode
- [PHPBB3-13658] - [Event] - Before and after deletion of topics
- [PHPBB3-13675] - Add validate to acp_profile event and add template events
- [PHPBB3-13679] - Add template event overall_header_searchbox_before
- [PHPBB3-13701] - New posting_pm_layout.html template events to wrap "include posting_pm_header.html"
- [PHPBB3-13710] - Add template events around smilies display

#### New Feature

- [PHPBB3-13336] - New core events for user activation

#### Sub-task

- [PHPBB3-13142] - [Event] - Before query to list unapproved and deleted posts
- [PHPBB3-13592] - Add core event to allow changing get_visibility_sql's result
- [PHPBB3-13621] - Fix event phpbb_content_visibility_get_forums_visibility_before to get where_sql working as specified
- [PHPBB3-13625] - Add more variables to core.viewforum_get_topic_data

#### Task

- [PHPBB3-9457] - [Accessibility] - Add WAI-ARIA landmarks to the Prosilver template files
- [PHPBB3-12599] - Update documentation styling
- [PHPBB3-13572] - Upgrade composer to 1.0.0-alpha9
- [PHPBB3-13626] - Add branch aliases
- [PHPBB3-13634] - Update README to show new branch names
- [PHPBB3-13640] - Rearrange order of color css rules

### Changes since 3.1.3-RC1

#### Bug

- [PHPBB3-12933] - The search operator for partial matches does not work
- [PHPBB3-13544] - Migrations' "permission.permission_unset" deletes all permissions instead of just the one stated
- [PHPBB3-13556] - Translated exceptions from file_downloader are handled incorrectly
- [PHPBB3-13557] - Migrations for 3.0.13 and PL1 are missing

#### Task

- [PHPBB3-13553] - Controller helper needs a message handler to replace error handler

### Changes since 3.1.2

#### Security

- [PHPBB3-13519] - Correctly validate imagick path as path and not string

#### Bug

- [PHPBB3-9100] - Inline attachments are not being inserted at the cursor
- [PHPBB3-11613] - Cookies do not work for netbios domain
- [PHPBB3-12089] - Make HTTP status code error messages more informative
- [PHPBB3-12642] - Custom profile field isn't displayed
- [PHPBB3-12698] - Replace all instances of magic numbers with constants in javascript
- [PHPBB3-12866] - Wrong profile field validation options
- [PHPBB3-13098] - Repair Yahoo contact field
- [PHPBB3-13192] - confirm_box() action contains app.php when enable_mod_rewrite is set
- [PHPBB3-13238] - \phpbb\db\migration\data\v310\mysql_fulltext_drop tries to drop non existent indexes
- [PHPBB3-13272] - Changed Files packages do not include vendor directory
- [PHPBB3-13282] - PostgreSQL error when creating boolean/dropdown custom profile fields
- [PHPBB3-13302] - ACP links to docs need to be updated to 3.1 URLs
- [PHPBB3-13307] - develop/mysql_upgrader.php does not work anymore
- [PHPBB3-13319] - Icons/smilies table improperly formed when no images present
- [PHPBB3-13346] - Missing space in posting_editor.html
- [PHPBB3-13357] - LOG_MOVED_TOPIC Language var missing
- [PHPBB3-13358] - Add class for retrieving remote file data
- [PHPBB3-13362] - The whole cache dir (excluding the .htaccess and index.html files) should be ignored by git
- [PHPBB3-13366] - Dynamic config for "plupload_last_gc" is static
- [PHPBB3-13381] - Code Sniffer complains about 3.1.2 migration
- [PHPBB3-13385] - Add free result after running update query in $config->set_atomic()
- [PHPBB3-13391] - subsilver2 poll options must have a setting of 1 when editing a post
- [PHPBB3-13393] - Invalid parameters passed to call_user_func_array in version_helper.php
- [PHPBB3-13396] - Multibyte chars cause attachment upload to fail
- [PHPBB3-13400] - Add a new message for high server loads during search
- [PHPBB3-13405] - A typo in style_update_p1.php migration may prevent updating in some circumstances
- [PHPBB3-13406] - ADD INDEX syntax may cause an error in earlier MySQL versions
- [PHPBB3-13420] - Prune users bug - filter all with 0 posts
- [PHPBB3-13427] - Add template events to MCP front before/after each list
- [PHPBB3-13431] - Wrong margin-left for RTL sites in Internet Explorer mobile view
- [PHPBB3-13432] - Migrator module tool does not add the needed module language file
- [PHPBB3-13441] - functions_convert fails to set global moderators default group
- [PHPBB3-13442] - UTF-8 symbols for database host
- [PHPBB3-13448] - \phpbb\messenger->template can't find email templates in extensions
- [PHPBB3-13453] - Sort params in Canonical URL
- [PHPBB3-13470] - Mass email says "user doesn't exist" when all users is selected
- [PHPBB3-13486] - Call to undefined method phpbb\db\driver\factory::sql_escpape() on database update
- [PHPBB3-13489] - Allow the migrations to use the DI container
- [PHPBB3-13490] - Unicode chars are broken in edit message after preview
- [PHPBB3-13492] - Custom BBCode URL tokens do not support IDN
- [PHPBB3-13504] - "Array" is displayed when searching, or when unanswered posts or active topics are selected
- [PHPBB3-13507] - Large images in posts can cause horizontal scrollbars
- [PHPBB3-13511] - The "Unused Use" Sniff is broken
- [PHPBB3-13530] - Fix undefined variables in migrations and tests
- [PHPBB3-13534] - Non-existent path in attachment settings causes travis failure
- [PHPBB3-13543] - Slow tests fail on 3.1 and 3.2

#### Improvement

- [PHPBB3-11033] - FULLTEXT_SPHINX_NO_CONFIG_DATA references unrequired field
- [PHPBB3-12567] - [proSilver] - viewtopic_body.html: Change 'back2top' anchor in to '#top'
- [PHPBB3-12926] - Support for IDN (IRI)
- [PHPBB3-13266] - Enabling twig dump function if DEBUG is defined
- [PHPBB3-13306] - Add error level to the error collector
- [PHPBB3-13312] - [event] - Add core event to the mass email form
- [PHPBB3-13368] - Add the forum_data var to the core.viewforum_get_topic_ids_data event
- [PHPBB3-13370] - Add ability to call class methods more easily in the convertor framework
- [PHPBB3-13389] - Replace pattern with path in routing.yml
- [PHPBB3-13402] - Code Sniffer, unused use, check the function doc blocks
- [PHPBB3-13409] - Add event to modify search parameters before searching
- [PHPBB3-13419] - Add template event at the end of the file
- [PHPBB3-13422] - Add new events in save custom cookies and set custom ban type
- [PHPBB3-13428] - Add core events to memberlist.php for teampage
- [PHPBB3-13430] - Add event for modifying prune SQL
- [PHPBB3-13435] - Add core event to modify submit_post() sql data
- [PHPBB3-13437] - [Template] - viewtopic_body_post_author_before/after
- [PHPBB3-13439] - [event] - Add event to run code at beginning of ACP users overview
- [PHPBB3-13440] - [event] - Add event to process when a user fails a login attempt
- [PHPBB3-13449] - Add viewforum.php core event after the topic data has been assigned to template
- [PHPBB3-13466] - Add bbcode_uid and bitfield to event core.message_parser_check_message
- [PHPBB3-13478] - Add core event core.bbcode_cache_init_end

#### Sub-task

- [PHPBB3-13141] - Add an event to allow applying additional permissions to MCP access besides f_read
- [PHPBB3-13146] - Add an event to allow changing the result of calling get_forums_visibility_sql()
- [PHPBB3-13147] - Add an event to change get_global_visibility_sql()'s results
- [PHPBB3-13148] - Add an event to creating a final way to modify edit logs output
- [PHPBB3-13154] - Add an event to edit user list for notifications
- [PHPBB3-13158] - Add an event to allow adding extra auth checks when the user is posting
- [PHPBB3-13159] - Add an event to allow extra auth checks when reporting posts
- [PHPBB3-13160] - Add an event to viewtopic before viewing permissions

#### Task

- [PHPBB3-12924] - Meta tags should be self-closing
- [PHPBB3-13528] - Boolean checkbox profile fields display "1" instead of selected value

### Changes since 3.1.1

#### Security

- [SECURITY-171] - Version helper does not properly escape version info
- [SECURITY-169] - AJAX request with unexpected referrer causes infinite loop

#### Bug

- [PHPBB3-10442] - XHTML is invalid when a forum link without redirect counter is present
- [PHPBB3-10744] - Prevent user from installing styles with reserved directory names
- [PHPBB3-11863] - User registration settings show incorrectly as disabled when board-wide emails are disabled
- [PHPBB3-12703] - Notification System sends exact same SQL query multiple times
- [PHPBB3-13083] - Language correction in NO_ENTRIES in acp_logs
- [PHPBB3-13100] - Don't display "delete reason" dialog for shadow-topics
- [PHPBB3-13193] - Post counts in Private Messages should link to the user's posts
- [PHPBB3-13197] - Group Avatar not deleted from users
- [PHPBB3-13204] - Login flood control error supresses incorrect credential error
- [PHPBB3-13209] - Boolean (Yes/No) custom profile field doesn't show given name
- [PHPBB3-13216] - Datetime tests fail randomly
- [PHPBB3-13228] - "Code: Select all" font-size too big in Private Messages
- [PHPBB3-13239] - Can´t upload Attachments on iOS
- [PHPBB3-13241] - Topics are being duplicated in multipage forums
- [PHPBB3-13242] - Validation error in Contact a Board Administrator
- [PHPBB3-13243] - Debug error when clicking Re-check all versions on ACP manage extensions page
- [PHPBB3-13251] - Database password containing special characters no longer accepted after upgrade to 3.1.0
- [PHPBB3-13253] - MCP queue link in active topics search is missing
- [PHPBB3-13265] - "Edit profile" link on view-own-profile page should only show if user has permission to edit
- [PHPBB3-13270] - Upgrading from 3.0.12 to 3.1.1 does not display moderator soft delete permissions
- [PHPBB3-13277] - Move Up & Down does not take work in Internet Explorer
- [PHPBB3-13280] - $user->page['page'] - is invalid resulting in confirm_box() not working correctly
- [PHPBB3-13284] - Message body not included in email topic message
- [PHPBB3-13298] - Use mysql_free_result to free result sets which were requested using mysql_query()
- [PHPBB3-13300] - Jabber field still shown in profile when feature is disabled
- [PHPBB3-13301] - Apache Authentication is probably broken
- [PHPBB3-13303] - Migrator caught in loop calculating dependencies
- [PHPBB3-13315] - Upgrade from 3.0.12 to 3.1.1 resets CAPTCHA selection
- [PHPBB3-13316] - reCAPTCHA does not work on secured connection
- [PHPBB3-13318] - login_username doesn't have multibyte parameter set to true
- [PHPBB3-13323] - posting.php can pass invalid auth option to acl_get()
- [PHPBB3-13332] - Insufficient information passed to password drivers for converted boards
- [PHPBB3-13337] - Mark subforums read triggers error if subforums contain no topics
- [PHPBB3-13338] - Some tests fail when run on their own
- [PHPBB3-13342] - 310/captcha_plugins migration changes recaptcha to nogd
- [PHPBB3-13349] - Incorrect entities used for breadcrumb separator in CSS
- [PHPBB3-13354] - Unknown column 'topic_logs' in 'where clause' when deleting topic log in MCP
- [PHPBB3-13376] - deregister_globals() does not work correctly when $_COOKIE['GLOBALS'] is specified

#### Improvement

- [PHPBB3-12681] - Cache the compiled routes and dump the url_generator
- [PHPBB3-12885] - Wrong index page title when using Board Index text
- [PHPBB3-13023] - [event] - Add Event posting_editor_buttons_custom_tags_before
- [PHPBB3-13133] - Allow @vendor_extname in INCLUDECSS
- [PHPBB3-13182] - [event] - Add posting.php core event to allow modifying the message before parsing
- [PHPBB3-13220] - [event] - Add template events to memberlist_search.html
- [PHPBB3-13290] - [event] - Add template event index_body_forumlist_body_after
- [PHPBB3-13294] - [event] - Add message_parser.php core event for additional message handling before parsing
- [PHPBB3-13297] - Add unicode modifier to url/email regular expression patterns
- [PHPBB3-13309] - [event] - Add ACP template event acp_email_options_after
- [PHPBB3-13310] - [event] - Add core event core.acp_email_modify_sql
- [PHPBB3-13326] - Add viewtopic_url variable to a viewtopic event
- [PHPBB3-13328] - [event] - Add event core.mcp_view_forum_modify_sql
- [PHPBB3-13347] - [event] - Add new template events to acp_forums.html

#### New Feature

- [PHPBB3-12962] - Use phantomjs and webdriver for UI testing

#### Task

- [PHPBB3-13324] - Composer no longer downloads sami/sami and fabpot/goutte
- [PHPBB3-13325] - Make installing dependencies for tests more user friendly or optional
- [PHPBB3-13331] - Sami run as part of phing MUST NOT switch branches

### Changes since 3.1.0

#### Security

- [SECURITY-164] - Cross Site Scripting via PATH_INFO in page_name variable

#### Bug

- [PHPBB3-13248] - Login functions need to use provider collection for retrieving provider
- [PHPBB3-13267] - Automatic Update instructions indicate that only the install folder is necessary
- [PHPBB3-13268] - MSSQL's get_existing_indexes() function improperly appends ternary result
- [PHPBB3-13271] - Anonymous users can CC themselves on emails sent to admin via contact form

#### Task

- [PHPBB3-13262] - Add note to docs about htaccess file when upgrading 3.0 to 3.1

### Changes since 3.1.0-RC6

#### Bug

- [PHPBB3-13126] - More detailed output for migrations needed
- [PHPBB3-13208] - Security issues are not pulled into the changelog
- [PHPBB3-13210] - Queue Cron Job checks for wrong config variable queue_interval_config
- [PHPBB3-13211] - Add possibility to save migrations output to log
- [PHPBB3-13221] - Can't upgrade to 3.1 from 3.0.11 and older
- [PHPBB3-13223] - Using get_username_string() for email template variables causes HTML markup in emails
- [PHPBB3-13225] - phpbb_hash() undefined in phpbb\db\migration\data\v30x\release_3_0_5_rc1.php
- [PHPBB3-13226] - Stray $rank_img in memberlist.php
- [PHPBB3-13227] - Remote avatars do not work with cURL wrapper
- [PHPBB3-13229] - Memberlist is getting overloaded with redundant SQL queries
- [PHPBB3-13230] - Deprecated phpbb_clean_path() does not work anymore
- [PHPBB3-13231] - The migration contact_admin_form must depends on config_db_text
- [PHPBB3-13232] - Email queue does not get run
- [PHPBB3-13234] - Remember me cookie gets unset by admin reauthentication

#### Improvement

- [PHPBB3-13207] - Default subscription notification setting for new users does not include email

#### Task

- [PHPBB3-13215] - Update Symfony Components to 2.3.21

### Changes since 3.1.0-RC5

#### Bug

- [PHPBB3-12530] - Visual confirmation is breaking layout in prosilver's mobile mode
- [PHPBB3-12568] - docs/README.html references MODs instead of extensions
- [PHPBB3-13124] - PHP event extractor too strict on doc blocks
- [PHPBB3-13138] - Banned users cause infinite recursion
- [PHPBB3-13140] - Header links don't re-appear on window size increase
- [PHPBB3-13161] - PHP Warnings issued from phpbb database test case
- [PHPBB3-13163] - Header Navbar Responsiveness Broken
- [PHPBB3-13164] - Data sent to core.submit_post_end event does not include fresh post_visibility
- [PHPBB3-13168] - Warning displayed in PHP 5.6 for mbstring.http_input
- [PHPBB3-13169] - Responsive forms not displaying correctly in RTL
- [PHPBB3-13171] - Can not delete posts and soft delete topics in MCP topic view
- [PHPBB3-13174] - Minor HTML error in ucp_pm_viewmessage.html (needs closing </div>)
- [PHPBB3-13177] - Post count-based ranks do not display in viewtopic
- [PHPBB3-13181] - Sphinx config template should use place holders for database credentials
- [PHPBB3-13186] - Do not link post count to author search if search disabled
- [PHPBB3-13187] - INSTALL.html is not valid HTML
- [PHPBB3-13188] - Sphinx index() function triggers slow queries that time out replies
- [PHPBB3-13190] - phpbb_session_login_keys_test::test_reset_keys fails on develop-ascraeus
- [PHPBB3-13194] - BBCode isn't parsed when issuing a warning for a post
- [PHPBB3-13203] - Use constant time comparison method for comparing password hashes
- [PHPBB3-13217] - Remember me cookie leak
- [PHPBB3-13218] - Missing token check in acp_styles
- [PHPBB3-13221] - Can't upgrade to 3.1 from 3.0.11 and older
- [PHPBB3-13223] - Using get_username_string() for email template variables causes HTML markup in emails

#### Improvement

- [PHPBB3-12796] - View own Profile should have an edit button
- [PHPBB3-12799] - Place the events for f_brunoais_read_other
- [PHPBB3-13041] - help_faq.php language file needs to be revised

#### New Feature

- [PHPBB3-13205] - Add mark all PMs read button

### Changes since 3.1.0-RC4

#### Bug

- [PHPBB3-10729] - Post editor information is not updated when user being deleted with posts
- [PHPBB3-11224] - SQL cache destroy does not destroy queries to tables joined
- [PHPBB3-12368] - Updating database fails in upgrade from 3.0 when trying twice without purging the cache
- [PHPBB3-12489] - Description for Contact link in custom profile fields
- [PHPBB3-12657] - Add a test file for cli command cache:purge
- [PHPBB3-12858] - 'GMT' is hard coded and not pulled from language files
- [PHPBB3-12889] - multi-select element in unban email-adresses not limited in width
- [PHPBB3-13011] - Javascript bug when selecting first one or two characters of a post
- [PHPBB3-13027] - PM folder full percentage could be a bit more accurate
- [PHPBB3-13033] - Duplicate entry SQL error thrown when running notifications_use_full_name migration
- [PHPBB3-13045] - Pragma header not specified as response header by RFC2616
- [PHPBB3-13048] - AJAX requests are being stored to session_page
- [PHPBB3-13055] - String profile fields validation limits content to latin chars only
- [PHPBB3-13070] - Wrong hook name is registered for array(template, display)
- [PHPBB3-13071] - total_match_count is used before core.search_get_posts_data event
- [PHPBB3-13080] - Responsive design - language variable to long
- [PHPBB3-13082] - Search box does not displayed proper in admin cp when no logs listed
- [PHPBB3-13085] - Fix typo in oauth.php
- [PHPBB3-13086] - Update ACP_MASS_EMAIL_EXPLAIN language key
- [PHPBB3-13087] - WLM link is empty in viewtopic
- [PHPBB3-13097] - Fix missing unit type in forms.css
- [PHPBB3-13104] - Responsive tabs display bug in IE11
- [PHPBB3-13105] - Future dates are displayed as "Tomorrow" with relative date format
- [PHPBB3-13111] - Debug output when editing DropDown Custom Fields with multiple languages
- [PHPBB3-13113] - The routes are not always generated for the good app.php file
- [PHPBB3-13116] - Topic and post approval notifications got interchanged
- [PHPBB3-13117] - Installation fails on MySQL 5.7 because auto_increment columns can be NULL
- [PHPBB3-13118] - datetime.class parameter not used in user class
- [PHPBB3-13120] - phpbb_load_extensions_autoloaders() doesn't work very well with the extensions behind a symlink
- [PHPBB3-13121] - Customise Purge Cache always returns user to Styles page
- [PHPBB3-13125] - Uploaded avatars are not displayed in IE <= 7

#### Improvement

- [PHPBB3-12408] - Add quick setting for "default guest style" to ACP board settings
- [PHPBB3-12985] - Add event to modify the redirect after a successful login
- [PHPBB3-12993] - Add event to get_user_rank() function
- [PHPBB3-13025] - Add template events for buttons on viewforum and viewtopic
- [PHPBB3-13059] - Add core event to generate_page_link() to allow modifying pagination URLs
- [PHPBB3-13072] - Add total_match_count to core.search_get_topic_data event
- [PHPBB3-13077] - Change module order in Customise tab for better usability
- [PHPBB3-13094] - Remove the search box if there are no new posts to search for
- [PHPBB3-13107] - Add template events to forum row in forumlist_body.html
- [PHPBB3-13108] - Add core event to the parse_attachments() function to allow modifying files info
- [PHPBB3-13110] - Add core event to the page_footer() function to allow handling overall output
- [PHPBB3-13122] - phpbb_wrapper_gmgetdate_test intermittently fails
- [PHPBB3-13134] - Add core event to the root of the function display_forums()
- [PHPBB3-13137] - Remove schema.json from repository

#### Sub-task

- [PHPBB3-12929] - Add an event when getting the information for PM composal
- [PHPBB3-12930] - Add an event to the query getting the post for quoting in a PM

#### Task

- [PHPBB3-10794] - Make schema available at runtime
- [PHPBB3-12987] - Cleanup the services.yml file
- [PHPBB3-13106] - Remove the \phpbb\di\pass\kernel_pass class
- [PHPBB3-13119] - Add events to mcp and acp ban modules
- [PHPBB3-13123] - Add events to allow post blocking and post pre/past processing

### Changes since 3.1.0-RC3

#### Bug

- [PHPBB3-10472] - ACP "add multiple smilies" page is unusable on 1024x768 resolution
- [PHPBB3-11909] - phpbb/db/migrator::load_migrations is never called
- [PHPBB3-12258] - Add attachment: error alert popup on "empty.png" does not show up
- [PHPBB3-12506] - Long post titles bump the username down an extra row beneath the edit/quote/delete buttons
- [PHPBB3-12658] - Add tests for config:* cli commands
- [PHPBB3-12661] - Extensions templates not loaded from "all" by helper/render()
- [PHPBB3-12734] - Custom profile manager should not suppress errors when inserting user rows
- [PHPBB3-12765] - acp_profile.php should use db/tools
- [PHPBB3-12852] - \phpbb\path_helper get_url_parts does not handle get variable with no value
- [PHPBB3-12856] - plupload images are not integrated into style-path
- [PHPBB3-12862] - Smiley and Whos Onlike pop-up boxes are making styling difficult
- [PHPBB3-12949] - Undefined function mime_content_type()
- [PHPBB3-12966] - Undefined sorting of posts with same post_time on postgres
- [PHPBB3-12975] - Catchable fatal error after update to RC3
- [PHPBB3-12976] - Pagination of UCP manage attachments page in prosilver does not support plural forms
- [PHPBB3-12983] - UCP preferences, Display posts ordering by: input is not properly validated
- [PHPBB3-12984] - Index page: blank line when no forum description shown
- [PHPBB3-12986] - Wrong functions call order breaks detection of common words in search
- [PHPBB3-12990] - The prefix for the notification's services is harcoded
- [PHPBB3-12996] - tests/lock/flock_test.php should use microtime() instead of time()
- [PHPBB3-12998] - Undefined $lang in mcp_warn.php::add_warning()
- [PHPBB3-13004] - Topic tools button is displayed even if dropdown is empty
- [PHPBB3-13008] - Importing a resource in routing.yml breaks download/file.php and ACP
- [PHPBB3-13009] - Cleanup Tweaks CSS, Remove outdated browser support
- [PHPBB3-13018] - Key binding on AJAX popups are not unbound upon close/cancel
- [PHPBB3-13019] - Don't display "Soft delete reason" dialog when moderator cannot soft-delete
- [PHPBB3-13022] - "Return to advanced search" wrong assumption
- [PHPBB3-13031] - Impossible to properly upload image if no proper mimetype guessers enabled
- [PHPBB3-13035] - Empty meta tags in header
- [PHPBB3-13040] - W3C validator warning in overral_footer.html
- [PHPBB3-13042] - Unused var in login_box()
- [PHPBB3-13044] - Expires header violates RFC 2616
- [PHPBB3-13046] - In download/avatar we don't load the vendors added by the extensions
- [PHPBB3-13050] - Allow topic/forum subscription when email and jabber are off
- [PHPBB3-13051] - Fix broken viewonline core event
- [PHPBB3-13052] - Remove additional parameters from check_form_key()
- [PHPBB3-13057] - Fatal error on previous page link after closing a report
- [PHPBB3-13065] - Unknown column 'user_pass_convert' in 'field list' [code] - => 1054
- [PHPBB3-13068] - Language correction in FIELD_IS_CONTACT_EXPLAIN
- [PHPBB3-13069] - Timezone selector does not filter locations on change

#### Improvement

- [PHPBB3-12416] - WhoIs Pop Up Page Details
- [PHPBB3-12598] - Improve action-bar search box styling
- [PHPBB3-12653] - Caches the informations about the listeners to be able to not load them everytime
- [PHPBB3-12900] - 3.1.0 avatar scaling
- [PHPBB3-12943] - Add core.phpbb_generate_debug_output core event
- [PHPBB3-12961] - Add link in anti-spam ACP page which links directly to captchas in titania
- [PHPBB3-12969] - Add template event around the find username link on composing pm
- [PHPBB3-12982] - JS in 3.1 is nasty
- [PHPBB3-12989] - Remove unused "created_by.jpg" from prosilver
- [PHPBB3-12991] - Have events after/before "add warning" field - user and post
- [PHPBB3-12994] - Add core event to viewtopic.php before sending vars to template
- [PHPBB3-13003] - Missing language keys in command "extension:show"
- [PHPBB3-13005] - Add core event to display_forums() to modify category template data
- [PHPBB3-13006] - Add variables to the 'core.modify_quickmod_actions' event
- [PHPBB3-13010] - phpbb_get_avatar() incorrectly refers to \phpbb\avatar\driver\driver::clean_row()
- [PHPBB3-13020] - Add var to core.viewforum_get_topic_data event to allow modifying forum template data
- [PHPBB3-13024] - Template event viewtopic_body_postrow_post_content_footer
- [PHPBB3-13026] - Add template vars array to core.viewonline_overwrite_location to allow modifying/adding template vars
- [PHPBB3-13034] - Add ability to access extensions outside the phpBB root
- [PHPBB3-13036] - Controller helper route method should be able to generate absolute URL's
- [PHPBB3-13038] - Link user post tally to their posts
- [PHPBB3-13047] - Add $post_list array to core.viewtopic_modify_page_title core event
- [PHPBB3-13056] - Move the arguments of the request class to the DI
- [PHPBB3-13058] - The "jump to page" input does not have a min attribute.
- [PHPBB3-13061] - Use a compiler pass to replace the service event.subscriber_loader
- [PHPBB3-13062] - Add viewforum.php core event to allow modifying sql query to select topic ids
- [PHPBB3-13066] - Add common search results core event to modify search title

#### New Feature

- [PHPBB3-12951] - Add .editorconfig

#### Sub-task

- [PHPBB3-12928] - [Event] - core.mcp_reports_gather_query_before

#### Task

- [PHPBB3-12999] - Remove @author tag from the doc block
- [PHPBB3-13032] - Update Symfony Components to 2.3.19

### Changes since 3.1.0-RC2

#### Bug

- [PHPBB3-11148] - Fix uploading attachments from Android 4 powered devices
- [PHPBB3-11480] - Prevent Private Message system from returning "Unknown folder" when inbox folder is full
- [PHPBB3-11520] - Post count not incremented when you fork a topic
- [PHPBB3-11854] - Captcha code is still in includes/
- [PHPBB3-12232] - MCP Banning: Max execution time exceeded
- [PHPBB3-12448] - Migration tools don't allow adding columns with default == NULL
- [PHPBB3-12492] - DB_TEST: Special chars are not supported.
- [PHPBB3-12535] - The profile link should be better adjusted to the avatar image it surrounds in viewtopic.php
- [PHPBB3-12685] - CLI doesn't load extension commands
- [PHPBB3-12710] - phpBB 3.0.12 on Oracle fails to upgrade to 3.1.0
- [PHPBB3-12718] - Hard Deleting Post does not Decrease Post Count
- [PHPBB3-12742] - Notifications duplicate code that requires an event
- [PHPBB3-12744] - RTL board header is one line higher than LTR
- [PHPBB3-12748] - UCP Terms of Use Typo
- [PHPBB3-12770] - search_wordmatch unique key name is too long
- [PHPBB3-12776] - docs/INSTALL.html is missing 3.0 to 3.1 update instructions
- [PHPBB3-12789] - Cached directories are not deleted when the cache is purged (with ACM memory enabled).
- [PHPBB3-12791] - String profile fields do not use links, smilies and line breaks in memberlist
- [PHPBB3-12792] - Profile field type strings function get_profile_contact_value duplicates raw()
- [PHPBB3-12793] - String '0' does not display for string profile fields
- [PHPBB3-12794] - Google+ profile field validation is too strict
- [PHPBB3-12809] - RTL styling issues with new jump-box dropdown
- [PHPBB3-12814] - Error while trying to setup LDAP Authentication in ACP
- [PHPBB3-12822] - Preselect avatar type if only 1 type is enabled
- [PHPBB3-12837] - Viewing contact form displays "VIEWING_MEMBERS" on viewonline
- [PHPBB3-12842] - Out of memory issue in code sniffer call for extensions
- [PHPBB3-12843] - When you click on "Mark forums read" in the browser, a console error occurs
- [PHPBB3-12844] - $dbpasswd is cleared too early in connection manager
- [PHPBB3-12845] - HTML5 Invalid using role="navigation"
- [PHPBB3-12846] - SQLite3 bug in profilefield_base_migration.php
- [PHPBB3-12849] - ReferenceError in core.js
- [PHPBB3-12851] - Font colour button title is not consistent with other buttons
- [PHPBB3-12853] - Problems with ACP/MCP links in mobile design with other translations
- [PHPBB3-12854] - Admin contact page should not be used when board emails are disabled
- [PHPBB3-12855] - Container is being recompiled on every page request although DEBUG_CONTAINER is not set
- [PHPBB3-12859] - Missing post button events from view pm template
- [PHPBB3-12870] - Console database migrate function can not update from 3.0.12 to 3.1
- [PHPBB3-12873] - Wrong identifier tested in \db\tools\sql_create_(unique_)index()
- [PHPBB3-12875] - Extension's info_acp_lang files don't fallback correctly when the user's language is not included in the extension
- [PHPBB3-12881] - Debug error - Undefined index: mark_time
- [PHPBB3-12882] - $config['search_type'] - is not correctly updated when updating from 3.0 to 3.1
- [PHPBB3-12883] - Do not use basename() to get the search class in phpbb\cron\task\core\tidy_search
- [PHPBB3-12886] - Redundant lock and unlock expressions for QuickMod in viewtopic.php
- [PHPBB3-12887] - Typo in timezone handling code: 'offest' should be 'offset'
- [PHPBB3-12891] - Long page generation time when banlist is long
- [PHPBB3-12895] - ?style=1 appended to url after using the UCP
- [PHPBB3-12898] - In cron.php we try to release the lock after the call to garbage_collection()
- [PHPBB3-12901] - Wrong type hint in show_available_child_styles() doc block
- [PHPBB3-12902] - Remove duplicate entry in build_cfg_template() switch statement
- [PHPBB3-12903] - Remove unused method in phpBB/phpbb/extension/metadata_manager.php
- [PHPBB3-12908] - Fix broken operator assignment in increment.php
- [PHPBB3-12909] - Use correct lang vars in cli extension enable
- [PHPBB3-12910] - Profile fields: Two "simple text field" in dropdown menu
- [PHPBB3-12912] - Undefined index when adding logs from extensions
- [PHPBB3-12918] - Functional Tests Suite does not run on its own
- [PHPBB3-12919] - Allow using class names as module identifier for extensions
- [PHPBB3-12922] - Posts per page in MCP should have a minimum value of zero
- [PHPBB3-12931] - General error on user registration when domain name is not set
- [PHPBB3-12932] - Easy support of non-gregorian calendars
- [PHPBB3-12937] - Without config file, extract($phpbb_config_php_file->get_all()); breaks
- [PHPBB3-12938] - Board floods "store"-directory with packed attachments
- [PHPBB3-12940] - Unused 'use' statements in download/file.php
- [PHPBB3-12950] - Functional tests can not be run anymore if another language is present
- [PHPBB3-12954] - Nginx setup on travis returns wrong SCRIPT_NAME info
- [PHPBB3-12956] - Unknown column 'field_is_contact' in 'field list'
- [PHPBB3-12964] - Undefined $row in download/file.php
- [PHPBB3-12967] - Undefined variable: phpbb_dispatcher in mcp_queue.php
- [PHPBB3-12970] - chema.json is not up to date with migration files

#### Improvement

- [PHPBB3-9165] - Extend template loop to allow iteration step modification
- [PHPBB3-10073] - Contact page
- [PHPBB3-12051] - Optimise Composer Autoloader on Build
- [PHPBB3-12560] - Add methods to set upload and temp paths in Plupload class
- [PHPBB3-12656] - Translate existing CLI commands
- [PHPBB3-12663] - Extract Command Line Interface language strings into their own file.
- [PHPBB3-12671] - Possibility to use NOT LIKE expression
- [PHPBB3-12693] - Add a travis test that checks file permissions
- [PHPBB3-12738] - Move related code from functions_posting into remove_post_from_statistic()
- [PHPBB3-12778] - The automatic updater should have an option to automatically delete removed files during update
- [PHPBB3-12828] - Add includes/ucp/ucp_prefs.php common core event to allow additional actions before the page load
- [PHPBB3-12832] - Add footer links to the Quick Links menu
- [PHPBB3-12836] - [Event] - core.functions.redirect
- [PHPBB3-12841] - Allow extensions to position new config vars in an array
- [PHPBB3-12847] - Allow extensions to define if they can be enabled
- [PHPBB3-12857] - Add template events overall_header_breadcrumbs_before/after
- [PHPBB3-12864] - Have an EVENT tag after STYLESHEETS in overall_header
- [PHPBB3-12871] - Add PHPBB_DISPLAY_LOAD_TIME constant to config.php on installation
- [PHPBB3-12872] - Add poster_id to viewtopic_modify_post_row
- [PHPBB3-12884] - Add core event to the function upload_attachment()
- [PHPBB3-12892] - S_NUM_ROWS does not scale
- [PHPBB3-12896] - Add event in acp_main to allow php checks for admin notices
- [PHPBB3-12906] - Add rel="help" to FAQ link
- [PHPBB3-12913] - Add more parameters to core.submit_post_end event
- [PHPBB3-12942] - Add core.add_form_key core event
- [PHPBB3-12944] - Add core.login_forum_box core event
- [PHPBB3-12953] - Page title not updated when notifications are marked as read

#### Sub-task

- [PHPBB3-12800] - [Event] - Create core.functions_display.display_user_activity.actives_after
- [PHPBB3-12801] - [Event] - core.functions_posting.load_drafts_draft_list_results
- [PHPBB3-12876] - [Event] - core.mcp_mcp_front.mcp_front_view_queue_postid_list_after
- [PHPBB3-12880] - [Event] - core.mcp_queue_!is_topics_query_before
- [PHPBB3-12927] - [Event] - core.mcp_queue_get_posts2_query_before

#### Task

- [PHPBB3-10404] - Remove create_function from includes/acp/auth.php
- [PHPBB3-12557] - Fix doc block errors found by Sami
- [PHPBB3-12826] - Investigate "catch (Exception"
- [PHPBB3-12860] - Add template events to mcp_ban.html
- [PHPBB3-12861] - Add event before assigning the posts to the template
- [PHPBB3-12917] - Move commit check and file executable checks to 5.3.3 build on travis
- [PHPBB3-12920] - Create composer installable app and core packages with subtree split
- [PHPBB3-12941] - Check for Sami documentation errors on Travis CI
- [PHPBB3-12948] - Remove Travis CI "broken opcache on PHP 5.5.7 and 5.5.8" workaround.

### Changes since 3.1.0-RC1

#### Bug

- [PHPBB3-9801] - Users on custom pages outside the board directory are being displayed on Index page
- [PHPBB3-11392] - "Make normal" in quickmod tool does not ajaxify correctly
- [PHPBB3-12325] - Automatic update should notify about outdated files
- [PHPBB3-12420] - Reduce config.php inclusions in DIC code
- [PHPBB3-12446] - Unnecessary db connect - function phpbb_bootstrap_enabled_exts
- [PHPBB3-12462] - Do not use string "None" for different avatar options
- [PHPBB3-12515] - FULLTEXT_POSTGRES_TS_NOT_USABLE and FULLTEXT_POSTGRES_VERSION_CHECK_EXPLAIN redundant
- [PHPBB3-12605] - Make dropdowns uniform
- [PHPBB3-12674] - Last edited by in PMs doesn't show user colour
- [PHPBB3-12680] - Contact icons in viewtopic are missing alternative text
- [PHPBB3-12695] - Undefined index: MISSING_INLINE_ATTACHMENT notice given when viewing post details
- [PHPBB3-12716] - Wrong method call in phpbb\auth\provider\oauth\token_storage
- [PHPBB3-12759] - Profile fields lang value db queries can cause query flood
- [PHPBB3-12760] - Post approval icon for wrong topics in Last Post column
- [PHPBB3-12764] - Wrong error message on install if mysqli is selected and the credentials are wrong
- [PHPBB3-12766] - Event exporter does not like RCx as version
- [PHPBB3-12768] - 'NOTIFICATION_REPORT_CLOSED' entry has wrong indentation
- [PHPBB3-12771] - Bug in \phpbb\db\migration\profilefield_base_migration when used in extensions
- [PHPBB3-12772] - Fatal error when "Email topic" is used in topic tools
- [PHPBB3-12773] - Fix language variable name in cli extension enable command
- [PHPBB3-12774] - Undefined variable $phpbb_adm_relative_path in phpbb_create_install_container()
- [PHPBB3-12781] - Template regex for DEFINE has problems when enclosed by other template conditionals
- [PHPBB3-12783] - Remove require: phpbb/phpbb from Extensions composer.json files
- [PHPBB3-12787] - Incorrect generated url when using ajax and routing
- [PHPBB3-12788] - Update Symfony suite from 2.3.12 to 2.3.16
- [PHPBB3-12790] - Always use the interface when available (and not directly the class)
- [PHPBB3-12802] - Properly handle connection errors in SQLite3
- [PHPBB3-12808] - Small gap between username and drop-down arrow
- [PHPBB3-12810] - In acp_forums the displayed value for prune_shadow_freq is the value of prune_freq
- [PHPBB3-12811] - Margin Bottom not taking effect in Safari with 101% height on same element
- [PHPBB3-12815] - Members list link hidden from guests who have permission to view members list page
- [PHPBB3-12816] - Fix comment about logs in user_ban function
- [PHPBB3-12818] - Deleting a log entry in MCP produces a General error
- [PHPBB3-12819] - Wrong text on hover over "Jump to page" field
- [PHPBB3-12825] - Allow the extensions to be tested with the sniffer and skip the vendors
- [PHPBB3-12830] - .postlink is in colours.css doubled, one should be deleted
- [PHPBB3-12834] - Viewonline only matches routes
- [PHPBB3-12839] - Missing stylesheet when it is not updated

#### Improvement

- [PHPBB3-12013] - Quickmod tools and jumpbox should use new dropdown
- [PHPBB3-12099] - path_helper returns wrong web root path for ajax requests
- [PHPBB3-12196] - Referer vs Referrer in language files
- [PHPBB3-12197] - Fix misleading FAQ entries
- [PHPBB3-12334] - Add raw values of profile fields to template
- [PHPBB3-12562] - Prosilver has no max-width
- [PHPBB3-12645] - Update support links to 3.1 forums
- [PHPBB3-12662] - Reorganize and modernize the header navbar
- [PHPBB3-12735] - Remove all :link, :visited, :active link states
- [PHPBB3-12777] - Rename extension status functions and add is_configured()
- [PHPBB3-12779] - Change order of file lists on automatic update
- [PHPBB3-12782] - Use an interface for the phpbb event_dispatcher
- [PHPBB3-12784] - Allow the extensions to add a custom auto loader
- [PHPBB3-12786] - Extend profilefield_base_migration.php class
- [PHPBB3-12812] - Add a migrator tool for config_text database changes
- [PHPBB3-12813] - Improve responsive pagination location and fix page-jump title
- [PHPBB3-12823] - Remove trailing whitespace from CSS files
- [PHPBB3-12824] - Move ACP & MCP links in the header to the end of the link list
- [PHPBB3-12827] - Reorder quick-links

#### Task

- [PHPBB3-12775] - Refactor functions_container into class container_builder
- [PHPBB3-12829] - Remove check for pgsql 8.3/8.2

### Changes since 3.1.0-b4

#### Bug

- [PHPBB3-8610] - Splitting and merging topics does not handle subscriptions and bookmarks correctly
- [PHPBB3-10899] - Using Delete All in log viewer with keyword search
- [PHPBB3-11331] - Inform admin of incorrect avatar path instead of stripping unexpected parts from destination path
- [PHPBB3-11445] - Suboptimal number of query complexity in phpbb_notification_manager::get_global_subscriptions()
- [PHPBB3-11467] - phpbb_extension_metadata_manager uses hard coded language for exceptions
- [PHPBB3-11659] - Information about file_upload is missing from the requirement page
- [PHPBB3-11942] - Delete post/topic reason should be added to the generated log entry
- [PHPBB3-12109] - Bug when setting users forum permissions with "Select all users" checkbox
- [PHPBB3-12209] - OAuth Authentication in ACP does not explain that it allows regular login too
- [PHPBB3-12332] - Attachments with long file names break the Uploader layout
- [PHPBB3-12352] - The service definition "auth.provider.smf" does not exist.
- [PHPBB3-12443] - Responsive tabs broken in IE
- [PHPBB3-12457] - Gallery avatar category "Main" is empty
- [PHPBB3-12508] - phpbb\finder (currently phpbb\extension\finder) should not depend on extension manager
- [PHPBB3-12521] - When selecting the target to merge two topics, the last column is pushed on a new line
- [PHPBB3-12552] - [RTL] - Forum list content forced into single char column when responsive
- [PHPBB3-12553] - Right-to-left language bugs in prosilver
- [PHPBB3-12566] - "Private messages" in viewtopic.php should be "Send pivate message"
- [PHPBB3-12589] - The finder should search directly in $directory if it's an absolute sub-path
- [PHPBB3-12612] - Front-facing files should not contain functions
- [PHPBB3-12615] - Improper clearing of .topic-actions leads to float problems
- [PHPBB3-12637] - coding-guidelines.html contains invalid HTML
- [PHPBB3-12638] - Call to undefined function phpbb\db\migration\data\v30x\phpbb_require_updated() when not using autoupdate package
- [PHPBB3-12639] - Delete entry in admin-log leads to mysql-error
- [PHPBB3-12640] - Posting editor tab "attachments" is unclicked in IE8
- [PHPBB3-12641] - With IE8 logged in to ACP error message appears in the browser
- [PHPBB3-12643] - Cannot convert SQLite DB from 3.0.12 to 3.1.0
- [PHPBB3-12652] - Deleting marked log entries leads to MySQL Error
- [PHPBB3-12660] - Undefined offset error when phpinfo() disabled and debug enabled
- [PHPBB3-12665] - develop/migration_tips.php should not find extension tips
- [PHPBB3-12667] - New posts in a topic cause undesirable results when clicking topic title or page button
- [PHPBB3-12672] - Make <Tab> inside [code] - more user friendly
- [PHPBB3-12673] - PLUPLOAD fails due missing constant IMAGETYPE_SWC
- [PHPBB3-12675] - Fix code sniffer complaints in 3.1.0-b5-dev code
- [PHPBB3-12682] - Code Sniffer does not work correctly on Travis CI.
- [PHPBB3-12688] - Rank images do not work on routes
- [PHPBB3-12694] - Remove whitespace at end of line from acp_groups
- [PHPBB3-12697] - Database Test Case Must Purge Extension Schema When Done
- [PHPBB3-12705] - make_clickable is using static variables incorrectly
- [PHPBB3-12707] - \phpbb\db\driver\phpbb\db\driver\mysql is tried being loaded
- [PHPBB3-12708] - [ROOT] -/install/install_main.php still uses docs/COPYING
- [PHPBB3-12709] - Duplicate entries in the posting attachments tab
- [PHPBB3-12711] - Contact form migration fails on MSSQL
- [PHPBB3-12712] - Password conversion migration fails on MSSQL
- [PHPBB3-12715] - Mistakes in the doc blocks
- [PHPBB3-12720] - Git commit hook should not require commit message to start with a capital letter
- [PHPBB3-12728] - Enforce box-model for image attachments
- [PHPBB3-12741] - Functional tests on Travis fail since php update last night
- [PHPBB3-12746] - Failing test: tests/content_visibility/delete_post_test.php
- [PHPBB3-12747] - Drop Firebird support
- [PHPBB3-12750] - Install/Update footer is not centered anymore
- [PHPBB3-12752] - Cron list tests fail on windows with ansi support
- [PHPBB3-12753] - FIELD_INVALID_CHARS_ALPHA_PUNCTUATION is not localized
- [PHPBB3-12755] - Remote upload stuck in infinite loop if server sends keep-alive
- [PHPBB3-12756] - Fatal error with mysqli_fetch_assoc on hhvm
- [PHPBB3-12761] - Remove the execute bit from functions_user.php
- [PHPBB3-12762] - Make ext.php optional for extensions
- [PHPBB3-12763] - Do not unnecessarily rewrite install/schemas/*_schema.sql when updating schema.json file

#### Improvement

- [PHPBB3-11266] - Use our own error message when composer is not set up
- [PHPBB3-12532] - Add header_navbar_username_prepend/append template events.
- [PHPBB3-12541] - Activate attachments tab when files are dropped into textarea
- [PHPBB3-12563] - Language key names in ACP styles are misleading
- [PHPBB3-12606] - PHP events in /includes/acp/acp_groups.php
- [PHPBB3-12608] - Improve notifications drop-down menu styling in header
- [PHPBB3-12613] - Improve pagination styling and jump-to-page dialog
- [PHPBB3-12646] - Add data attribute to breadcrumb links
- [PHPBB3-12648] - Improve UCP/MCP/Posting tabs styling & problems
- [PHPBB3-12655] - Allow the CLI to be used as a shell
- [PHPBB3-12664] - Refactor develop/migration_tips.php into a console command
- [PHPBB3-12666] - Use "None" for images in gallery avatar path root and rename lang key
- [PHPBB3-12668] - Add ability to modify subforums template data for core.display_forums_modify_template_vars event
- [PHPBB3-12669] - Add core event to the function display_forums() for additional template data
- [PHPBB3-12677] - Remove comment about ‘threading’
- [PHPBB3-12687] - Add a constant to dissociate the displaying of the load time from DEBUG
- [PHPBB3-12690] - Add core.submit_pm_after event
- [PHPBB3-12691] - Add core.delete_pm to funtion delete_pm.
- [PHPBB3-12704] - Improve the load time information in the footer when enabled
- [PHPBB3-12706] - Ignore additional languages and styles from git
- [PHPBB3-12714] - Better align the description of radio buttons to avoid confusion with the forum list in attachments settings
- [PHPBB3-12740] - Stop Using IDs as CSS selectors
- [PHPBB3-12758] - Add 'show_results' mode var to event core.search_modify_rowset

#### New Feature

- [PHPBB3-12597] - Command for executing all available cron tasks
- [PHPBB3-12602] - Add command to print the cron list
- [PHPBB3-12607] - CLI command for running a specific cron task

#### Sub-task

- [PHPBB3-12575] - Use a proxy pattern in \phpbb\di\service_collection
- [PHPBB3-12699] - Replace instances in the message textarea keydown callback
- [PHPBB3-12721] - Simple rules
- [PHPBB3-12722] - Add rule Generic.Formatting.SpaceAfterCast
- [PHPBB3-12724] - Add rule Squiz.PHP.Eval
- [PHPBB3-12729] - Add Facebook profile field
- [PHPBB3-12730] - Add Google+ profile field
- [PHPBB3-12731] - Add YouTube profile field
- [PHPBB3-12732] - Add Skype profile field
- [PHPBB3-12733] - Add Twitter profile field

#### Task

- [PHPBB3-11528] - Use mink for acceptance tests involving javascript execution
- [PHPBB3-12514] - Add additional tests for custom profile fields type
- [PHPBB3-12696] - Add events to ucp_register.html
- [PHPBB3-12701] - Add events to user_add function
- [PHPBB3-12723] - Add Code Sniffer sniff ensuring PHP files use the correct file header
- [PHPBB3-12726] - Add Code Sniffer sniff ensuring PHP files do not contain any unused use statements
- [PHPBB3-12757] - Add a Code Sniffer ruleset for PHP files of phpBB extensions

### Changes since 3.1.0-b3

#### Bug

- [PHPBB3-10176] - Imageset Appearance Problem with Google Chrome Browser.
- [PHPBB3-11226] - filespec::move_file() from functions_upload.php does not error correctly
- [PHPBB3-11232] - prosilver ajax.js does not respect PHPBB_USE_BOARD_URL_PATH
- [PHPBB3-11366] - Add "MOD Version Check" for extensions to the core
- [PHPBB3-11497] - The extension finder keeps state, so should be instantiated on each container request, not reset manually
- [PHPBB3-12025] - Post Preview no longer shows UNAUTHORISED_BBCODE warning for disallowed BBcodes
- [PHPBB3-12074] - Enabling/Disabling/Data deleting of an extension should generate a log entry
- [PHPBB3-12174] - "Download all attachments" link displayed when the topic has attachments in hidden posts only
- [PHPBB3-12185] - Topic header in viewforum too small for translation
- [PHPBB3-12270] - Approving a topic triggers wrong notification
- [PHPBB3-12275] - core.modify_username_string is not triggered everytime
- [PHPBB3-12332] - Attachments with long file names break the Uploader layout
- [PHPBB3-12357] - generate_smilies() does not work for routes
- [PHPBB3-12402] - CAPTCHA plugin migration fails to detect missing plugins
- [PHPBB3-12415] - Use private message instead of "pm" accronym in cpf visibility options
- [PHPBB3-12421] - We try to display attachments in feed even for users who don't have the right to see them
- [PHPBB3-12428] - Incorrect from version in database update log entry
- [PHPBB3-12434] - No error message with Plupload except for files without extension
- [PHPBB3-12435] - purge_notifications() fails for disabled extensions
- [PHPBB3-12440] - Change URL in browsers addressbar when a view=unread#unread link was used
- [PHPBB3-12451] - posting.php TOO_FEW_CHARS_LIMIT should be split for plurals
- [PHPBB3-12459] - Unapproved posts/topics are not correctly handled in feeds
- [PHPBB3-12460] - Soft deleted posts/topics are not correctly handled in feeds
- [PHPBB3-12461] - Statistics are wrong for topic's based feeds
- [PHPBB3-12476] - purge_cache should increase asset version
- [PHPBB3-12486] - "Risky" tests from phpunit 4.1
- [PHPBB3-12491] - Conflict between USERNAME_FULL in functions.php and mcp_notes.php
- [PHPBB3-12493] - User can not send PMs to users with PMs disabled, but PM button is visible on posts
- [PHPBB3-12498] - IE8 displays avatar in header with wrong width
- [PHPBB3-12499] - Incorrect call to phpbb\log\log::add() in db:migrate console command
- [PHPBB3-12500] - user.img does not set a title attribute for resulting span
- [PHPBB3-12501] - Weird post attachment behavior in MCP report details
- [PHPBB3-12503] - All test cases should extend phpbb_test_case instead of PHPUnit_Framework_TestCase
- [PHPBB3-12504] - Avatar manager test is using undefined variables
- [PHPBB3-12509] - Extentions can't send email with new notification system
- [PHPBB3-12510] - build_url() is not encoding url entities
- [PHPBB3-12511] - Missing language strings in memberlist group view for mobile prosilver
- [PHPBB3-12513] - simple_headers do not support extension loaded CSS stylesheets
- [PHPBB3-12517] - Missing argument in call to log.add() in prune_shadow_topics.php
- [PHPBB3-12519] - m_approve language update from soft delete patch got nucked by a merge conflict
- [PHPBB3-12520] - Can not move text with the mouse anymore in post-box when attachments are allowed
- [PHPBB3-12522] - Add parameter description in guesser_interface
- [PHPBB3-12525] - CONTACT_USER used with username
- [PHPBB3-12526] - "Undefined index: filesize" error thrown when editing a PM with attachments
- [PHPBB3-12527] - Remove translation editor from ACP
- [PHPBB3-12529] - phpbb\controller\resolver::getController doesn't use $phpbb_root_path to check if the template dir exist
- [PHPBB3-12533] - The notification link should fill the parent li-container in the notifications dialog
- [PHPBB3-12534] - Enabling and disabling extensions should not abuse the red errorbox
- [PHPBB3-12536] - Get Versions Should Not Require Both Stable and Unstable Branches
- [PHPBB3-12540] - WRONG_FILESIZE contains broken placeholders
- [PHPBB3-12543] - Enter key no longer works in posting when attachment error is triggered
- [PHPBB3-12547] - Rename jquery.js to jquery.min.js in assets directory
- [PHPBB3-12548] - [RTL] - Posting button icons should display on left side of text
- [PHPBB3-12549] - [RTL] - Forumlist/topiclist <dfn> tags should not be visible
- [PHPBB3-12550] - [RTL] - Last post column breaks into second line
- [PHPBB3-12551] - [RTL] - Breadcrumb separator does not display correctly
- [PHPBB3-12561] - Create_schema_files.php should process colum "after" instead of adding it to the JSON
- [PHPBB3-12570] - db_text throws an error, when set() is called with the current value
- [PHPBB3-12572] - JavaScript console throws error when alert message title is not defined (core.js bug)
- [PHPBB3-12580] - :link Pseudo causing over specificity issues in the theme
- [PHPBB3-12586] - \phpbb\extension\manager::all_available() should only locate ext files two levels deep and ignore dot-files/folders
- [PHPBB3-12594] - File headers, credit lines, etc. should reflect updated legal info
- [PHPBB3-12600] - The cli command extension:show is broken
- [PHPBB3-12604] - Notifications Dropdown Padding Broken When Empty
- [PHPBB3-12611] - phpBB Group copyright notice should be removed from all images
- [PHPBB3-12614] - Do not hide post buttons before hovering over post
- [PHPBB3-12621] - schema.json is not up to date with migration files

#### Improvement

- [PHPBB3-9388] - use DOM scripting to hide unnecessary input fields
- [PHPBB3-11163] - Include ext/ directory in installation and update packages
- [PHPBB3-12155] - Use CSS instead of translated images for the mini post buttons
- [PHPBB3-12407] - Allow changing of post_data and other variables with core.posting_modify_template_vars
- [PHPBB3-12431] - Add has_poll icon to topiclists
- [PHPBB3-12433] - QUOTE_DEPTH_EXCEEDED needs a different string for '1'
- [PHPBB3-12488] - Add user warning indication to viewtopic posts
- [PHPBB3-12507] - Add console command to purge the cache
- [PHPBB3-12518] - Allow extensions to overwrite CANNOT_EDIT_* checks in posting.php and viewtopic.php
- [PHPBB3-12523] - Add search_results.html template events search_results_topic_(before/after)
- [PHPBB3-12524] - Add search.php core event to modify search results rowset
- [PHPBB3-12531] - Restore default topic title links in subsilver2
- [PHPBB3-12555] - Make use of canonical urls to avoid duplicate content
- [PHPBB3-12583] - Add event core.mcp_warn_post_before/after
- [PHPBB3-12584] - Add event core.mcp_warn_user_before/after

#### Sub-task

- [PHPBB3-12576] - Remove cron from common.php
- [PHPBB3-12585] - Don't check the cron on each page load

#### Task

- [PHPBB3-10839] - Remove phpunit.xml.functional and always include functional tests
- [PHPBB3-12384] - Run Travis CI HHVM tests against MySQLi instead of MySQL
- [PHPBB3-12495] - Add Sami to composer dependencies and build script
- [PHPBB3-12544] - Update Plupload to 2.1.2
- [PHPBB3-12582] - Strip away copyrighted ICC profile from images
- [PHPBB3-12592] - Run mysql driver on Travis CI
- [PHPBB3-12603] - Remove hook_system.html from docs

### Changes since 3.1.0-b2

#### Bug

- [PHPBB3-7707] - Missing occurrences of get_username_string
- [PHPBB3-8323] - Banned User (PMs and Mails)
- [PHPBB3-8558] - Board Emails not setting a correct email header
- [PHPBB3-8700] - Language file "acp/styles.php" contains many unused language entries
- [PHPBB3-8960] - Allow changing allow_avatar_remote when images/avatars/upload is not writable
- [PHPBB3-10423] - Searching for the term "test *" will highlight nearly every word and displays htmlspecialchars as htmlentities.
- [PHPBB3-10687] - UNABLE_GET_IMAGE_SIZE text misleading for remote avatars
- [PHPBB3-10851] - HTML files containing certain tags being rejected as possible attack vectors with "Check attachment file" set to "No"
- [PHPBB3-11098] - New persistent login keys list should have (un)select all and order options.
- [PHPBB3-11339] - Using AJAX calls one after another
- [PHPBB3-11352] - Disapproving topic takes you to quick reply for that topic
- [PHPBB3-11431] - All topic notifications are deleted if one reply is edited and needs to be approved
- [PHPBB3-11508] - General error "not allowed as quickmod" when changing the forum while merging two topics
- [PHPBB3-11772] - New topic notification triggered when editing an existing post with post-approval enabled
- [PHPBB3-11860] - .htaccess not working for Apache 2.4
- [PHPBB3-11881] - Timezone migration can take a long time
- [PHPBB3-11917] - "Manage external account" shows when not activated
- [PHPBB3-11978] - Text field for topic-search
- [PHPBB3-12004] - Support empty routes to app.php/ in path_helper
- [PHPBB3-12012] - DB Tools should correctly remove columns that are part of indexes
- [PHPBB3-12043] - Sort Extensions by Name in ACP Ext Mgr
- [PHPBB3-12052] - Post edited by user on moderation queue is not marked as unapproved.
- [PHPBB3-12083] - "Select all" selects nothing in Webkit Browsers with only one character in [code] -
- [PHPBB3-12097] - The validate_data() function doesn't work with class method
- [PHPBB3-12113] - Deleting warnings does not use plurals correctly
- [PHPBB3-12121] - Update process doesn't preserve total redirects for links
- [PHPBB3-12130] - Bullet character disappears on mouse-over in IE8
- [PHPBB3-12186] - MCP should open "Reported posts" instead of PM Reports
- [PHPBB3-12191] - UCP should open with global settings instead of notification settings
- [PHPBB3-12193] - Broken HTML when an SQL error occurs during migration
- [PHPBB3-12211] - Attachment file names are run through htmlspecialchars twice
- [PHPBB3-12254] - Language switching on Registration page doesn't work for Extensions
- [PHPBB3-12265] - Contact profile fields icons should be hidden in a dropdown
- [PHPBB3-12286] - Fix coding guidelines
- [PHPBB3-12331] - Fix DB error in update_profile_field_data() with disabled fields
- [PHPBB3-12342] - Javascript Bugs and Fixes
- [PHPBB3-12348] - Make create_schema_files.php runnable when phpBB is not installed yet
- [PHPBB3-12350] - tests/extension/modules_test.php can not be run alone
- [PHPBB3-12351] - Ajax "Mark topics read" does not give feedback
- [PHPBB3-12353] - User attachments in ACP are not displaying every attachment
- [PHPBB3-12354] - passwords_manager_test::test_unique_id fails from time to time
- [PHPBB3-12355] - Topic Tools not updated fully updated when subscribing/bookmarking
- [PHPBB3-12356] - Plupload does not load in PM editor
- [PHPBB3-12358] - data-refresh not working as expected for routes
- [PHPBB3-12359] - Day and Month of Birthday Misaligned When Editing
- [PHPBB3-12360] - User is displayed twice in online list after second login
- [PHPBB3-12362] - Infinite loop in schema generator if dependency can't be resolved
- [PHPBB3-12367] - Travis fails in phpbb_wrapper_gmgetdate_test::test_gmgetdate()
- [PHPBB3-12372] - dE() function does not toggle in ACP
- [PHPBB3-12373] - Add to/from forum ids to LOG_MOVE entries
- [PHPBB3-12375] - Attachment deletion broken after jQuery update
- [PHPBB3-12378] - Prosilver common.css has duplicate entries
- [PHPBB3-12379] - Plupload labels duplicated when responsive
- [PHPBB3-12380] - “Remember Me” login keys are not sorted in UCP
- [PHPBB3-12381] - Broken error message when selecting invalid DB driver
- [PHPBB3-12382] - Template event listners can not access subloops when loop is defined in the original file
- [PHPBB3-12386] - Add DEBUG_EXTRA again and use it for container creation
- [PHPBB3-12388] - Log entries without log_data display language key instead of translated string
- [PHPBB3-12391] - core.posting_modify_template_vars pass some variables to listeners
- [PHPBB3-12395] - Pagination tests fail on travis with postgresql
- [PHPBB3-12397] - db_tools::sql_unique_index_exists() has wrong doc block
- [PHPBB3-12398] - Prune shadow topics tests fail due to wrong forum_last_post_id
- [PHPBB3-12405] - create_user() in functional tests uses invalid timezone and no dateformat
- [PHPBB3-12406] - Fix description of page_title var in core.viewtopic_modify_page_title
- [PHPBB3-12412] - Styling issue with pagination numbering for smilies and icons
- [PHPBB3-12413] - Fatal error "Call to undefined method phpbb\feed\*::fetch_attachments()" for topic based feeds
- [PHPBB3-12418] - Notice displayed for feed.php
- [PHPBB3-12422] - Log searches error due to plural arrays in language files
- [PHPBB3-12429] - Update phpunit to 3.8+
- [PHPBB3-12432] - Migrator should not automatically revert custom functions defined in update_data()
- [PHPBB3-12436] - Functional test framework's add_style() should not use sql_multi_insert()
- [PHPBB3-12444] - The logs message aren't filled correctly when some values are missing.
- [PHPBB3-12455] - Remove unused strings EXTENSION_CONTROLLER_MISSING and EXTENSION_CLASS_WRONG_TYPE from common.php
- [PHPBB3-12456] - Missing new lines at the end of file in language files
- [PHPBB3-12467] - Add config_*.php and tests_config_*.php to .gitignore
- [PHPBB3-12469] - Convert Timezone test fails because of outdated schema
- [PHPBB3-12470] - Move commands from .travis.yml to separate files to allow reuse
- [PHPBB3-12472] - Set fast finish for .travis.yml
- [PHPBB3-12474] - The console command for updating/migrating the db should display the error with the <error> tag
- [PHPBB3-12475] - Undefined variable $log in db:migrate console command
- [PHPBB3-12477] - PM link no longer displays in viewtopic
- [PHPBB3-12478] - ucp_pm_viewmessage_contact_fields_before/after missing in PM page
- [PHPBB3-12480] - \phpbb\extension\finder is finding too many routing files
- [PHPBB3-12482] - Undefined variable: data in viewtopic when not logged in
- [PHPBB3-12485] - Broken tests due to absolute exclude
- [PHPBB3-12494] - Undefined index: user_type on viewtopic.php

#### Improvement

- [PHPBB3-9758] - Make users avatar available to the template
- [PHPBB3-10521] - Override Board Language via URL
- [PHPBB3-11962] - Resize images to 100% with in viewtopic
- [PHPBB3-12150] - Automatically prune shadow topics
- [PHPBB3-12201] - Clean up ACP attachment management page
- [PHPBB3-12273] - Add a test to run the event exporter on travis
- [PHPBB3-12282] - Add an interface for dbal driver to ensure that functions are there
- [PHPBB3-12283] - Online status on posting review page.
- [PHPBB3-12322] - Add CSS classes for post-profile <dd> elements
- [PHPBB3-12323] - Add Template Event search_results_author_prepend
- [PHPBB3-12327] - Changing poll result-bars width from absolute % to relative
- [PHPBB3-12328] - Add Template Event index_body_stat_blocks_after
- [PHPBB3-12329] - Add <div> container to index blocks (online-list, birthday-list, statistics)
- [PHPBB3-12333] - Add Template Event overall_header_page_body_before
- [PHPBB3-12335] - Add Events to phpbb\profilefields\manager (grab & show)
- [PHPBB3-12336] - Add functions_module.php core events to allow adjusting parameters for custom ACP, MCP, UCP modules
- [PHPBB3-12337] - Update jQuery to version 1.11.0
- [PHPBB3-12338] - Add Template Event overall_footer_page_body_after
- [PHPBB3-12339] - Add Event core.page_header_after
- [PHPBB3-12344] - Add event to submit_pm()
- [PHPBB3-12345] - Improve search flood interval message
- [PHPBB3-12346] - Add Template Event overall_header_navlink_append/prepend
- [PHPBB3-12347] - Move breadcrumb seperator from template to CSS
- [PHPBB3-12361] - Replace the Google logo with the phpBB logo in the BBCode FAQ
- [PHPBB3-12364] - Add template identifier var to all missing pages
- [PHPBB3-12365] - Do not crop image attachment heights at 350px
- [PHPBB3-12366] - Add Event core.search_get_posts_data
- [PHPBB3-12369] - Add template variable for extensions to add classes to <body> element without JS
- [PHPBB3-12374] - Add Template events index_body_block_<blockname>_append
- [PHPBB3-12376] - Add template events viewtopic_body_polls
- [PHPBB3-12377] - Move navbars to separate template files
- [PHPBB3-12389] - Move "print topic" & "email topic" icons (and PM versions) to topic tools
- [PHPBB3-12392] - Include $profile_fields in core.memberlist_view_profile event
- [PHPBB3-12396] - Add Template events viewforum_forum_name_append/prepend
- [PHPBB3-12400] - Add viewforum.php core event to allow modifying topics data before display the page
- [PHPBB3-12401] - Add $topic_data array to core.viewtopic_modify_post_row event in viewtopic.php
- [PHPBB3-12403] - Add template events to acp_users_prefs.html
- [PHPBB3-12409] - Add acp_users.php core events to modify users preferences data
- [PHPBB3-12410] - Add Template events search_results_post_before/after
- [PHPBB3-12411] - Expand dispatch vars of event: core.search_modify_tpl_ary
- [PHPBB3-12419] - Improve font size in notifications drop-down
- [PHPBB3-12437] - Clean up redundant "clear" elements & "corners"
- [PHPBB3-12438] - Add Template event memberlist_view_content_prepend
- [PHPBB3-12442] - Add CSS classes to heading elements
- [PHPBB3-12473] - Add console command for updating/migrating database
- [PHPBB3-12484] - Template event ucp_agreement_terms_before/after

#### New Feature

- [PHPBB3-9728] - Support for sqlite version 3

#### Sub-task

- [PHPBB3-12349] - License in migrations header not linking to version 2 of GNU GPL
- [PHPBB3-12370] - Editing a post removes topic notifications
- [PHPBB3-12371] - Notifications are incorrectly updated when a post is deleted or moved to ModerationQueue

#### Task

- [PHPBB3-12071] - Test suite fails if Fileinfo isn't installed
- [PHPBB3-12199] - Move deprecated functions to functions_compatibility.php
- [PHPBB3-12318] - Correctly setup HHVM functional tests on Travis CI
- [PHPBB3-12320] - No longer allow Travis CI HHVM environment to fail
- [PHPBB3-12341] - Add tests for get_username_string()
- [PHPBB3-12390] - Released packages MUST NOT contain vendor tests or other non-library code
- [PHPBB3-12417] - hhvm-nightly 2014.04.16~precise breaks tests
- [PHPBB3-12423] - Increase composer minimum-stability from beta to stable
- [PHPBB3-12424] - Update Symfony Dependencies to latest 2.3 releaes
- [PHPBB3-12458] - Apply Squiz.WhiteSpace.SuperfluousWhitespace.* sniffs to legacy codebase

### Changes since 3.1.0-b1

#### Bug

- [PHPBB3-8309] - Rename "Last visited" to "Last activity" on memberlist/viewprofile
- [PHPBB3-9040] - Count HTML entities as single characters in Custom Profile fields
- [PHPBB3-9725] - MSSQL Schema is not azure compatible
- [PHPBB3-10769] - "ACP Access Denied" view includes ajax parts
- [PHPBB3-11071] - User selection of an invalid style causes a general error
- [PHPBB3-11357] - Invalid markup in installer
- [PHPBB3-11959] - List of users in notifications should be trimmed
- [PHPBB3-12031] - Bug language Notification list should trim users
- [PHPBB3-12127] - Possible NOTIFICATION_QUOTE_TRIMMED miswording
- [PHPBB3-12160] - Convert Page throws "invalid dbms driver" when no phpBB installation is present
- [PHPBB3-12257] - MySQL Fulltext Tests are not run on Travis CI
- [PHPBB3-12281] - Disable redis in travis setup on develop until redis fixes it
- [PHPBB3-12292] - Buttons are mis-matched, unaligned in ACP Style Details
- [PHPBB3-12293] - Core event listeners not working in log.php
- [PHPBB3-12294] - phpbb_ in profile fields column names is incorrectly replaced with the table prefix
- [PHPBB3-12297] - user_from column not deleted on update to b1
- [PHPBB3-12310] - SMTP username and password should not autocomplete during install
- [PHPBB3-12311] - Metadata Manager should require license instead of licence
- [PHPBB3-12314] - HHVM SPL autoloader sometimes passes class name with leading backslash
- [PHPBB3-12315] - NO_SEARCH_INDEX in language/en/acp/common.php uses invalid HTML
- [PHPBB3-12316] - develop-ascraeus build status missing from "Automated Testing" section in README.md
- [PHPBB3-12317] - Some notification tests fail on DBMS drivers using appropriate integer typing (MSSQL, Sqlite3, also MySQL on HHVM)
- [PHPBB3-12321] - Remove execute bit from file ucp_main_subscribed.html and buttons.png in prosilver
- [PHPBB3-12324] - Can not update from b1 to b2 because of missing install/update/new/config/ folder
- [PHPBB3-12326] - Error while updating from b1 to b2 because of incomplete update files
- [PHPBB3-12330] - Installation fails on MSSQL

#### Improvement

- [PHPBB3-10174] - Rename "Ban usernames" to "Ban users" in ACP
- [PHPBB3-10590] - Skip confirmation page after successful posting of an approved post
- [PHPBB3-11169] - Move prune users from security to users category
- [PHPBB3-11230] - Use @inheritdoc in docblocks in cache drivers
- [PHPBB3-11239] - Include username before the Overview title.
- [PHPBB3-11336] - Rename mode parameter from "leaders" to something more accurate for the "The team" page
- [PHPBB3-11360] - page_header() argument "display_online_list" should be FALSE by default
- [PHPBB3-11666] - POST_DELETED should refer to posts instead of messages
- [PHPBB3-12035] - Add a link to user's posts in the ACP user overview page
- [PHPBB3-12198] - Unused ERR_TEMPLATE_EVENT_* language strings in en/common.php
- [PHPBB3-12268] - Extension finder should not crawl through .git/ of extensions
- [PHPBB3-12269] - Delete "mods" folder from the language folder
- [PHPBB3-12274] - Updater is using old version of adm/style/admin.css
- [PHPBB3-12276] - Expand core.memberlist_view_profile event to include Zebra state
- [PHPBB3-12278] - Add mcp.php core event to allow setting display options for custom MCP modules
- [PHPBB3-12284] - Make Extension Details page more readable
- [PHPBB3-12289] - Add viewtopic_body.html template event to allow custom post notices
- [PHPBB3-12300] - Revert and Reimagine Link to last read posts
- [PHPBB3-12304] - Add CSS class to rules-link container
- [PHPBB3-12308] - Add Template Event forumlist_body_last_row_after
- [PHPBB3-12309] - Add Template Event quickreply_editor_panel_before/after

#### New Feature

- [PHPBB3-7580] - Allow isset() check in IF template syntax
- [PHPBB3-12298] - Template Event memberlist_view_contact_before/after
- [PHPBB3-12301] - Template Event overall_header_body_before

#### Task

- [PHPBB3-11459] - Deduplicate database schema definiton
- [PHPBB3-11904] - Revisit ALLOW_CDN_EXPLAIN wording
- [PHPBB3-12302] - Upgrade composer.phar to 1.0.0-alpha8

### Changes since 3.1.0-a3

#### Bug

- [PHPBB3-8041] - Do not concatenate the destination to L_RETURN_TO to allow better translations
- [PHPBB3-8122] - Reviewing topics/posts - not correctly displayed
- [PHPBB3-8785] - PM recipients/bcc list looks bad
- [PHPBB3-8919] - Localisation imageset being refreshed too frequently causing broken images
- [PHPBB3-9106] - Upload fails to complete for large files.
- [PHPBB3-9420] - BBCode - Unable to use a proper URI token
- [PHPBB3-9459] - Visiting ACP with screen resolution 800x600px
- [PHPBB3-10175] - Class loader cannot find a/b_foo.php when a/b/bar.php exists
- [PHPBB3-10338] - Attachments list is displayed incorrectly
- [PHPBB3-10722] - Code Coverage generation fails
- [PHPBB3-11038] - Does not correctly find module info classes using new naming conventions
- [PHPBB3-11146] - MCP topic/post approval error
- [PHPBB3-11151] - Can use negative start for memberlist.php
- [PHPBB3-11218] - File upload functional test fails
- [PHPBB3-11255] - Some tests do not run standalone due to dbal dependency on global $cache
- [PHPBB3-11271] - Images in ATOM feed display, but attached inline images do not.
- [PHPBB3-11288] - "Fulltext native" search fooled by hyphens
- [PHPBB3-11364] - Add an easy-to-switch system for app.php?controller= vs mod-rewrite usage in append_sid
- [PHPBB3-11429] - Extensions should increment assets number on enable
- [PHPBB3-11581] - General Error in UCP if PMs are disabled in ACP
- [PHPBB3-11625] - General Error accessing MCP from Global Announcement
- [PHPBB3-11648] - Test suite creates files in phpBB directory
- [PHPBB3-11787] - Permission language strings use samp for highlight instead of strong
- [PHPBB3-11880] - Schema changes can take too long and cause a timeout
- [PHPBB3-11938] - Use of deprecated sql_attr_str2ordinal in sphinx.conf
- [PHPBB3-12003] - ACP broken when error thrown
- [PHPBB3-12072] - Missing word "send" in comment in schema_data.sql
- [PHPBB3-12078] - "Can permanently delete own posts" permission has no effect
- [PHPBB3-12080] - Responsive design in ACP / User Administration / Signature needs fixing
- [PHPBB3-12093] - IE 11 javascript selection is no longer supported
- [PHPBB3-12126] - Alert box is aligned to the left instead of center in IE
- [PHPBB3-12132] - viewtopic_print_head_append template event is missing in subsilver2
- [PHPBB3-12134] - ucp_pm_viewmessage_print_head_append template event is missing in subsilver2
- [PHPBB3-12136] - Call to undefined function generate_pagination() in functions_posting.php
- [PHPBB3-12138] - Information and pagination of filtered attachments
- [PHPBB3-12139] - Spaces missing after $show_guests in viewonline.php
- [PHPBB3-12141] - Travis tests fail on 5.5
- [PHPBB3-12149] - Division by zero in [ROOT] -/phpbb/pagination.php
- [PHPBB3-12153] - PAGE_NUMBER should be assigned by pagination.generate_template_pagination()
- [PHPBB3-12158] - pagination.validate_start() returns negative value when $num_items = 0
- [PHPBB3-12168] - Nav Header Links Alignment Issues without small-icon
- [PHPBB3-12170] - Migration helper replaces table name with 0 when creating tables
- [PHPBB3-12171] - Attachments from soft-deleted posts are still downloadable
- [PHPBB3-12172] - "Download all attachments" feature leaks post/pm attachments when being able to download one of them
- [PHPBB3-12175] - Fix and run functional upload tests
- [PHPBB3-12176] - No error shown when attempting to delete a founder
- [PHPBB3-12183] - Update user_newpasswd column in users table for passwords manager
- [PHPBB3-12184] - Undefined variable tpl_fields in profile field manager on memberlist
- [PHPBB3-12188] - Add php 5.6 to travis tests
- [PHPBB3-12192] - Avatars in PM report closed notifications are broken
- [PHPBB3-12194] - Unknown column 'field_show_novalue' in 'field list' [1054] -
- [PHPBB3-12200] - Profile field template files missing in adm/style
- [PHPBB3-12202] - Variables read from style.cfg etc. should be htmlspecialchared
- [PHPBB3-12203] - user_occ does not have a default value when registering
- [PHPBB3-12205] - Custom Profile Field display bug
- [PHPBB3-12206] - Errors in plupload doesn't pull lang vars right
- [PHPBB3-12207] - prosilver layout breaks when error outputted before <html>
- [PHPBB3-12208] - Plupload uploads files even if they were deleted from queue
- [PHPBB3-12210] - dbtools::sql_create_table incorrectly throws error related to auto-increment length on non auto-increment fields
- [PHPBB3-12212] - HTML in attachment file name rendered before upload
- [PHPBB3-12216] - Undefined index: lang_options when creating date profile field
- [PHPBB3-12220] - Debug message if no unread messages are present
- [PHPBB3-12222] - Replace hardoded comma with translatable separator in forumlist_body.html
- [PHPBB3-12223] - Pagination displayes additional &bull; when PAGE_NUMBER is empty
- [PHPBB3-12226] - Incorrectly used plurals in ucp.php MOVE_PM_ERROR and FOLDER_MESSAGE_STATUS
- [PHPBB3-12227] - "X from Y messages" should be "X out of Y messages"
- [PHPBB3-12243] - subsilver2 is missing profile field files
- [PHPBB3-12245] - "Invalid id refernce" for label "joined" and "group_id" in acp_prune_users.html
- [PHPBB3-12249] - Undefined variable: row when editing profile
- [PHPBB3-12250] - Remove deprecated phpbb_clean_path function
- [PHPBB3-12251] - Clean up and Enhancement of Custom Profile Fields
- [PHPBB3-12256] - phpbb\notification\type\admin_activate_user uses $sql as fetchrow parameter
- [PHPBB3-12261] - Login redirect from extension front controllers broken
- [PHPBB3-12263] - \phpbb\db\migration\tool\module.php contains several errors
- [PHPBB3-12267] - Functional testcase method get_extension_manager() uses undefined variable php_ext
- [PHPBB3-12271] - Decouple dropdown header/footer from #notification_list
- [PHPBB3-12272] - Hardcoded colon in subforums list

#### Improvement

- [PHPBB3-9255] - Friends Sidebar has scability issues..
- [PHPBB3-9479] - Empty paragraphs for vertical spacing are rather old-fashioned
- [PHPBB3-9709] - Missing language files for MCP could be substituted by default / english ones
- [PHPBB3-9871] - Update version check file to use json format
- [PHPBB3-10288] - Templates including other templates in loop can't access variables
- [PHPBB3-10549] - Languages variables should be used, not hardcoded
- [PHPBB3-10555] - Copyright notice in overall_header.html is not translatable
- [PHPBB3-10945] - Show entered search query in the search box when no results are found.
- [PHPBB3-11019] - Ability to store array of data in a log
- [PHPBB3-11022] - Add "Tahoma" to used font families in css files
- [PHPBB3-11040] - PostgreSQL fulltext search improvement
- [PHPBB3-11111] - Allow only vertical resize on the textarea.
- [PHPBB3-11179] - change the start parameter in search when out of bounds to display last(or first) page
- [PHPBB3-11201] - MSNM / WLM closing - redundant profile field
- [PHPBB3-11254] - Check CRLF line endings in the test suite
- [PHPBB3-11297] - Running tests doc should mention dbunit dependency
- [PHPBB3-11610] - Use a more secure hashing method like bcrypt
- [PHPBB3-11645] - Rename ".MODs" tab in the ACP
- [PHPBB3-11693] - Change phpbb_db_driver::sql_build_array() to support DELETE
- [PHPBB3-11716] - Migration to convert soft delete/trash bin mods to 3.1 soft delete
- [PHPBB3-12029] - Module names in the ACP should not be truncated when they are too long
- [PHPBB3-12073] - Small text size in ACP between <samp></samp> and <code></code> tags
- [PHPBB3-12106] - Document exceptions to "Disable Board" in ACP.
- [PHPBB3-12114] - Convert current profile fields to custom-profile-field system
- [PHPBB3-12117] - Nested Set Tree Classes Should be able to get all roots
- [PHPBB3-12166] - Add template event "quickreply_editor_message_box_before"
- [PHPBB3-12167] - Allow users to change style via style parameter by default
- [PHPBB3-12190] - Add core event "core.modify_submit_post_data"
- [PHPBB3-12217] - Add template events to viewtopic_body.html
- [PHPBB3-12224] - Add template method to assign block arrays
- [PHPBB3-12231] - Add template events to forumlist_body.html
- [PHPBB3-12238] - There is no cancel input type.
- [PHPBB3-12239] - Move deprecated password functions to compatibility file
- [PHPBB3-12240] - Adding specific class names to buttons in posting_buttons.html
- [PHPBB3-12241] - Event to add and/or modify acp_board configurations
- [PHPBB3-12244] - Remove ambiguity between Extension Tab and Extensions Management links
- [PHPBB3-12248] - Extension Details Homepage should be a clickable link
- [PHPBB3-12259] - Too many redundant tests are run on Travis
- [PHPBB3-12260] - Add core event to delete_posts() function
- [PHPBB3-12262] - Adjust a script to export the events in wiki format

#### Sub-task

- [PHPBB3-12115] - Convert occupation/interests profile field to custom field
- [PHPBB3-12169] - Convert location user field to profile field
- [PHPBB3-12187] - Convert website user field to profile field
- [PHPBB3-12233] - Allowing CPF to be have an icon on viewtopic and be listed in the contact section of the profile
- [PHPBB3-12234] - Convert ICQ user field to profile field
- [PHPBB3-12235] - Convert MSN/WLM user field to profile field
- [PHPBB3-12236] - Convert AOL user field to profile field
- [PHPBB3-12237] - Convert Yahoo user field to profile field

#### Task

- [PHPBB3-10763] - Audit code for non-static functions called statically
- [PHPBB3-10793] - Use db_tools in create_schema_files
- [PHPBB3-11509] - Travis should check commit message format
- [PHPBB3-11764] - Remove Subsilver2 from installation packages
- [PHPBB3-12177] - Add event ucp_zebra_friend_list_before/after
- [PHPBB3-12180] - CodeSniffer: Ensure each file ends with a single newline

### Changes since 3.1.0-a2

#### Bug

- [PHPBB3-10810] - Manage group in ucp requires access to adm/
- [PHPBB3-11246] - Misleading Message in New User Pruning Feature
- [PHPBB3-11484] - Topic Reply Notification email links not requiring user to log in
- [PHPBB3-11507] - Impossible to prune users by group only
- [PHPBB3-11672] - AJAX alerts contain unnecessary messages/links
- [PHPBB3-11709] - Bulletin points in navigation menu are misaligned in RTL languages
- [PHPBB3-11842] - Avatar driver error thrown when creating group
- [PHPBB3-11856] - Require composer.json for extensions
- [PHPBB3-11859] - Avatar drivers should return template filename
- [PHPBB3-11869] - Strict debug message when registering with profile fields displayed
- [PHPBB3-11911] - ACP should warn if there is no search index created for the selected search engine
- [PHPBB3-11912] - "Unable to guess the mime type as no guessers are available" when uploading files
- [PHPBB3-11914] - plupload should be updated to 2.0.x
- [PHPBB3-11915] - plupload should be restyled to match the design of prosilver better
- [PHPBB3-11959] - List of users in notifications should be trimmed
- [PHPBB3-11963] - Stale MCP notifications get left behind
- [PHPBB3-11984] - Ticket for more bugs/improvements for responsive design for both prosilver and ACP
- [PHPBB3-11988] - Active tab in ACP should not have hover effect
- [PHPBB3-11997] - redirect() does not work for app.php/xyz pages
- [PHPBB3-12001] - User input is ignored in AJAX confirmation forms
- [PHPBB3-12006] - Disabled Extensions with Modules can break the ACP/UCP/MCP
- [PHPBB3-12009] - Incorrectly installed extensions should be ignored
- [PHPBB3-12011] - RTL languages have style bugs in prosilver/ACP
- [PHPBB3-12015] - Enhance events in viewtopic to increase their usability
- [PHPBB3-12026] - Unable to find template - in MCP/UCP, which are added via extensions
- [PHPBB3-12027] - Redis tests failing
- [PHPBB3-12028] - Don't use L_COLON in a JavaScript context
- [PHPBB3-12030] - Include config directory completely in update packages when one file is being updated
- [PHPBB3-12032] - Certain notifications incorrectly inherit read status from post/topic
- [PHPBB3-12036] - Module Management items have 2 move down buttons and no up
- [PHPBB3-12038] - Move up/down buttons are not AJAXified in various ACP pages.
- [PHPBB3-12040] - ACP tabs flicker when AJAX background appears
- [PHPBB3-12042] - Several strings of plupload are not being translated
- [PHPBB3-12045] - Several HTML markup issues in adm/style/acp_prune_users.html
- [PHPBB3-12049] - PLUPLOAD_ERR_UPLOAD_LIMIT should be using plurals
- [PHPBB3-12050] - phpbb_notification_submit_post_base should be abstract
- [PHPBB3-12055] - ACP BBCodes/Smilies Row Color Changes Needed After AJAX operations
- [PHPBB3-12058] - Updating database fails in migration v310/avatar_types.php
- [PHPBB3-12059] - ACP INCLUDECSS not working, missing {$STYLESHEETS}
- [PHPBB3-12062] - INCLUDEJS broken for extension events in the ACP
- [PHPBB3-12063] - <tr> tags use invalid valign attribute
- [PHPBB3-12077] - General Error thrown when submitting ACP language pack editor
- [PHPBB3-12079] - request.untrimmed_variable() $multibyte param does not have default value
- [PHPBB3-12091] - Plupload - File upload does not work in Internet Explorer 11
- [PHPBB3-12092] - Plupload - File info missing for several uploaded files
- [PHPBB3-12095] - IE11 JavaScript plupload error
- [PHPBB3-12096] - Not using plurals correctly in search.php MAX_NUM_SEARCH_KEYWORDS_REFINE
- [PHPBB3-12100] - ACP Template files not purged during Extension Enable/Disable
- [PHPBB3-12107] - Log table name is hard-coded in log.get_logs()
- [PHPBB3-12110] - Update Plupload to 2.1.1
- [PHPBB3-12123] - No category specified for soft-delete permission
- [PHPBB3-12124] - Plupload broken on IE8
- [PHPBB3-12125] - Topic rows are missing background in IE8
- [PHPBB3-12131] - prosilver viewtopic print view has invalid imageset var
- [PHPBB3-12140] - Avoid endless loop in build script
- [PHPBB3-12141] - Travis tests fail on 5.5
- [PHPBB3-12151] - Class 'phpbb\profilefields\profilefields' not found
- [PHPBB3-12154] - DB Schema not built with develop script
- [PHPBB3-12156] - Passwords Manager ~ Bug with OAuth
- [PHPBB3-12159] - Fix code sniffer complaints after profilefields and passwords merge
- [PHPBB3-12161] - build/save directories are no longer created
- [PHPBB3-12162] - Binary files missing from update packages
- [PHPBB3-12163] - Page number in viewtopic page title is incorrect

#### Improvement

- [PHPBB3-10910] - function build_cfg_template() allow $size for $tpl_type = select
- [PHPBB3-11346] - Do not show "Mark topics as read" when there are no topics
- [PHPBB3-11849] - Move pagination from functions.php into class
- [PHPBB3-11950] - Add 'I forgot my password' link to index page login form
- [PHPBB3-11961] - Plupload is not updating uploaded files panel
- [PHPBB3-11966] - Add Template Event overall_header_navigation_prepend/append to Subsilver2
- [PHPBB3-11969] - Link topic title to unread post instead of first post
- [PHPBB3-11979] - Add basic dropdown menu framework to prosilver
- [PHPBB3-12005] - Remove code responsible for PM popup completely
- [PHPBB3-12010] - Navbar icons should be clickable
- [PHPBB3-12014] - Add template event "index_body_forumlist_before"
- [PHPBB3-12024] - Add Template Event overall_header_content_before and overall_footer_content_after
- [PHPBB3-12034] - AJAXify notifications popup
- [PHPBB3-12054] - Improve Index Body Template Events
- [PHPBB3-12060] - Add BBCode system core and template events
- [PHPBB3-12069] - Add PHP event core.submit_post_modify_return_url in submit_post()
- [PHPBB3-12104] - Shadowtopics SQL used in core event should use the SQL builder
- [PHPBB3-12135] - editor.js function bbfontstyle()
- [PHPBB3-12146] - Add color demo when editing a group from the UCP

#### New Feature

- [PHPBB3-12039] - Add config functionality to CLI

#### Sub-task

- [PHPBB3-11241] - Improve user interface for mass attachment downloader (all posts, all topics)
- [PHPBB3-12111] - Extract profile field types to individual classes

#### Task

- [PHPBB3-11432] - Travis should complain when CRLF files are added.
- [PHPBB3-11509] - Travis should check commit message format
- [PHPBB3-11985] - Enable APC module on Travis to run APC Cache tests
- [PHPBB3-12064] - Remove obsolete viewsource.html from adm/style folder
- [PHPBB3-12147] - Remove Travis CI notification configuration

### Changes since 3.1.0-a1

#### Bug

- [PHPBB3-4776] - Long post gets hidden behind posting profile
- [PHPBB3-10449] - Lines spilling in subscriptions view
- [PHPBB3-10948] - Color swatch in 3.1 does not display properly
- [PHPBB3-11030] - I beam cursor in prosilver when hovering on browse button for uploading attachments
- [PHPBB3-11073] - Reported/Unapproved moderator information in viewtopic is striked through instead of underlined
- [PHPBB3-11138] - Resync features in ACP should not use AJAX
- [PHPBB3-11280] - Double clicking "mark topics read" produces an error the second time
- [PHPBB3-11525] - phpbb_avatar_manager::clean_row collapses user_id and group_id
- [PHPBB3-11534] - Remote avatar does not properly check if remote file is an image
- [PHPBB3-11626] - Auth ACP options should be moved to separate html file
- [PHPBB3-11663] - In generate_text_for_storage the function does not check for errors of parse_message:parse() and act accordingly
- [PHPBB3-11691] - Soft delete migration conversion should be staggered
- [PHPBB3-11739] - Wrong name for UCP Module "Edit "Remember Me" login keys"
- [PHPBB3-11842] - Create a new group Error with avatar driver
- [PHPBB3-11857] - Avatar manager must not depend on entire container
- [PHPBB3-11872] - MCP: Users with most warnings list is invalid
- [PHPBB3-11896] - "Mark all notifications read" does not work
- [PHPBB3-11899] - New ajax poll vote should give feedback while waiting for servers response
- [PHPBB3-11916] - Remove files from hidden attach list after deletion
- [PHPBB3-11922] - Migrator fails to remove columns on MSSQL when they have/had an index
- [PHPBB3-11923] - UCP avatar error when user has no permissions to change his/her avatar
- [PHPBB3-11924] - Add a script to export the events in wiki format
- [PHPBB3-11926] - Plupload Migration has a broken dependency.
- [PHPBB3-11927] - Missing Files after 3.1.0-A1 Automatic Updater
- [PHPBB3-11930] - Avatar paths are incorrect when using app.php
- [PHPBB3-11935] - Invalid HTML in "Sort By" form elements in Prosilver
- [PHPBB3-11936] - Fixes to Notifications Window
- [PHPBB3-11939] - Quick reply editor has unnecessary data-ajax attribute
- [PHPBB3-11943] - $VAR = false has unexpected result
- [PHPBB3-11945] - Focused buttons are hard to notice
- [PHPBB3-11947] - Notification popup does not appear when clicking number in text
- [PHPBB3-11948] - Extensions should be allowed to have more then 1 routing file
- [PHPBB3-11949] - cannot upgrade to 3.1
- [PHPBB3-11960] - Responsive design removed teampage names
- [PHPBB3-11972] - Add template event posting_editor_subject_after
- [PHPBB3-11977] - Ajax delete should disable moving options
- [PHPBB3-11982] - Navigation is shown above AJAX background in ACP
- [PHPBB3-11983] - Subscriptions argument missing from docblock in ucp_notifications
- [PHPBB3-11986] - Undefined index: poster_id in file.php
- [PHPBB3-11987] - {ROOT_PATH} in ACP leads to adm/
- [PHPBB3-11990] - Remove result_mssqlnative from acp_database
- [PHPBB3-11991] - PHP notices when closing reported posts entries in MCP
- [PHPBB3-11992] - Wrong variable to close "Users with most warnings" block at MCP
- [PHPBB3-11994] - Admin options for extensions are bad/misleading
- [PHPBB3-11995] - Reverting a config.remove fails
- [PHPBB3-12002] - Extension management page should use generate/check link hash
- [PHPBB3-12007] - Default last_result of callable steps must be integer instead of false
- [PHPBB3-12008] - "Prune notifications" cron task always ran, blocking others
- [PHPBB3-12016] - Event listeners should be services
- [PHPBB3-12017] - Extension tests are broken on current develop
- [PHPBB3-12018] - Use path_helper for admin style CSS in sql report
- [PHPBB3-12023] - New css files missing after update

#### Improvement

- [PHPBB3-11552] - Responsive design for prosilver
- [PHPBB3-11746] - Add "account activation required" notification for Administrators
- [PHPBB3-11921] - Improve Notifications and PMs in the header
- [PHPBB3-11928] - Replace AJAX loading info pop up with animation
- [PHPBB3-11957] - Responsive design for admin control panel
- [PHPBB3-11973] - Remove logic from language files where possible
- [PHPBB3-11974] - All timezones should be translatable
- [PHPBB3-11975] - Add ACP link next to MCP

#### Task

- [PHPBB3-11031] - Bring phpBB2 converter up to speed with 3.1 changes
- [PHPBB3-11980] - Setup PHP Code Sniffer
- [PHPBB3-11981] - Review/Fix Code Sniffer complaints
- [PHPBB3-11998] - Add console / command line client environment

### Changes since 3.0.x

#### Bug

- [PHPBB3-4412] - MCP and viewtopic messed up when long profile fields used
- [PHPBB3-6109] - MSN is now called Windows Live Messenger (WLM)
- [PHPBB3-6855] - The word separator has been misspelled in the code
- [PHPBB3-7070] - Making Font Type & Size Easy To modify
- [PHPBB3-7252] - Use IMAGETYPE_ constants in get_supported_image_types()
- [PHPBB3-7448] - Module management calling non-static method p_master::module_auth()
- [PHPBB3-8212] - Comment spelling mistake in includes/acp/acp_board.php
- [PHPBB3-8228] - Coding BBcode has whitespace before the code.
- [PHPBB3-8542] - No custom profile fields in private messages
- [PHPBB3-8641] - Extra and missing comma in acp_board.php
- [PHPBB3-8713] - trimming login inputs isn't sensible
- [PHPBB3-8841] - Unexpected results when using "PHPBB_USE_BOARD_URL_PATH"
- [PHPBB3-8912] - phpbb_styles_template_data contans more than 4k records
- [PHPBB3-9022] - Poll Deletion Problem on Global change
- [PHPBB3-9163] - style.php cannot be properly cached
- [PHPBB3-9341] - Incorrectly named template vars
- [PHPBB3-9394] - wrong comment in functions_upload.php
- [PHPBB3-9474] - Unnecessary mcp_viewlogs.html included
- [PHPBB3-9492] - Group avatar overwrites currently defined user avatars
- [PHPBB3-9766] - phpbb_default_captcha::delete_code() takes no argument but uses $confirm_id
- [PHPBB3-9918] - $redirect variable set, but not used, in mcp functions
- [PHPBB3-10006] - phpbb_config::delete is missing
- [PHPBB3-10013] - Cache test writes to a temporary location deep in the source tree
- [PHPBB3-10045] - Database updater version for changes between 3.0.x and 3.1.0 should be 3.1.0-dev
- [PHPBB3-10070] - CRLF in develop
- [PHPBB3-10080] - request_var tests fail when other tests using request_var are executed first
- [PHPBB3-10103] - Fix remaining usage of flock() by converting it to use the lock class
- [PHPBB3-10136] - Missing $request globalizations in includes/functions.php
- [PHPBB3-10139] - Use of $cache for two different things in includes/config/db.php
- [PHPBB3-10151] - Version number needs to be updated in installer
- [PHPBB3-10152] - Installer places ?> in config.php
- [PHPBB3-10156] - Cron tests fail on windows
- [PHPBB3-10290] - Who's online broken due to malformed SQL
- [PHPBB3-10300] - Groups teampage legends settings
- [PHPBB3-10316] - Inconsistency between prosilver and subsilver when locking a topic while moving
- [PHPBB3-10322] - No longer possible to include templates via variables, captcha broken
- [PHPBB3-10329] - Function pcre_utf8_support() needs the "phpbb_" prefix
- [PHPBB3-10350] - class phpbb_template_renderer_eval does not work
- [PHPBB3-10355] - Template tests do not correctly end output buffering
- [PHPBB3-10359] - Fix phpbb_request regression in download/file.php and style.php
- [PHPBB3-10360] - search_results.html gone haywire!
- [PHPBB3-10364] - ACP Permissions Roles Tabs Broken
- [PHPBB3-10371] - $user->theme['imageset_path'] - doesn't exist anymore
- [PHPBB3-10374] - Template cache viewer broken
- [PHPBB3-10375] - Template Cache keeps regenerating cache files
- [PHPBB3-10378] - Errors in imageset -> theme conversion
- [PHPBB3-10380] - Imageset removal: bidi padding change
- [PHPBB3-10384] - 1_DAY language variables are not working in templates anymore
- [PHPBB3-10392] - Alternate nested block loop syntax broken for auto variables
- [PHPBB3-10393] - Syntax error in cached template code
- [PHPBB3-10409] - Running database_update.php multiple times breaks the update
- [PHPBB3-10417] - phpbb_test_case_helpers::get_test_config() uses array_merge() on undefined $config
- [PHPBB3-10444] - Edit reason remains if a post gets edited by a moderator for the second time
- [PHPBB3-10457] - Undefined variable $request, when print-viewing PMs
- [PHPBB3-10458] - Invalid html when print-viewing a PM
- [PHPBB3-10459] - Make "Reply to all"on PMs as a button
- [PHPBB3-10463] - Inherit template causes SQL error
- [PHPBB3-10464] - Debug error in search settings/search index
- [PHPBB3-10477] - Registration, forgot password broken
- [PHPBB3-10481] - Test suite does not run on php 5.3
- [PHPBB3-10495] - Tests have version checks against php 6.0.0
- [PHPBB3-10500] - Miscellaneous issues in the new template engine
- [PHPBB3-10541] - Empty "Select form:" dropdown when editing user
- [PHPBB3-10547] - Log out instead of acp statistics page at the end of fresh install
- [PHPBB3-10560] - Post count not updated to include unapproved posts (though topic count is) for moderators
- [PHPBB3-10575] - UCP Register: Non-static method phpbb_captcha_factory::get_instance() should not be called statically
- [PHPBB3-10579] - New license block has v2 duplicated
- [PHPBB3-10602] - A bug in mail queue processing
- [PHPBB3-10618] - Hardcoded phpBB 3.0 language in installer
- [PHPBB3-10634] - cp modules: function loaded() only checks current module type
- [PHPBB3-10636] - cache_moderators() generates invalid query
- [PHPBB3-10637] - Extension manager: missed code changes in search
- [PHPBB3-10641] - MCP still uses old plurality forms of language variables
- [PHPBB3-10645] - Invalid CSS for checkboxes and radio buttons in ACP css
- [PHPBB3-10652] - Template inheritance doesn't work
- [PHPBB3-10655] - Bug in test case: phpbb_template_template_inheritance_test
- [PHPBB3-10663] - Extension manager: finder class adds directories that should not match the query
- [PHPBB3-10667] - Fix extensions and group positions tests under MySQL 5.5 strict mode
- [PHPBB3-10671] - Integrity tests failing
- [PHPBB3-10672] - Statistics .. Total posts
- [PHPBB3-10678] - Provide Firebird, Oracle, and increased MSSQL support in unit tests
- [PHPBB3-10685] - Template inheritance test produces a notice on php 5.4 due to an incompatible override of setup_engine
- [PHPBB3-10690] - Undefined language string in MCP
- [PHPBB3-10703] - extensions.php script dies miserably when ext directory is missing
- [PHPBB3-10704] - Typo in a comment
- [PHPBB3-10735] - Incorrect styles search order, locator's inability to use template inheritance for extensions
- [PHPBB3-10736] - Composer is making tests fail
- [PHPBB3-10742] - Tables in users list have incorrect width
- [PHPBB3-10752] - acp_styles errors
- [PHPBB3-10754] - $style should be renamed to $phpbb_style
- [PHPBB3-10756] - Template classes don't belong in style directory
- [PHPBB3-10759] - Database updater doesn't reset default style
- [PHPBB3-10777] - Typo in viewtopic.php comment line 1632
- [PHPBB3-10778] - Extra space on the link "Close Window" in prosilver/template/posting_smilies.html
- [PHPBB3-10779] - "Serve jQuery using Google's CDN" Should be on ACP Load Settings, not Board Features
- [PHPBB3-10781] - Quick Mod tools don't work
- [PHPBB3-10784] - Do not show ajax overlay unless needed
- [PHPBB3-10785] - Illegal use of $_REQUEST in develop/fill.php
- [PHPBB3-10801] - Move topic in quickmod tools not functional
- [PHPBB3-10802] - Splitting topics in quickmod tools not functional
- [PHPBB3-10803] - When ajax requests fail, the failure message should remain visible until the user dismisses it
- [PHPBB3-10805] - "Request timed out" ui appears over function ui in ajax
- [PHPBB3-10807] - Deleting topics via quickmod provides no feedback
- [PHPBB3-10808] - Locking topics via quickmod provides no feedback
- [PHPBB3-10811] - AJAX callback "alt_text" insufficiently changes links
- [PHPBB3-10813] - Installer does not check that php json extension is present
- [PHPBB3-10818] - Global Announcements Update Dialog does not terminate with exit_handler()
- [PHPBB3-10826] - 3.1-dev Database Updater keeps running group_legend query
- [PHPBB3-10837] - Undefined index in extension tests
- [PHPBB3-10844] - Extensions are not located when front-end file has a diffferent phpbb_root_path
- [PHPBB3-10845] - Reported post text does not get bbcode-parsed when viewing a post report
- [PHPBB3-10847] - Dependent is misspelled a number of times
- [PHPBB3-10871] - In "Posts awaiting approval" if there's more than one post it shows no posts
- [PHPBB3-10875] - SQL Cache is not used
- [PHPBB3-10876] - Xampp crashes on Develop when template has too many ORs in an IF statement
- [PHPBB3-10885] - UCP Main Error if no forums exist
- [PHPBB3-10888] - cachepath in template class is set externally
- [PHPBB3-10905] - Last topic title missing in subsilver
- [PHPBB3-10906] - Last post title does not work for new installs of 3.1-dev due to missing change to schema_data.sql
- [PHPBB3-10912] - Undefined variable: last_post_subject_truncated
- [PHPBB3-10915] - Sort not installed styles list in admin control panel - styles
- [PHPBB3-10943] - Search Box should display keywords entered by the user
- [PHPBB3-10954] - Mark topics as read AJAX
- [PHPBB3-10976] - Running tests using phpunit.xml.all fails
- [PHPBB3-10982] - Allow setting dimming control overlay also as data-overlay
- [PHPBB3-10998] - No border-radius for forum rules block
- [PHPBB3-10999] - Asset version not defined in adm/
- [PHPBB3-11002] - Etc/GMT timezones return wrong offset
- [PHPBB3-11003] - Ability to show full list of timezones with JavaScript enabled
- [PHPBB3-11004] - The timezone suggestion button is not a real button
- [PHPBB3-11007] - Timezone selector shows all timezones
- [PHPBB3-11014] - Previous/next links are no longer displayed.
- [PHPBB3-11018] - Pagination in memberlist
- [PHPBB3-11023] - Fix excess tabbing and spacing in functions.php
- [PHPBB3-11029] - Cannot break/continue 1 level in includes\cache\service.php:340
- [PHPBB3-11041] - global $php_ext instead of global $phpEx
- [PHPBB3-11043] - Update template hook name
- [PHPBB3-11046] - No border-radius for UCP message colours block
- [PHPBB3-11047] - Unclosed variable shows incorrect language key
- [PHPBB3-11052] - Search class changes not reflected in installer or convertor
- [PHPBB3-11065] - li tag on topic display options at MCP is unclosed
- [PHPBB3-11067] - Pagination in ACP is missing CSS code from pagination change
- [PHPBB3-11077] - Feed still has fallback code for global announcement with forum_id = 0
- [PHPBB3-11086] - Database Updater still relies on cache factory - needs to be updated to use DIC
- [PHPBB3-11089] - Database type mysql sets unusable board
- [PHPBB3-11092] - phpbb_gen_download_links strict standards errors
- [PHPBB3-11095] - Jumpbox should use "get" method
- [PHPBB3-11099] - Clicking Banning tab in MCP causes all tabs to collapse down
- [PHPBB3-11100] - jabber::can_use_ssl() should not be called statically in includes/acp/acp_jabber.php on line 124
- [PHPBB3-11101] - Container processors are executed before globals exist
- [PHPBB3-11106] - Undefined index: EDITED_TIME_TOTAL
- [PHPBB3-11139] - Colour swatch window with Fatal error
- [PHPBB3-11140] - MCP Front errors on reported posts
- [PHPBB3-11154] - Unable to upgrade 3.0 QI-installed board to 3.1
- [PHPBB3-11157] - Strict spam renders spambot countermeasures page unusable
- [PHPBB3-11159] - Coding guidelines: static public
- [PHPBB3-11166] - AJAX confirm box is not using custom templates given
- [PHPBB3-11171] - Copy bbcode fields, etc. for reported posts
- [PHPBB3-11176] - Functional tests do not run
- [PHPBB3-11177] - Postgres search when query has only negation
- [PHPBB3-11187] - Functional tests broken by new config class
- [PHPBB3-11188] - postgres search result count does not get the total count
- [PHPBB3-11190] - Functional tests do not clear the cache between each test
- [PHPBB3-11194] - PHP Notice: Undefined index "tag"
- [PHPBB3-11198] - AJAX move up/down links not replaced correctly
- [PHPBB3-11199] - Cache purge should remove dumped container
- [PHPBB3-11200] - Container construction fails with non-MySQLi drivers
- [PHPBB3-11204] - Wrong indentation in functional test case base class
- [PHPBB3-11205] - Merge conflict in readme.html
- [PHPBB3-11206] - Avatars are broken, includes non-existent files
- [PHPBB3-11208] - Functional tests are broken
- [PHPBB3-11209] - Always clone Ajax disable images to avoid problems if they are used multiple times on the same page
- [PHPBB3-11211] - Call to undefined function phpbb_real_path() in /phpBB/includes/di/extension/ext.php on line 52
- [PHPBB3-11212] - Catch non-existent globals if error occurs during container construction
- [PHPBB3-11213] - Missing global in install_update.php
- [PHPBB3-11227] - @return void -> @return null
- [PHPBB3-11236] - Prune users requires group selection if any groups are defined
- [PHPBB3-11237] - php spam when pruning users
- [PHPBB3-11247] - php spam in flock class
- [PHPBB3-11248] - CRLF line endings
- [PHPBB3-11253] - Signature module acl is not going to be added to 3.1 boards
- [PHPBB3-11256] - Unused service controller.route_collection
- [PHPBB3-11257] - Using Service Collection requires set_name() method to exist
- [PHPBB3-11263] - PHP Notice: in file functions_messenger.php on line 213: Undefined variable: extension_manager
- [PHPBB3-11273] - Missing space after Sphinx "Indexer memory limit" input box
- [PHPBB3-11277] - User DST column is not removed on update, and therefor user_timezone is updated everytime the update file is run
- [PHPBB3-11279] - "Something went wrong when processing your request." is not acceptable language
- [PHPBB3-11291] - "Could not open input file: ../composer.phar" error during phing's create-package
- [PHPBB3-11298] - ACP_EXTENSIONS_MANAGEMENT missing string
- [PHPBB3-11302] - No timezone is selected by default in registration form
- [PHPBB3-11303] - Timezone selection is not preserved in registration form
- [PHPBB3-11305] - Installer is broken on develop
- [PHPBB3-11309] - phpbb_extension_interface::disable_step correct docblock
- [PHPBB3-11310] - CSRF in style installation in acp
- [PHPBB3-11311] - Include javascript core.js file in subsilver2 overall_footer.html
- [PHPBB3-11313] - Typo in alt_text callback breaks replacement of text
- [PHPBB3-11320] - Database test cases fail if functions file is not included and config file exists
- [PHPBB3-11321] - Recreate schema files with develop/create_schema_files.php
- [PHPBB3-11323] - Not possible to define template variable with other variables
- [PHPBB3-11329] - Color values should be in colours.css, not buttons.css
- [PHPBB3-11334] - Controller helper url() method still generates URLs like app.php/route/to/page instead of app.php?controller=route/to/page
- [PHPBB3-11335] - Hook finder fails to load hooks
- [PHPBB3-11342] - Marking subforums as read does not change the unread icons of active topics
- [PHPBB3-11344] - ACP_STYLE_COMPONENTS
- [PHPBB3-11345] - Font size on new buttons is too thin
- [PHPBB3-11350] - $db should not be passed by reference to db_tools
- [PHPBB3-11362] - Resource locator does not find admin template files from extensions
- [PHPBB3-11363] - Migrations module tool does not load info files from extensions
- [PHPBB3-11367] - Migrator throws error if migrations table does not exist
- [PHPBB3-11369] - Reverting migration throws error (attempt to unserialize string)
- [PHPBB3-11370] - Effectively installed migrations not inserted into migrations table
- [PHPBB3-11372] - Migrator should only check if effectively installed if the migration is not installed at all
- [PHPBB3-11381] - Finder cannot find items for non-enabled extensions (required during installation)
- [PHPBB3-11383] - Uninstalling an extension that adds a module causes an error upon purge
- [PHPBB3-11385] - get_module_infos from migrator does not return module info
- [PHPBB3-11386] - Migrator can include files multiple times
- [PHPBB3-11387] - Module add tool logs module as added even if it fails due to error (migrations)
- [PHPBB3-11388] - Extension CSS files are not being auto-loaded
- [PHPBB3-11394] - Migration Tools are too strict
- [PHPBB3-11395] - acp_modules::get_module_infos can include files multiple times
- [PHPBB3-11396] - insert_migration also updates migration (should rename function)
- [PHPBB3-11398] - Migrations permission tool's method permission_set causes fatal error
- [PHPBB3-11400] - Notification system assumes email is always available
- [PHPBB3-11402] - Undefined offset 0 post/topic_in_queue (notifications)
- [PHPBB3-11403] - Multiinsert for notifications should use batches
- [PHPBB3-11404] - Can not access ACP "manage group" page while creating new groups
- [PHPBB3-11405] - Users that are subscribed to a forum, don't receive notifications for new replies
- [PHPBB3-11407] - UI notifications have wrong <dfn> info next to checkbox
- [PHPBB3-11408] - Undefined index jabber (should be user_jabber)
- [PHPBB3-11411] - Broken primary key on phpbb_notification_types table
- [PHPBB3-11413] - phpbb_notification_types table should have an integer primary key
- [PHPBB3-11415] - Accessing phpbb_migrations table from index page (or other pages)
- [PHPBB3-11416] - Primary key on phpbb_notifications table too small
- [PHPBB3-11417] - Notification Options page in User Control Panel has "Mark read" as submit button.
- [PHPBB3-11420] - Notification methods are not (correctly) imported
- [PHPBB3-11421] - Submit button missing from UCP notifications module
- [PHPBB3-11422] - Assets should be incremented on database update
- [PHPBB3-11423] - Email has HTML from username
- [PHPBB3-11433] - Loading alert message is shown beneath overlay
- [PHPBB3-11435] - Extension template files curly braces bug
- [PHPBB3-11437] - Sphinx debug assert failed when no search results are found
- [PHPBB3-11438] - Sphinx default config does not work properly
- [PHPBB3-11439] - Notification tests are not run via phpunit.xml.dist
- [PHPBB3-11440] - Mixed type (string vs integer) in SQL query against phpbb_users
- [PHPBB3-11442] - AJAX in the ACP Does not work wherever Confirm Box modals are used
- [PHPBB3-11443] - Two migration tests are not run via phpunit.xml.dist
- [PHPBB3-11448] - phpbb_notification_manager::mark_notifications_read takes $user_id as a parameter but isn't using it
- [PHPBB3-11450] - phpbb_extension_metadata_manager has wrong docs and too many arguments
- [PHPBB3-11451] - class phpbb_notification_method_jabber extends phpbb_notification_method_email
- [PHPBB3-11452] - phpbb_notification_method_email::is_available() should return false when user doesn't have an email address
- [PHPBB3-11454] - Jabber notifications are not working at all
- [PHPBB3-11455] - Sort phpBB/config/tables.yml in alphabetic order
- [PHPBB3-11457] - class phpbb_notification_test should not require/use the global set_var() function
- [PHPBB3-11460] - New installs have wrong data in phpbb_user_notifications table.
- [PHPBB3-11464] - Config table load_cpf_pm is missing on new install
- [PHPBB3-11466] - phpunit configs excludes non-existant files
- [PHPBB3-11471] - Some email templates contain unrelated text
- [PHPBB3-11474] - "Post in queue" notification send to too many moderators
- [PHPBB3-11478] - Daylight Savingtime changes old posts in time, too.
- [PHPBB3-11479] - Can not access install/index.php?mode=update
- [PHPBB3-11485] - migration doesn't add necessary columns to phpbb_styles table when updating schemas.
- [PHPBB3-11488] - Notification email error
- [PHPBB3-11489] - Change forum list layout to work at any resolution
- [PHPBB3-11491] - Functional test for extensions has wrong class name and is in the wrong directory
- [PHPBB3-11492] - memberlist user_ids array uninitalized can lead to error
- [PHPBB3-11494] - Fix memberlist leaders functional tests
- [PHPBB3-11501] - Fix "This test did not perform any assertions" message on some tests
- [PHPBB3-11503] - Implementation of DB drivers vary too much
- [PHPBB3-11516] - .live() deprecated in new version of jquery
- [PHPBB3-11535] - ACP und UCP avatar groups settings do not display an error upon submitting incorrect data
- [PHPBB3-11549] - Resource locator does not find admin template files from extensions
- [PHPBB3-11550] - Functional extension controller test should use $helpers to copy and remove files
- [PHPBB3-11551] - ACP System tab errors: [phpBB Debug] - PHP Notice: in file [ROOT] -/includes/acp/acp_update.php on line 49: Undefined offset: 1
- [PHPBB3-11553] - Links list errors
- [PHPBB3-11554] - forum_fn.js should be moved to footer
- [PHPBB3-11555] - Pagination page selection JS is broken
- [PHPBB3-11556] - Remove non-jquery fallback code from forum_fn.js
- [PHPBB3-11560] - Missing T_JQUERY_LINK template variable in installer
- [PHPBB3-11561] - Notification functional tests fail using phpunit.xml.all
- [PHPBB3-11562] - forum_fn.js cleanup
- [PHPBB3-11563] - Move subPanels() code from html templates to forum_fn.js
- [PHPBB3-11564] - Notifications list errors
- [PHPBB3-11567] - Fatal error at database update
- [PHPBB3-11569] - Database update fails at continuing on some environments
- [PHPBB3-11570] - No way to get back to update routine when in database updater
- [PHPBB3-11573] - Test Suite does not work with MySQL STRICT_TRANS_TABLES (MySQL 5.6)
- [PHPBB3-11574] - Unable to "auto update" from 3.0 to 3.1
- [PHPBB3-11585] - Strict Standars error when editing the role
- [PHPBB3-11586] - Fix/cleanup some of upload_attachment()'s code
- [PHPBB3-11587] - Group gets removed from legend when editing one in UCP
- [PHPBB3-11593] - filter->compile_var_tags uses undefined variable
- [PHPBB3-11594] - Template filter not aware of extension context
- [PHPBB3-11599] - Tree tests are very slow
- [PHPBB3-11602] - Do not call avatar_manager's localize_errors() if avatars are disabled
- [PHPBB3-11605] - Order of files and directories given to phpbb_test_case_helpers->remove_files() matters.
- [PHPBB3-11622] - Template events are loaded incorrectly
- [PHPBB3-11647] - URLs are incorrectly handled by INCLUDEJS
- [PHPBB3-11660] - Bootstrap container from config.php bugs
- [PHPBB3-11664] - Creating php.html file in root path in tests
- [PHPBB3-11665] - Can't change file names already sent to set_filenames
- [PHPBB3-11675] - Uncaught exception 'Twig_Error_Syntax' -Permissions User roles-
- [PHPBB3-11687] - assets_version is missing in phpbb_config
- [PHPBB3-11688] - Cache purge does not purge the twig directory
- [PHPBB3-11691] - Soft delete migration conversion should be staggered
- [PHPBB3-11692] - Don't update search_type in dev migration if already appended with phpbb_search_
- [PHPBB3-11694] - Twig Error on ACP Login page
- [PHPBB3-11695] - Cannot edit first post in a topic more than once without manually changing "Options Per User" to 1 on second edit.
- [PHPBB3-11696] - phpbb_db_tools does not autoload
- [PHPBB3-11697] - fulltext_mysql.php - author_search() uses incorrect $m_approve_fid_ary parameter
- [PHPBB3-11701] - TWIG breaks template events for events inside of looped template code
- [PHPBB3-11702] - Forumlink gives general error
- [PHPBB3-11706] - getimagesize() should be called with @ to prevent PHP warning in remote avatar
- [PHPBB3-11707] - Twig DEFINE not working as expected
- [PHPBB3-11708] - Invalid bulletin point in notifications
- [PHPBB3-11712] - Typo in editor.js
- [PHPBB3-11713] - Module gets removed by ajax even if removal was not successful
- [PHPBB3-11717] - View unanswered posts = General error
- [PHPBB3-11718] - Twig lexer only correcting statements in IF, not ELSEIF
- [PHPBB3-11723] - Can not agree to Terms of Service if more than one language is installed
- [PHPBB3-11725] - No Avatar image -upload avatar-
- [PHPBB3-11727] - INCLUDECSS and INCLUDEJS incorrectly default to /template/ folder
- [PHPBB3-11728] - Fix last occurance of topic_approved index
- [PHPBB3-11729] - memberlist.php is empty white page
- [PHPBB3-11731] - Make calls for captcha garbage collections non-static
- [PHPBB3-11733] - Illegal offset type Warning in [ROOT] -/includes/auth/auth.php via [ROOT] -/feed.php
- [PHPBB3-11734] - Missing permession in language file
- [PHPBB3-11735] - Missing checkbox in User Control Panel / Manage notifications
- [PHPBB3-11739] - Wrong name for UCP Module "Edit "Remember Me" login keys"
- [PHPBB3-11741] - Brackets exist even without any text
- [PHPBB3-11751] - MCP Softdelete Modules missing when updating board
- [PHPBB3-11754] - Remove leftovers of style switcher
- [PHPBB3-11755] - MySQL Upgrader out of date for 3.1
- [PHPBB3-11757] - Typo in signature_module_auth migration
- [PHPBB3-11759] - Migrations update to the wrong 3.0.x version numbers.
- [PHPBB3-11761] - Example.org no longer serves blank responses, failing functional tests
- [PHPBB3-11763] - Debug and SQL Error when reporting a PM
- [PHPBB3-11767] - Unable to update DB from 3.0.X to 3.1.X because of post_visibility
- [PHPBB3-11770] - Invalid class for pm list in outbox/sentbox
- [PHPBB3-11774] - PHP errors on viewing reported post details
- [PHPBB3-11777] - Extension template events are not loaded from subdirectories
- [PHPBB3-11779] - Invalid class for unapproved posts in mcp index
- [PHPBB3-11780] - Remove unused images from prosilver
- [PHPBB3-11781] - update_post_information() is not defined in phpbb_content_visibility->set_post_visibility
- [PHPBB3-11782] - Notices inside posts look messy
- [PHPBB3-11791] - Template events are not loaded in ACP
- [PHPBB3-11792] - core.user_setup event doesn't support loading language files from extensions
- [PHPBB3-11796] - Duplicate code for pagination
- [PHPBB3-11800] - Incorrect inclusion of scripts in popup window
- [PHPBB3-11804] - </li> tag at overall_header.html (prosilver) which was not open
- [PHPBB3-11805] - pagination does not support controller_helper urls
- [PHPBB3-11809] - core.js should be loaded directly after jQuery and after every other JS file
- [PHPBB3-11811] - Chrome 30 adds outline to focused elements
- [PHPBB3-11812] - No longer able to define empty template variable using DEFINE
- [PHPBB3-11816] - Twig regression: parentheses in IF statements stop DEFINE variables and loop lengths from working
- [PHPBB3-11822] - Template include asset doesn't follow namespace lookup order
- [PHPBB3-11824] - Controller URLs do not work anymore
- [PHPBB3-11825] - phpBB/phpbb/ should only contain classes
- [PHPBB3-11828] - Twig DEFINE is causing errors
- [PHPBB3-11832] - URLs in tests aren't shortened, triggering errors in Composer files
- [PHPBB3-11833] - Twig error while viewing user notes
- [PHPBB3-11835] - phpbb_db_migration_data_310_auth_provider_oauth: A required module does not exist: UCP_AUTH_LINK
- [PHPBB3-11836] - Manage external account associations error
- [PHPBB3-11837] - UCP_AUTH_LINK_NOT_SUPPORTED (untranslated)
- [PHPBB3-11843] - Regression: using underscores in template DEFINE variables yields unexpected behavior
- [PHPBB3-11846] - Empty paragraph elements in jumpbox.html
- [PHPBB3-11850] - $user->page contains bogus data on controller (app.php) pages
- [PHPBB3-11852] - filesystem class must not depend on a web request
- [PHPBB3-11862] - Events core.delete_user_before and core.delete_user_after compact the wrong vars
- [PHPBB3-11865] - includes/bbcode.php is missing namespace change
- [PHPBB3-11866] - "You have specified an invalid dbms driver" Error with config sample
- [PHPBB3-11867] - Schema files are not created by create_schema_files.php
- [PHPBB3-11868] - Class 'phpbb_request_interface' not found
- [PHPBB3-11871] - Extension modules are not working with namespaces anymore
- [PHPBB3-11874] - RSS Feed -Bug Url-
- [PHPBB3-11878] - Missing leading \ in dependencies in soft_delete_mcp_modules
- [PHPBB3-11882] - Incorrect dependency in signature module auth migration
- [PHPBB3-11888] - On New installation the default search backend is not shown correctly.
- [PHPBB3-11890] - Language key used when soft-deleting in MCP.
- [PHPBB3-11892] - Undefined variable: to_forum_id after cancelling merge topic/move posts
- [PHPBB3-11893] - Font size in "Edit 'Remember Me' login keys" is large
- [PHPBB3-11895] - Forum feed stopped working
- [PHPBB3-11898] - Unable to login to ACP on AREA51
- [PHPBB3-11901] - Undefined offset: 3 in file [ROOT] -/includes/functions_content.php on line 776
- [PHPBB3-11905] - Alpha 1 Migration
- [PHPBB3-11906] - Missing database entries "read_notification"
- [PHPBB3-11908] - class phpbb_auth_provider_oauth_service_exception not using namespaces
- [PHPBB3-11918] - Can not update from 3.0.x to 3.1.x with MSSQL
- [PHPBB3-11919] - Improper argument order for sql_fetchfield() in notification manager

#### Improvement

- [PHPBB3-7598] - Reminding inactive users
- [PHPBB3-7938] - Display information about unread and new PMs in the header.
- [PHPBB3-8065] - Add an option to lock topics while moving them.
- [PHPBB3-8270] - Automatically loaded language-files for mods
- [PHPBB3-8796] - Mark forum(s) read (or mark topics read) marks some topics you haven't read
- [PHPBB3-9346] - Use different message template for jabber notification
- [PHPBB3-9532] - Optimized Page Titles
- [PHPBB3-9549] - Enhance teampage functionality
- [PHPBB3-9596] - Modular cron and allowing cron tasks to be run from system cron
- [PHPBB3-9608] - Cleanse object references from codebase for 3.1
- [PHPBB3-9649] - Moderator queue does not display icon if the new post is made in old thread
- [PHPBB3-9668] - Automatic UTF-8 normalization
- [PHPBB3-9669] - Native UTF-8 normalization
- [PHPBB3-9684] - Link global announcements to forums
- [PHPBB3-9693] - generate_smilies clean up
- [PHPBB3-9716] - Handle user input through a request class providing a more complete mechanism than request_var
- [PHPBB3-9741] - Do not store any themes or templates in the database
- [PHPBB3-9746] - Normalise internet protocol version 6 addresses
- [PHPBB3-9792] - Move function definitions out of download/file.php
- [PHPBB3-9823] - Move functions definitions out of adm/index.php
- [PHPBB3-9979] - Autoloading for test suite
- [PHPBB3-10001] - Class Based Forum/Topic Image
- [PHPBB3-10076] - STARTTLS for emails
- [PHPBB3-10143] - Delete-write-read test for config classes
- [PHPBB3-10148] - Turn TEMPLATE_BITFIELD into an instance variable in acp_styles.php
- [PHPBB3-10155] - Inclusion of jQuery
- [PHPBB3-10161] - Use one of "email" or "e-mail"
- [PHPBB3-10172] - Display empty birthday box in prosilver when birthdays are enabled but there are none today
- [PHPBB3-10258] - Use HTML5 doctype
- [PHPBB3-10271] - confirm_box operations should use AJAX
- [PHPBB3-10272] - Simple operations should use AJAX
- [PHPBB3-10273] - Accepting / denying posts should use AJAX
- [PHPBB3-10281] - Reordering forums in the ACP should use AJAX
- [PHPBB3-10312] - Un-check "Leave shadow topic in place" checkbox when moving topics
- [PHPBB3-10325] - Ability to disable the "I forgot my password" feature
- [PHPBB3-10336] - Removing imagesets in 3.1
- [PHPBB3-10344] - Add attachment icons to list of reports and queue
- [PHPBB3-10362] - HTML5 Fix - "name" attribute is deprecated in anchors. Use "id" attribute instead.
- [PHPBB3-10383] - Polls should use AJAX
- [PHPBB3-10387] - generate_pagination() should export the current page number as a template variable
- [PHPBB3-10390] - Add an ACP option to use jQuery via local copy or remote CDN
- [PHPBB3-10410] - Add option to display users in their first teampage group
- [PHPBB3-10412] - Use memory_get_peak_usage for debug output instead of memory_get_usage
- [PHPBB3-10431] - Remove language from the button-graphics and use text strings instead
- [PHPBB3-10438] - Alligning the Smileys on the same line as the text.
- [PHPBB3-10484] - Use variables for sql_build_query() calls, so mods/extensions can extend the arrays
- [PHPBB3-10510] - Quick-mod markup should be in the template
- [PHPBB3-10524] - Wrong version code name in Ascraeus coding guidelines document.
- [PHPBB3-10535] - Remove "Confirm Email Address" field from registration form
- [PHPBB3-10557] - Missing IN_PHPBB check in phpBB/includes/functions_acp.php
- [PHPBB3-10601] - Move inbox to top module in UCP Private Messages Tab
- [PHPBB3-10614] - Script to manage extensions
- [PHPBB3-10617] - prosilver clean up: adding proper css reset
- [PHPBB3-10619] - prosilver clean up: removing duplicate colors
- [PHPBB3-10632] - Merging style components
- [PHPBB3-10640] - Bigger Topic Title Length
- [PHPBB3-10650] - Last Topic Title on Forum list
- [PHPBB3-10659] - Allow all administrators to purge cache
- [PHPBB3-10665] - INCLUDEJS template tag
- [PHPBB3-10679] - Add new permission for changing profile field information
- [PHPBB3-10705] - Replace WARNINGS_ZERO_TOTAL with NO_WARNINGS for consistency
- [PHPBB3-10714] - Create a class for add_log() and unit tests
- [PHPBB3-10726] - Preview from Quick Reply
- [PHPBB3-10727] - Don't hide quickreply with javascript
- [PHPBB3-10733] - Adding file locator function to style class
- [PHPBB3-10734] - CSS3 rounded corners
- [PHPBB3-10741] - Automatically resize textarea
- [PHPBB3-10743] - Change theme to style in php code
- [PHPBB3-10762] - Separate style and phpBB version numbers in style.cfg
- [PHPBB3-10771] - Using Remember Me instead of autologin or persistent keys in the UI.
- [PHPBB3-10780] - Move colons from template files to language files
- [PHPBB3-10783] - assets_version config var appended to assets (css/js) URLs to prevent caching
- [PHPBB3-10786] - Render search options by default on memberlist.php
- [PHPBB3-10799] - includejs should not put phpbb root path in generated template code
- [PHPBB3-10800] - includejs test confusingly includes an html file
- [PHPBB3-10864] - Allow extensions to be accessed via controller with shorter access name than "vendor/extname"
- [PHPBB3-10933] - Make style code more understandable
- [PHPBB3-10936] - MySQL fulltext search improvement - removing check for PCRE UTF support
- [PHPBB3-10938] - Display subforum listing on forumlist via template loop instead of PHP implode()
- [PHPBB3-10947] - Quickmod tools have stopped autosubmitting
- [PHPBB3-10955] - ajaxify should take options as the only argument
- [PHPBB3-10966] - Remove code duplication from mysql* and mssql* dbal
- [PHPBB3-10968] - Render pagination fully within the template
- [PHPBB3-10970] - Allow INCLUDE template macros to accept paths of the form {FOO}/a/{BAR}/c
- [PHPBB3-10972] - Add a new method to phpbb_functional_test_case to allow a new user to be created
- [PHPBB3-10973] - Allow mocks to be autoloaded in tests
- [PHPBB3-10975] - Memberlist functional tests
- [PHPBB3-10990] - $user->lang['COMMA_SEPARATOR'] - is not uniformly used
- [PHPBB3-11001] - html5 Placeholder for search box.
- [PHPBB3-11008] - Get rid of eval in javascript
- [PHPBB3-11010] - HTML5 input types for form fields
- [PHPBB3-11011] - Using dependency injection for global variables in all search backends.
- [PHPBB3-11012] - Member variable phpEx vs php_ext naming inconstistency
- [PHPBB3-11013] - Allow arrays to be assigned and retrieved in templates
- [PHPBB3-11015] - Make DBAL classes autoloadable
- [PHPBB3-11021] - Link back to main site config setting
- [PHPBB3-11025] - Make Last topic title in forum list Bold
- [PHPBB3-11032] - Better error reporting for sphinx
- [PHPBB3-11037] - Cache drivers require globals
- [PHPBB3-11044] - Compress class should keep track of files added and deal with conflicts
- [PHPBB3-11048] - Use access specifiers in search backends
- [PHPBB3-11050] - Add docblocks missing in properties and methods in all search backends.
- [PHPBB3-11051] - Add retrieval functions for all public properties in search backends
- [PHPBB3-11068] - Hiding foes posts should use JS to display them, rather then reloading the whole page
- [PHPBB3-11070] - Redundant background-position property in Prosilver button CSS?
- [PHPBB3-11082] - Redis cache driver should not have executable permission
- [PHPBB3-11083] - Abstract cache drivers should use abstract keyword
- [PHPBB3-11088] - Combine Style and Extension Management into one Customisations tab in the ACP
- [PHPBB3-11116] - Adjust Display of Warning/Error Messages in Extensions Controller
- [PHPBB3-11129] - Misleading subscription state messages
- [PHPBB3-11152] - Create cached, compiled container class rather than compiling it on every page load
- [PHPBB3-11156] - Delete "Misc" tab of forum based permissions + move items
- [PHPBB3-11174] - Unit tests for search backends
- [PHPBB3-11181] - Bump PHP requirement to 5.3.3
- [PHPBB3-11183] - Remove $load_extensions and weird dl() calls
- [PHPBB3-11189] - Merge DEBUG and DEBUG_EXTRA
- [PHPBB3-11193] - Generalize phpbb_di_pass_collection_pass to handle all collections using service tags
- [PHPBB3-11197] - Prefix the css classes for the small arrow with "arrow".
- [PHPBB3-11202] - Add response status checks to functional tests
- [PHPBB3-11215] - Separate root path for filesystem and urls/assets
- [PHPBB3-11217] - Prefix for template values to give back value URL encoded
- [PHPBB3-11238] - Specify goutte version
- [PHPBB3-11250] - Remake the unit tests for the BBCode parser.
- [PHPBB3-11259] - Make $phpbb_admin_path available everywhere
- [PHPBB3-11268] - Delete phpbb_db_driver_mysql4 case
- [PHPBB3-11275] - editor.js::colorPalette() breaks page with document.write > add proper target
- [PHPBB3-11283] - Extensions as symlinks
- [PHPBB3-11294] - Update extension list in running tests doc
- [PHPBB3-11306] - Container should be created by a phpbb_create_default_container() function
- [PHPBB3-11314] - Improve readability and code cleanup in new JavaScript files
- [PHPBB3-11328] - New language variables for buttons
- [PHPBB3-11373] - Notifications - Purge old with cron
- [PHPBB3-11390] - Remove pagination from ucp_notifications.html when list is empty.
- [PHPBB3-11393] - Give more information on database_updater about what exactly happened
- [PHPBB3-11409] - No feedback provided when updating group position settings in ACP
- [PHPBB3-11458] - Automatically add extension permission language files
- [PHPBB3-11461] - [Template Event] - viewtopic_body_footer
- [PHPBB3-11463] - Add topic title attribute in search results
- [PHPBB3-11477] - Allow customisation of "Board index"
- [PHPBB3-11482] - Extend syntax for DEFINE tag
- [PHPBB3-11495] - Add nested sets implementation to phpBB core
- [PHPBB3-11519] - Rename test event template file
- [PHPBB3-11533] - Notification settings page is using topiclist class incorrectly
- [PHPBB3-11557] - Allow to use tab when typing code and keep indentation
- [PHPBB3-11558] - Notifications link in header should not include [ and ] -
- [PHPBB3-11577] - Topiclist/Forumlist Needs tweaking after PR 1331
- [PHPBB3-11582] - Split permission logic from translations
- [PHPBB3-11600] - Increase code test coverage of avatar manager
- [PHPBB3-11606] - make_clickable() in includes/functions_content.php uses deprecated preg_replace() /e modifier (PREG_REPLACE_EVAL)
- [PHPBB3-11615] - Partial refactoring of session tests
- [PHPBB3-11620] - Improve session test coverage
- [PHPBB3-11621] - Improve MySQL fulltext search indexes
- [PHPBB3-11651] - Bootstrap container from config.php
- [PHPBB3-11667] - phpbb_template_twig_node_includeasset should be abstract
- [PHPBB3-11669] - Fix PHP bug #55124 (/./ in recursive mkdirs)
- [PHPBB3-11684] - No utility to time-wasting user login confirmation message/screen
- [PHPBB3-11685] - No utility to time-wasting user logout confirmation message/screen
- [PHPBB3-11700] - Use namespaces rather than prefixes for class names
- [PHPBB3-11703] - Make "Serve jQuery using Google’s CDN" generic
- [PHPBB3-11724] - Support "ELSE IF" and "ELSEIF" in the same way
- [PHPBB3-11744] - Group join request notification
- [PHPBB3-11745] - Group join approved notification
- [PHPBB3-11747] - UCP Prefs Core and Template Events
- [PHPBB3-11749] - PHP and Template Event Requests for Topic Preview Extension
- [PHPBB3-11784] - Remove naming redundancy for event listeners
- [PHPBB3-11786] - Fix various defects in PHPDoc in-code documentation
- [PHPBB3-11795] - Move all JavaScript from HTML code to external files
- [PHPBB3-11813] - Mock authentication provider should implement base provider class
- [PHPBB3-11831] - Update fabpot/goutte to 1.0.*

#### New Feature

- [PHPBB3-9498] - External Avatar sources: Gravatar
- [PHPBB3-9550] - Introduce new Event System
- [PHPBB3-9558] - Use PHP timezone handling abilities
- [PHPBB3-9627] - Resume support for attachments / HTTP range support
- [PHPBB3-9647] - Ability to delete auto login keys from UCP
- [PHPBB3-9657] - Soft Delete Posts and Topics
- [PHPBB3-9721] - Attachments management
- [PHPBB3-9726] - Improved template engine
- [PHPBB3-9730] - PostgreSQL Fulltext Search
- [PHPBB3-9737] - Migrations
- [PHPBB3-9790] - Support for X-Accel-Redirect and X-Sendfile headers for attachment downloads
- [PHPBB3-10018] - Refactor Avatars to support custom modules
- [PHPBB3-10270] - JavaScript - confirm / alert / input popups
- [PHPBB3-10323] - Extensions
- [PHPBB3-10328] - There should be a way to send JSON
- [PHPBB3-10345] - Support for arbitrary number of plural forms in language packs
- [PHPBB3-10411] - Create grouping capability for custom ordered team page
- [PHPBB3-10586] - Front-facing file in Extensions
- [PHPBB3-10600] - When creating a report for a post, copy the post itself
- [PHPBB3-10631] - Extensions Admin
- [PHPBB3-10739] - Dependency Injection Container
- [PHPBB3-10929] - Improves the attachment uploader to use HTML5 features
- [PHPBB3-10931] - Add a wrapper class for ini_get()
- [PHPBB3-10942] - Add sql_case() and sql_concatenate() to dbal
- [PHPBB3-10946] - Sphinx Search Backend integration
- [PHPBB3-11042] - Feature to download all attachments in a post and topic.
- [PHPBB3-11103] - Notifications system
- [PHPBB3-11175] - Add microdata to breadcrumbs
- [PHPBB3-11469] - Add SQL insert buffer class
- [PHPBB3-11598] - Replace template engine with Twig

#### Sub-task

- [PHPBB3-9556] - Drop php closing tags
- [PHPBB3-9574] - Drop fallback implementations
- [PHPBB3-9688] - update_session API
- [PHPBB3-9738] - Make installer and updater use migrations
- [PHPBB3-9797] - Adjust existing access to superglobals
- [PHPBB3-10817] - Use valid composer.json instead of non-standard extension.json
- [PHPBB3-10992] - Use updated Goutte in Fileupload tests
- [PHPBB3-11109] - Create a separate set of compress tests for the develop branch
- [PHPBB3-11243] - Topics with attachments only show "download all attachments" links on pages containing attachments.
- [PHPBB3-11318] - Extensions use migrations
- [PHPBB3-11351] - Add appropriate language strings for errors
- [PHPBB3-11531] - Add functional tests for new avatar system
- [PHPBB3-11637] - generate_text_for_display on search.php
- [PHPBB3-11638] - generate_text_for_display on viewtopic.php
- [PHPBB3-11639] - generate_text_for_display on includes/functions_posting.php
- [PHPBB3-11640] - generate_text_for_display on includes/functions_privmsgs.php
- [PHPBB3-11641] - generate_text_for_display on includes/mcp/mcp_pm_reports.php
- [PHPBB3-11642] - generate_text_for_display on includes/mcp/mcp_post.php
- [PHPBB3-11643] - generate_text_for_display on includes/mcp/mcp_queue.php
- [PHPBB3-11653] - generate_text_for_display on includes/mcp/mcp_topic.php
- [PHPBB3-11654] - generate_text_for_display on includes/mcp/mcp_warn.php
- [PHPBB3-11655] - generate_text_for_display on includes/ucp/ucp_pm_viewmessage.php
- [PHPBB3-11656] - generate_text_for_display on memberlist.php

#### Task

- [PHPBB3-7090] - Update minimum PHP version to 5.2
- [PHPBB3-9557] - Update coding guidelines for 3.1 and PHP >= 5.2
- [PHPBB3-9682] - Add a class loader for auto loading and define naming rules for new phpbb classes
- [PHPBB3-9783] - Restore subsilver2
- [PHPBB3-9867] - Adjust the implementation of error messages localization
- [PHPBB3-9983] - Restructure ACM classes
- [PHPBB3-9988] - Replace config with an instance of a class implementing ArrayAccess
- [PHPBB3-10091] - Bump minimum required postgresql version for 3.1
- [PHPBB3-10173] - Move birthday list logic into templates
- [PHPBB3-10202] - Provide a mechanism to manually retrieve long configuration options from a TEXT column
- [PHPBB3-10260] - Remove prosilver styleswitcher
- [PHPBB3-10314] - Whitelist all files in includes for code coverage reports
- [PHPBB3-10389] - JSON extension should be checked in the installer
- [PHPBB3-10414] - Functional testing
- [PHPBB3-10467] - Check extensions diff for classes/constants not existing in php 5.2
- [PHPBB3-10609] - Prefix phpBB functions with phpbb_ to prevent compatibility issues with other software
- [PHPBB3-10670] - Require PHP 5.3 at minimum for phpBB 3.1
- [PHPBB3-10680] - Add ext/ to .gitignore
- [PHPBB3-10688] - Change 3.0 language to 3.1
- [PHPBB3-10693] - Change minimum PHP version for Ascraeus to 5.3.2
- [PHPBB3-10719] - Remove second 5.2 test suite on ascreaus
- [PHPBB3-10732] - Add config_dev.php and config_test.php to .gitignore
- [PHPBB3-10855] - Coding guideline change - have curly brackets on same line in JS
- [PHPBB3-10869] - Remove PHP 5.2 check from .travis.yml
- [PHPBB3-10877] - Have bamboo generate and publish a phpBB package for every build.
- [PHPBB3-10882] - Expand test coverage for template engine - add tests for invalid constructs
- [PHPBB3-10893] - Update the Usage of Composer
- [PHPBB3-10909] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2
- [PHPBB3-10932] - Store composer.phar in the phpBB repository to make sure a working version is always available
- [PHPBB3-10939] - Modify the phpbb_request class to handle the $_FILES superglobal as well
- [PHPBB3-10941] - Write tests for includes/functions_upload.php
- [PHPBB3-10944] - Allow INCLUDEJS to include javascript from the assets directory
- [PHPBB3-10949] - 3.1 AJAX code should use new coding guidelines
- [PHPBB3-10963] - Use fileinfo in filespec::is_image() instead of trusting the mimetype sent by the browser
- [PHPBB3-10969] - Remove remove_comments() and remove_remarks()
- [PHPBB3-10993] - Update README to use composer.phar from the repository
- [PHPBB3-10994] - Revert changes in PHPBB3-10963
- [PHPBB3-11054] - Improper @var documentation syntax in includes/extension/controller.php
- [PHPBB3-11061] - Fix README composer instructions
- [PHPBB3-11195] - Put conditional opening brace on its own line, as per guidelines
- [PHPBB3-11225] - Delete subsilver2 mcp_jumpbox.html
- [PHPBB3-11287] - Add Template Event naming guidelines to docs/coding-guidelines.html
- [PHPBB3-11338] - Enable Redis tests on Travis
- [PHPBB3-11441] - Refactor phpbb_user_loader tests
- [PHPBB3-11476] - Remove pass-by-reference from phpbb_db_driver::sql_multi_insert
- [PHPBB3-11481] - Feed classes are currently all in feed.php
- [PHPBB3-11698] - Move all autoloadable files to phpbb/ rather than includes/
- [PHPBB3-11722] - Remove reference assignment for $captcha in report.php
- [PHPBB3-11760] - 3.0.x Migration should use the phpbb_version_compare() wrapper.
- [PHPBB3-11818] - Upgrade Symfony to 2.3 LTS
- [PHPBB3-11870] - No longer exclude ./phpBB/phpbb/search/fulltext_*.php from code coverage
- [PHPBB3-11885] - Add migrations for 3.0.12-RCx and 3.0.12
- [PHPBB3-11913] - Apply reorganisation of download.phpbb.com to build_announcement.php

### Changes since 3.0.13-PL1

#### Security

- [SECURITY-180] - An insufficient check allowed users of the Google Chrome browser to be redirected to external domains (e.g. on login)

#### Bug

- [PHPBB3-13348] - sql_freeresult() should be called in feed base class
- [PHPBB3-13414] - download/file.php sends Content-Length header even when issuing 304 Not Modified
- [PHPBB3-13555] - Poll options preview rendered incorrectly by <br /> collision
- [PHPBB3-13568] - Imagick path validated as relative path although ACP asks for absolute path
- [PHPBB3-13617] - Bot session continuation with invalid f= query parameter causes SQL error
- [PHPBB3-13738] - Sami still refers to develop-* branches

#### Improvement

- [PHPBB3-12089] - Make HTTP status code assertion failure messages more informative
- [PHPBB3-13765] - Verify that SERVER_PROTOCOL has the expected format

#### Task

- [PHPBB3-11539] - Add unit tests for several functions in functions.php
- [PHPBB3-13572] - Upgrade composer to 1.0.0-alpha9
- [PHPBB3-13599] - Remove PHP 5.2 Travis environment
- [PHPBB3-13634] - Update README to show new branch names
- [PHPBB3-13723] - Update docs/AUTHORS for 3.0.14-RC1 / 3.1.4-RC1

### Changes since 3.0.13

#### Bug

- [PHPBB3-12933] - The search operator for partial matches does not work
- [PHPBB3-13549] - Compare ORIG_PATH_INFO with SCRIPT_NAME for checking trailing paths
- [PHPBB3-13554] - Advertisement of feature release in red indicates a problem

### Changes since 3.0.12

#### Security

- [PHPBB3-13531] - Disallow trailing paths (e.g. using the PATH_INFO feature) to prevent path-relative CSS injection
- [PHPBB3-13526] - Correctly validate ucp_pm_options form key

#### Bug

- [PHPBB3-6703] - Problem with russian letter while converting from 2.0.x
- [PHPBB3-8960] - Allow changing allow_avatar_remote when images/avatars/upload is not writable
- [PHPBB3-9420] - BBCode - Unable to use a proper URI token
- [PHPBB3-9724] - Wrong return "Return to ACP"
- [PHPBB3-9725] - MSSQL Schema is not azure compatible
- [PHPBB3-10023] - Password change requirement notification in UCP is not noticable
- [PHPBB3-10423] - Searching for the term "test *" will highlight nearly every word and displays htmlspecialchars as htmlentities.
- [PHPBB3-10442] - XHTML is invalid when a forum link without redirect counter is present
- [PHPBB3-10687] - UNABLE_GET_IMAGE_SIZE text misleading for remote avatars
- [PHPBB3-10729] - Post editor information is not updated when user being deleted with posts
- [PHPBB3-10776] - Grammar errors in docs/README.html
- [PHPBB3-10796] - SQL Azure does not allow SELECT FROM sysfiles
- [PHPBB3-10851] - HTML files containing certain tags being rejected as possible attack vectors with "Check attachment file" set to "No"
- [PHPBB3-10863] - Permission mask does not accurately show some forum permissions if user has MOD parmissions
- [PHPBB3-10917] - Updater notice "Update files are out of date..." when updating to unreleased version
- [PHPBB3-10985] - Error bbcode.html not found when updating with custom style inheriting from prosilver
- [PHPBB3-11062] - In Automatic Update, new language strings from install.php are only loaded from English
- [PHPBB3-11224] - SQL cache destroy does not destroy queries to tables joined
- [PHPBB3-11288] - "Fulltext native" search fooled by hyphens
- [PHPBB3-11480] - Prevent Private Message system from returning "Unknown folder" when inbox folder is full
- [PHPBB3-11613] - Cookies do not work for netbios domain
- [PHPBB3-11686] - Not checking for phpBB Debug errors on functional tests
- [PHPBB3-11699] - PHP Lint Test should exclude selected subdirectories of the build directory.
- [PHPBB3-11726] - Don't run lint tests on Travis on postgres
- [PHPBB3-11762] - generate_text_for_display() treats "0" as an empty string
- [PHPBB3-11789] - Inline css with color value in subsilver2
- [PHPBB3-11794] - Coding Guidelines document says to place a comma after every array element, but fails to do so itself
- [PHPBB3-11799] - Anti Abuse Headers missing for sendpassword
- [PHPBB3-11811] - Chrome 30 adds outline to focused elements
- [PHPBB3-11821] - Wrong comma usage "You are receiving this notification"
- [PHPBB3-11823] - Travis-CI webserver not matching PHP files with anything after the .php
- [PHPBB3-11829] - Closed reports may seem open in detailed view
- [PHPBB3-11860] - .htaccess not working for Apache 2.4
- [PHPBB3-11864] - Do not call exit after display_progress_bar in acp_forums
- [PHPBB3-11879] - Compatibility error in forum_fn.js: .live should be replaced with .on
- [PHPBB3-11968] - Travis Image are broken due to repository rename
- [PHPBB3-12037] - acp_inactive.html has hard-coded text
- [PHPBB3-12048] - Custom BBCodes Fail to Render Language Strings with a Number
- [PHPBB3-12061] - Keyboard shortcut alt+h doesn't work properly in firefox
- [PHPBB3-12072] - Missing word "send" in comment in schema_data.sql
- [PHPBB3-12093] - IE 11 javascript selection is no longer supported
- [PHPBB3-12118] - Add noindex meta tag to subsilver2 pm/topic view-print template
- [PHPBB3-12119] - Remove keywords and description meta tags from prosilver view-print templates
- [PHPBB3-12120] - Update docs/AUTHORS for 3.0.13-RC1
- [PHPBB3-12140] - Avoid endless loop in build script
- [PHPBB3-12161] - build/save directories are no longer created
- [PHPBB3-12162] - Binary files missing from update packages
- [PHPBB3-12176] - No error shown when attempting to delete a founder
- [PHPBB3-12186] - MCP should open "Reported posts" instead of PM Reports
- [PHPBB3-12188] - Add php 5.6 to travis tests
- [PHPBB3-12202] - Variables read from style.cfg etc. should be htmlspecialchared
- [PHPBB3-12205] - Custom Profile Field display bug
- [PHPBB3-12210] - dbtools::sql_create_table incorrectly throws error related to auto-increment length on non auto-increment fields
- [PHPBB3-12310] - SMTP username and password should not autocomplete during install
- [PHPBB3-12316] - develop-ascraeus build status missing from "Automated Testing" section in README.md
- [PHPBB3-12353] - User attachments in ACP are not displaying every attachment
- [PHPBB3-12359] - Day and Month of Birthday Misaligned When Editing
- [PHPBB3-12381] - Broken error message when selecting invalid DB driver
- [PHPBB3-12397] - db_tools::sql_unique_index_exists() has wrong doc block
- [PHPBB3-12429] - Update phpunit to 3.8+
- [PHPBB3-12467] - Add config_*.php and tests_config_*.php to .gitignore
- [PHPBB3-12472] - Set fast finish for .travis.yml
- [PHPBB3-12485] - Broken tests due to absolute exclude
- [PHPBB3-12492] - DB_TEST: Special chars are not supported.
- [PHPBB3-12540] - WRONG_FILESIZE contains broken placeholders
- [PHPBB3-12660] - Undefined offset error when phpinfo() disabled and debug enabled
- [PHPBB3-12695] - Undefined index: MISSING_INLINE_ATTACHMENT notice given when viewing post details
- [PHPBB3-12720] - Git commit hook should not require commit message to start with a capital letter
- [PHPBB3-12741] - Functional tests on Travis fail since php update last night
- [PHPBB3-12755] - Remote upload stuck in infinite loop if server sends keep-alive
- [PHPBB3-13086] - Update ACP_MASS_EMAIL_EXPLAIN language key
- [PHPBB3-13096] - ldap_escape() added to PHP 5.6.0
- [PHPBB3-13138] - Banned users cause infinite recursion
- [PHPBB3-13168] - Warning displayed in PHP 5.6 for mbstring.http_input
- [PHPBB3-13234] - Remember me cookie gets unset by admin reauthentication
- [PHPBB3-13341] - Tests fail when generating coverage report
- [PHPBB3-13376] - deregister_globals() does not work correctly when $_COOKIE['GLOBALS'] - is specified
- [PHPBB3-13519] - Correctly validate imagick path as path and not string
- [PHPBB3-13523] - PHP 5.2 Unit Tests no longer work due to deprecated PHPUnit PEAR channel
- [PHPBB3-13527] - Escape information received from version server

#### Improvement

- [PHPBB3-10037] - Add Smiley Buttons in Signature Editor
- [PHPBB3-10174] - Rename "Ban usernames" to "Ban users" in ACP
- [PHPBB3-10549] - Languages variables should be used, not hardcoded
- [PHPBB3-10555] - Copyright notice in overall_header.html is not translatable
- [PHPBB3-10945] - Show entered search query in the search box when no results are found.
- [PHPBB3-11254] - Check CRLF line endings in the test suite
- [PHPBB3-11295] - Drop tables for postgres in the test suite
- [PHPBB3-11297] - Running tests doc should mention dbunit dependency
- [PHPBB3-11704] - phing build script does not include vendor folder, even if there are dependencies
- [PHPBB3-11766] - Remove Quote and Edit button when topic is lock
- [PHPBB3-11801] - missing semi colons in css
- [PHPBB3-11814] - Topic reply notification email text change
- [PHPBB3-12035] - Add a link to user's posts in the ACP user overview page
- [PHPBB3-12106] - Document exceptions to "Disable Board" in ACP.
- [PHPBB3-12146] - Add color demo when editing a group from the UCP
- [PHPBB3-12247] - include poster's username in email notifications of posts that get approved by moderators
- [PHPBB3-12259] - Too many redundant tests are run on Travis
- [PHPBB3-12468] - Allow mbstring.http_input='' besides 'pass' for PHP 5.6 compatibility

#### Task

- [PHPBB3-10839] - Remove phpunit.xml.functional and always include functional tests
- [PHPBB3-11509] - Travis should check commit message format
- [PHPBB3-11876] - Upgrade package checksums from MD5 to SHA256
- [PHPBB3-11877] - Create package download links and checksums for announcement via script
- [PHPBB3-11920] - Add MariaDB tests to Travis-CI
- [PHPBB3-11951] - Add MariaDB to supported RDBMS list
- [PHPBB3-11970] - Use 'set -x' in Travis CI setup scripts
- [PHPBB3-12046] - Use PHP_BINARY environment variable in lint unit test
- [PHPBB3-12056] - Make sure each unit test runs on its own
- [PHPBB3-12147] - Remove Travis CI notification configuration
- [PHPBB3-12302] - Upgrade composer.phar to 1.0.0-alpha8
- [PHPBB3-12318] - Correctly setup HHVM functional tests on Travis CI
- [PHPBB3-12319] - Backport Travis CI HHVM environment enabling to develop-olympus.
- [PHPBB3-12320] - No longer allow Travis CI HHVM environment to fail
- [PHPBB3-12341] - Add tests for get_username_string()
- [PHPBB3-12384] - Run Travis CI HHVM tests against MySQLi instead of MySQL
- [PHPBB3-12417] - hhvm-nightly 2014.04.16~precise breaks tests
- [PHPBB3-12495] - Add Sami to composer dependencies and build script
- [PHPBB3-12582] - Strip away copyrighted ICC profile from images
- [PHPBB3-12917] - Move commit check and file executable checks to 5.3.3 build on travis
- [PHPBB3-13324] - Composer no longer downloads sami/sami and fabpot/goutte

### Changes since 3.0.11

#### Bug

- [PHPBB3-6723] - Empty message in deleted messages in PM history
- [PHPBB3-7262] - Clarify docs about is_dynamic not being updated by set_config()
- [PHPBB3-8319] - LOCAL_URL not enforced in bbcodes
- [PHPBB3-9551] - Mysql fulltext index creation fails due to partial collation change
- [PHPBB3-9975] - Hard coded language in sessions.php
- [PHPBB3-10184] - Bots can be sent private messages
- [PHPBB3-10491] - Fatal error in functional tests when server returns 404
- [PHPBB3-10568] - Modify the trigger language when you edit a PM
- [PHPBB3-10602] - A bug in mail queue processing
- [PHPBB3-10661] - UCP > PM > Compose > enumerated recipients > BCC group misses a &nbsp; (prosilver)
- [PHPBB3-10678] - Provide Firebird, Oracle, and increased MSSQL support in unit tests
- [PHPBB3-10772] - trigger_error is using the default style
- [PHPBB3-10789] - PM print template (prosilver) with unnecessary variables
- [PHPBB3-10820] - Display images directly in IE9 and 10 instead of download
- [PHPBB3-10828] - PostgreSQL dbal tests try to connect to the database named as user specified in configuration
- [PHPBB3-10838] - Functional tests are not mentioned in RUNNING_TESTS.txt
- [PHPBB3-10840] - If you add a member to a group, the form_token can be set to 0 if the creation_time is 0 too. Maybe even if creation_time is unchanged.
- [PHPBB3-10848] - Wrong redirect to installer from acp
- [PHPBB3-10850] - create_schema_files.php is not creating the oracle or postgres' schema file properly
- [PHPBB3-10879] - prosilver: attachment-link will be displayed wrong, when filename is too long
- [PHPBB3-10880] - m_approve should not imply f_noapprove
- [PHPBB3-10896] - board_email & board_contact are not validated as email addresses in ACP
- [PHPBB3-10897] - Bot Definitions are outdated
- [PHPBB3-10918] - docs/INSTALL.html claims there are tar.gz packages
- [PHPBB3-10943] - Search Box should display keywords entered by the user
- [PHPBB3-10967] - PHPBB_USE_BOARD_URL_PATH not implemented in posting_gen_topic_icons
- [PHPBB3-10986] - Invalid email message ids because config variable server_name is used even when force server URL settings is disabled
- [PHPBB3-10995] - Return value of $db->sql_fetchrow() on empty tables is not consistent on mssqlnative
- [PHPBB3-10996] - Travis tests fail on Postgres because database does not exist
- [PHPBB3-11034] - The functional test case framework does not install a full board each time
- [PHPBB3-11066] - MSSQLnative driver contains debug code error_reporting(E_ALL)
- [PHPBB3-11069] - missing closing span in subsilver2 simple_footer.html
- [PHPBB3-11081] - Duplicated /TD in styles/subsilver2/template/catpcha_qa.html
- [PHPBB3-11093] - acp_users_overview.html has a wrongly placed </dd>
- [PHPBB3-11094] - prosilver: searching for users: no textbox for Jabber
- [PHPBB3-11105] - Missing mandatory space in meta http-equiv=refresh
- [PHPBB3-11112] - phpBB Footer Link should be SSL
- [PHPBB3-11122] - Update docs/AUTHORS for 3.0.12-RC1
- [PHPBB3-11144] - {FORUM_NAME} is not filled in login mask when logging into a password protected forum
- [PHPBB3-11145] - ATTACHED_IMAGE_NOT_IMAGE thrown because of file limit in php.ini
- [PHPBB3-11158] - modules table lacks acl_u_sig for signature module
- [PHPBB3-11159] - Coding guidelines: static public
- [PHPBB3-11164] - Composer not finding symfony/config in PHP 5.3.3
- [PHPBB3-11178] - database_update.php should not set error_reporting to E_ALL
- [PHPBB3-11186] - Database unit tests fail on windows using sqlite2
- [PHPBB3-11190] - Functional tests do not clear the cache between each test
- [PHPBB3-11196] - /includes/session.php sends 401 HTTP status with "Not authorized" instead of "Unauthorized"
- [PHPBB3-11219] - Database sequences are not updated for tests using fixtures with auto_incremented columns
- [PHPBB3-11227] - @return void -> @return null
- [PHPBB3-11233] - Anonymous can be selected as a PM recipient
- [PHPBB3-11248] - CRLF line endings
- [PHPBB3-11262] - .lock files are not in .gitignore
- [PHPBB3-11265] - Functional tests do not assert that board installation succeeded
- [PHPBB3-11269] - Travis functional test case errors
- [PHPBB3-11278] - Firebird tables are not removed correctly on 3.0.9-rc1 update
- [PHPBB3-11291] - "Could not open input file: ../composer.phar" error during phing's create-package
- [PHPBB3-11292] - Newlines removed in display of PM reports, no clickable links in PM reports
- [PHPBB3-11301] - "String offset cast occured" error on PHP 5.4
- [PHPBB3-11304] - check_form_key breaks in tests when form is submitted in the same second it is retrieved
- [PHPBB3-11343] - Loose string comparison during new password activation
- [PHPBB3-11355] - Incorrect error message when no user selected for action on group membership management page
- [PHPBB3-11358] - Success message even withot selecting a user and performing a group operation
- [PHPBB3-11361] - "Array to string conversion" error in $user->format_date()
- [PHPBB3-11493] - Functional tests should fail if any debug output is made
- [PHPBB3-11517] - Numbering is wrong in coding guidelines
- [PHPBB3-11536] - Installer incorrectly removes /install from script_path
- [PHPBB3-11537] - UCP group manage page's error box differs heavily from the rest of the UCP
- [PHPBB3-11538] - SQL error on UCP groups manage page caused by setting color to 7 characters long string
- [PHPBB3-11544] - Add admin_login() to 3.0 functional test case
- [PHPBB3-11545] - is_absolute() should not depend on DIRECTORY_SEPARATOR
- [PHPBB3-11546] - is_absolute() throws E_NOTICE for empty string
- [PHPBB3-11547] - Test fixtures do not support utf8 characters
- [PHPBB3-11548] - Untranslated TOO_SHORT in UCP "Manage Groups"
- [PHPBB3-11566] - Reporting a post should require a captcha to be solved by guests
- [PHPBB3-11568] - Functional tests fail with retrieving install pages using file_get_contents
- [PHPBB3-11575] - phpbb_dbal_order_lower_test::test_cross_join should be called test_order_lower
- [PHPBB3-11578] - Missing underscore after function prefix in validate_data()
- [PHPBB3-11579] - Add unit tests for validate_data()
- [PHPBB3-11580] - Avoid API Limit from composer downloads on github
- [PHPBB3-11588] - install/install_update.php should use version.phpbb.com instead of www
- [PHPBB3-11590] - Close database connections from tests whenever possible
- [PHPBB3-11601] - Allow manual resync of database columns in unit tests not only on fixture load
- [PHPBB3-11603] - git-tools use invalid api urls
- [PHPBB3-11604] - Functional tests fail when phpBB can not create the config file
- [PHPBB3-11617] - Missing U_ACTION in acp_captcha.php
- [PHPBB3-11618] - Template tests fail on some systems due to a PHP error in glob()
- [PHPBB3-11619] - get_remote_file() should use HTTP 1.0
- [PHPBB3-11630] - Improvements to the PHP lint pre-commit hook
- [PHPBB3-11644] - Skip phpbb_dbal_order_lower_test on MySQL 5.6
- [PHPBB3-11662] - "occured" should be "occurred"
- [PHPBB3-11670] - Replace trademark ™ with ® on "Welcome to phpBB" install page
- [PHPBB3-11674] - Do not include vendor folder if there are no dependencies.
- [PHPBB3-11524] - MySQL Upgrader throws warnings on PHP 5.4
- [PHPBB3-11720] - Reporting posts leads to white page error
- [PHPBB3-11769] - Wrong poster in subscription email when poster is using the Quote button
- [PHPBB3-11775] - Error while moving posts to a new topic
- [PHPBB3-11802] - Undefined variable $browser in /download/file.php

#### Improvement

- [PHPBB3-8743] - New topic / reply notifications do not contain author's name.
- [PHPBB3-10050] - subsilver2: Do not show "Mark topics as read" when there are no topics
- [PHPBB3-10205] - More informative reporting of errors when database connection fails (MySQL and others)
- [PHPBB3-10716] - PHP-parse all php files as part of the test suite
- [PHPBB3-10841] - Disable style and language selectors if there's only one installed.
- [PHPBB3-10854] - sql server drop default constraint when dropping column
- [PHPBB3-10865] - Updated and Added to docs/INSTALL.html
- [PHPBB3-10873] - Change language entry for deleted PMs
- [PHPBB3-10981] - Upgrade Goutte and use Composer for Installation
- [PHPBB3-11131] - Phrasing & semantics of Board settings
- [PHPBB3-11162] - Get rid of $db->sql_return_on_error(true) trickery when splitting/merging topics
- [PHPBB3-11192] - Add Tebibyte to get_formatted_filesize()
- [PHPBB3-11202] - Add response status checks to functional tests
- [PHPBB3-11220] - Improve tooltip explaining the [list=] - BBcode
- [PHPBB3-11238] - Specify goutte version
- [PHPBB3-11285] - Use more granularity in dependency checks in compress test
- [PHPBB3-11293] - Prefer mysqli over mysql due to php 5.5 alpha 2 deprecating mysql
- [PHPBB3-11294] - Update extension list in running tests doc
- [PHPBB3-11368] - Latest pm reports row count
- [PHPBB3-11583] - InnoDB supports FULLTEXT index since MySQL 5.6.4.
- [PHPBB3-11740] - Update link in FAQ to Ideas Centre
- [PHPBB3-11873] - Prevent expensive hash computation in phpbb_check_hash() by rejecting very long passwords

#### Sub-task

- [PHPBB3-10974] - Move tests/mock_user.php to tests/mock/user.php
- [PHPBB3-11009] - Backport phing build.xml from develop to develop-olympus so it uses composer.
- [PHPBB3-11540] - Add unit tests for (phpbb_)is_absolute()
- [PHPBB3-11541] - Add unit tests for style_select() in functions.php
- [PHPBB3-11542] - Add unit tests for language_select() in functions.php
- [PHPBB3-11543] - Add unit tests for obtain online functions in functions.php

#### Task

- [PHPBB3-10877] - Have bamboo generate and publish a phpBB package for every build.
- [PHPBB3-11045] - Add unit tests for the compress class
- [PHPBB3-11059] - Fix README logo
- [PHPBB3-11060] - Fix travis.yml pyrus config
- [PHPBB3-11240] - Turn on PHPUnit's verbose mode on Travis
- [PHPBB3-11324] - Add PHP 5.5 environment on Travis-CI
- [PHPBB3-11337] - Run functional tests on Travis CI
- [PHPBB3-11513] - Install PHPUnit via Composer's require-dev to simplify test running (no need for pear)
- [PHPBB3-11526] - Increase composer minimum-stability from beta to stable
- [PHPBB3-11527] - Upgrade composer.phar to 1.0.0-alpha7
- [PHPBB3-11529] - Rename RUNNING_TESTS file to .md file to render it on GitHub
- [PHPBB3-11576] - Make phpBB Test Suite MySQL behave at least as strict as phpBB MySQL driver
- [PHPBB3-11671] - Add phing/phing to composer.json
- [PHPBB3-11752] - Update phpBB.com URLs to https in email templates
- [PHPBB3-11753] - Upgrade mysql_upgrader.php schema data.

### Changes since 3.0.10

#### Bug

- [PHPBB3-7432] - Unclear language for Inactive Users on ACP main page
- [PHPBB3-8652] - Duplicate Emails Sent When Subscribed to Forum and Topic
- [PHPBB3-9079] - Display backtrace on all E_USER_ERROR errors, not only SQL errors (when DEBUG_EXTRA is enabled)
- [PHPBB3-9084] - Unable to display 'option equal to non entered value' if dropdown CPF is not required
- [PHPBB3-9089] - PM message title box not accessible via Tab key
- [PHPBB3-9220] - Blue border width when table in a div
- [PHPBB3-9681] - Password length not in security settings
- [PHPBB3-9813] - fulltext_native.php on innodb loading deadly slow for big indexes
- [PHPBB3-9831] - Cannot change default of Boolean checkbox custom profile field
- [PHPBB3-10094] - Clear cache before phpBB installation
- [PHPBB3-10129] - Missing apostrophes in ACP user management -> permissions
- [PHPBB3-10349] - Unit tests do not remove comments from schemas
- [PHPBB3-10399] - Special characters aren't parsed in style component variables
- [PHPBB3-10401] - auth_ldap has an incorrect return value in login_ldap()
- [PHPBB3-10407] - Incorrect check for empty image file paths during conversion
- [PHPBB3-10428] - optionget/optionset functions in session.php and acp_users.php incorrectly check whether $data is at its default value
- [PHPBB3-10456] - Subsilver2 does not define $CAPTCHA_TAB_INDEX
- [PHPBB3-10508] - Marking forums as read displays misleading language
- [PHPBB3-10511] - Grammar defect in permissions language
- [PHPBB3-10512] - Test failure when no default timezone is set in php
- [PHPBB3-10532] - Out of range $start causes a page with no search results but with pagination
- [PHPBB3-10538] - Special character are not correctly parsed for SMTP protocol
- [PHPBB3-10542] - Incorrect class="postlink" in styles/subsilver2/template/faq_body.html
- [PHPBB3-10546] - Argument missing for adm_back_link() in acp_captcha.php
- [PHPBB3-10561] - All users can choose deactivated styles.
- [PHPBB3-10569] - template/ucp_main_front.html does not correctly handle active topic with the name "0"
- [PHPBB3-10580] - Default tz in registration dropdown not the same as the board default tz
- [PHPBB3-10589] - user_birthday does not use table alias in $leap_year_birthdays variable definition
- [PHPBB3-10605] - Orpahned privmsgs are left in the prvmsgs table, with no ties in privmsgs_to table
- [PHPBB3-10606] - $s_hidden_fields -> incorrect array name (3 files affected)
- [PHPBB3-10611] - Add a check for selected tables existence for ACP database backup tool
- [PHPBB3-10615] - Static calls in utf normalizer yield E_STRICT spam on php 5.4
- [PHPBB3-10630] - Prune Users produced unnecessarily long query; Got a packet bigger than 'max_allowed_packet' bytes
- [PHPBB3-10633] - Users are able to get the real filename of attachment
- [PHPBB3-10639] - negative value of ranks message
- [PHPBB3-10658] - Rank-item is not shown on team-list
- [PHPBB3-10675] - Use more descriptive message when disk is out of space
- [PHPBB3-10684] - Function user_notification() prevents notifications for users with stale bans
- [PHPBB3-10689] - Bug in the popup " Find a member" when select by letter.
- [PHPBB3-10691] - Search index creation CLI script incorrectly calculates indexing speed
- [PHPBB3-10699] - Long h2 title breaks div.minitabs in MCP
- [PHPBB3-10708] - After a conversion, passwords with UTF8 characters do not work when user_pass_convert is set.
- [PHPBB3-10717] - memberlist_view.html: including admin defined profile fields doesnt work
- [PHPBB3-10723] - Do not use SQLite on PHP 5.4 in Tests on Travis
- [PHPBB3-10731] - JS function addquote() works incorrectly in Opera
- [PHPBB3-10751] - MS SQL Error when searching Admin Log
- [PHPBB3-10760] - In pre-commit git hook, syntax error is thrown, but is not specifically described
- [PHPBB3-10767] - Git hooks do not work properly with git GUIs
- [PHPBB3-10774] - db_tools::create_unique_index does not use specified index names on MySQL
- [PHPBB3-10790] - Strict comparison on user_id for sending pms
- [PHPBB3-10797] - Template var for user rank not filled
- [PHPBB3-10835] - Misleading message in UCP when no permission to change password
- [PHPBB3-10846] - Missing alias for MAX(post_id) in SQL query in acp_main.php
- [PHPBB3-10849] - Missing BBCode Help Text in subsilver2
- [PHPBB3-10858] - $db->sql_fetchfield returns false with mssqlnative
- [PHPBB3-10860] - Side-by-side diff styling javascript bug
- [PHPBB3-10881] - Some files use 0xA9 as the copyright symbol which is neither ASCII nor the UTF8 copyright symbol.
- [PHPBB3-10887] - Auto increment tests depend on varbinary handling
- [PHPBB3-10889] - Default value for c_char_size in database unit tests is an empty string instead of a char(4)
- [PHPBB3-10890] - test_sql_fetchrow_returns_false_when_empty() fails on MSSQL and Oracle
- [PHPBB3-10908] - No remote avatar size limit results in files limited only by PHP memory limit
- [PHPBB3-10913] - Admin is logged out when accessing any url under adm/ without session id
- [PHPBB3-10441] - Update to docs/README.html
- [PHPBB3-10773] - ACP phpBB logo needs registered trademark symbol
- [PHPBB3-10935] - Limit number of PM rules per user
- [PHPBB3-10937] - Comment removal functions: Backward compatibility broken
- [PHPBB3-10950] - Deleting user with undelivered PMs causes SQL error
- [PHPBB3-10952] - includes/constants.php version number incorrect
- [PHPBB3-10965] - Dropdown CPF now shows in profile when no value is selected
- [PHPBB3-10978] - Typo in prosilvers ucp_groups_membership.html

#### Improvement

- [PHPBB3-8599] - Add "Select All" to "Add multiple smilies" screen
- [PHPBB3-8636] - Add resync option to topic_view moderation page
- [PHPBB3-9876] - Names and descriptions for roles "Newly registered User" in "User roles" and "Forum roles" must be different
- [PHPBB3-9914] - Add backup warning to Automatic DB Updater
- [PHPBB3-9916] - License in header not linking to version 2 of GNU GPL
- [PHPBB3-10093] - Make commit-msg hook always not fatal
- [PHPBB3-10162] - Allow TLDs over 6 characters in email addresses
- [PHPBB3-10280] - Change the ACP user activation display
- [PHPBB3-10308] - Disable Retain/Delete Posts selection if the user has no posts.
- [PHPBB3-10453] - PM viewmessage page is misplacing the online icon
- [PHPBB3-10492] - Port functional tests to develop-olympus
- [PHPBB3-10507] - Sort installed styles list in admin control panel - styles
- [PHPBB3-10550] - Sort not installed styles list in admin control panel - styles
- [PHPBB3-10563] - ACP usability improvement: show deactivated styles below active styles in styles list
- [PHPBB3-10565] - Performance: Unneeded GROUP BY in update_forum_tracking_info
- [PHPBB3-10607] - phpBB Credit Line Hardcoded
- [PHPBB3-10653] - Add ability to count table rows to database abstraction layer
- [PHPBB3-10730] - Add label tags around "select" text in post splitting UI in MCP
- [PHPBB3-10764] - FAQ mentions SourceForge
- [PHPBB3-10812] - Installer should not display register globals UI for php 5.4+
- [PHPBB3-10815] - Enable Feeds by default
- [PHPBB3-10819] - Improve side-by-side diff styling
- [PHPBB3-10834] - Backport general development language changes in readme files
- [PHPBB3-10836] - Enable Avatars by default
- [PHPBB3-10891] - Allow specifying test config file name via environment variable
- [PHPBB3-10892] - Cosmetic improvements to RUNNING_TESTS.txt
- [PHPBB3-10898] - Do not write ?> into config.php to avoid whitespace output
- [PHPBB3-10925] - Clarify that SQLite3 is not supported for phpBB 3.0.x

#### New Feature

- [PHPBB3-10616] - Add template inheritance by default

#### Sub-task

- [PHPBB3-10907] - Mark (var)binary tests as incomplete on non-MySQL DBMSes

#### Task

- [PHPBB3-9896] - Update links in docs/readme.html
- [PHPBB3-10434] - Add a script that allows creating a search index from CLI
- [PHPBB3-10455] - Remove NOTE from header files
- [PHPBB3-10694] - Update notification in ACP (Olympus) for increase of minimum PHP version to 5.3.2
- [PHPBB3-10718] - Add Travis CI
- [PHPBB3-10788] - Update docs/AUTHORS for 3.0.11-RC1
- [PHPBB3-10909] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2

### Changes since 3.0.9

#### Bug

- [PHPBB3-5506] - Deleting all items from last page results in empty list display
- [PHPBB3-6458] - Width of Topics and Posts columns in Board Index is causing problems with language packs
- [PHPBB3-7138] - Cannot display simple header/footer with trigger_error()
- [PHPBB3-7291] - Broken links of char selection in memberlist
- [PHPBB3-7932] - Fix font size in select boxes
- [PHPBB3-8094] - Text in the forums.php and install.php not matching
- [PHPBB3-8173] - Redundant BBCode helpline in JS
- [PHPBB3-8177] - February 29th birthdays not shown in non-leap year
- [PHPBB3-8571] - Users can make their age a negative number on memberlist
- [PHPBB3-8691] - Error creating log_time index
- [PHPBB3-8937] - Code tags - single space indent
- [PHPBB3-9008] - Incorrect unread topic tracking for unapproved topics
- [PHPBB3-9066] - Invalid Prefix Names Allowed
- [PHPBB3-9416] - HTML entities in poll titles and options incorrectly re-encoded
- [PHPBB3-9525] - Minimum characters per post/message should never be '0'
- [PHPBB3-9645] - XHTML error on phpinfo page in ACP
- [PHPBB3-9776] - When deleting and recreating a poll, old options aren't deleted and reappear with the new ones
- [PHPBB3-9956] - No error message displayed when disapprove reason is invalid or empty
- [PHPBB3-9976] - Direct post links open the wrong page of viewtopic when multiple posts are posted in the same second
- [PHPBB3-9978] - Missing semicolons in // <![CDATA[ part of overall_header.html
- [PHPBB3-10087] - Limited browser support for ban exclusion emphasis
- [PHPBB3-10157] - Missing error handling when a custom profile field is not defined for current language
- [PHPBB3-10166] - Post-admin activation email confusingly refers to username
- [PHPBB3-10187] - XHTML error in ucp_groups_manage.html
- [PHPBB3-10190] - Misleading information about permissions displayed after editing forum settings
- [PHPBB3-10212] - Captcha not displayed when username not exists
- [PHPBB3-10216] - Updater's failed query language grammatically incorrect
- [PHPBB3-10226] - Mysqli dbal extension does not allow connection via pipes
- [PHPBB3-10227] - Mysqli dbal extension does not allow persistent connection for PHP >= 5.3.0
- [PHPBB3-10237] - Unwatching a forum/topic does not check for correct hash parameter
- [PHPBB3-10240] - Word filter evasion
- [PHPBB3-10253] - IE9 Quote problem
- [PHPBB3-10255] - gitignore ignores too much
- [PHPBB3-10257] - AAAA record parsing fails on older versions of Windows
- [PHPBB3-10259] - Incorrect email on joining Open group
- [PHPBB3-10265] - Unit test tests/random/mt_rand.php is not run because of missing _test suffix.
- [PHPBB3-10266] - Poor navigation links after reporting a post
- [PHPBB3-10267] - Missing strlen() on $table_prefix in db tools index name length check
- [PHPBB3-10274] - Hardcoded module ID in "Re-check version" link on ACP front page
- [PHPBB3-10275] - Wrong information about sent passwords in FAQ
- [PHPBB3-10292] - Whitespace inconsistency in acp_ranks
- [PHPBB3-10293] - Jumpbox allows jumping to invalid forums in prosilver
- [PHPBB3-10294] - sqlsrv_rows_affected non-functional in MSSQLNative.php
- [PHPBB3-10296] - incorrect cross join in SQL Server
- [PHPBB3-10298] - EMBED Tag Not Closed Properly In subSilver2 attachment.html
- [PHPBB3-10299] - Typo in comment about $max_store_length in truncate_string() (in functions_content.php)
- [PHPBB3-10303] - send_status_line() doesn't validate user input
- [PHPBB3-10304] - Bad url in U_ICQ on /ucp_mp_viewmessage.php
- [PHPBB3-10307] - Return value of $db->sql_fetchrow() on empty tables is not consistent
- [PHPBB3-10309] - Utf tests download data into temporary locations deep in source tree
- [PHPBB3-10320] - "Most active topic" can leak topic title of topics in password-protected forums
- [PHPBB3-10321] - Link to page 1 of the Memberlist has a useless question mark at the end
- [PHPBB3-10324] - XHTML error in Prosilver - MCP - User Notes
- [PHPBB3-10339] - Typo in prosilver's mcp_front.html
- [PHPBB3-10341] - Topic title of "0" does not show as "Most active topic"
- [PHPBB3-10351] - Invalid syntax for Oracle's sql_column_remove()
- [PHPBB3-10352] - Missing break for Oracle's sql_table_drop()
- [PHPBB3-10365] - Moderators can view forbidden information
- [PHPBB3-10377] - All moderators can change topic type
- [PHPBB3-10394] - Tests use call-time pass by reference which results in Fatal error on PHP 5.4
- [PHPBB3-10397] - Pagination code inconsistency
- [PHPBB3-10400] - '0' (zero) not allowed as forum name
- [PHPBB3-10413] - Make create_schema_files usable
- [PHPBB3-10416] - Use dbport in phpbb_database_test_connection_manager::connect()
- [PHPBB3-10420] - Update startup to account for PHP 5.4
- [PHPBB3-10421] - Interchanged parameters in includes/acp/acp_users.php
- [PHPBB3-10422] - Unnecessary <!-- IF --> statement in viewtopic_body.html
- [PHPBB3-10435] - Topic count mismatch on viewforum
- [PHPBB3-10437] - Announcements on moderation queue are not hidden
- [PHPBB3-10446] - Unencoded 8bit characters in email headers
- [PHPBB3-10452] - XHTML error when printing a PM
- [PHPBB3-10461] - MCP's recent actions list is empty
- [PHPBB3-10479] - Remove PostgreSQL version numbers from driver's language string
- [PHPBB3-10485] - XHTML error in Prosilver - index and viewforum
- [PHPBB3-10488] - Database updater for 3.0.10-RC1 overwrites config variable email_max_chunk_size without checking for custom value
- [PHPBB3-10497] - SQL error when guest visits forum with unread topic
- [PHPBB3-10319] - Missing hidden fields in search form
- [PHPBB3-10501] - Description of table prefix is wrong
- [PHPBB3-10502] - CHANGELOG.html has a typo: 'red' should be 'read'.
- [PHPBB3-10503] - Debug error when previewing edits
- [PHPBB3-10504] - MCP Layout STILL broken in ProSilver when screen is resized to less 1200 pixels
- [PHPBB3-10531] - Last remaining style can be uninstalled

#### Improvement

- [PHPBB3-8616] - Add direct link to PM to notification message
- [PHPBB3-9036] - Forums that can be listed but not read expose forum information
- [PHPBB3-9297] - Add support for Extended Passive Mode (EPSV) in class ftp_fsock to better support IPv6 connections.
- [PHPBB3-9307] - Mass email $max_chunk_size
- [PHPBB3-9361] - Edit account settings - Improved clarification needed
- [PHPBB3-9778] - Member Search from the Admin Control Panel is not Intuitive
- [PHPBB3-9898] - Readme needs updating to reflect more opening for patches
- [PHPBB3-9995] - Unnecessary coding in display_forums() in functions_display.php
- [PHPBB3-10032] - BBCode Add List Item Control Name Contains Typo
- [PHPBB3-10074] - Change default value of 'Set as special rank' to No for Add new rank
- [PHPBB3-10185] - Board startdate not being set
- [PHPBB3-10189] - Add "automatically generated" comment into schema-files.
- [PHPBB3-10199] - Performance: viewtopic has a useless join
- [PHPBB3-10222] - Also build language and styles changes in diff/patch format
- [PHPBB3-10239] - Add "Are you sure" confirmation to backup restore in ACP
- [PHPBB3-10243] - Add gmgetdate() wrapper for getdate() which returns dates in UTC.
- [PHPBB3-10245] - Messenger uses output buffering for error collection, should use error collector instead
- [PHPBB3-10246] - Remove VCS section from docs/coding-guidelines.html
- [PHPBB3-10254] - Remove style names from themes and fix some information on it
- [PHPBB3-10263] - Add phpbb_version_compare() wrapper for version_compare()
- [PHPBB3-10278] - Improve timeout handling in get_remote_file()
- [PHPBB3-10315] - Radio Buttons in ACP are clipped in Safari - Fix suggested
- [PHPBB3-10327] - Use "ALTER TABLE ... ADD INDEX" instead of "CREATE INDEX"
- [PHPBB3-10334] - Birthday List display not dependent on user privileges
- [PHPBB3-10335] - Responses to bots should have extra header to be used by reverse proxies
- [PHPBB3-10346] - Add drop_tables key for database updater
- [PHPBB3-10354] - When template tests are skipped because cache is not writable, print cache directory path
- [PHPBB3-10369] - Change error collector to always report errfile and errline
- [PHPBB3-10370] - Various improvements for get_backtrace()
- [PHPBB3-10402] - Displaying report texts with linebreaks and clickable links
- [PHPBB3-10419] - Add mbstring PHP ini parameters checks to ACP
- [PHPBB3-10430] - Some typos and the like in docs/coding-guidelines.html

#### New Feature

- [PHPBB3-8240] - Request: db_tools to have two additional functions, table list and column list

#### Task

- [PHPBB3-9689] - Scripts and utilities
- [PHPBB3-10003] - Resolve db_tools proliferation
- [PHPBB3-10313] - Include slow unit tests when running build script
- [PHPBB3-10483] - Test suite does not run with MySQL strict mode
- [PHPBB3-10486] - Create git shortlog and git diff --stat in build script
- [PHPBB3-10480] - Automate changelog building

### Changes since 3.0.8

#### Bug

- [PHPBB3-217] - Multiline [url] not Converted
- [PHPBB3-6712] - Topic bumping does not create new topic icon on index
- [PHPBB3-7057] - Quicksearch uses POST, thus the page expires!
- [PHPBB3-7778] - Increase limit of custom BBcodes
- [PHPBB3-7834] - Correctly update topic_time when deleting first post in topic
- [PHPBB3-7888] - URL of search results page does not always contain all keywords of the search query
- [PHPBB3-7941] - mistake in description of function generate_board_url
- [PHPBB3-8138] - Browser autocompleton fills wrong fields in ACP
- [PHPBB3-8736] - Honour ACP settings for min/max username length when posting as a guest.
- [PHPBB3-8802] - Wrong confirmation text when clicking "mark forums read" in a category
- [PHPBB3-8904] - Show numeric CPF default value when editing
- [PHPBB3-9166] - Subsilver and prosilver CSS elements out of order.
- [PHPBB3-9348] - Correctly encode default_dateformat when converting from phpBB2
- [PHPBB3-9575] - The word "administrate" is not correct.
- [PHPBB3-9630] - Naming inconsistency of Merging Posts / Topics in MCP
- [PHPBB3-9675] - Add option to delete template/theme/imageset when deleting style.
- [PHPBB3-9685] - Unable to create "Fulltext native" search index using the mssqlnative DBAL
- [PHPBB3-9751] - Password requirement "Must contain letters and numbers" is not working properly
- [PHPBB3-9764] - Empty value for CONFIG_TABLE config_name= 'mime_triggers' causes functions_fileupload.php->fileupload->check_content() to be too restrictive
- [PHPBB3-9851] - "Search new posts" should require login
- [PHPBB3-9872] - Total topics isn't correct after I deleted a user
- [PHPBB3-9874] - view_log() performs unneeded count query over all log entries.
- [PHPBB3-9892] - Firebird index name length limit is not taken into account
- [PHPBB3-9905] - DSN field should include SQLite
- [PHPBB3-9908] - Send "Moved Permanently" before stripping off session ids for Bots.
- [PHPBB3-9910] - Javascript bug in Subsilver2 PMs
- [PHPBB3-9911] - Incorrect open/close field in Manage ranks ACP
- [PHPBB3-9913] - currunt should be current
- [PHPBB3-9915] - "Length of ban:" is not displayed in ACP
- [PHPBB3-9924] - $template->display hook does not pass $template instance
- [PHPBB3-9925] - prosilver logo margin bug in IE 6-7-8
- [PHPBB3-9928] - Do not link "login to your board" to the "send statistics" page after completed update.
- [PHPBB3-9930] - Redirect fails with open_basedir enabled
- [PHPBB3-9932] - The Bing bot is not added when converting.
- [PHPBB3-9933] - Wrong handling of consecutive multiple asterisks in word censor
- [PHPBB3-9934] - Mass Mail missing under the system tab on a fresh install
- [PHPBB3-9939] - JavaScript error in recaptcha ACP template
- [PHPBB3-9944] - Extension groups naming don't use users' language in ACP
- [PHPBB3-9946] - $inserts empty in sql_query() for oracle
- [PHPBB3-9948] - Inline quicktime files won't display
- [PHPBB3-9949] - $user->lang() is not handling arguments as per documentation
- [PHPBB3-9950] - Problem with localized button images after uprading from 3.0.7-PL1 to 3.0.8
- [PHPBB3-9953] - Set focus to password on re-authentication
- [PHPBB3-9954] - u_masspm* permissions are forced to never for certain groups
- [PHPBB3-9961] - Inconsistent activation logs
- [PHPBB3-9966] - Language download in ACP creates index.html and misses captcha_*
- [PHPBB3-9970] - user_lang input not checked during registration
- [PHPBB3-9981] - Fix unit test dependencies on phpBB files
- [PHPBB3-9985] - 3D Wave CAPTCHA mt_rand() does not check order of min/max values
- [PHPBB3-9997] - Inconsistent approve/disapprove button order in modcp
- [PHPBB3-9999] - {forumrow.L_FORUM_FOLDER_ALT} and {SEARCH_IMG} only return a language key.
- [PHPBB3-10005] - users can register without custom profile field correctly entered
- [PHPBB3-10011] - __DIR__ in test suite renders it unusable on php < 5.3
- [PHPBB3-10016] - set_config_count() fails on PostreSQL 7
- [PHPBB3-10020] - ACP function validate_range() fails partially on non-32-bit systems
- [PHPBB3-10021] - "Find a member" generates SQL error when large dates are entered
- [PHPBB3-10029] - No such thing as $_SERVER['HTTP_VERSION']
- [PHPBB3-10033] - "Disallow usernames" does not check already disallowed names
- [PHPBB3-10035] - ACP template edit feature allows to read any files on webserver and to upload/execute any script on it
- [PHPBB3-10036] - Use image from configuration file for displaying online-status.
- [PHPBB3-10038] - download/file.php uses $_GET value instead of function request_var()
- [PHPBB3-10039] - 2.x to 3.x conversion fails when using mssqlnative to connect to destination database
- [PHPBB3-10042] - GD captcha has invalid mt_rand calls
- [PHPBB3-10047] - Session ID always included in URL on posting.php
- [PHPBB3-10049] - Session test files are misnamed, session tests are not run
- [PHPBB3-10052] - Session tests are broken
- [PHPBB3-10056] - Firebird misspelled in database updater
- [PHPBB3-10058] - Root path is undefined in MySQL upgrader
- [PHPBB3-10059] - Consistent is misspelled twice
- [PHPBB3-10060] - Typo in tests database connection manager
- [PHPBB3-10068] - Firefox4 restrictions to :visited
- [PHPBB3-10078] - commit-msg hook prints \n on freebsd
- [PHPBB3-10081] - Cleanup Template Tests
- [PHPBB3-10084] - Add smilie errors out when image is missing
- [PHPBB3-10088] - Cache mock does not unset database versions other than mysqli
- [PHPBB3-10090] - cache/queue.php.lock isn't covered by .gitignore
- [PHPBB3-10092] - commit-msg hook aborts on overlength comment lines
- [PHPBB3-10096] - Wrong whitespace in functions.php
- [PHPBB3-10100] - Race condition in unique_id() on heavily busy database.
- [PHPBB3-10102] - member.S_PENDING_SET in styles/prosilver/template/ucp_groups_manage.html
- [PHPBB3-10104] - missing one intval() along with others already being there
- [PHPBB3-10109] - Errors while copying a topic
- [PHPBB3-10112] - Use of count() in captcha_gd.php and mssqlnative.php
- [PHPBB3-10115] - BBcodes not working if post contains about or more 55000 non-english symbols
- [PHPBB3-10117] - Big posts becomes empty if they have smilies on specified places.
- [PHPBB3-10121] - ICQ profile link leads to a webservice that is no longer active
- [PHPBB3-10123] - Inconsistent use of smilie/smiley
- [PHPBB3-10128] - Error message is on green background when trying to ban a nonexistent user
- [PHPBB3-10137] - Deleting an unintended space at the end of PHP_URL_FOPEN_SUPPORT_EXPLAIN
- [PHPBB3-10146] - Firebird cannot handle DECIMAL(255, 0)
- [PHPBB3-10147] - Typo in code comment in functions_template.php
- [PHPBB3-10149] - deregister_globals causes error when cookie called GLOBALS is set to scalar value
- [PHPBB3-10170] - reCAPTCHA address has changed
- [PHPBB3-10171] - Firefox4 displays grey pixels at PM message rows when message is neither marked nor replied
- [PHPBB3-10177] - phpBB package cannot be built with bsdtar
- [PHPBB3-10178] - build.xml does not specify path to find - breaks on FreeBSD
- [PHPBB3-10188] - Broken compressed output when errors/warnings are handled by phpbb and output_buffering is set to 4096 and phpbb gzip is enabled
- [PHPBB3-10191] - Duplicate output when output_handler is set in php.ini
- [PHPBB3-10192] - Missing semicolon in MySQL Upgrader
- [PHPBB3-10195] - Do not check DNS Blacklists if IPv6 address is passed to session::check_dnsbl().
- [PHPBB3-10198] - Function validate_config_vars() improperly validates multibyte strings
- [PHPBB3-10203] - Fix quotations and hyphen in language strings for PHPBB3-10067
- [PHPBB3-10204] - Package build tool does not detect binary file changes
- [PHPBB3-10206] - Normalization tests fail when unicode.org is not reachable
- [PHPBB3-10211] - Missing space on the recent PHPBB3-9992 changes
- [PHPBB3-10213] - IP limit index name too long on Oracle
- [PHPBB3-10214] - Cannot configure Q&A on Oracle
- [PHPBB3-10218] - STRIP is not defined in style.php causing a notice to be thrown
- [PHPBB3-10219] - Inappropriate character in web.config file
- [PHPBB3-10220] - Logging in with Mobile Device triggers SQL error on *_login_attempts.
- [PHPBB3-10221] - Inconsistent usage of "Seconds" in ACP Settings
- [PHPBB3-7729] - Prevent date/time functions from throwing E_WARNING on PHP 5.3 by setting a default timezone
- [PHPBB3-10188] - Broken compressed output when errors/warnings are handled by phpbb and output_buffering is set to 4096 and phpbb gzip is enabled
- [PHPBB3-10223] - Updater references startup.php from board path
- [PHPBB3-10228] - Typo in 3.0.9-RC1 user registration settings
- [PHPBB3-10229] - On languge/acp/styles.php "%s" should be "%s"
- [PHPBB3-10232] - Search within topic/forum searches all posts
- [PHPBB3-10233] - IE Emulation fix breaks posting layout when PMing
- [PHPBB3-10234] - msg_handler() reports E_WARNING as "PHP Notice: "
- [PHPBB3-10247] - mediumint(8) too small for phpbb_login_attempts.attempt_id
- [PHPBB3-10250] - phpBB Logo needs the Registered Trademark Symbol

#### Improvement

- [PHPBB3-9581] - Banned users get mass emails.
- [PHPBB3-9802] - Optimize session_begin REMOTE_ADDR validation
- [PHPBB3-9878] - Get rid of Internet Explorer 7 emulation
- [PHPBB3-9897] - Language typos in language/en/acp/board.php
- [PHPBB3-9922] - Posting URL in subsilver 2
- [PHPBB3-9937] - Feed Icon displays on Forum links
- [PHPBB3-9980] - URLs to javascript should be T_SUPER_TEMPLATE_PATH instead of T_TEMPLATE_PATH
- [PHPBB3-9989] - Skip PM popup in overall_header.html, if there are no new PMs.
- [PHPBB3-10007] - Add directive 'internal' to blocked folders in nginx example configuration.
- [PHPBB3-10009] - Differentiate published/updated dates in Atom feed
- [PHPBB3-10014] - Make the error message when cache is not writable clearer
- [PHPBB3-10024] - Allow a Style to present Unread PM in different way than read PM
- [PHPBB3-10040] - Continuous integration on PHP 5.2
- [PHPBB3-10041] - download/file.php needs more use of send_status_line
- [PHPBB3-10044] - Setup github network improvements
- [PHPBB3-10057] - More informative reporting of errors when database connection fails for Firebird and PostgreSQL.
- [PHPBB3-10067] - ACP options for account activation are confusing when emails are turned off board-wide
- [PHPBB3-10069] - Improvements in sample nginx config file
- [PHPBB3-10072] - Send the post number to the template as it relates to it's position in the topic
- [PHPBB3-10101] - Compatibility with native phpass hashes
- [PHPBB3-10126] - Replace ^ with &~ in error_reporting calls
- [PHPBB3-10141] - Performance improvement for $auth->_fill_acl()
- [PHPBB3-10145] - Ability to force recompilation of all templates on every page load
- [PHPBB3-10154] - Move "copy permissions from" to below "parent" in forum creation form
- [PHPBB3-10158] - Return link not really useful after sending a Private Message
- [PHPBB3-10186] - UCP signature panel displays when not authed for signatures

#### New Feature

- [PHPBB3-9942] - WinCache Caching Module
- [PHPBB3-9992] - Limit amount of failed login attempts per IP
- [PHPBB3-10110] - Redis caching module

#### Task

- [PHPBB3-9788] - Add README for GitHub
- [PHPBB3-9805] - Add a script for setting up git remotes for a github network
- [PHPBB3-9806] - Script for easy merging
- [PHPBB3-9824] - Git hook quirks
- [PHPBB3-9859] - Remove the years from visible copyright in the footer.
- [PHPBB3-9921] - Add sample configuration for lighttpd webserver
- [PHPBB3-9943] - Setup phpDocumentor API documentation generation
- [PHPBB3-9967] - Use phpunit.xml for test suite
- [PHPBB3-9987] - Enforce _test.php suffix for test files
- [PHPBB3-9990] - Integrate utf normalizer tests into test suite
- [PHPBB3-10043] - Refactor phpbb_database_test_case
- [PHPBB3-10046] - Getting rid of register_shutdown_function() in cron.php to prevent path disclosure (reported by lacton)
- [PHPBB3-10075] - Update docs/AUTHORS for 3.0.9-RC1 release
- [PHPBB3-10079] - Add gallery avatars to .gitignore.
- [PHPBB3-10082] - Fix Session Test Issues with CHAR vs. VARCHAR.
- [PHPBB3-10105] - Update AIM express link and "Download Application" links
- [PHPBB3-10107] - Improve docs for non-apache webserver configuration

#### Sub-task

- [PHPBB3-9732] - Cover session code extensively in tests
- [PHPBB3-9968] - Create unit test for word censor regular expression
- [PHPBB3-9969] - Move word censor regular expression creation into separate function definition in functions.php

### Changes since 3.0.7-PL1

#### Security

- [PHPBB3-9903] - Execute javascript in [flash=] BBCode

#### Bug

- [PHPBB3-4923] - compress_tar incorrectly determines type
- [PHPBB3-5164] - Honor minimum and maximum password length in generated passwords as much as possible.
- [PHPBB3-6726] - Connecting to PostgreSQL using 'localhost' doesn't try to use a TCP connection
- [PHPBB3-6747] - word censoring * does not handle space for two or more words
- [PHPBB3-7260] - Do not delete polls if one exists and editing user lacks permissions
- [PHPBB3-7296] - Style export to tar(.*) does not work
- [PHPBB3-7369] - Custom Profile dates display incorrectly
- [PHPBB3-7417] - Search keywords field does not initially get focus
- [PHPBB3-7538] - Query exceeds maximum value for user_login_attempts
- [PHPBB3-7716] - Data too long for column 'message_subject'
- [PHPBB3-7720] - Fix alternative image-description for unread posts.
- [PHPBB3-7782] - Send HTTP 404 if topic, forum or user do not exist
- [PHPBB3-7972] - Copied topics are not indexed
- [PHPBB3-8169] - Parse CSS Regex accepts invalid code
- [PHPBB3-8792] - Misleading error message in auth_ldap.php, function init_ldap()
- [PHPBB3-8894] - JavaScript error and visible quote button on topic review if BBCodes disallowed
- [PHPBB3-8924] - spelling in admin_welcome_inactive.txt
- [PHPBB3-8929] - MS SQL error on view all smilies after 3.0.6 upgrade
- [PHPBB3-8935] - able to set minimal avatar size larger than maximum
- [PHPBB3-8944] - Error on database update (must specify size of index on MySQL4)
- [PHPBB3-9012] - Retain original topic title in shadow topic when moving a topic and editing the title.
- [PHPBB3-9034] - Redirect() fails with directory traversal
- [PHPBB3-9047] - Active topics and reported posts
- [PHPBB3-9049] - Password reminder system generates confusable passwords
- [PHPBB3-9053] - Correctly sort database backup file list by date on database restore page
- [PHPBB3-9061] - Race condition in queue locking
- [PHPBB3-9068] - Grammatical Error under Load Settings
- [PHPBB3-9075] - Missing / bad default values of CPFs result in SQL errors on registration of new users
- [PHPBB3-9091] - Wrong IP checking for IPv4 addresses mapped into IPv6
- [PHPBB3-9094] - Hide "Copy permissions" message, when permissions were copied.
- [PHPBB3-9095] - Misleading setting text for CAPTCHA
- [PHPBB3-9099] - Missing comma in PASSWORD_EXPLAIN acp language strings
- [PHPBB3-9101] - Bad text placement for reCAPTCHA description
- [PHPBB3-9104] - Safari does not display box headers correctly in the ACP.
- [PHPBB3-9107] - Can't Set Parent Forum
- [PHPBB3-9108] - RSS feeds does not work on Postgres
- [PHPBB3-9112] - Most active forum post count does not respect m_approve permission
- [PHPBB3-9114] - Recent bug fix for smilies causing problems on older MySQL versions
- [PHPBB3-9117] - Wrong redirection after login
- [PHPBB3-9119] - Language selection is disregarded in automatic update
- [PHPBB3-9120] - Typo fix in a comment in functions.php
- [PHPBB3-9121] - Forum feed shows posts that are currently on the moderation queue
- [PHPBB3-9125] - ACP User Overview: Unmatched </form> tag when viewing own user
- [PHPBB3-9126] - Invalid redirection after login to forum not in web root
- [PHPBB3-9132] - Oracle CLOB support is broken, preventing storage of long strings
- [PHPBB3-9135] - Fix report-icon for moderators in PM folders.
- [PHPBB3-9140] - Check current board version in incremental update packages
- [PHPBB3-9145] - Fix open_basedir issues when accessing styles- and language-management
- [PHPBB3-9146] - Quick-Reply tabindex="6" set twice
- [PHPBB3-9147] - "Change topic type"-option "Normal" always selected.
- [PHPBB3-9154] - Correctly check for double inclusion in captcha garbage collection
- [PHPBB3-9158] - viewforum/viewtopic pages unnecessarily duplicated with start=0
- [PHPBB3-9162] - BBCode in poll options is broken, when posting without question.
- [PHPBB3-9167] - Remove shadow topics from remaining forums when deleting a forum including posts
- [PHPBB3-9170] - Unable to get image size in img bbcode when URL has multiple parameters.
- [PHPBB3-9173] - sql_config_count() artificially limits number scope to 4byte-integer on PostgreSQL and Firebird
- [PHPBB3-9176] - When setting the board's date format the board's timezone settings aren't taken into account
- [PHPBB3-9451] - Unnecessary overhead in avatar_process_user function
- [PHPBB3-9478] - Validate maximum number of allowed recipients per PM value
- [PHPBB3-9495] - Loginbox <input /> redirect breaks xHTML
- [PHPBB3-9499] - Javascript function dE does not correctly detect element visibility
- [PHPBB3-9504] - Allow gallery avatars with whitespaces in the filename
- [PHPBB3-9509] - phpBB Coding Guidelines state subversion as the version control system for phpBB
- [PHPBB3-9510] - Unable to copy permissions from and to forums you cannot see
- [PHPBB3-9512] - Fix dead link in MCP on reports for global announcements in prosilver.
- [PHPBB3-9514] - Correctly delete big datasets when deleting a forum including topics/posts on non-MySQL databases
- [PHPBB3-9518] - Postgres DBAL does not correctly create a new database connection when passing $new_link as true
- [PHPBB3-9519] - Replace remaining is_writable() calls with phpbb_is_writable().
- [PHPBB3-9521] - MSSQL error reporting returns String instead of an error
- [PHPBB3-9524] - IPv6 regular expression does not match addresses starting in ::
- [PHPBB3-9526] - User Preference to hide online status does not work for bots
- [PHPBB3-9528] - Quoting in a PM does not fall back to bbcode-less quotes using "> " when bbcodes are disabled
- [PHPBB3-9529] - Topic review does not display all selected posts
- [PHPBB3-9530] - subsilver2 missing fallback option on quoting when bbcodes are disabled
- [PHPBB3-9531] - BBCode-less fall back option for quotes is missing "Author wrote:" line when quoting from topic-review.
- [PHPBB3-9535] - Incorrect margins in RTL languages: signatures, permission ACP & updater
- [PHPBB3-9545] - 'Your first forum' should have 'Display active topics:' set to 'Yes'
- [PHPBB3-9546] - Moving all posts from one topic to another does not delete bookmarks
- [PHPBB3-9547] - Changing forum type applies FORUM_FLAG_ACTIVE_TOPICS to new forum type.
- [PHPBB3-9548] - Delete user quicktool drop down should have an empty or invalid selection as the default
- [PHPBB3-9559] - Messenger Queue Batch Size configuration option is overridden
- [PHPBB3-9567] - Newly registered users group ACP wording
- [PHPBB3-9582] - Missing MSSQL native driver case statements
- [PHPBB3-9587] - Prosilver overrides reCaptcha class.
- [PHPBB3-9592] - Test suite does not run on SQLite
- [PHPBB3-9593] - Missing documentation for running unit tests
- [PHPBB3-9599] - Windows workaround for checkdnsrr() returns wrong results
- [PHPBB3-9605] - Wrong class added to topiclist, when there's no announcement topic.
- [PHPBB3-9615] - When attaching a file whose name contains quotes, filename before last quote is cut off in display
- [PHPBB3-9623] - Strings not properly normalized - acp_prune.php
- [PHPBB3-9626] - Regular expressions from get_preg_expression() are untested.
- [PHPBB3-9628] - Add module function does not correctly insert a module after the specified one
- [PHPBB3-9633] - Newly registered users group color is not used in Our Newest Member
- [PHPBB3-9635] - Useless parameter $data['post_time'] in function submit_post.
- [PHPBB3-9637] - SET NAMES 'BINARY' error in convertor
- [PHPBB3-9643] - DB connection error when $dbhost is an IPv6 address
- [PHPBB3-9644] - submit_post shows support for options that cause a trigger_error in the call to user_notification
- [PHPBB3-9646] - Cant hide/outcomment @import in stylesheet.css
- [PHPBB3-9650] - It should not be possible to ban Anonymous
- [PHPBB3-9653] - xhtml errors in subsilver2 when using the bbcodes code and quote in signatures
- [PHPBB3-9655] - Selecting an unavailable captcha plugin looks like a successful action
- [PHPBB3-9656] - PHP Information in ACP always lists error_reporting as 0
- [PHPBB3-9658] - Optimize topic splitting
- [PHPBB3-9662] - Search interval applied inconsistently
- [PHPBB3-9664] - Another duplicate accesskey: t = top and list item
- [PHPBB3-9665] - Signature "0" cannot be previewed
- [PHPBB3-9677] - Subsilver2 is missing the bbcode-helpline for inline-attachments.
- [PHPBB3-9678] - Flash attachments are not displayed in subsilver2.
- [PHPBB3-9679] - "Notify User" checkbox appears in MCP Queue even if no notification methods are enabled
- [PHPBB3-9686] - Unable to create data backup using the mssqlnative DBAL
- [PHPBB3-9694] - Calling download/file.php with empty avatar parameter can throw an E_NOTICE message
- [PHPBB3-9695] - Bad Display of User Input - mcp_ban
- [PHPBB3-9696] - Installation of phpBB with SQLite fails
- [PHPBB3-9697] - Backlink broken when the select parent forum does not exist.
- [PHPBB3-9698] - Returning result of new by reference is deprecated in php 5.3
- [PHPBB3-9702] - "Ban until (date)" appears to be based on UTC time instead of local time
- [PHPBB3-9703] - Removing a user does not remove their private message folders or rules
- [PHPBB3-9704] - Coding guidelines typo
- [PHPBB3-9712] - Future dates display as "less than one minute ago"
- [PHPBB3-9714] - "Undefined variable: email" in email regular expression unit tests
- [PHPBB3-9715] - Fix email address regular expression or adjust email regular expression unit tests
- [PHPBB3-9722] - "New Topic" button title attribute mismatch in prosilver's viewforum
- [PHPBB3-9727] - Feed replaces ./ with board URL
- [PHPBB3-9743] - Fix background-position of top2-class in prosilver for RTL-languages.
- [PHPBB3-9744] - Mistyped word 'then' in FAQ. It should be 'than'.
- [PHPBB3-9748] - <br /> not being replaced in prepare_message
- [PHPBB3-9749] - fulltext_mysql.php overreacts on + and - characters in search words
- [PHPBB3-9752] - Misleading text when using Q&A CAPTCHA
- [PHPBB3-9754] - Template variable S_USER_POSTED always set to false in search.php
- [PHPBB3-9757] - Empty template variable HISTORY_TITLE in ucp_pm_history
- [PHPBB3-9760] - Fulltext native search, wildcard * does not get escaped leading to long execution time
- [PHPBB3-9761] - Quote nesting depth explanation is misleading
- [PHPBB3-9771] - build_url() doesn't ignore empty parameters
- [PHPBB3-9772] - Under some circumstances, email addresses are shown to undesired users
- [PHPBB3-9780] - gen_rand_string() not respecting $num_chars parameter anymore.
- [PHPBB3-9782] - Board disable radio in Board-Settings set on when server load high
- [PHPBB3-9793] - Undefined function send_status_line() in download/file.php when in avatar mode.
- [PHPBB3-9807] - Avatar tab displays when avatars are disabled
- [PHPBB3-9810] - Clicking on "Select All" of code tag on print page results in a javascript error when using prosilver
- [PHPBB3-9820] - Fix undefined indexes when trying to post a new topic
- [PHPBB3-9822] - Can not delete style-components from the file-system as per explanation.
- [PHPBB3-9829] - Recaptcha plugin result interpretation fault
- [PHPBB3-9835] - Login Confirm Explain Not Working
- [PHPBB3-9840] - Display view unread posts link for guests
- [PHPBB3-9841] - Change "Save" button to "Save draft"
- [PHPBB3-9847] - Language typo and written form (British/American)
- [PHPBB3-9854] - Auth API documentation is incomplete
- [PHPBB3-9855] - Tests don't run on PHPUnit 3.5
- [PHPBB3-9879] - captcha_qa.php spelling, punctuation and grammar errors
- [PHPBB3-9883] - CAPTCHA uses american english
- [PHPBB3-9884] - Massive email delays
- [PHPBB3-9885] - Default file extension groups not properly updated by database updater.
- [PHPBB3-9886] - Database updater does not run on PostgreSQL because of an error in _add_module()
- [PHPBB3-9888] - Update fails when Bing [Bot] was already added to the users table
- [PHPBB3-9891] - Updater drops language-selection after database-update
- [PHPBB3-9509] - phpBB Coding Guidelines state subversion as the version control system for phpBB

#### Improvement

- [PHPBB3-7332] - MCP post details usability
- [PHPBB3-7717] - Use user's language for standard-extensions-group name
- [PHPBB3-8709] - Multibyte keys in request_var not possible
- [PHPBB3-8936] - subsilver2 missing reply-to-all feature
- [PHPBB3-9088] - Add missing semicolons in js files
- [PHPBB3-9179] - improve quasi-documentation of notify_status values
- [PHPBB3-9503] - Posts with empty titles in moderation queue are not easily approved
- [PHPBB3-9534] - user_ipwhois() does not support IPv6 addresses
- [PHPBB3-9536] - Small improvement for query against sessions table in acp_users.php
- [PHPBB3-9553] - Make git hooks run with /bin/sh instead of bash
- [PHPBB3-9570] - Change "system timezone" to "guest timezone" in acp, add explanation
- [PHPBB3-9578] - ACP Posting tab is missing "Post settings" module.
- [PHPBB3-9589] - Sample nginx configuration file
- [PHPBB3-9595] - Search settings in ACP: Add information on minimum word size indexed when using Fulltext MySQL backend
- [PHPBB3-9598] - Call checkdnsrr() on Windows with PHP 5.3
- [PHPBB3-9609] - Use send_status_line instead of calling header
- [PHPBB3-9611] - Increase entropy in activation keys
- [PHPBB3-9612] - Split gen_rand_string() into gen_rand_string() and gen_rand_string_friendly()
- [PHPBB3-9629] - sid parameter forced for style.php makes caching difficult
- [PHPBB3-9659] - Default phpBB signature user_options need to be set for convertors
- [PHPBB3-9690] - MSN Bot will become Bing Bot
- [PHPBB3-9777] - Print useful error message in pre-commit hook when php is not installed.
- [PHPBB3-9785] - Not able to recover a password when board disabled
- [PHPBB3-9825] - Run tests on sqlite if available and no test db configured
- [PHPBB3-9827] - IE9 Beta fixes IE8 textarea bug
- [PHPBB3-9830] - Awkward message when config.php is missing
- [PHPBB3-9850] - Allow version checker to display information on multiple releases
- [PHPBB3-9853] - Change default reCAPTCHA theme in Prosilver & Subsilver2 to better coordinate with style color scheme
- [PHPBB3-9880] - Rename all mentions of CAPTCHA or visual confirmation to anti-bot
- [PHPBB3-9899] - Change the style in the ACP for the recaptcha to match that displayed on prosilver

#### New Feature

- [PHPBB3-9039] - Native SQL Server Support mssqlnative.php
- [PHPBB3-9511] - View note for moderators on unapproved posts/topics with unapproved posts in ATOM Feed.

#### Task

- [PHPBB3-9520] - Add web.config files for IIS
- [PHPBB3-9625] - Update database UNIT-test
- [PHPBB3-9701] - Enable notices in unit tests
- [PHPBB3-9768] - Create git commit-msg hook that verifies the commit message conforms to our standards
- [PHPBB3-9769] - Add install and uninstall scripts for the git hooks
- [PHPBB3-9770] - Git commit message should be prefilled with branch and ticket information
- [PHPBB3-9800] - Update tracker URL in docs/README.html
- [PHPBB3-9804] - Update docs/AUTHORS (DavidMJ & igorw)
- [PHPBB3-9808] - Git commit message hook depends on GNU wc
- [PHPBB3-9816] - Remove config.php from git repository
- [PHPBB3-9848] - Add phpBB data files to .gitignore.
- [PHPBB3-9849] - Create build script using phing
- [PHPBB3-9857] - Remove visible $Id$ from docs files.
- [PHPBB3-9868] - Make the test suite run and pass using the mssqlnative driver
- [PHPBB3-9904] - Update WebPI Parameters.xml

#### Sub-task

- [PHPBB3-9517] - Remote avatar upload does not check the filesize before and during transfer.
- [PHPBB3-9562] - Advanced Search is inaccessible using the mssqlnative DBAL
- [PHPBB3-9564] - Reported messages are not assigned the default report reason when a reason is removed from the ACP using the mssqlnative DBAL
- [PHPBB3-9565] - It is impossible to create a custom profile field using the mssqlnative DBAL
- [PHPBB3-9566] - Two debug notices are displayed when setting a custom profile field though the UCP using the mssqlnative DBAL
- [PHPBB3-9583] - MSSQL native backups cannot be restored
- [PHPBB3-9606] - Drop redundant SQL query for unreads fetching
- [PHPBB3-9613] - Implement a load switch for unreads search feature.
- [PHPBB3-9817] - Make build script create blank config.php

### Changes since 3.0.7

- [Sec] Do not expose forum content of forums with ACL entries but no actual permission in ATOM Feeds. (Bug #58595)

### Changes since 3.0.6

- [Fix] Allow ban reason and length to be selected and copied in ACP and subsilver2 MCP. (Bug #51095)
- [Fix] Force full date for board online record date.
- [Fix] Correctly reset login keys if passed value is the current user. (Bug #54125)
- [Fix] Correctly set last modified headers. (Bug #54245, thanks Paul.J.Murphy)
- [Fix] Show correct HTML title when reporting private messages. (Bug #54375)
- [Fix] Correctly exclude subforums from ATOM Feeds. (Bug #54285)
- [Fix] Do not link to user profile in ATOM feed entry if post has been made by the guest user. (Bug #54275)
- [Fix] Make word censoring case insensitive. (Bug #54265)
- [Fix] Fulltext-MySQL search for keywords and username at the same time. (Bug #54325)
- [Fix] Various XHTML and CSS mistakes in prosilver and subsilver2. (Bugs #54705, #55895, #57505, #57875 - Patch by HardStyle)
- [Fix] Correctly show topic ATOM feed link when only post id is specified. (Bug #53025)
- [Fix] Cleanly handle forum/topic not found in ATOM Feeds. (Bug #54295)
- [Fix] PHP 5.3 compatibility: Check if function dl() exists before calling it. (Bug #54665)
- [Fix] PHP 5.3 compatibility: Disable E_DEPRECATED on startup to keep set_magic_quotes_runtime(0) quiet. (Bug #54495)
- [Fix] Correctly replace table prefix before inserting schema data into the database. (Bug #54815)
- [Fix] Correctly take post time instead of topic time for the overall forum feed statistics row. (Bug #55005)
- [Fix] Posting errors with CAPTCHAs using user::add_lang(). (Bug #55245)
- [Fix] Use memcache::replace() instead of memcache::set() for existing keys to prevent problems.
- [Fix] Check for required functions in eAccelerator. (Bug #54465)
- [Fix] Use correct RFC 3339 date format in ATOM feed. (Bug #55005)
- [Fix] Do not deliver topics from unreadable or passworded forums in the news feed. (Bug #54345)
- [Fix] Restore user language choice to compiled stylesheets. (Bug #54035)
- [Fix] Add missing language entries. (Bug #55095)
- [Fix] Do not permit unauthorised users to delete private messages from folder listing. (Bug #54355)
- [Fix] Correctly check for empty strings in custom profile fields. (Bug #55335)
- [Fix] Use correct options to parse BBCodes in signatures when previewing PMs.
- [Fix] Correct rendering of prosilver quick reply under IE6. (Bug #54115 - Patch by Raimon)
- [Fix] Correct wording for "How do I show an image below my username" question answer in FAQ. (Bug #23935)
- [Fix] Handle export of private messages where all recipients were deleted. (Bug #50985)
- [Fix] Correctly get unread status information for global announcements in search results.
- [Fix] Correctly handle global announcements in ATOM feeds.
- [Fix] Use correct limit config parameter in the News feed.
- [Fix] Restrict search for styles/../style.cfg to folders. (Bug #55665)
- [Fix] Add ability to disable overall (aka board-wide) feed.
- [Fix] Do not pass new_link parameter when creating a persistent connection with mysql. (Bug #55785)
- [Fix] Improved search query performance through sorting words by their occurance. (Bug #21555)
- [Fix] Correctly move sql_row_pointer forward when calling sql_fetchfield() on cached queries. (Bug #55865)
- [Fix] Remove item limit from "All forums" feed.
- [Fix] Do not use group colours for usernames on print view. (Bug #30315 - Patch by Pasqualle)
- [Fix] Pagination of User Notes in MCP uses two different config values. (Bug #56025)
- [Fix] List hidden groups on viewprofile where the viewing user is also a member. (Bug #31845)
- [Fix] Sort viewprofile group list by group name.
- [Fix] Strictly check whether a moderator can post in the destination forum when moving topic. (Bug #56255)
- [Fix] Added some error handling to the compress class.
- [Fix] Correctly determine permissions to show quick reply button. (Bug #56555)
- [Fix] Do not unsubscribe users from topics replying with quickreply. (Bug #56235)
- [Fix] Don't submit when pressing enter on preview button. (Bug #54395)
- [Fix] Load reCAPTCHA over https when using a secure connection to the board. (Bug #55755)
- [Fix] Clarify explanation of bump feature setting. (Bug #56075)
- [Fix] Properly paginate unapproved posts in the MCP. (Bug #56285)
- [Fix] Do not duplicate previous/next links in pagination text of moderator logs and user notes in MCP for subsilver2. (Bug #55045)
- [Fix] Do not automatically unsubscribe users from topics, when email and jabber is disabled.
- [Fix] Don't send activation email when user tries to change email without permission. (Bug #56335 - Fix by nrohler)
- [Fix] Replace hard coded "px" with translated language-string. (Bug #52495)
- [Fix] Correctly hover list menu in UCP and MCP for RTL languages. (Bug #49945)
- [Fix] Correctly orientate quoted text image on RTL languages. (Bug #33745)
- [Fix] Deprecate $allow_reply parameter to truncate_string() (Bug #56675)
- [Fix] Fall back to default language email template if specified file does not exist. (Bug #35595)
- [Fix] Update users last visit field correctly when changing activation status. (Bug #56185)
- [Fix] Database updater now separates ADD COLUMN from SET NOT NULL and SET DEFAULT, when using PostgreSQL <= 7.4 (Bug #54435)
- [Fix] Styles adjustment to correctly display an order of rtl/ltr mixed content. (Bugs #55485, #55545)
- [Fix] Fix language string for PM-Reports refering to post-data. (Bug #54745)
- [Fix] Do not store email templates in database. (Bug #54505)
- [Fix] Fix javascript bug in the smilies ACP. (Bug #55725)
- [Fix] Unify BBCode Selection across browsers. (Bug #38765)
- [Fix] Allow convertors to read in configuration from files. (Bug #57265 - Patch by Dicky)
- [Fix] Fix problems with firebird by no longer using 'count' as a column alias. (Bug #57455)
- [Fix] Small language correction for the FAQ page. (Bug #57825)
- [Fix] Restrict search for language/../iso.txt to folders. (Bug #57795)
- [Fix] Make user_email_hash() function independent from system's architecture. (Bug #57755)
- [Fix] Correct behavior of "force_approved_state" when value is false. (Bug #57715)
- [Fix] Global announcements could not be accessed on a board using Firebird as the database server. (Bug #57525)
- [Fix] BBCode parser now uses the user object for all settings rather than taking some from the template object (Bug #57365)
- [Fix] Ensure a database connection is available before logging general errors. (Bug #57975)
- [Fix] Do not delete unrelated attachments when deleting empty forums. (Bug #57375)
- [Fix] Update: Store expected resulting file contents in cache and do not suggest further merges if the contents match, also fixes infinite merge loop (Bug #54075)
- [Change] Move redirect into a hidden field to avoid issues with mod_security. (Bug #54145)
- [Change] Log activation through inactive users ACP. (Bug #30145)
- [Change] Send time of last item instead of current time in ATOM Feeds. (Bug #53305)
- [Change] Use em dash instead of hyphen/minus as separator in ATOM Feeds item statistics. (Bug #53565)
- [Change] Alter ACP user quick tools interface to reduce confusion with the delete operation.
- [Change] Send statistics now check for IPv6 and send private network status as a boolean.
- [Change] Split "All topics" feed into "New Topics" and "Active Topics" feeds.
- [Change] Forum feed no longer includes posts of subforums.
- [Change] Show login attempt CAPTCHA option in the captcha plugin module.
- [Change] It is no longer possible to persist a solution for the login CAPTCHA.
- [Change] SQLite is no longer autoloaded by the installer. (Bug #56105)
- [Change] Friends and foes will not show up as private message rule options if their respective UCP modules are disabled. (Bug #51155)
- [Change] Offer for guests to log in for egosearch and unreadposts search before the search permissions check. (Bug #51585)
- [Change] Show warning box for users of PHP < 5.2.0 about phpBB ending support.
- [Change] Disallow deleting the last question of the Q&A CAPTCHA.
- [Change] Tweak Q&A CAPTCHA garbage collection.
- [Change] Show a proper preview for the Q&A CAPTCHA. (Bug #56365)
- [Change] Speed up topic move operation by adding an index for topic_id on the topics track table. (Bug #56545)
- [Change] Warn users about potentially dangerous BBcodes.
- [Feature] Ability to use HTTP authentication in ATOM feeds by passing the GET parameter "auth=http".
- [Feature] Add INTTEXT token type to custom bbcodes to allow non-ASCII letters in html attributes.
- [Feature] Add ability to enable quick reply in all forums.

### Changes since 3.0.5

- [Fix] Allow whitespaces in avatar gallery names. (Bug #44955)
- [Fix] Sorting by author or subject on viewtopic now preserves the order. (Bug #44875)
- [Fix] Correctly determine writable status of files on Windows operating systems. (Bug #39035)
- [Fix] Show report button in prosilver for guests who are allowed to report posts. (Bug #45695)
- [Fix] Correctly show private message history. (Bug #46065)
- [Fix] Various XHTML mistakes in prosilver, subsilver2 and the ACP. (Bugs #25545, #26315, #38555, #45505 - Patch by Raimon, #45785, #45865, #47085 - Patch by Raimon)
- [Fix] Fix some ACP style issues. (Bug #16109 - Patch by prototech)
- [Fix] Move post bump information markup to the template. (Bug #34295)
- [Fix] Show error in the ACP when template folder is not readable. (Bug #45705)
- [Fix] Adjust viewonline filename regular expression to be less strict. (Bug #46215)
- [Fix] Correctly apply the "can change vote" permission again. Regression introduced in r9470. (Bug #45895)
- [Fix] Remove data from friend/foe table when deleting user. (Bug #45345)
- [Fix] Correctly hide skiplink in prosilver right-to-left mode. (Bug #45765 - Patch by prototech and bantu)
- [Fix] Fix dynamic config update routine error if firebird is used. (Bug #46315)
- [Fix] Allow friends/foes to be added and removed at the same time. (Bug #46255)
- [Fix] Only change topic/post icon on edit if icons are enabled and user is allowed to use icons. (Bug #46355)
- [Fix] Fix saving custom profile fields in ACP if Oracle is used. (Bug #46015)
- [Fix] Make view_log() more resilient to corrupt serialized data. (Bug #46545)
- [Fix] Show error if hostname lookup doesn't return a valid IP address when banning. (Bug #45585)
- [Fix] Fix incorrect layout when loading private message draft. (Bug #38435 - Patch by nickvergessen)
- [Fix] Show proper error message when trying to add bots to friends/foes list. (Bug #40205)
- [Fix] Fixed database backup and restore with Oracle DBMS. (Bug #46715)
- [Fix] Update attachments table when deleting user and retaining his posts. (Bug #40245)
- [Fix] Correctly detect files in subfolders when viewing cached template files. (Bug #46145)
- [Fix] Display user's jabber address in popup if jabber functionality is disabled. (Bug #20775)
- [Fix] Correctly exclude forums from active topics list. (Bug #19135)
- [Fix] Do not display banned users in birthday list. (Bug #20625)
- [Fix] Fix function to recalculate nested sets. (Bug #41555 - Patch by EXreaction)
- [Fix] Display but also highlight already used rank images while assigning new ranks. (Bug #22665)
- [Fix] Correctly orientate quoted text image on RTL languages. (Bug #33745)
- [Fix] Do not display "View user notes" and "Warn user" links in user profile if corresponding MCP modules are disabled. (Bug #10519)
- [Fix] Show proper error message when trying to create a private messages folder with an empty name. (Bug #39875)
- [Fix] No longer state that it is possible to manage group leaders from the UCP. (Bug #19945)
- [Fix] Do not throw an error when PDO is a shared module and not loaded preventing SQLite from being loaded.
- [Fix] Fix censoring of unicode words. (Bug #16555)
- [Fix] Display coloured usernames in ACP groups management screens.
- [Fix] Correctly describe founder permissions on trace-information. (Bug #37235)
- [Fix] Correct the width value for poll_center.gif omitted in imageset.cfg for subsilver2. (Bug #43005)
- [Fix] Correctly load complex language variable using acp_language. (Bug #45735 - Patch by leviatan21)
- [Fix] Fix reapply_sid() to correctly strip session id in certain circumstances. (Bug #43125 - Patch by leviatan21)
- [Fix] Correctly state why one language pack is marked with an asterisk in the ACP. (Bug #37565)
- [Fix] Correctly check if install directory is still present. (Bug #46965)
- [Fix] Correct banned user behaviour when "force password change" is enabled. (Bug #47145 - Patch by nickvergessen and leviatan21)
- [Fix] Correctly display ACP logs options, without permission to clear logs. (Bug #24155 - Patch by leviatan21)
- [Fix] Display topic icons in MCP forum view again (only prosilver).
- [Fix] Properly display post status messages in topic when post is reported and unapproved (Bug #44455 - Patch by leviatan21)
- [Fix] Do not remove recipients when loading private message draft. (Bug #38395)
- [Fix] Add author name to moderator log when deleting post/topic. (Bug #46225)
- [Fix] Fix broken "Report details" link in the MCP. (Bug #46975)
- [Fix] Resolve accesskey conflicts in prosilver. (Bug #44685)
- [Fix] Check if template file is empty before trying to read from it. (Bug #47345)
- [Fix] More descriptive descriptions for permissions to use BBCode, smilies, images and flash. (Bug #36065)
- [Fix] Fix style issues in print mode. (Bug #26375 - Patch by leviatan21)
- [Fix] Fix minor issue with L_QUOTE language string missing in several PM composing modes. (Bug #39625)
- [Fix] Also fetch posts of guests and deleted or deactivated users while searching for author names. (Bug #36565, #47765)
- [Fix] Show end of ban in MCP and ACP when user is banned by duration. (Bug #47815 - Patch by Pyramide)
- [Fix] Correctly count posts awaiting approval in the MCP. (Bug #47685)
- [Fix] Display user's posts count in private message when it is equal to 0 (prosilver). (Bug #40155)
- [Fix] Only allow users to disable word censor if globally allowed. (Bug #47575 - Patch by 00mohgta7)
- [Fix] Fix database updater and db tools to support multiple column changes/additions/removals with SQLite.
- [Fix] Correctly detect GZIP status in debug mode. (Bug #24075)
- [Fix] Posting smilies in view more smilies screen now works again in IE. (Bug #46025 - Patch by leviatan21)
- [Fix] Properly convert and show filesize information. (Bug #47775)
- [Fix] Add ability to prune users who never logged in. (Bug #44295)
- [Fix] Show smilies and images in topic print view. (Bug #47265)
- [Fix] Force full date in private message print view.
- [Fix] Fix "Always show a scrollbar for short pages" for IE8 and Firefox 3.5. (Bug #47865 - Patch by stokerpiller)
- [Fix] Do not allow setting group as default group for pending users. (Bug #45675)
- [Fix] Fail gracefully if store folder is not writable during update. (Bugs #46615, #46945)
- [Fix] Hide profile-icon from viewtopic page if user has no permissions (subsilver2 only). (Bug #37635 - Patch by leviatan21)
- [Fix] Correct escaping/unescaping in the LDAP authentication plugin. (Bug #48175)
- [Fix] Add hard limit for smilies.
- [Fix] Remove redundant SQL query from ucp.php. (Bug #40305)
- [Fix] Reorder frame order of animated subsilver2 topic icons to be useful when animations are disabled. (Bug #29385 - Patch by prototech)
- [Fix] Ensure user errors are displayed regardless of PHP settings. (Bug #47505)
- [Fix] Permit null values for non-required integer custom profile fields and ensure zero complies with the range limits. (Bug #40925)
- [Fix] Allow changing forum from select box under certain circumstances. (Bug #37525)
- [Fix] Display required fields notice on registration above the custom profile fields. (Bug #39665)
- [Fix] Copy poll options properly when copying topic. (Bug #39065)
- [Fix] Fix error with disapproval of topics having several queued posts only. (Bug #47705)
- [Fix] Preserve newlines in template files (one newline had been always dropped after a template variable due to PHP's handling of closing tags).
- [Fix] Be less strict with FTP daemons for getting directory filelists. (Bug #46295)
- [Fix] Fix set_custom_template for database-stored styles. (Bug #40515)
- [Fix] Banning an already banned user states to be successful, but has no effect. (Bug #47825 - Patch by Pyramide)
- [Fix] Do not add style parameter again to URL after admin re-authentification. (Bug #18005 - Patch by leviatan21)
- [Fix] Do not cut post-message in between HTML-Entities on search.php. (Bug #31505 - Patch by leviatan21)
- [Fix] Correctly set attachment flag for topics, posts and pms after deleting attachments. (Bug #48265 - Patch by MarcoDM and nickvergessen)
- [Fix] Display "Locked" button instead of "Reply" one for locked forum in viewtopic (prosilver). (Bug #38055 - Patch by Raimon)
- [Fix] Correctly propagate umlauts over search result pages. (Bug #33755)
- [Fix] Preserve post options when refusing to save the post as a draft. (Bug #39115)
- [Fix] Do not send private message back to sender if sender is in the same group the private message was sent to.
- [Fix] Correctly add user to a group making it a default one. (Bug #48345)
- [Fix] Add log entry when copying forum permissions.
- [Fix] Min/max characters per posts no longer affects poll options. (Bug #47295)
- [Fix] Correctly log action when users request to join a group. (Bug #37585)
- [Fix] Do not try to create thumbnails for images we cannot open properly. (Bug #48695)
- [Fix] Apply locale-independent basename() to attachment filenames. New function added: utf8_basename(). (Bug #43335 - Patch by ocean=Yohsuke)
- [Fix] Adjust build_url() to not prepend $phpbb_root_path if path returned from redirect() is an URL. This fixes redirect issues with some installations and bridges. (Bug #47535)
- [Fix] Do not mark global announcements as read if all topics in a forum become read (Bug #15729).
- [Fix] Fix general error in registration, caused by an undefined $config variable in validate_referer(). (Bug #49035 - Patch by wjvriend)
- [Fix] Correctly extract column default value when exporting PostgreSQL tables. (Bug #48955)
- [Fix] Allow updater to work correctly with PHP filename extensions other than ".php". (Bugs #15809, #49215)
- [Fix] Update search index if only post subject changed. (Bug #49435)
- [Fix] Fix who is online displaying incorrect data. (Bug #49485, thanks Brainy)
- [Fix] Fixed incorrect "topic does not exist" if unapproved posts were visited without global moderator permissions. (Bug #47795)
- [Fix] Prevent style switcher from blocking the tab key. (Bug #49335)
- [Fix] Correctly redirect back to MCP main page after posts approval/disapproval from it. (Bug #49625)
- [Fix] Do not display topic approval status image for shadow topic if a user is not a moderator in the forum the topic has been moved to. (Bug #43295)
- [Fix] Fix email problems on servers with PHP installations not accepting RFC-compliant subject string passed to the mail()-function. (Bug #46725)
- [Fix] Correctly orientate control panel navigation background-image on RTL languages. (Bug #49945)
- [Fix] Sort private messages by message time and not message id. (Bug #50015)
- [Fix] Make sure only logs for existing users are displayed and user-specific logs removed on user deletion. (Bug #49855)
- [Fix] Only show "Add friend" and "Add foe" links if the specific module is enabled. (Bug #50475)
- [Fix] Correctly display list items in forum description in prosilver and administration. (Bug #48055 - Patch by leviatan21)
- [Fix] Only embed cron.php if there is no cron lock present to reduce overhead. (Bug #45725 - Patch by TerryE)
- [Fix] Add header gradient back into subsilver2 but keep site logo easily replaceable with smaller and bigger ones. (Bug #11142 - Patch by dark/Rain and Raimon)
- [Fix] Send activation email when activating user from user settings. (Bug #43145)
- [Fix] Do not show resend activation email link when using admin activation. (Bug #44375 - Patch by bbrunnrman)
- [Fix] Do not display links to user/post search if search is disabled. (Bug #50685 - Patch by HardStyle)
- [Fix] Fix icon alignment for forums with large descriptions in subsilver2. (Bug #50445)
- [Fix] Correctly display underlined links placed in last line in viewtopic. (Bug #14811 - Patch by primehalo)
- [Fix] Only check whether forum image exists if forum image is specified. (Bug #51905)
- [Fix] Fixed database updater for changes to columns having default value in MSSQL (adding/dropping constraints).
- [Fix] Jabber SASL PLAIN authentication failures. (Bug #52995)
- [Fix] Check sort options on memberlist to avoid a general error. (Bug #53655)
- [Fix] Fix sql error in cache_moderators() if using postgresql. (Bug #53765)
- [Change] Database updater now supports checking for existing/missing indexes.
- [Change] submit_post() now accepts force_approved_state key passed to $data to indicate new posts being approved (true) or unapproved (false).
- [Change] Change the data format of the default file ACM to be more secure from tampering and have better performance.
- [Change] Template engine now permits variable includes to a limited extent.
- [Change] Quote BBCode no longer requires the f_reply permission. (Bug #16079)
- [Change] Banning/unbanning users now generates an entry in their user notes. (Bug #21825)
- [Change] Smilies no longer require the f_bbcode permission. (Bug #26545)
- [Change] Ability to define column split in FAQ/BBCode help. (Bug #31405)
- [Change] Changed behaviour of group_create() function to support specifying additional group columns.
- [Change] Hide avatar when avatar-type is not allowed. (Bug #46785 - Patch by cYbercOsmOnauT and nickvergessen)
- [Change] INCLUDEPHP paths are now relative to $phpbb_root_path. (Bug #45805)
- [Change] Ability to fetch moderators with get_moderators() even if load_moderators setting is off. (Bug #35955)
- [Change] "Post details" links with image in MCP. (Bug #39845 - Patch by leviatan21)
- [Change] PM history now only shows PMs of users you currently reply to. (Bug #39505)
- [Change] Show quote button for own PMs in PM history. (Bug #37285)
- [Change] Fetch requested cookie variables directly from cookie super global. (Bug #47785)
- [Change] Add confirmation for deactivating styles. (Bug #14304 - Patch by leviatan21)
- [Change] Add confirmation for deactivating language packs. (Patch by leviatan21)
- [Change] Add confirmation for deleting permissions. (Bug #13673)
- [Change] Add pagination for icons and smilies in the ACP and smilies in the smiley popup.
- [Change] Cache get_username_string() function calls on viewtopic.
- [Change] Cache version check.
- [Change] When creating a new forum without copying permissions, ask again.
- [Change] Introduce new parameter to page_header() for forum specific who is online listings.
- [Change] Changed minimum requirement for Firebird DBMS from 2.0+ to 2.1+.
- [Change] Unapproved topics can no longer be replied to. (Bug #44005, #47675, #23605)
- [Change] Require user to be registered and logged in to search for unread posts if topic read tracking is disabled for guests. (Bug #49525)
- [Change] Allow three-digit hex notation in color BBcode. (Bug #39965 - Patch by m0rpha)
- [Change] Simplified login_box() and redirection after login. S_LOGIN_ACTION can now be used on every page. (Bug #50285)
- [Change] Do not take edit post time into account for determining permission to delete last post in topic. (Bug #48615)
- [Change] Resize oversized topic icons. (Bug #44415)
- [Change] Banned IPs are now sorted. (Bug #43045 - Patch by DavidIQ)
- [Change] phpBB updater now skips sole whitespace/tab changes while computing differences. This reduces the chance of conflicts tremendously.
- [Change] phpBB updater now solves common conflicts on its own. This further reduces the chance of conflicts.
- [Feature] Add language selection to the registration terms page. (Bug #15085 - Patch by leviatan21)
- [Feature] Backported 3.2 captcha plugins:
  - Classic and GD CAPTCHA
  - reCaptcha (based on API from recaptcha.net by Mike Crawford and Ben Maurer)
  - Q&A CAPTCHA
  - 3D Wave (by Robert "Xore" Hetzler)
- [Feature] Introduced new ACM (Cache) plugins:
  - null (to disable caching completely)
  - memcache
  - APC
  - XCache
  - eAccelerator
- [Feature] ATOM Feeds (Idea from RSS Feed 2.0 MOD (Version 1.0.8/9) by leviatan21)
- [Feature] New groups option to excempt group leaders from group permissions.
- [Feature] New "Newly Registered Users" group for assigning permissions to newly registered users. They will be removed from this group once they reach a defineable amount of posts.
- [Feature] Ability to define if the "Newly Registered Users" group will be assigned as the default group to newly registered users.
- [Feature] Add new option to disable avatars board-wide. (Bug #46785 - Patch by cYbercOsmOnauT and nickvergessen)
- [Feature] Enhance obtain_users_online_string to be able to return user-lists for other session items. (Bug #31975)
- [Feature] Add unapproved topic icon for moderators on forum list. (Bug #46865)
- [Feature] Ability to define minimum number of characters for posts/pms.
- [Feature] Store signature configuration options in database. (Bug #45115)
- [Feature] Add bare-bones quick-reply editor to viewtopic.
- [Feature] Detect if a post has been altered by someone else while editing.
- [Feature] Add unread posts quick search option. (Bug #46765)
- [Feature] Add option to disable avatar uploads from remote locations. (Bug #45375)
- [Feature] Ability to delete warnings and keep warnings permanently. (Bug #43375)
- [Feature] Ability to empty a user's outbox from the user ACP quick tools.
- [Feature] Ability to search ACP/MCP logs.
- [Feature] Users can report PMs to moderators which are then visible in a new MCP module.
- [Feature] Parse email text files with the template engine.
- [Feature] Use email-style quoting when bbcodes are disabled.
- [Feature] Added new functionality to inactive users module:
  - Ability to set users per page.
  - Ability to sort by posts/number of reminders/last reminded date.
  - Show number of posts and ability to search posts.
  - Show number of reminders sent to user.
  - Show date of last reminder sent to user.
- [Feature] Display version check on ACP main page.
- [Feature] Ability to copy permissions from one forum to several other forums.
- [Feature] Ability to control the display of custom profile fields on viewtopic. (Bug #48985)
- [Feature] Fallback options for missing language files. (Bug #38575 - Patch by EXreaction)
- [Feature] Separate "PM Reply" and "PM Reply to all" in prosilver.
- [Feature] Place debug notices during captcha rendering in the error log - useful for debugging output already started errors.
- [Feature] Ability to define constant PHPBB_USE_BOARD_URL_PATH to use board url for images/avatars/ranks/imageset (useful for bridges and applications using phpBB).
- [Feature] Added function to generate email hash. (Bug #49195)
- [Feature] Style authors are now able to define the default submit button used for form submission on ENTER keypress on forms using more than one submit button. Prosilver uses this for the posting page(s) and registration screen.
- [Feature] Ability to specify amount of time user is able to delete his last post in topic.
- [Feature] Send anonymous statistical information to phpBB on installation and update (optional).

### Changes since 3.0.4

- [Fix] Delete user entry from ban list table upon user deletion (Bug #40015 - Patch by TerraFrost)
- [Fix] Posts incremented for multiple approval of the same topic (Bug #40495 - Patch by TerraFrost)
- [Fix] Missing end " in quote bb tag deletes text (Bug #40565 - Patch by TerraFrost)
- [Fix] Friend/foe system displays posts made by foes while composing (Bug #40325 - Patch by TerraFrost and Highway of Life)
- [Fix] Check forum_image whether it exists (Bug #39005 - Patch by TerraFrost)
- [Fix] The sql query in acp_users.php lacks a condition (Bug #40275 - Patch by grimskies)
- [Fix] Added missing read permission information for some phpbb_chmod() calls
- [Fix] Correctly display future dates (Bug #38755)
- [Fix] Fix guest/bot session problems with apache authentication plugin (Bug #41085)
- [Fix] Whois now works reliably for RIRs other than APNIC and RIPE. (Bug #40085)
- [Fix] Correctly convert Niels' Birthday MOD to the date format used in phpBB3. (Bug #32895)
- [Fix] Changed the success message when requesting a new password to be more accurate. (Bug #41405)
- [Fix] Add missing anti-abuse email headers to acp_inactive.php and ucp_resend.php.
- [Fix] Only remind users in the correct inactive states depending on the board account activation level.
- [Fix] Various XHTML mistakes in prosilver, subsilver2 and the ACP. (Bugs #41745, #42265 - Patch by nickvergessen, #38465, #43015, #46585 - Patch by Raimon)
- [Fix] Log password changes via password reset function. (Bug #41365)
- [Fix] Poll, negative durations generate error (Bug #41295 - Patch by TerraFrost)
- [Fix] Visibility of custom field on registration is incorrectly controlled by setting "display" (Bug #41385 - Patch by Eelke and fade2gray)
- [Fix] Smilies in username are misparsed on [quote=""] (Bug #41955 - Patch by TerraFrost)
- [Fix] Deleting all posts in a topic - bad redirect (Bug #41705 - Patch by TerraFrost)
- [Fix] Deleted users still appear logged in (Bug #41985 - Patch by TerraFrost)
- [Fix] Removed redundant code and unnecessary queries in forum management. (Bug #42265 - Patch by nickvergessen)
- [Fix] Correct mbstring regular expression for the allowable username characters, only affects `USERNAME_LETTER_NUM_SPACERS`. (Bug #42325)
- [Fix] Fix infinite loop in message handler if cache directory is not writable. (Bug #38675)
- [Fix] While post is awaiting approval it can still be edited even though it can not be seen (Bug #41435 - Patch by TerraFrost)
- [Fix] Fix imageset editing for retaining and correctly setting dimensions for images, as well as displaying correct settings for first page load.
- [Fix] Use OS-specific line endings for mail headers. (related to Bug #42755)
- [Fix] Hide font size options which are bigger than the allowed size in the editor. (Bug #42615 - Patch by nickvergessen)
- [Fix] Better thumbnail quality with imagemagick. (Bug #42565)
- [Fix] Fix download count increments for image attachments without corresponding thumbnails. (Bug #42505)
- [Fix] Fix wrong bot ip check if bot ip was wrongly entered by admin. (Bug #42485)
- [Fix] Fix javascript errors in simple header (prosilver) by adding forum_fn.js and the corresponding variables. (Bug #42135)
- [Fix] Set connection encoding for MySQL versions 4.1.0 to 4.1.2. This may fix some conversion issues with special characters. (Bug #41805)
- [Fix] Deleting private message attachments could delete post attachments. (Bug #42815)
- [Fix] Do not suppress PHP notices/errors in language packs if DEBUG_EXTRA mode enabled. (Bug #41485)
- [Fix] Flash files do not display anymore after update to flash player 10 (Bug #41315)
- [Fix] Use FQDN for SMTP EHLO/HELO command. (Bug #41025)
- [Fix] Mass Email works again for users with empty jabber address but notification set to 'both'. (Bug #39755)
- [Fix] Fix race condition for updating post/topic/etc. counter. (Reported by BartVB)
- [Fix] Fix duplicate creation of acl options in acl_add_options() under certain conditions. (Bug #38385, #40225)
- [Fix] Cancel when replying to global announcement redirects to first forum - not to the current forum (Bug #41225 - Patch by TerraFrost)
- [Fix] Cursor Jumps on New Topic in IE (Bug #42455 - Patch by TerraFrost)
- [Fix] Add indicator to be used in code if session was created (user visits the site for the first time).
- [Fix] Correctly count topic views for guests visiting the website the first time by entering the topic directly (Bug #43445)
- [Fix] Fix bug in postgresql db layer for LIMIT ALL clauses (Reported by JRSweets)
- [Fix] Sort backups by date, newest first (Bug #14818)
- [Fix] Prevent incomplete backups stored if option "store and download" is selected and admin cancel download by removing the option. (Bug #20325)
- [Fix] Enforce correct case for template variables
- [Fix] Set topic_last_view_time on post/reply/edit to circumvent race conditions in auto prune and false removal of topics for manual forum prune (Bug #18055, #43515)
- [Fix] Correctly split long subject lines according to the used RFC. This fixes extra spaces within long subjects. (Bug #43715)
- [Fix] Fix skipping messages if using next/prev PM in history links. (Bug #22205)
- [Fix] Messenger now also able to use a custom language path. (Bug #36545)
- [Fix] PM Export uses ISO 8601 date now. (Bug #32645)
- [Fix] Apply append_sid() to newest/latest post links in viewforum/search and UCP main module. (Bug #26815)
- [Fix] Do not create thumbnail if thumbnail would've the same size as the original image. (Bug #30725)
- [Fix] Ability to vote in poll is now required for the ability to change existing vote. (Bug #38925)
- [Fix] Search for 'topic title only' and 'first post' should work again for non-mysql dbms. (Bug #40605)
- [Fix] Make sure additional information for accessibility is always exposed to screen readers (Bug #44335 - Patch by MarcoZ)
- [Fix] Approving a topic when some of the posts within that topic have already been approved (Bug #42585 - Patch by TerraFrost)
- [Fix] Online status shown when post hidden (Bug #35505 - Patch by Raimon)
- [Fix] memberlist.php display formating can be distorted by posting long URL for website (Bug #36675 - Patch by TerraFrost)
- [Fix] Display the online status of hidden users to users with the u_viewonline permission when viewing PMs.
- [Fix] "Select all" selects much too much in Opera (Bug #42885 - Patch by TerraFrost and ToonArmy)
- [Fix] Correct calculation of source/target forum statistics if mass moving topics with global announcements (Bug #44545)
- [Fix] Fix column handling in db updater, custom profile fields an db tools for firebird DBMS (Bug #44555)
- [Fix] IE8 textarea issues (Bug #43305)
- [Fix] Prevent accounts from being activated by users when admin activation is turned on and the correct activation key is known.
- [Fix] Allow the installer to operate under PHP 5.3. (Bug #45255)
- [Change] Default difference view is now 'inline' instead of 'side by side'
- [Change] Added new option for merging differences to conflicting files in automatic updater
- [Change] Add link to user profile in the MCP for user notes and warn user.
- [Change] Add IN_PHPBB check to generated cache files. (Reported by bantu)
- [Change] Add topic icons to prosilver UCP main and subscribed templates (Bug #42735 - Patch by Raimon)
- [Change] Add unique key to ACL options table to prevent duplicate permission options. (Bug #41835)
- [Change] Redirect to relevant MCP page of multi-page topic if accessing quickmod tools (Split option for example)
- [Change] Performance improvements for native fulltext search (Patch by Paul)
- [Change] Changed jumpto() JS function to be more fail-safe. (But #27635 - Patch by peterkclee)
- [Feature] Added new options for visual confirmation.
- [Feature] Allow download of conflicting file for later reference in automatic updater
- [Feature] Allow translation of custom BBCode help messages. (Patch by bantu)
- [Feature] db_tools now support create table and drop table.
- [Feature] Database updater checks for incompatible db schema (MySQL 3.x/4.x against MySQL 4.1.x/5.x/6.x)
- [Feature] New search option: Maximum number of words allowed to search for.
- [Sec] Only use forum id supplied for posting if global announcement detected. (Reported by nickvergessen)

### Changes since 3.0.3

- [Fix] Allow mixed-case template directories to be inherited (Bug #36725)
- [Fix] Regression bug from revision #8908 regarding log display in ACP
- [Fix] Allow the UCP group management to work for groups with avatars. (Bug #37375)
- [Fix] Fix header list build for replying oldest PM in PM history (Bug #37275)
- [Fix] Do not display COPPA group in memberlist find member dialog if COPPA disabled (Bug #37175)
- [Fix] Do not try to send jabber notifications if no jid entered (Bug #36775)
- [Fix] Only display special ranks to guests; no longer display normal ranks for guests (Bug #36735)
- [Fix] Properly treat punctuation marks after local urls (Bug #37055)
- [Fix] Make searching for members by YIM address work in prosilver
- [Fix] Tell users to recreate the search index after changing the common word threshold for fulltext_native (Bug #36345)
- [Fix] Adjusted phpbb_chmod() to always set permissions for group bit.
- [Fix] Do not increment users post count after post approval if post had been posted in a forum with no post count increasing set (Bug #37865)
- [Fix] Extend vertical line for last post column if no posts in forum (Bug #37125)
- [Fix] correctly update last topic/forum information if changing guest usernames through editing posts (Bug #38095)
- [Fix] fix postcount resync for situations where low and high post ids are higher than step value, resulting in users having 0 posts. (Bug #38195)
- [Fix] Use a left join for the topics table on search to avoid trouble with FROM syntax on some databases (Bug #37005)
- [Fix] Do not show 'Forward' button if the user cannot send PM's
- [Change] Alllow applications to set custom module inclusion path (idea by HoL)
- [Change] Handle checking for duplicate usernames in chunks (Bug #17285 - Patch by A_Jelly_Doughnut)
- [Change] Better handling and finer control for custom profile fields visibility options. (Patch by Highway of Life)
- [Change] Performance increase for format_date() (Bug #37575 - Patch by BartVB)
- [Change] Changed prosilver date separator from 'on' to '»'
- [Change] Performance increase for get_username_string() (Bug #37545 - Patch by BartVB)
- [Change] Slight performance increase for common parameter calls to append_sid() (Bug #37555 - Patch by BartVB)
- [Feature] Added 'AGO' setting to relative date strings. For example: posted 14 minutes ago. (Patch by BartVB)
- [Sec] Fixed an issue where deactivated accounts could be re-activated without the required privileges. (Reported by Jorick)
- [Sec] Ask for forum password if post within passworded forum quoted in private message. (Reported by nickvergessen)

### Changes since 3.0.2

- [Fix] Correctly set topic starter if first post in topic removed (Bug #30575 - Patch by blueray2048)
- [Fix] Delete avatar files (Bug #29985).
- [Fix] Preserve selection in the MCP. (Bug #31265).
- [Fix] Added VST - Venezuela Standard Time (Bug #30545).
- [Fix] Close DB connections in file.php.
- [Fix] Correctly return results for nested cached queries (Bug #31445 - Patch by faw).
- [Fix] Allow export of PM pages greater one. (#33155)
- [Fix] Display coloured username of last poster in list of subscribed forums (prosilver).
- [Fix] Added missing UCP language string NO_AUTH_READ_HOLD_MESSAGE.
- [Fix] Do not jump back to page 1 when hiding member search in memberlist. (Bug #32515)
- [Fix] Correctly limit input of the users location to 100 characters in the UCP and ACP. (Bug #32655)
- [Fix] Sync reports when using the move all users posts tool in the ACP. (Bug #31165)
- [Fix] Extra slash is included in the redirect url when redirecting to the forum root directory. (Bug #33605)
- [Fix] Remove reported flag from shadow topics when closing reports. (Bug #19765)
- [Fix] Do not show non indexed forums on the search page if they contain no subforums. (Bug #33125)
- [Fix] Stop search bots incrementing topic views. (Bug #32675 - Patch by eviL<3)
- [Fix] Use correct link for post author search. (Bug #32595)
- [Fix] Do not decrease topics counter when deleting shadow topics. (Bug #26495)
- [Fix] Send localised disapproval reasons in the recipients local language. (Bug #31645)
- [Fix] Language typos/fixes. (Bugs #27625, #30755, #34185, #32795)
- [Fix] Added missing terms parameter to search pagination. (Bug #34085)
- [Fix] Wrong table order in query obtaining posts if post id given.
- [Fix] Do not display reported topic icon for shadow topics. (Bug #13970)
- [Fix] Display popular topic based on posts within topic instead of replies within topic. (Bug #16099)
- [Fix] Expand shown ban reason in unban screen to fully show long entries. (Bug #16234)
- [Fix] Preserve alpha transparency for created thumbnails. (Bug #16575)
- [Fix] Use correct port delimiter for MSSQL connections in windows. (Bug #16615)
- [Fix] Do not allow setting forums parent to the forum itself. (Bug #18855)
- [Fix] Display assigned rank/avatar for guests. (Bug #19155)
- [Fix] Set secure cookie for style switcher if required. (Bug #19625)
- [Fix] Fix native full text search on postgresql while using excluding keyword matches. (Bug #19195)
- [Fix] Pass S_SEARCH_ACTION through append_sid() in search.php. (Bug #21585)
- [Fix] Correctly delete message attachments. (Bug #23755)
- [Fix] Correctly handle unread status of subforums (that are not shown on the index) of forums that are shown on the index. (Bug #14589)
- [Fix] Stop users from deleting posts after the edit time has passed or they have been locked. (Bug #19115)
- [Fix] Split posts target forum requires 'f_post' now instead of 'm_split'. (Bug #31015)
- [Fix] Duplicate log messages for deleting a topic ('LOG_TOPIC_DELETED' has been deprecated in favour of 'LOG_DELETE_TOPIC').
- [Fix] Use a distinct log message for shadow topic deletions to differentiate between normal topic deletions. (Bug #34635)
- [Fix] Fix problems with styles using an underscore within the filename. (Bug #34315)
- [Fix] Better return links when deleting topics through the MCP. (Bug #34655)
- [Fix] Add quoting support to PM history when composing a reply. (Bug #34285)
- [Fix] Use phpBB 3.1.x method for storing cached data to prevent PHP bug with our usage of var_export(). (Thanks to Techie-Micheal and HoL for pointing out possible problems)
- [Fix] Check users pm preferences for pm's sent to groups. (Bug #33245)
- [Fix] Do not allow password reminders if u_passchg permission is not given. (Bug #14806)
- [Fix] Implemented strict check for cached user permissions and existing ACL options. This fix makes sure cached permissions are valid, even if they got already cached.
- [Fix] Do not show link to user/group profiles if user has no permission to view the linked page and gets a denied message anyway. (Bug #15088)
- [Fix] Do not display last post link and sort display options for search engines. (Bug #15088)
- [Fix] Make sure users still get notifications if they set to only be notified by Jabber, but Jabber service disabled. (Bug #29715 - Patch by Paul)
- [Fix] Don't show forum subscription link on categories. (Bug #34895)
- [Fix] Display a message if no topics or forums are selected when unsubscribing. (Bug #34855)
- [Fix] Mark/unmark all links in UCP now select/unselect both subscribed topics and forums.
- [Fix] Increase board topic counter when splitting topics. (Bug #32125)
- [Fix] Display profile icons when viewing a topic, or PM when only the jabber icon is to be visible. (Bug #34755)
- [Fix] Do not send PMs with warnings if the user cannot read PMs or they are disabled. (Bug #30815)
- [Fix] Correctly convert Niels' Birthday MOD to the date format used in phpBB3. (Bug #32895)
- [Fix] Parse BBCode lists of type square, circle and disc. (Bug #35295)
- [Fix] Round the displayed percentages in polls. (Bug #32375)
- [Fix] Disable mass e-mail when e-mail is disabled. (Bug #27385)
- [Fix] Display coloured poster username of queued posts displayed on the front of the MCP.
- [Fix] Moderators can only see reports/queue/logs from forums they can actually read. (Bug #31085)
- [Fix] Correctly display topic when start parameter is equal to the number of posts.
- [Fix] Correctly display topic in MCP when start parameter is equal to or greater than the number of posts. (Bug #30525)
- [Change] No longer allow the direct use of MULTI_INSERT in sql_build_array. sql_multi_insert() must be used.
- [Change] Display warning in ACP if config.php file is left writable.
- [Change] More restrictive chmod to new files being created. (phpbb_chmod() function mostly by faw)
- [Change] Set headers to allow browsers to better cache attachments (Mylek pointed this out)
- [Change] Hide parameters if they equal the default in viewforum/viewtopic (Bug #31185)
- [Change] Various improvements to group listings (Bugs #32155, #32145, #32085, #26675, #26265)
- [Change] Set headers for IE 8 in file.php
- [Change] Do not count queued posts to user_posts.
- [Change] Allow setting birth year to current year.
- [Change] Do not use the topics posted table when performing an egosearch.
- [Change] Log the forum name that topics are moved into.
- [Change] Automatically add users/groups to the PM recipient list, if entered or selected.
- [Change] Reply to PM now includes all previous recipients and not only the original sender.
- [Change] Make topic selection for merge less confusing by removing unneeded controls. (Bug #21925)
- [Change] MCP topic view checkboxes now default to unchecked.
- [Change] Adjust language key SPLIT_AFTER to make the action clearer.
- [Change] Add links to the post and forum when viewing a report from the MCP. (Bugs #33795, #33805)
- [Change] Added CSRF protection to GET-only actions like marking forums.
- [Change] Remove NUL-Bytes directly in request_var() for strings and within the custom DBAL sql_escape() functions (MSSQL, Firebird, Oracle) (reported by AdhostMikeSw)
- [Feature] Allow limited inheritance for template sets.
- [Feature] Allow hard disabling of the template editor.
- [Feature] Allow setting custom language path through $user->set_custom_lang_path(). $user->lang_path now also do not include the user language, but only the path.
- [Feature] Ability to define nullar/singular/plural language entries
- [Feature] Ability to mimic sprintf() calls with $user->lang() with the ability to correctly assign nullar/singular/plural language entries.
- [Feature] Added the possibility to force user posts put in queue if post count is lower than an admin defined value. Guest posting is not affected by this setting.
- [Feature] Added 'max_recipients' setting for private messages. This setting allows admins to define the maximum number of recipients per private message with a board-wide setting and a group-specific setting.
- [Feature] Added new permission setting for sending private messages to groups. Now there are two permissions to define sending private messages to multiple recipients and private messages to groups.
- [Feature] Allow specific connection to different server for jabber functionality by providing a valid JID as username. This also allows the use of talk.google.com as jabber server with gmail.com JIDs. (Bug #14989)
- [Sec Precaution] Stricter validation of the HTTP_HOST header (Thanks to Techie-Micheal et al for pointing out possible issues in derived code)

### Changes since 3.0.1

- [Fix] Ability to set permissions on non-mysql dbms (Bug #24955)
- [Fix] Fixed blank style on setups having no username defined within config.php (Bug #25065)
- [Fix] Made the compress_tar class tolerate archives that do not properly have their archived contents listed (Bug #14429 / thanks to JRSweets for his patch)
- [Fix] Moved topics should not count towards the number of topics in a forum (Bug #14648 / thanks to Schumi for his patch)
- [Fix] Properly check for invalid characters in MySQL DB prefixes during install (Bug #18775)
- [Fix] Bring the PostgreSQL backup system back to working order (Bug #22385)
- [Fix] Update correct theme for cached styles in style.php (Bug #25805)
- [Fix] Also add PHPBB_INSTALLED check to download/file.php for inline avatar delivery
- [Fix] Unable to login to some jabber server, reverted previous change (Bug #25095)
- [Fix] Do not return BMP as valid image type for GD image manipulation (Bug #25925)
- [Fix] Correctly determine safe mode for temp file creation in functions_upload.php (Bug #23525)
- [Fix] Correctly sort by rank in memberlist (Bug #24435)
- [Fix] Purge cache after database restore (Bug #24245)
- [Fix] Correctly display subforum read/unread icons from RTL in FF3, Konqueror and Safari3+. (thanks arod-1 for the fix, related to Bug #14830)
- [Fix] Added missing form token in acp (thanks NBBN).
- [Fix] Do not remove whitespace in front of url containing the boards url and no relative path appended (Bug #27355)
- [Fix] reset forum notifications in viewtopic (Bug #28025)
- [Fix] corrected link for searching post author's other posts (Bug #26455)
- [Fix] HTTP Authentication supports UTF-8 usernames now (Bug #21135)
- [Fix] Topic searches by author no longer return invalid results (Bug #11777)
- [Fix] Delete drafts and bookmarks when deleting an user. (#27585, thanks Schumi for the fix)
- [Fix] Set last_post_subject for new topics. (#23945)
- [Fix] Allow moving posts to invisible forums. (#27325)
- [Fix] Don't allow promoting unapproved group members (#16124)
- [Fix] Correctly fetch server name if using non-standard port (#27395)
- [Fix] Regular expression for email matching in posts will no longer die on long words.
- [Fix] Do not display ban message if direct call to cron. (thanks Dog Cow for reporting)
- [Fix] Correctly display double-colon on special conditions within highlighted php source (Bug #26795)
- [Fix] Increase storage capacity of titles/subjects due to specialchared content (Bug #25235)
- [Fix] Catch invalid username wildcard ban (we do not support these) (Bug #29305)
- [Fix] Fix (email)-domain checks for those having DNS prefixes set (Bug #29635)
- [Change] Adjust truncate_string() to be able to adjust the maximum storage length.
- [Change] Generalize load check (Bug #21255 / thanks to Xipher)
- [Change] Make utf8_htmlspecialchars not pass its argument by reference (Bug #21885)
- [Change] Sort the tables at the database table backup screen
- [Change] For determining the maximum number of private messages in one box, use the biggest value from all groups the user is a member of (Bug #24665)
- [Change] Show email ban reason on registration. Additionally allow custom errors properly returned if using validate_data(). (Bug #26885)
- [Change] Don't allow redirects to different domains. (thanks nookieman)
- [Feature] Added optional referer validation of POST requests as additional CSRF protection.
- [Feature] Added optional stricter upload validation to avoid mime sniffing in addition to the safeguards provided by file.php. (thanks to Nicolas Grekas for compiling the list).
- [Feature] Streamlined banning via the MCP by adding a ban link to the user profile. Also pre-fills ban fields as far as possible.
- [Feature] Added ACP logout to reset an admin session.
- [Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)

### Changes since 3.0.0

- [Change] Validate birthdays (Bug #15004)
- [Fix] Allow correct avatar caching for CGI installations. (thanks wildbill)
- [Fix] Fix disabling of word censor, now possible again
- [Fix] Allow single quotes in db password to be stored within config.php in installer
- [Fix] Correctly quote db password for re-display in installer (Bug #16695 / thanks to m313 for reporting too - #s17235)
- [Fix] Correctly handle empty imageset entries (Bug #16865)
- [Fix] Correctly check empty subjects/messages (Bug #17915)
- [Change] Do not check usernames against word censor list. Disallowed usernames is already checked and word censor belong to posts. (Bug #17745)
- [Fix] Additionally include non-postable forums for moderators forums shown within the teams list. (Bug #17265)
- [Change] Sped up viewforum considerably (also goes towards mcp_forum)
- [Fix] Do not split topic list for topics being promoted to announcements after been moved to another forum (Bug #18635)
- [Fix] Allow editing usernames within database_update on username cleanup (Bug #18415)
- [Fix] Fixing wrong sync() calls if moving all posts by a member in ACP (Bug #18385)
- [Fix] Check entered imagemagick path for trailing slash (Bug #18205)
- [Fix] Use proper title on index for new/unread posts (Bug #13101) - patch provided by Pyramide
- [Fix] Allow calls to $user->set_cookie() define no cookie time for setting session cookies (Bug #18025)
- [Fix] Stricter checks on smilie packs (Bug #19675)
- [Fix] Gracefully return from cancelling pm drafts (Bug #19675)
- [Fix] Possible login problems with IE7 if browser check is activated (Bug #20135)
- [Fix] Fix possible database transaction errors if code returns on error and rollback happened (Bug #17025)
- [Change] Allow numbers in permission names for modifications, as well as uppercase letters for the request_ part (Bug #20125)
- [Fix] Use HTTP_HOST in favor of SERVER_NAME for determining server url for redirection and installation (Bug #19955)
- [Fix] Removing s_watching_img from watch_topic_forum() function (Bug #20445)
- [Fix] Changing order for post review if more than one post affected (Bug #15249)
- [Fix] Language typos/fixes (Bug #20425, #15719, #15429, #14669, #13479, #20795, #21095, #21405, #21715, #21725, #21755, #21865, #15689)
- [Fix] Style/Template fixes (Bug #20065, #19405, #19205, #15028, #14934, #14821, #14752, #14497, #13707, #14738, #19725)
- [Fix] Tiny code fixes (Bug #20165, #20025, #19795, #14804)
- [Fix] Prepend phpbb_root_path to ranks path for displaying ranks (Bug #19075)
- [Fix] Allow forum notifications if topic notifications are disabled but forum notifications enabled (Bug #14765)
- [Fix] Fixing realpath issues for provider returning the passed value instead of disabling it. This fixes issues with confirm boxes for those hosted on Network Solutions for example. (Bug #20435)
- [Fix] Try to sort last active date on memberlist correctly at least on current page (Bug #18665)
- [Fix] Handle generation of form tokens when maximum time is set to -1
- [Fix] Correctly delete unapproved posts without deleting the topic (Bug #15120)
- [Fix] Respect signature permissions in posting (Bug #16029)
- [Fix] Users allowed to resign only from open and freely open groups (Bug #19355)
- [Fix] Assign a last viewed date to converted topics (Bug #16565)
- [Fix] Many minor and/or cosmetic fixes (Including, but not limited to: #21315, #18575, #18435, #21215)
- [Feature] New option to hide the entire list of subforums on listforums
- [Fix] Custom BBCode {EMAIL}-Token usage (Bug #21155)
- [Fix] Do not rely on parameter returned by unlink() for verifying cache directory write permission (Bug #19565)
- [Change] Use correct string for filesize (MiB instead of MB for example)
- [Change] Remove left join for query used to retrieve already assigned users and groups within permission panel (Bug #20235)
- [Fix] Correctly return sole whitespaces if used with BBCodes (Bug #19535)
- [Fix] Quote bbcode parsing adding too much closing tags on special conditions (Bug #20735)
- [Change] Added sanity checks to various ACP settings
- [Change] Removed minimum form times
- [Fix] Check topics_per_page value in acp_forums (Bug #15539)
- [Fix] Custom profile fields with date type should be timezone independend (Bug #15003)
- [Fix] Fixing some XHTML errors/warnings within the ACP (Bug #22875)
- [Fix] Warnings if poll title/options exceed maximum characters per post (Bug #22865)
- [Fix] Do not allow selecting non-authorized groups within memberlist by adjusting URL (Bug #22805 - patch provided by ToonArmy)
- [Fix] Correctly specify "close report action" (Bug #22685)
- [Fix] Display "empty password error" within the login box instead of issuing a general error (Bug #22525)
- [Fix] Clean up who is online code in page_header (Bug #22715, thanks HighwayofLife)
- [Fix] Pertain select single link on memberlist (Bug #23235 - patch provided by Schumi)
- [Fix] Allow & and | in local part of email addresses (Bug #22995)
- [Fix] Do not error out if php_uname function disabled / Authenticating on SMTP Server (Bug #22235 - patch by HoL)
- [Fix] Correctly obtain to be ignored users within topic/forum notification (Bug #21795 - patch provided by dr.death)
- [Fix] Correctly update board statistics for attaching orphaned files to existing posts (Bug #20185)
- [Fix] Do not detect the board URL as a link twice in posts (Bug #19215)
- [Fix] Set correct error reporting in style.php to avoid blank pages after CSS changes (Bug #23885)
- [Fix] If pruning users based on last activity, do not include users never logged in before (Bug #18105)
- [Sec] Only allow searching by email address in memberlist for users having the a_user permission (reported by evil<3)
- [Sec] Limit private message attachments to be viewable only by the recipient(s)/sender (Report #s23535) - reported by AlleyKat
- [Sec] Check for non-empty config.php within style.php (Report #s24575) - reported by bantu
- [Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)

### Changes since 3.0.RC8

- [Fix] Cleaned usernames contain only single spaces, so "a_name" and "a__name" are treated as the same name (Bug #15634)
- [Fix] Check "able to disable word censor" option while applying word censor on text (Bug #15974)
- [Fix] Rollback changes on failed transaction if returning on sql error is set
- [Fix] Call garbage_collection() within database updater to correctly close connections (affects Oracle for example)

### Changes since 3.0.RC7

- [Fix] Fixed MSSQL related bug in the update system
- [Fix] Display "Return to" links on unwritable forums (Bug #14824)
- [Fix] Mitigating different realpath() handling between PHP versions (fixing confirm box redirects)
- [Fix] Fix signature editing - ability to remove signature (Bug #14820)
- [Fix] Send correct activation key by forcing reactivation for inactive user (Bug #14819)
- [Fix] Adding correct IP for private messages sent by issuing warnings (Bug #14781)
- [Fix] Open private message notification (Bug #14773)
- [Fix] Fixing false new private message indicator (Bug #14627)
- [Fix] Let newly activated passwords work if users were converted (Bug #14787)
- [Fix] Quote bbcode fixes. Letting parse quote="[" and re-allowing whitelisted bbcodes within username portion (Bug #14770)
- [Fix] Allow alternative text for styled buttons if images turned off, but CSS staying on
- [Sec] Fix bbcode helpline display for custom bbcodes - this requires style changes for any custom style (Bug #14850)
- [Fix] Correctly count announcements when filtering forums by date (Bug #14877)
- [Fix] Allow charset names containing underscores or spaces
- [Fix] Don't allow previous/next links for non-existing topics (Bug #15039)
- [Change] Do not assign converted votes to the first option in a vote.
- [Fix] Use correct RFC 2822 date format in emails (Bug #15042)
- [Fix] Require founder status for some actions on founder-only groups (Bug #15119)
- [Fix] Allow changing the "now" option of date CPFs (Bug #15111)
- [Change] Some improvements to the caching of avatars
- [Change] Set template recompilation to be disabled by default. All mod and style authors and all those who want to modify their styles should enabled it after installation.
- [Change] Disable debug mode. All mod and style authors should enable DEBUG and DEBUG_EXTRA.
- [Fix] Check error reporting level for all error level. This fixes a problem for hosts having manipulated the error handler. (Bug #14831)
- [Feature] Constant PHPBB_DB_NEW_LINK introduced which can be used to force phpBB to create a new database connection instead of reusing an existing one if the dbms supports it (Bug #14927)
- [Fix] Automatic URL parsing no longer allows dots in the schema but can parse URLs starting after a dot (Bug #15110)
- [Fix] Dynamic width for birthday select boxes (Bug #15149)
- [Fix] Recache Moderators when copying permissions. (Bug #15384)
- [Fix] Propagate sort options in mcp_forums (Bug #15464)
- [Change] Do not allow [size=0] bbcodes (font-size of 0)
- [Fix] No duplication of active topics (Bug #15474)

### Changes since 3.0.RC6

- [Fix] Submitting language changes using acp_language (Bug #14736)
- [Fix] Fixed wrong bbcode handling for forum rules, forum descriptions and group descriptions
- [Fix] Fixed faulty form tokens (Bug #14725, #14762 and #14755)
- [Fix] Fixed bbcode uid generation in the phpBB2 converter (Bug #14722)
- [Fix] Able to request new password (Bug #14743)

### Changes since 3.0.RC5

- [Feature] Removing constant PHPBB_EMBEDDED in favor of using an exit_handler(); the constant was meant to achive this more or less.
- [Feature] Constant PHPBB_ADMIN_PATH introduced, having the same purpose as PHPBB_ROOT_PATH, but for the ACP.
- [Fix] Further fixing user profile view (please do not forget to update/refresh your template and style) (Bug #14230)
- [Fix] Adjust google adsense bot information (Bug #14296)
- [Fix] Fix horizontal scrollbar problem in IE6 (Bug #14228) - fix provided by Danny-dev
- [Fix] Use correct size values in ACP user signature screen (Bug #13367)
- [Fix] Attachment Place inline won't work with single quotes (Bug #14291)
- [Fix] Unable to save email templates through ACP language page (Bug #14266)
- [Fix] Correctly set user style for guest user (able to be changed within user management)
- [Change] Moved note about dns_get_record function for using GTalk (Jabber) from Jabber log to Jabber ACP panel
- [Fix] Do not use register_shutdown_function within cron.php if handling the queue and the mail function being used (Bug #14321)
- [Fix] Fixing private message on-hold code if moving messages into folder based on rules (Bug #14309)
- [Fix] Allow the merge selection screen to work (Bug #14363)
- [Change] Require additional permissions for copying permission when editing forums
- [Fix] Local magic URLs no longer get an additional trailing slash (Bug #14362)
- [Fix] Do not let the cron script stale for one hour if register_shutdown_function is not able to be called (Bug #14436)
- [Feature] Added /includes/db/db_tools.php file, which includes tools for handling cross-db actions such as altering columns, etc.
- [Change] Reset the start parameter when the timeframe is changed in the mcp topic page (Ticket #14438)
- [Change] Added Code for cleaning the confirm table to the session garbage collection
- [Fix] Fixed token handling in jabber class for extremely spec-compliant XMPP server (Bug #14445)
- [Fix] Disallowed galleries from using special characters (Bug #14466)
- [Change] Listing the board url within the email text instead of appending it to the subject (Bug #14378)
- [Fix] Always display the quote button as the most accessible one (this means edit is before quote in prosilver due to the way we lay out profiles)
- [Fix] Use correct dimension (width x height) in ACP (Bug #14452)
- [Fix] Only display PM history links if there are PM's to be displayed (Bug #14484)
- [Feature] Added completely new hook system to allow better application/mod integration - see docs/hook_system.html
- [Fix] Correctly delete excess poll options (Bug #14566)
- [Fix] Allow names evaluating to false for poll options
- [Change] use in-build functions for user online list (Bug #14596) - provided by rxu
- [Fix] Fixing google cache display problems with Firefox (Bug #14472) - patch provided by Raimon
- [Fix] Prevent topic unlocking if locked by someone else while posting (Bug #10307)
- [Change] Allow years in future be selected for date custom profile field (Bug #14519)
- [Fix] Don't display "Avatars Disabled" message on edit groups in UCP (Bug #14636)
- [Change] Require confirm for deleting inactive users. (Bug #14641)
- [Fix] Match custom BBCodes in the same way during first and second pass - patch provided by IBBoard (Bug #14268)
- [Fix] Correct quote parsing if opening bracket before opening quote (Bug #14667)
- [Fix] Clean post message for checking length to prevent posting empty messages
- [Fix] Display jumpbox if needed for functionality (Bug #14702)
- [Feature] Added an option to enforce that users spend a configurable amount of time on the terms page during registration
- [Fix] Fixed copy permissions box in the ACP
- [Fix] Enforce types for the user table during conversions
- [Sec] Fixing possible XSS through compromised WHOIS server (#i63, #i64)
- [Sec] Missing access control on whois in viewonline.php (#i51)
- [Sec] Encoding some variables within user::page array correctly (to cope with browser not doing it correctly) to prevent XSS through functions re-using them (#i61)
- [Sec] Fixed XSS through memberlist search feature (#i62)
- [Sec] Fixed XSS through colour swatch (#i65)
- [Sec] Fixed insecure attachment deletion (#i53)
- [Sec] Only allow whitelisted protocols in meta_redirect/redirect (#i66)
- [Sec] Check file names to be written in language management panel (#i52)
- [Sec] Deregister globals if ini_get has been disabled (#i112)
- [Sec] Added form tokens to most forms to enforce a lighter variant of CSRF protection (#i91 - #i96)
- [Sec] Use new password hash method for forum passwords (#i43)
- [Sec] Changed download file location to prevent flash crossdomain policies taking effect (#i8)
- [Sec] Do not allow autocompletion for password on admin re-authentication (#i41)
- [Sec] Made sure users are not completely locked out if they have a GLOBALS cookie (#i101)
- [Sec] Use the secure hash to generate BBCODE_UIDs (#i71)
- [Sec] Increase the length of BBCODE_UIDs (#i72)
- [Sec] New password hashing mechanism for storing passwords (#i42)

### Changes since 3.0.RC4

- [Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)
- [Fix] Allow MS SQL to properly connect when using the mssql driver and PHP is less than either 4.4.1 or 5.1 (Bug #13874)
- [Fix] Ignore files containing HTML special chars in the filenames as gallery avatars (Bug #13906)
- [Fix] Multiple PM recipients not separated (Bug #13876)
- [Change] Split the select list for the smilie order to clarify which are feasible and which are not (Bug #13911)
- [Fix] Convert empty homepage fields (Bug #13917)
- [Fix] Use board default DST setting on creating new profiles (Bug #11563)
- [Feature] New constant PHPBB_EMBEDDED can be used to let phpBB not call exit; if wrapped/embedded (We may re-check this constant on other code locations later too)
- [Feature] append_sid() having a check for the function append_sid_phpbb_hook(). This function is called in favour of append_sid() with the exact same parameters if present.
- [Fix] Only list enabled modes within the dropdown at user administration (Bug #13883) - patch provided by damnian
- [Fix] Properly display ban reason if selecting banned entries within the ACP (Bug #13896)
- [Fix] Properly parse SQL expressions for Oracle (Bug #13916)
- [Fix] Added label bindings to the custom profile fields in the ACP (Bug #13936) - patch provided by damnian
- [Change] Made group avatar/rank changes more intuitive
- [Fix] Give more feedback in icon/smilie management (Bug #13295)
- [Fix] Correctly set user::lang_id (Bug #14010)
- [Fix] Properly display the smiley export screen (Bug #13968)
- [Feature] Add "DECIMAL:", "PDECIMAL", and "PDECIMAL:" to the schema creation code (Bug #13999) - patch provided by poyntesm
- [Fix] Don't show the notify checkbox in the approval queue if the only posts are written by ANONYMOUS (Bug #13973)
- [Fix] Redirect to bots management page on edit/add (Bug #14073)
- [Fix] Display locked icon in viewforum/prosilver if forum locked (Bug #14009)
- [Feature] Display message history in compose PM screen
- [Change] Do not force login on visiting topic/forum from notification emails (Bug #13818)
- [Fix] Fixed cron_lock value for cron execution. This bug led to users having problems with the email queue and other cron related issues.
- [Fix] Prevent white pages on php notices with gzip compression enabled (Bug #14096)
- [Fix] Propagate the cleaned identifier for CFPs (Bug #14072)
- [Fix] Do not display NO_TOPICS message if viewing non-postable category (Bug #13489)
- [Fix] Let the theme immediately expire if changed from ACP for at least 30 minutes after change
- [Fix] Do not append hilit= in search if highlighting term is empty (Bug #13910)
- [Fix] Return to last page after voting in viewtopic instead of first page in topic (Bug #13976)
- [Fix] If sending PM's to groups only include activated member (Bug #14040)
- [Fix] Correctly wrap words in emails containing utf8 characters (Bug #14109)
- [Change] For new posts or editing the first post topic titles have a maxlength of 60 characters. For any subsequent posts the length is extended to 64 to make room for the Re: part, but cutting at 60 characters. The maxlength need to be 64, else users using opera are unable to post (opera does not allow pre-filling a field with more characters than specified within the maxlength attribute)
- [Fix] Disable gzip compression for cached stylesheet for Internet Explorer 6 or empty browser (IE6 is not able to properly display the compressed stylesheet) (Bug #14054)
- [Fix] Header icons fixed in FF for RTL languages (Bug #14084)
- [Change] Words in topic titles and post subjects are highlighted on the search results page and viewtopic too now (Bug #13383)
- [Fix] Made sure strip_bbcode cannot get the idea that a smiley is a BBCode (Bug #14030)
- [Change] Added a filter for user objects to LDAP configuration and improved explanations (Bug #12627)
- [Fix] Display searchable subforums of invisible parents in advanced search forum selection (Bug #11395)
- [Fix] Allow line breaks in custom BBCodes (Bug #10758)
- [Fix] Ordered BBcode parsing functions in the same way everywhere where they are used
- [Fix] Prevent {URL} token in custom BBCodes from make_clickable messing (Bug #14151)
- [Sec] Added alternative tokens to custom BBCodes which are safe for CSS/Javascript and changed TEXT token to entitise opening and closing parantheses.
- [Fix] Convert 2.0 moderator posting permissions (Bug #14105)
- [Fix] Correctly apply PM box limit of 0 to custom folder (Bug #14154)
- [Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)

### Changes since 3.0.RC3

- [Fix] Fixing some subsilver2 and prosilver style issues
- [Fix] Parse error in MCP ban (Bug #13109)
- [Fix] Correctly hide online status in the profile (Bug #13059)
- [Feature] Let the user choose how to update modified files (merging, using new file or using old file) within automatic updater
- [Fix] An extra \ in an Oracle SQL regex was corrected (Bug #13151)
- [Fix] Added a missing global to get_file() (Bug #13149)
- [Fix] Hide autologin box when autologin is disabled (Bug #13093)
- [Fix] Account for the forum id not being part of the request uri in prosilver (Bug #13121)
- [Fix] Properly alter PostgreSQL tables
- [Fix] Properly cache template files that were stored in the database (Bug #12675)
- [Fix] Do not count the deletion of an unapproved topic as a decrease in normally viewable posts (Bug #13167)
- [Fix] Allow column_exists() to return true if the column exists but no data is in the table
- [Fix] Allow setting the smiley order via the select. Also allow to add smileys at the top. (Bug #13199)
- [Fix] Fix php notice on sending jabber messages (Bug #13201)
- [Fix] Make the window showing file differences a little wider (Bug #13157)
- [Fix] Preserve preview style on search form (Bug #13205)
- [Fix] Place attachment filename in new line in posting editor (Bug #9726)
- [Fix] Don't allow caching to occur in the update sequence (Bug #13207)
- [Fix] Enforce the max password length for automatically generated password created by the password sender (Bug #13181)
- [Fix] Handle phpinfo() when expose_php is false (Bug #12777)
- [Fix] Allow managing of forum roles without global users (Bug #13249)
- [Change] Do not run cron script if board is disabled
- [Fix] Correctly destroy sql cache for some query combinations (Bug #13237)
- [Fix] Allow link forums being password protected (Bug #12967)
- [Fix] Allow wrapping topic/post icons in posting editor (Bug #12843)
- [Fix] Display L_RANK only once in template if rank title and image defined (Bug #13231)
- [Fix] Make sure selected transfer method exists before calling (Bug #13265)
- [Fix] Correctly escape language keys in language editor (Bug #13279)
- [Fix] Correctly hide post/reply buttons if permissions are not given (related to Bug #12809)
- [Fix] Remove orphan/wrong permission entries for non-existent forums - self-repairing permissions if conversions went "crazy"
- [Feature] Allow "older" updates applied with the automatic updater. This allows people using it for updating, say, from 3.0.0 to 3.0.1 (with the correct package of course) and then from 3.0.1 to 3.0.2 if the latest version at this time is 3.0.2. These changes take effect beginning with RC4 or people replacing install/install_update.php manually prior doing the updates.
- [Fix] Present correct error message if user tries to edit already read private message (Bug #13271)
- [Fix] Also display board disabled notice for admins/mods if board got disabled due to exceeding the load limit (Bug #13267)
- [Fix] Correctly deliver avatar if readfile function has been disabled (Bug #13309)
- [Fix] Display php information page with the correct direction (Bug #12557)
- [Fix] Increased the number of style objects (styles, templates, themes and imagesets) possible from 127 to 65535 for MySQL (Bug #13179)
- [Fix] Although theoretically impossible in our code, removed the chance of trying to open a file that does not exist (Bug #13327)
- [Fix] Although theoretically impossible in our code, changed the handling of non-existent language files (Bug #13329, #13331)
- [Fix] Removed extra ampersand from ACP link (Bug #13315)
- [Fix] used cleaned up version of given field identification for pre-filling a new custom profile field (Bug #13319)
- [Fix] Correctly convert 2.0 website profile fields. (Bug #13379)
- [Fix] Fixed the "Alphanumeric" and "Alphanumeric and spacers" username selection limitations (Bug #13391)
- [Fix] Make sure filelist() is only returning array types (Bug #13385)
- [Fix] Correctly mark forums read if using cookie based topic tracking (Bug #13245)
- [Change] Put custom profile fields into top box and signature into separate box in members profile view (Bug #13357)
- [Fix] Only show moderator log entries for forums the user is having moderation rights in (Bug #12481)
- [Feature] Show resulting permission alone in trace window (Bug #10952) - thanks to dark/rain for the proposal
- [Fix] Fixed bug in realpath replacement letting it actually work again
- [Change] Try to be a bit more specific regarding global/local permission trace (Bug #11032)
- [Fix] Fixed some strangeness in password validation due to mb_ereg()
- [Fix] Subforums of a forum would overwrite the latest post information even if they did not contain the latest post (Bug #11931)
- [Fix] Use global username display function on several places (Bug #11080, #11098) - patch by HoL
- [Fix] Several viewonline fixes and feature changes. Also displaying the users browser in viewonline list to let the admin easier spot additional search bots, connected to a_user permission (Bug #11088) - patch and suggestions provided by HoL
- [Change] u_viewprofile permission also affecting viewonline list now
- [Fix] Do not display return to search link in prosilver if search is not allowed (Bug #11393)
- [Fix] Use global url validation for img bbcode tag (Bug #11935)
- [Fix] Added proper unicode support to style names (Bug #12165)
- [Fix] Search result extract should not end in the middle of a multibyte character (Bug #11863)
- [Fix] Missing localisation for an imageset no longer triggers a lot of "imageset refreshed" log messages (Bug #12027)
- [Fix] Explain that themes which need parsing cannot be stored on the filesystem (Bug #11134)
- [Fix] Normalize usernames
- [Change] Improved utf8_clean_string with a more complete list of homographs and NFKC normalization
- [Fix] Fixed error messages that ACP Database can give (Bug #13463)
- [Fix] Fixed potential issues with databases that use tables names is uppercase
- [Fix] Handle forum links/redirects within viewforum if no read permission given (to display login box or error message) (Bug #13467)
- [Fix] Prevent changing postable forum having subforums to link forum without moving subforums out first
- [Fix] Do not display version in admin template (Bug #13495)
- [Fix] Allow manual specification of remote avatar dimensions if getimagesize is disabled (Bug #13531)
- [Fix] Make viewonline use the session page's added forum parameter (Bug #13597)
- [Fix] Correcting BBCode FAQ (Bug #11180)
- [Fix] Make to/bcc line in view private message display consistent with other username displays in prosilver (Bug #11989)
- [Fix] Send out activation email if admin activation is enabled and user activated through inactive users panel upon registration (Bug #12065)
- [Change] Re-implemented All Yes/No/Never links in permission panels for easier changing all categories at once
- [Change] Advanced permission link now "marked" if no role is assigned and custom permissions set. With this an admin can instantly see if the object is not set at all or having custom permissions, something you only saw if advanced permissions were viewed before.
- [Fix] Change misleading custom BBCodes explanation, regarding tokens and useable template variables (Bug #12403, #5660)
- [Feature] Ability to disable birthdays completely with new board features setting
- [Fix] Fix disallowed username check (Bug #13511)
- [Fix] Allow for unicode usernames to be pruned (Bug #13643)
- [Fix] Do not copy forum permissions from self (Bug #13663)
- [Fix] Allow for polls to work during preview (Bug #13657) - thanks to Thatbitextra
- [Fix] Finer error conditions for sending IM messages (Bugs #13681, #13683)
- [Fix] Add a confirmation for log deletion in the MCP (Bug #13693)
- [Fix] Do not erase ranks and avatars when changing default groups (Bugs #13701, #13697)
- [Fix] Limit author searches to firstpost, if selected (Bug #13579)
- [Fix] Properly resync user post counts for users that have no posts (Bug #13581)
- [Fix] Do not require space after , in smiley pak files (Bug #13647)
- [Fix] Properly display the subscribe link in topic and forum display for Oracle (Bug #13583)
- [Change] Add version number to ACP index (Bug #13703)
- [Fix] Several fixes for custom profile fields on multi-lingual boards (Bugs #13763, #13527, #13525, #11515)
- [Fix] Return to the mode previously selected after disaproving a post (Bug #13796)
- [Fix] Cron now uses a locking variable to make sure it does not spawn too many webserver processes (Bug #12741)
- [Fix] Cached stylesheet now supporting gzip compression
- [Fix] Added link to inbox for deleted PMs (Bug #13813)
- [Fix] Re-syncing the board stats also refreshes the newest user (Bug #13831)
- [Feature] Ability to externally set $phpbb_root_path if wrapping phpBB3 by defining constant PHPBB_ROOT_PATH
- [Fix] Implemented correct left/right floating within ACP in regard to RTL languages (Bug #13777)
- [Fix] Fixing session problems when using MySQL strict mode in conjunction with very long browser agent string (Bug #13827)
- [Fix] Disallow post/pm subjects entirely made up from non-printable chars and whitespaces (Bug #13800)
- [Fix] Allow moving private messages from the sentbox (Bug #13791)
- [Fix] Properly export localized imagesets
- [Feature] Show the size of Firebird databases
- [Fix] Show error when moving topic into a category via quickmod (Bug #11611)
- [Fix] Allow Oracle to install on a database without specify the database name

### Changes since 3.0.RC2

- [Fix] Re-allow searching within the memberlist
- [Fix] Force prune related values to integers during conversions
- [Fix] Updater now detects successfully merged files having conflicts and user chose to merge with modifications (Bug #12685)
- [Fix] Updater is no longer listing missing language entries and styles if these had been removed (Bug #12655)
- [Fix] Correct approval of posts in global announcements (Bug #12699)
- [Sec] Do not allow setup spiders/robots to post, even if permissions are given. We see no reason why this should be possible. (Thanks to Frank Rizzo for convincing us regarding this)
- [Sec] Do not display the last active column within the memberlist if u_viewonline permission is not given (Bug #12797)
- [Fix] Display custom profile field "date" based on users language (Bug #12787)
- [Fix] Allow adding of help language files within subdirectories (Bug #12783)
- [Fix] Correctly apply smileys on posting having # within their emotion code
- [Fix] Correctly convert smileys having double quotes within their emotion code (Bug #12731)
- [Fix] The converter now adds the protocol to user website profile fields missing it (Bug #12819)
- [Fix] Correctly escape banned ip/email using wildcard for ban check (Bug #12815)
- [Fix] Fixed some very nasty opera bugs (dropdown list bug, cpu spike bug) (Bug #12763, #11609)
- [Fix] Font colour list having the correct height in IE (Bug #9571)
- [Feature] Added mark/unmark all links to the bots page (Bug #12461)
- [Fix] Introduced check on duplicate usernames during bot creation/edit (Bug #12461)
- [Fix] Allow multibyte letters for smilie codes(Bug #12321)
- [Fix] Correctly chmod created cache files (Bug #12859)
- [Fix] Use our global expression for checking email syntax in memberlist (Bug #12827)
- [Fix] Correctly retrieve/refresh templates stored in database if using subdirectories within template directory (Bug #12839)
- [Fix] Correctly translate special group names in ucp_groups.php (Bug #12597)
- [Fix] Search boxes not losing session id (changing method from get to post) (Bug #12643)
- [Fix] Make sure the automatic update is also working for those having fsockopen disabled
- [Fix] Simulate recache of theme data on automatic update finished page - recaching it if css data changed
- [Feature] Allow dropping in custom "info_[module class]_*.php" files to language/*/mods directory for inclusion into the menu structure without the need to modify phpBB language files for menu placements
- [Fix] Added login box to egosearch (Bug #12941)
- [Fix] Deal with slashed quotes during quote bbcode conversion (Bug #12607)
- [Fix] Minor language and style fixes (Bugs #12235, #12493, #11949)
- [Feature] Added backlinks to mcp_report (Bug #12905)
- [Fix] Only check usernames in guest posts upon edit (Bug #11349)
- [Fix] Consider viewonline permission when viewing friends/foes (Bug #12955)
- [Fix] Added proper unicode support to ban reasons (Bug #12947)
- [Fix] The forum/topic sync code now recognizes other ways that the latest post in a topic can be expressed (Bug #12947) - patch provided by APTX
- [Fix] Topic deletion via the user post deletion mechanism did not take into account statistics for forums that hold shadow topics (Bug #12981)
- [Fix] Allow for negative and decimal numbers to be in transposed queries in the Oracle and Firebird DBAL (Bug #13033)
- [Fix] Some jabber related bugs (Bug #12989, #11805, #11809)
- [Fix] Added UTF-8 support for banning via the MCP (Bug #13013)
- [Fix] Properly detect the script name in session::extract_current_page() if PHP_SELF is not defined (Bug #12705) - patch provided by ToonArmy
- [Fix] Show role mask for global permission class under Permissions->Permission Roles (Bug #13057)

### Changes since 3.0.RC1

- [Fix] (X)HTML issues within the templates (Bug #11255, #11255)
- [Fix] Tiny language and grammar changes
- [Fix] Several style related fixes, mainly fixing cross-browser issues
- [Fix] Several RTL fixes within prosilver
- [Fix] MCP looses forum_id in some panels (Bug #11255)
- [Fix] Moderation queue used unfriendly notification of no posts/topics (Bug #11291)
- [Fix] Array in Oracle DBAL not always set (Bug #11475)
- [Fix] Improper continue; in acp_styles.php (Bug #11523)
- [Fix] Imageset editor more friendly (Bug #11511)
- [Fix] Made Custom BBCode validation more strict (Bug #11335)
- [Fix] Proper sync of data on topic copy (Bug #11335)
- [Fix] Introduced ORDER BY clauses to converter queries (Bug #10697)
- [Fix] Stopped bots from getting added to the registered users group during conversion (Bug #11283)
- [Fix] Filled "SMILIEYS_DISABLED" template variable (Bug #11257)
- [Fix] Properly escaped the delimiter in disallowed username comparisons (Bug #11339)
- [Fix] Check global purge setting (Bug #11555)
- [Fix] Improper magic url parsing applied to already parsed [url=] bbcode tag (Bug #11429)
- [Fix] Renamed two indicies for Oracle support (Bug #11457)
- [Fix] Added support for ISO-8859-8(-i) in the character set convertor (Bug #11265, #12039)
- [Fix] Added support for Oracle's "easy connect naming"
- [Fix] Let Mark/Unmark All work in Manage Drafts (Bug #11679)
- [Fix] Display correct message if no attachments found in user administration (Bug #11629)
- [Fix] Let the "Delete all board cookies" being displayed for guests too (only prosilver) (Bug #11603)
- [Fix] Do not display view topic link in MCP while there is no link present (Bug #11573)
- [Fix] MySQL now properly sorts by post_subject (Bug #11637)
- [Fix] Introduced checks to stop negative postcounts (Bug #11561, #11421)
- [Fix] Allow IP v4/v6 urls for remote avatars (Bug #11633)
- [Fix] Delete avatar files automatically (Bug #11631)
- [Fix] Automatically add selected columns to group by statements in the converter (Bug #11465)
- [Fix] Allow posts without subjects to be clicked in the MCP (Bug #11483)
- [Fix] Sync the forums that shadow topics reside in when the topic that they point to is deleted
- [Fix] Do not use the gen_random_string function to create cookie names during install (Bug #11431)
- [Fix] Send stylesheet in style.php even without a valid session id (Bug #11531)
- [Fix] request_var should strictly return the requested number of dimensions
- [Fix] Correct assignment of custom width to $user->img(); / Correctly display poll bars in subsilver2 (Bug #11301)
- [Fix] Allow removing polls in prosilver
- [Fix] Correct link to post in managing users attachments (Bug #11765)
- [Fix] Reload confirm screen for selecting new forum for global topic type change if not postable forum is chosen (Bug #11711)
- [Fix] Correctly show system default color for disabled options in Internet Explorer which does not support disabled option fields
- [Fix] Update query for custom profiles in user management used wrong order for left/right delimiter (affecting mssql) (Bug #11781)
- [Fix] Inconsistent display of more smileys link fixed (Bug #11801)
- [Fix] Outbox messages are no always neither new nor unread post-conversion (Bug #11461)
- [Feature] Replaced outdated jabber class with the one from the flyspray project
- [Feature] The converter no longer relies on the smiley ID to decide if it should be displayed on the posting page
- [Change] Limit maximum number of allowed characters in messages to 60.000 by default. Admins should increase their PHP time limits if they want to raise this tremedously.
- [Change] Some changes to the conversion documentation
- [Fix] Only use permissions from existing forums during the conversion (Bug #11417)
- [Fix] Do not permit the decimal as a valid prefix character (Bug #11967)
- [Fix] Account for the fact that the IM fields might hold non-IM information
- [Fix] Make the queue function on post details
- [Fix] Check if there are active styles left before deleting a style
- [Fix] Correctly update styles after the deletion of an imageset.
- [Fix] Replaced jabber validation to use the method used by the new jabber class (Bug #9822)
- [Sec] Adding confirm boxes to UCP group actions (ToonArmy)
- [Feature] Added the option to disable the flash bbcode globally (DelvarWorld)
- [Sec] Changed the embedding of Flash (NeoThermic, DelvarWorld)
- [Fix] Use the signature setting for PMs (Bug #12001)
- [Fix] Made the DBMS selection use language variables (Bug #11969)
- [Fix] Make sure that a folder is used when viewing messages to oneself (Bug #12105)
- [Fix] Account for the fact that a board might have no visible Admins (Bug #12185)
- [Fix] Change group ranks even if empty (Bug #12231)
- [Fix] Correctly propagate variables across the custom profile field wizard (Bug #12237)
- [Fix] Correctly move pm's into folders if more than one is received (Bug #12135)
- [Fix] Corrected various bugs with CPF on multi-language boards (Bug #11803)
- [Fix] Disable notify checkbox in posting editor when board email is disabled (Bug #12263)
- [Fix] Removed maxlength from password/username fields (Bugs #12215, #11797)
- [Fix] Use icon-unsubscribe in prosilver (Bug #12211)
- [Fix] Seperated PREVIOUS/NEXT language vars for pagination and next/previous step (Bug #12197)
- [Feature] append_sid() supporting anchor (Bug #11535) - patch provided by Schumi and ToonArmy
- [Fix] Remember selected language while registering after submit (Bug #11435)
- [Fix] UTF-8 support in theme and template editors (Bug #12251)
- [Fix] Allow for posts per page in the MCP to change during topic selection (Bug #12067)
- [Fix] Remove group avatars upon deletion from all profiles, not just the people having the group as default (Bug #12275, #12267)
- [Fix] Allow for conversions to SQLite (Bug #12279) - patch provided by ToonArmy
- [Fix] Apply colours to guests (Bug #12219)
- [Fix] Set the Admin group as founder_manage during conversion (Bug #12287)
- [Fix] Fixed a special quote BBCode case (Bug #12189)
- [Fix] Correctly parse BBCodes in a post when a poll is being used (Bug #11833)
- [Fix] Remember attached files on PM edit (Bug #12019)
- [Fix] Correctly display poll ending on preview (Bug #12303)
- [Feature] Display the success message on posting longer for posts awaiting approval (Bug #12053)
- [Fix] Display maximum and entered number of characters for the "maximum number of characters exceeded" error messages (Bug #11981)
- [Fix] Wrongly applied setting for allowing links in private messages (used the signature setting instead of the post setting) (Bug #11945)
- [Fix] Unread flag for multipage topic wrongly set under some conditions (Bug #12127) - fix provided by asinshesq
- [Fix] Able to delete posts within user prune panel (Bug #11849)
- [Feature] Allow to specify dimensions of images manually on imageset config (Bug #11675)
- [Fix] Correctly re-assign query result id after seeking rows (MSSQL/Firebird) (Bug #12369)
- [Feature] Make effect of a changed hideonline permission instantaneous
- [Fix] Do not overwrite larger memory values in the installer (Bug #12195)
- [Fix] Order forums on role permission mask (Bug #12337)
- [Fix] Show "no image" image when a non-selectable item was selected in the acp imageset editor - IE (Bug #12423)
- [Fix] Update session information without new pageload (Bug #12393, Bug #12441)
- [Fix] Let polls be edited correctly (Bug #12433)
- [Fix] Overcome Oracle's inability to handle IN() clauses with over one thousand elements (Bug #12449)
- [Fix] Simulate Firebird's affected rows mechanism for older versions of PHP
- [Fix] Custom BBCodes properly handle lowercasing of parameterized tags (Bug #12377)
- [Fix] Update the forum_id sequence for PostgreSQL during conversion (Bug #11927)
- [Fix] Allow for multiple tags containing URL and LOCAL_URL tokens (Bug #12473)
- [Fix] Properly display forum list in the MCP Queue (Bug #11313)
- [Fix] Use the localised guest name for quotes (Bug #12483)
- [Fix] Added post anchor to links in default warning message (Bug #12489)
- [Fix] Allow 5 digits in editing time fields (Bug #12489)
- [Fix] MS SQL DBAL drivers now write over extension limitations, they are too low for most installations (Bug #12415)
- [Fix] Fix sorting by author on "unanswered posts" (Bug #12545)
- [Fix] Allow searching for multibyte authors (Bug #11793)
- [Fix] Writing directories/files with correct permissions using FTP for transfers on PHP4
- [Fix] Oracle sequences during conversions are now corrected (Bug #12555)
- [Fix] Allow users to continue after selecting "No" in the merge quickmod confirmation (Bug #12577)
- [Fix] Correctly check permissions on the UCP subscription/bookmark pages (Bug #12595)
- [Fix] Only convert non-orphaned PMs
- [Fix] Fixed a few Postgres related errors (Bug #12587)
- [Feature] New DBAL wrapper for LIKE expressions / sql_like_expression()
- [Sec] Stricter validation of language entries.

Back to Top

## 2. Copyright and disclaimer

phpBB is free software, released under the terms of the GNU General Public License, version 2 (GPL-2.0). Copyright © phpBB Limited. For full copyright and license information, please see the docs/CREDITS.txt file.

Back to Top