Differences between SMF 2.1 and SMF 2.0

New features for users

 * A new WYSIWYG editor SCEditor
 * HTML5 attachment uploading (including drag and drop)
 * Drafts
 * Likes
 * Mentions
 * Alerts for new likes, mentions, private messages, etc.
 * Event times and time zones in the Calendar
 * Time zone selection; manual hourly offsets are a thing of the past
 * Google ReCaptcha

Security enhancements

 * Password hashing is upgraded to bcrypt
 * Unique tokens for forms to help prevent CSRF attacks
 * Google Authenticator for two-factor logins

New/improved features for mod authors

 * More powerful BBCode possibilities (a BBC's input parameters are now supplied to its validation function, allowing new possibilities for what a BBC can do with user input)
 * Hooks, hooks, and more hooks!
 * Background tasks
 * All create_function calls are now anonymous functions
 * db_* ddl function support now a good common set of datatypes a cross mysql and pg (#3636, #3610)
 * db_insert can now return directly the ai values (@param int returnmode 0 = nothing(default), 1 = last row id, 2 = all rows id as array). It is no longer necessary to call db_insert_id
 * Alignment of mysql sql mode to provide the same mysql behaviour across the different versions and engine. Use the default mysql 5.7 set : ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
 * With build_query_board($userid) you can now simulate the access rights of a different user as the current. definition: Returns array with keys query_wanna_see_board and query_see_board; exp. for using: https://github.com/SimpleMachines/SMF2.1/pull/4288/files#diff-01cc3a672ae60fbabf662b0bb5727534
 * db_create_table can now update existing table structure (#4335)
 * With $smcFunc['db_custom_order'] you can define a custorm order for a row set, instead of using find_in_set (#4420)
 * Implement housekeeping interface for Caching (#4446)
 * Option to define when your css is loaded(loadCSSFile) (#4548)
 * postRemoved now has a default implementation (#4712)
 * sql ifnull is no longer supported. Use coalesce (docu) instead.
 * For handling access rights of boards board_permissions_view table was added and {query_see_board} was redefined (#4727)
 * For advanced sql you can check now if the database supports cte use $smcFunc['db_cte_support'] (#4794)
 * Allow multiple extensions for smileys (#4956)
 * To hide html element use the hidden class instead of style="display: none; " (#5036)

General improvements

 * Smart-emulation (the package manager is now able to propose a SMF version to emulate in order to install a mod)
 * IPv6 support
 * New Ban Mask Format: 199.* or 199.0.0.0 - 199.255.255.255 or 199.*.*.* not allowed anymore 199.0-255.0-255.0-255
 * Search for ip address in the memberlist works in the same format as Ban Mask Format
 * Detection of mobile devices
 * Previews of several things are now available (Personal messages (now AJAX), news and newsletters, warning template and warnings, signature)
 * jQuery included by default
 * PostgreSQL massive
 * Support for PG unlogged table, which was introduced in PG 9.1, and PG 9.5 insert ignore feature
 * Native IP used (inet)
 * Index Fulltext Search
 * PHP 7.2 support
 * UTF-8 is now the standard format for the forum and language files
 * Curve2 is a responsive design, which is designed to work effectively, and to look good, on your computer, as well as on your phone or tablet

Administration, moderation, and security

 * Admin area has been reorganized (a big improvement!)
 * Core Features page is being removed and the Settings Page is being moved to individual pages. Some "enabled by default" settings will no longer be disabled
 * Handling of attachments (based on mod Improved Attachment Error Handling)
 * Tokens (security)
 * phpinfo directly into the admin panel in the server settings pages
 * Deny access to boards
 * End of admin and moderator sessions (security)
 * Ability to enable/disable both admin and moderator security [asking for password to access admin panel and moderation panel]
 * New tags for packages: (tag for inserting mod credits in to the credits page), (tag to basic mod dependency), (tag to add / remove hooks)
 * PHPDoc (also needs to change the coding guidelines to reflect this)
 * No backwards compatibility with PHP < 5.4. Meaning, you need to upgrade to at least PHP 5.4
 * Per board group moderators
 * Moved number of required verification questions to the verification questions area of the admin panel [not in the CAPTCHA area]
 * Install allows registration settings to be selected [immediate/disabled etc]
 * Package manager has proper error message if a theme is uploaded
 * Integration Hooks management, allows hooks to be enabled/disabled
 * Layout for unapproved posts in moderation center updated to fix bug where linktree for post does not show up correctly
 * Ability to change to sidebar menus or to drop down menus can only be selected from look and layout in each users profile
 * Db errors time stamp moved to db_last_error.php file instead of settings.php so settings.php cant be blanked out by mistake
 * Ability to move a topic and automatically redirect users to the new location
 * Theme setting to show subject on thread view
 * When post text is not allowed in notifications, PM's body does not get emailed
 * PM's now require a subject, (no subject) will no longer be auto-filled
 * Membergroup icon/badges are now in their own folder (images/membericons) along with a drop down of available image names to pick from
 * Ability to view the warnings history if users can view their warning status
 * HTML is no longer parsed as a membergroup name
 * Per group ability to allow/deny the viewing of a users email address (or email form) as well as the ability to send mail to them
 * Upon upgrading to 2.1, the default theme will be forced as the default and the old outdated SMF themes (babylon, classic and core) will be deleted from the database (theme files will remain)
 * Email addresses are no longer sent to moderators when a user reports a post
 * Improved spam defenses, registration will be blocked if a user tries to register too quickly and also inept bots can be tripped up by hidden form variables.
 * Anti spam Q&A should now be able to support multiple languages (different questions per language) as well as multiple answers per language
 * Private Messages are saved by default when sending a message (can not be turned off)
 * Word censoring is no longer a per-theme setting
 * SMF no longer warns about an out of date database when it isn't out of date
 * Personal text can be set up to be shown on registration and also disabled through the Advanced Profile Fields page
 * The header on the default theme can no longer be collapsed
 * Several changes in the Moderation Center including removal of the news block
 * Image proxy housekeeping added (#4535)
 * Cron can be called from the outside, disabled the inline cron call (#4692)
 * Added backtrace to the error log (#4740)
 * Added mb4 support for mysql (#4777)
 * Show newest spider log items at top (#4847)

Hooks

 * Many, many more hooks (a list will be posted later).
 * Allow mod authors the option to override the id theme without changing the url (#5005)

Minor improvements

 * Preview of messages when hovering over the message subject on the message list. Enable on current theme page in admin, preview length is on the posts and topics page in admin
 * Ability to disregard/ignore a topic and no longer have it show up in the unread lists
 * Ability to specify how long to keep moved topic notices before they are deleted (via scheduled task)
 * Added categories for boards to membergroup's management pages (easier to use)
 * Post recount for members added to the maintenance menu
 * Improved calendar export function
 * Better XML feeds (bug fixes, cleaner output, speed improvements)
 * Ignore/skip of short words (1 char) in search function
 * [flash] no longer embeds flash content even when the BBCode is enabled. It simply shows a link to the flash file instead.

Removals

 * Core Features page
 * As a consequence, integrate_core_features has been removed as well
 * SQLite
 * WAP, WAP2, and IMODE
 * Old browser support; IE<9 not supported
 * PG<9.4 not supported
 * AIM
 * MySQL<5.0.22 and <5.1.10 not supported
 * Template evaluation. No more confusing error messages pertaining to templates and eval