Key Changes
Major New Features / Enhancements
- Post Before Registering
- Animated GIFs
- AdminCP Notification Center
-
New Email Features:
- Email Statistics
- Email Advertisements
- Unfollow Without Logging In
-
SEO Improvements:
- Improved pagination with page number now in path (rather than query string) and unique page titles for paginated pages.
- Improved use of canonical tags.
- Improved handling of empty containers and profiles to reduce soft 404s.
- Improved JSON-LD markup, adding @id tags and fixing URLs for comments.
- Removed page output hidden by JavaScript.
-
Performance Improvements:
- Added Lazy Loading for images, which will speed up page rendering.
- Added HTTP/2 support with prefetch/preload.
- Added support for Brotli compression.
- Improved default profile photos to use inline SVGs rather than generated images, which will speed up page rendering.
- Improved browser caching of pages served by the guest page cache, which will reduce the number of requests reaching the server.
- Improved handing of session data for guests to reduce database reads for guests.
- Optimized images to reduce file size for faster page rendering.
- Other minor performance improvements to reduce database queries and fix unnecessary code execution.
- Commerce Store Filters allow customers to filter products by price, review, stock, or custom admin-defined filters.
Core
- Added setting to display user group formatting in more areas (see 6 New Micro Features).
- Added less intrusive browser notification prompt in Notifications menu (see 6 New Micro Features).
- Added ability to show sidebar blocks to only certain types of devices (see 6 New Micro Features).
- Added ability for club owners to reorder the navigation tabs (see 6 New Micro Features).
- Added ability for announcements to be linked to an URL or be a title only (see 6 New Micro Features), improved consistency in how announcements are shown in different areas.
- Improved UI for entering time intervals in AdminCP settings (see 6 New Micro Features).
- Added a new Icons & Logos section in the AdminCP which allows providing logos for use when sharing links from the community, adding the community as a home screen app on a mobile device (along with additional settings for a PWA manifest to control certain aspects the community’s behaviour when used in this way), and in Safari’s favourites menus and pinned tabs on macOS.
- Added a new UI for attachments, showing a box with some information about the file, rather than a plain line (see Turbo charging loading speeds).
Commerce
- Braintree Gateway including support for PayPal (with recurring payments), Venmo, and cards. Deprecates some PayPal features.
- Added ability to target bulk mails to members who have spent certain amounts.
- Added sidebar widgets for best sellers, latest products, product reviews and a featured product.
New Server Requirements: PHP 7.1.0 or higher required (7.3.x now supported). MySQL 5.5.3 or higher requires (5.6.2 recommended).
Removed Features
- Removed EmojiOne-style emojis due to licensing issues.
- Removed Gravatar support due to privacy concerns and performance issues.
- Removed password hashes when downloading a member list from the AdminCP. This is for security, to reduce the ease of obtaining sensitive data if the AdminCP is ever compromised.
- Removed the name of the content (e.g. topic) from the “Next Unread” link which could consume significant server resources on large communities.
Release Patches
Fixes several issues.
Additional Information
IMPORTANT UPGRADE NOTICE
Please note that not all third party applications and themes are yet compatible with Invision Community 4.4. If you utilize third party resources, including custom themes, please ensure they have been declared compatible by their respective authors or your site may be non-functional after upgrade.
Minor Changes
Security
We continuously audit the product for potential security issues. While none of these security changes are significant we are committed to making improvements wherever potential issues are found. We’d like to thank everyone who responsibly reported issues to us for this release.
- Added a setting to prevent Invision Community being used in an iframe to prevent clickjacking.
- Improved entropy of CSRF keys.
- Improved SSRF protection.
- Fixed potential leaking of sensitive keys via HTTP referrers.
- Fixed an issue where the redirect script could be tricked into outputting HTML from an unverified source.
- Fixed several minor XSS vulnerabilities.
- Fixed some missing CSRF checks.
- Fixed users being able to change the social account used for promoting.
- Fixed club owners being able to manipulate the meta tags for a page which could force users to be redirected to another website when visiting certain club areas.
- Fixed non-sensitive information on pending transactions made by guests in Commerce potentially viewable by other guests.
- Fixed users being able to post remote images when disallowed from doing so.
Core - UI
- Added “Create” menu on mobile.
- Fixed ordering of custom emoji categories.
- Fixed the “pulse” animation when reacting to content not being correctly centered.
- Fixed the “popular” indicator overlapping reactions on mobile devices.
- Fixed clicking on the label for a field not causing focus to jump the field it is for in several locations.
- Fixed select boxes always dropping down, extending past the bottom of the screen in some situations (they will now drop “up” if near the bottom of the screen).
- Fixed node (e.g. forums, products, etc.) selection fields consuming significant server resources on communities which have lots of them by limiting the number that is shown when the select box is initially opened to 100.
- Fixed “stack” form fields (fields where multiple values can be entered) not showing the “Add another” Button" once an item was removed from the stack after the max elements were reached.
- Fixed “stack” form fields (fields where multiple values can be entered) not saving the correct values if one item is deleted and then another one added.
- Fixed carousels not being scrollable on very small devices (e.g. iPhone SE).
- Fixed carousels not behaving correctly with right-to-left languages.
- Fixed more than one sort options sometimes showing as selected in some content lists.
- Fixed styling of bullet points in some lists when using Microsoft Edge.
- Fixed various W3C validation errors (including removing CSS rules with vendor prefixes which are no longer needed in most browsers).
- Removed total reputation count in “mini” reputation view (used by Gallery comments and status updates), which isn’t necessary as each reaction type shows its own total.
Core - Posting / Editor / Embeds
- Added tag suggestions from previously used tags as you type.
- Fixed @mentions not working in some circumstances.
- Fixed results lists showing in wrong place in some autocomplete fields.
- Fixed Flickr embeds.
- Fixed embeds for extremely long content causing crashes on mobile devices.
- Fixed pasting certain URLs into the editor escaping characters.
- Fixed certain content being pasted into an editor only actually pasting a single URL from the pasted content.
- Fixed UI when editing highlighted posts.
- Fixed a user not being able to post a review if they had previously posted a review which had been deleted.
- Fixed author of content that is set to be published in the future not being able to view and edit it if they do not usually have permission to view future items.
- Fixed content that is set to be published in the future being able to be commented or reviewed.
- Fixed sTex/LaTeX editor code syntax highlighting.
- Fixed an issue where previewing content with attachments may cause the content to be listed multiple times on the “My Attachments” page.
- Fixed double-clicking on an image to adjust its size could fail when multiple WYSIWYG editors are on the page.
- Upgraded CKEditor to 4.11.2.
Core - Clubs
- Added option when splitting topics/other content to have the newly created topic/etc be in a club.
- Fixed paid clubs being able to be created without having a valid price.
- Fixed the number of members shown for a club not always being accurate.
- Fixed layout of the club member list when there is no sidebar (now shows 24 per page which divides evenly between the number shown per row both with and without the sidebar).
- Fixed club leaders not being able to crop the club icon.
- Fixed members being able to vote on polls in open clubs even if they aren’t members of the club.
- Fixed an issue where editing a club on PHP 7.2.
- Fixed HTML open-graph tags not being set in clubs.
Core - Search & Activity Streams
- Added support for showing images from pages records and poll votes in the activity stream.
- Improved performance if using MySQL.
-
Improved Elasticsearch integration:
- Added support for wildcard searches.
- Added support for custom analyzers.
- Improved performance for certain Elasticsearch queries.
- Removed the ability to filter by number of views when searching using Elasticsearch, which had significant performance issues.- Fixed deleted comments showing in activity streams.
- Fixed error in streams with certain content combinations.
- Fixed quick search dropdown being dismissed when selecting an option inside it.
- Fixed browser’s autocomplete box overlapping the quick search dropdown.
- Fixed behaviour of back button after visiting an unread item in a stream.
- Fixed search form not being reset when using the browser’s back button.
- Fixed new products icon floating over the title in streams.
- Fixed searching by “Select box” profile fields with multiple options.
- Fixed date filters being lost when changing the sort order in search.
- Fixed changing the date filters not working correctly if the search was originally initiated by the advanced search form.
- Fixed date filters showing the dates in the wrong timezone.
- Fixed “search by terms or tags” and “search by terms and tags” not showing on the search form initially.
- Fixed content not being highlighted correctly in search results.
- Fixed issues searches when using “&”, “_” or “%” in the search term.
Core - Profiles & User Settings
- Added ability for users to re-crop their profile photos.
- Added custom field formatting options for profiles.
- Added ability for users to delete multiple attachments at a time from the “My Attachments” page.
- Added AdminCP settings for showing signatures to guests and mobile users.
- Added ability to disable profile photo imports from URL.
-
Added ability to use
$member
variable (to access details about the member) in custom profile field formatting templates (“Custom topic formatting” and “Custom profile formatting”). - Fixed duplicate entries in the “Reputation” section of member profiles.
- Fixed an issue where “Complete Your Profile” steps may not be dismissed properly and could re-appear later.
- Fixed links to ignored users and editing profiles showing even when these features were disabled.
- Fixed users being able to import profile photos from linked social network accounts even if they don’t have permission to use a profile photo.
- Fixed a generic error when attempting to import a profile photo from an invalid domain.
Core - Notifications
- Added a new user notification to be notified when their content is embedded in other content.
- Added ability for administrators to set the default value for several notification settings: “Show popup window when members receive a new personal message?”, “Only send one email notification for followed content per member visit?”, and “Play a sound when notifications are received?”
- Added a small message when editing notification settings to clarify that changing the default method for following content will not affect content you are already following.
- Fixed notifications triggered by guests not showing an author name.
- Fixed notifications for users logged in anonymously.
- Fixed links to some notifications pages/settings using an old format which caused an unnecessary redirect to the correct URL.
Core - Messenger
- Added ability for moderators to delete messenger conversations.
- Fixed pagination of messenger search results.
Core - Leaderboard
- Fixed some items missing from the Leaderboard’s “Popular items” list.
- Fixed Leaderboard positions potentially switching if the positions are tied.
- Fixed AdminCP leaderboard settings form not showing/hiding fields correctly when turned on/off.
- Fixed “Top Members” page in the Leaderboard consuming significant server resources on large communities.
Core - Members & Accounts
- Fixed the formatting setting not showing the color box when editing a group in the AdminCP.
- Fixed errors showing twice on registration form if it was submitted with errors.
- Fixed potential errors merging some member accounts.
- Fixed an issue which may allow users to bypass validation if they are held for admin approval by Spam Defense.
- Fixed login handlers sometimes not syncing email addresses or display names.
- Fixed login handlers syncing profile data even when disabled.
- Fixed “Complete Your Profile” not sending the user back to the same page they were previously viewing.
- Fixed some filters in member list downloads not working correctly.
- Fixed certain non-latin characters in member list downloads.
Core - Status Updates
- Fixed attachments failing to save when editing a status update.
- Fixed attachments on status updates not being removed when a member is deleted.
- Fixed status updates and status update edits still showing as autosaved content after submission.
- Fixed number of replies to status updates sometimes showing incorrectly.
Core - Moderation
- Added a link to the IP address tools for moderators who can see IP addresses in the online users list.
- Improved UI of the message which tells a user if their post will need to be approved by a moderator, and added the message in some areas it was missing from.
- Improved UX for flagging members as spammers: flagging a member as spammer from the AdminCP is now done without reloading the page, hiding/deleting content will be processed faster and notifications will not be sent in the meantime, and flagging a member as a spammer from the front-end will redirect back to the page previously being viewed.
- Fixed an issue where if a moderator deletes content, and then restores it, it is still permanently deleted after the time period it would have been as if it had not been restored.
- Fixed word filters not holding content for approval in all areas.
- Fixed automatic moderation rules needing more reports than set.
- Fixed automatic moderation not counting reports on status updates.
- Fixed an issue where banning a member and removing their profile photo would leave a broken image in their profile.
- Fixed deleting reviews or comments sometimes showing two confirmation dialogs.
- Fixed content items that require a comment not rendering correctly in the report center.
- Fixed potential error merging content when both items have reviews.
- Fixed moderators being able to merge content they cannot view if the URL is known.
- Fixed bad description on the merge form (said “a topic” rather than “the topic”).
- Fixed a recommend comment still showing in the content it previously belonged to if it is split into new content.
- Fixed some inconsistencies in behaviour when hiding/unhiding content which itself has hidden comments/reviews inside.
Core - Sidebar
- Added a sidebar widget to show users with the most contributions.
- Fixed minimum comments/reviews filters in sidebar blocks.
- Fixed announcements being shown at the bottom of the on some pages, rather than at the top.
- Fixed the status update widget caching not taking into consideration if that member has status updates enabled, which may cause a text field when the current member has status updates disabled and vice-versa.
- Fixes missing margin between two blocks if there is a block between them which is hidden because it has no content.
- Fixed styling inconsistencies when editing some sidebar blocks versus when they are actually displayed.
- Fixed the recently browsing widget erroneously showing a guest when using Redis sessions.
- Fixed error rebuilding content (after changing certain settings) of some sidebar blocks.
Core - Social / Sharing
- Added support for cover photos when promoting to social media.
- Fixed uploading a new promotional image when editing internally promoted content.
- Fixed unsorted of time options when scheduling social promotions.
- Fixed AdminCP > System > Social Media Promotion > Permissions not showing all groups in the list of groups with promote permissions.
- Fixed an issue where it was not always possible to remove existing Facebook social promotion settings.
- Removed StumbleUpon share service which no longer exists.
Core - Files & Uploads
- Added ability for administrators to choose to move files when changing between file storage configurations.
- Improved error messages if an error occurs when uploading a file.
- Fixed uploading not possible in some areas on iPads.
- Fixed not being able to submit a form if the user tried to submit it while a file upload was in progress.
- Fixed an issue where an attachments may stop working while files are in the process of being moved after changing file storage configuration settings.
- Fixed not being able to delete file storage configurations in the AdminCP.
- Fixed sorting not being retained when deleting multiple attachments from the Files section of the AdminCP.
- Fixed deleting an attachment not deleting the file from disk.
Core - Emails
- Fixed bulk mail replacement tags.
- Fixed HTML entities appearing in plaintext email content.
- Fixed reverting email templates disappearing (until a page refresh) as if they have been deleted.
- Fixed a broken language string in Sendgrid settings.
Core - AdminCP Member Profile
- Added “Go to Public Profile” button.
- Fixed an error when viewing the profile if the member had scheduled content for future publishing.
- Fixed the profile consuming significant server resources on large communities by changing the content statistics section to count all content, regardless of whether containers (i.e. forums), increment the user’s post count.
- Fixed content statistics not displaying correctly for some locales.
- Fixed accounts which are linked to Twitter not showing the correct Twitter username.
- Fixed a broken link to the notifications page.
Core - AdminCP Charts & Statistics
- Fixed charts consuming significant server resources on large communities by applying a default date range of the last 6 months.
- Fixed an error viewing the AdminCP keywords usage chart if the same keyword had been set more than once.
- Fixed errors in AdminCP statistics pages if there is no data.
- Fixed weekly charts showing the last week of the year twice when the year rolls over.
Core - Advanced Settings
- Added new setting option to only serve non-https images from local server.
- Added basic Redis usage information to the support area of the AdminCP for self-hosted communities.
- Fixed some inconsistencies when running tasks using cron.
Core - Misc
- Added administrator log entries for various actions which were not logging.
- Improved site mark as read process to avoid an unnecessary redirect.
- Fixed privacy policy not being accessible to banned members.
- Fixed searching of administrator/moderator logs with non-latin characters.
- Fixed moderator log showing an unparsed language string for some automatic moderation actions.
- Fixed error if a background task is working on something (such as sending notifications for a topic) which is deleted while the task is still running.
- Fixed error reporting when setting up Google Maps API.
- Fixed some background task not not showing their progress accurately on the AdminCP dashboard.
- Fixed guests not being able to hide announcements.
- Fixed potential error in calculating width and height of animated gifs when using ImageMagick.
- Fixed potential error generating the sitemap if orphaned content exists.
- Fixed the number of reviews on items not being recounted correctly (when upgrading from certain versions or after converting) if the item has reviews but no comments.
- Fixed some browsers not correctly caching remote images served by the local server.
- Fixed the code editor on the External Database login handler configuration screen not loading correctly.
- Fixed AdminCP Dashboard not loading when lots of background tasks are running by adding a limit of 100 to the number shown.
- Fixed “Configure Services” button in Community Enhancements truncating unnecessarily.
- Fixed reputation data for comments or reviews not being deleted from the database when the item they belong to is deleted.
- Fixed files not being removed from server when uninstalling an application.
- Upgraded JShrink to 1.3.1 (for PHP 7.3 compatibility).
Forums
- Added setting to RSS feed imports to auto-follow the author to created topics.
- Improved the UI of the “Poll” sidebar block, fixed the “View topic” link disappearing after viewing results, and fixed an error if the topic the poll belongs to is deleted.
- Changed behaviour of rating questions and answers that a user has already rated - now clicking the same arrow will undo the original rating, and clicking the other will change the rating to that one (previously clicking the same arrow did nothing and clicking the other undid the original rating).
- Fixed topics still being shown in search results to users who can longer see them if the per-forum setting to only show topics to the person who created them is turned on for an existing forum.
- Fixed guests not being able to change the selected forums when using fluid view.
- Fixed fluid view showing the wrong forums checked.
- Fixed error viewing the topic preview hovercard if the topic has been moved or merged.
- Fixed breadcrumb navigation in forums/topics in clubs if there is only one forum outside of clubs.
- Fixed some inconsistencies with automatic locking and unlocking of topics.
- Fixed question and answer ratings not being merged properly when topics were merged.
- Fixed error when approving very old topics.
- Fixed topics not being accessible if a category with a “minimum posts to view” setting set is changed into a forum without removing the value from that setting.
- Fixed topics from clubs not being included in the sitemap.
- Fixed marking a topic as read consuming significant server resources on large communities.
Commerce - Store
- Improved store display by hiding empty product categories.
- Changed the links to buy/redeem gift cards to be in the menu.
- Fixed possible error when searching products.
- Fixed products incorrectly showing as being in stock if they use different stock levels based on custom fields and all variations are out of stock.
- Fixed the “Continue Shopping” dialog showing multiple times when adding several products from the category list view.
- Fixed copying a product not copying all settings.
- Fixed broken UI when hovering over a product image in the store on communities which use a right-to-left language.
- Fixed product embed images not matching the styling of other embeds.
- Fixed an issue where copying a product could fail.
- Fixed meta description on product pages.
Commerce - Checkout
- Added AJAX validation to email field when checking out as a guest.
- Added ability to disable a payment method by setting the countries it is available to to no value.
- Fixed partial gift card codes being accepted.
- Fixed grouped products showing incorrect renewal amount on the checkout form when ordering multiple quantities.
- Fixed the prompt to log in not being shown for guests checking out.
- Fixed purchase not being processed properly with third party payment gateways if Commerce app is only accessible to certain groups.
Commerce - Payment Gateways
- Fixed possible error when saving a credit card using Stripe if customer already has a card on file.
- Fixed error when a guest pays using a Stripe method which requires redirect (3Secure, Bancontact, etc.)
Commerce - Subscriptions
- Added ability to apply subscription package changes to existing purchases.
- Changed Subscriptions to require renewal terms.
- Fixed disabled Subscription Packages still being purchasable and viewable in the sidebar block.
- Fixed duplicate entries in the AdminCP subscriber list if a member has inactive subscriptions.
Commerce - Client Area
- Added custom product fields to printed invoices.
- Fixed broken UI when viewing payment details on a $0 invoice.
- Fixed invoice status badges not being colored appropriately on the front end when using languages other than English.
Commerce - General Payments / Invoices
- Added an option to filter invoices by payment status in the AdminCP
- Improved notification emails for upcoming purchase renewals and transaction refunds to include more information.
- Improved display of customer purchases in admin control panel by separating active/expired purchases.
- Fixed missing tax on purchase reactivation.
- Fixed duplicate items sometimes being added when generating an invoice in the AdminCP.
- Fixed a possible error when marking an invoice as paid if awarding commission to other users (for example, from Downloads purchases or referrals) in some circumstances.
- Fixed potential errors adjusting Account Credit settings in the AdminCP.
- Fixed button to mark an invoice paid showing to admins on invoices created by guests even before the guest has filled in any account details (which show an error if clicked).
- Fixed editing a coupon form showing the start / end dates in the wrong timezone.
Commerce - Customer Management
- Fixed a potential error in the AdminCP member profile if a purchase has been deleted.
- Fixed an error in the Referrals tab of the customer page in the AdminCP.
- Fixed an error occurred when cloning customer fields.
- Fixed wrong AdminCP restrictions being checked for viewing customer statistics.
Commerce - Support
- Added option for retaining the default reply wrapper when using a stock action as a staff member replying to a support request.
- Added ability to filter support requests older or newer than a specific date in AdminCP.
- Fixed incoming emails being routed incorrectly if the same sender had recently sent an email to a different department.
- Fixed incoming plaintext emails sometimes being parsed blank.
- Fixed the feature which holds a staff member’s reply if the customer replies while the staff member is writing their reply, which wasn’t working if the staff member submits their reply by replying to the email notification.
- Fixed trying to require an associated subscription in support department settings not working.
- Fixed handling of custom support request fields for pay-per-incident support requests.
- Fixed long ticket names breaking UI in ticket history sidebar.
- Fixed uninstalling Commerce not disable the task to check for incoming POP3 emails.
- Fixed missing language string on the stock action form.
- Fixed wrong language string being used in the description for the default reply content setting.
- Removed IP Addresses used for Support Requests from the ModCP.
Commerce - Misc
- Fixed license key API handling of invisible characters.
Pages
- Changed the severity level of the error when somebody without proper permissions tries to load the sidebar manager from 3 to 2.
- Fixed pages that have been renamed not redirecting to the new URL.
- Fixed databases showing in the “Create” menu to users without permission.
- Fixed records in databases with “wiki-style” editing enabled not actually being able to be edited by all users.
- Fixed an issue where the form may not be displayed when trying to move a database record.
- Fixed missing language string in the dialog that shows when choosing “Custom” from the “Sort by” menu when viewing database records.
- Fixed the wrong template being used for reviews.
- Fixed the currently chosen database being disabled on the database select menu when editing a page in WYSIWYG mode.
- Fixed searching for database categories in the AdminCP showing categories from all databases.
- Fixed missing canonical tags.
Gallery
- Added a group setting to control whether users can download the original image or not, and whether it should be watermarked or not.
- Added the image to certain notification emails (new content, user mentioned, etc.).
- Added a setting to control whether showing a map defaults to on or off for images with GPS coordinates embedded.
- Added certain indicators (such as image pending approval) to the images shown on the Gallery index.
- Added “Lens Model” in EXIF data if present.
- Changed albums displayed on user profiles to sort by latest update (newest to oldest).
- Fixed an error when adding Gallery images with tags.
- Fixed an error if a guest tries to follow an image during the upload process.
- Fixed behaviour of the browser’s back button after viewing images in a lightbox and closing the lightbox.
- Fixed navigation between images not working correctly in the lightbox in some circumstances.
- Fixed images being marked as read before they have been seen when in the Lightbox.
- Fixed gallery albums and the uploaded images being shown separately in activity streams and on the “Overview” page in a club.
- Fixed deleting a club not deleting the albums inside it.
- Fixed members being able to move images into a category that normally cannot receive direct image submissions during the process of deleting an album.
- Fixed users being able to submit directly to a category if it requires albums to be used but the user does not have permission to create albums.
- Fixed a section for the category description showing even if the category has no description.
- Fixed image uploading on Internet Explorer 11.
- Fixed images not being accessible if the album is moved while they are being uploaded.
- Fixed “ModifyDate” EXIF tag being displayed as “Date Taken”.
- Fixed the wrong “last modified” date being used for albums in the sitemap.
- Fixed the files on disk being moved when rebuilding image thumbnails (it was placing all of the newly created images in the current monthly folder, rather than in the original folder).
- Removed ability to upload images in album descriptions, as this presented a source of confusion for some users.
Downloads
- Added ability to show custom fields in a new tab, below the description, or in the sidebar.
- Fixed “Buy” button still showing on paid files which have had purchases disabled.
- Fixed an issue where files could get incorrectly removed when changing a version number, or updating screenshots.
- Fixed the average review rating counting reviews that are not visible.
- Fixed support topics not being created after enabling the setting and editing a file.
- Fixed screenshots with parenthesis in the filename not being shown while uploading a new file version.
- Fixed a template error on certain PHP versions during submission if importing screenshots from a URL is enabled.
- Fixed the tooltip shown when hovering over the number of purchases for a file (when Commerce integration is enabled) showing “downloads” rather than “purchases”.
Blog
- Fixed clicking on a reaction for a blog entry sometimes opening an image lightbox.
- Fixed long blog names breaking UI.
- Fixed multiple icons (e.g. “pinned”, “hidden”, etc.) showing over multiple lines rather than next to the title when viewing a blog entry.
- Fixed cover photos not expanding if clicking on the same line as the title.
Calendar
- Fixed dates and times showing in the wrong timezone in cached areas/pages.
- Fixed time summary formatting for some locales when creating events.
- Fixed error on activity streams if the event associated with an RSVP has been deleted.
- Fixed potential error when deleting iCalendar import feeds.
- Fixed cover photos not expanding if clicking on the same line as the title.
REST & OAuth
-
New Endpoints:
- Core: Added support for managing clubs.
- Core: Added support for managing user warnings and fetching warn reasons.
- Forums: Added support for creating and updating polls in topics and blog entries.
- Calendar: Added support for managing Calendar venues.
- Calendar: Added support for filtering Calendar events by date range
- Calendar: Added support for sorting events by event start or end date.
- Added a parameter when deleting a node via the REST API to determine what to do with child nodes (previously that would just become orphaned).
- Changed OAuth Server behaviour to reject authorization or token requests for users who are banned or suspended.
- Fixed OAuth refresh tokens being lost if an access token request omits it.
- Fixed some endpoints not being available to requests authenticated with an OAuth access token granted by Client Credentials.
- Fixed requests that attempt to unhide content items that are already visible not updating other details.
- Fixed deleting reviews on Pages records using the REST API.
- Fixed display names which have a “” in them being returned as null.
- Fixed the documentation for the Commerce purchases endpoint missing a possible exception which can be thrown.
Installer / Upgrader
- Improved performance of UTF-8 converter in some instances when upgrading from 3.x.
- Changed the default MySQL collation to UTF8MB4 for new installations.
- Changed the upgrade message about hiding the AdminCP link when upgrading from older versions to recommend using two factor authentication instead of providing instructions about how to re-enable it.
- Fixed potential errors or inconsistencies after applying a patch if using disk caching for templates.
- Fixed an error when trying to upgrade if templates or CSS files exist in the database without an associated theme.
- Fixed bad conversion of Sparkpost settings when upgrading from 4.3.x.
- Fixed bad conversion of refund data in Commerce when upgrading from certain versions.
- Fixed an error when rebuilding legacy content (after a 3.x upgrade) when using PHP 7.2.
- Fixed an error in the messenger after upgrading from certain versions.
- Fixed soft-deleted content from older versions not being upgraded correctly.
- Fixed members potentially have an incorrect validating status after upgrading from 3.x.
- Fixed Gallery albums losing their sort orders may after upgrading from certain versions.
- Fixed UTF-8 Converter (part of upgrading from 3.x) potentially losing connection while compiling table information.
- Removed ability to access the AdminCP while an upgrade is in process to improve stability.
Converters
- Improved conversion user experience and simplified approach to running a conversion.
- Improved redirects for vBulletin 3/4 including attachments.php and printthread.php.
- Improved performance of certain background tasks launched following a conversion.
- Improved BBCode conversion when converting from MyBB.
- Improved converting member titles from vBulletin.
- Improved support for converting posts with links from vBulletin 5.
-
Improved Invision Community redirects to support multiple merged communities, now uses
/ic-merge-{core_app_id}/*
. - Improved support for [img:alignment] bbcode when converting from UBB.Threads.
- Fixed an issue where incomplete accounts could be created during a conversion.
- Fixed an issue where images uploaded to vBulletin5 “photo” posts do not convert.
- Fixed an issue where legacy XenForo versions may not be detected correctly in some edge cases.
- Fixed an issue where certain usernames may not convert properly from vBulletin, MyBB and XenForo.
- Fixed an issue where converted MyBB posts with inline attachments may display the wrong attachment.
- Fixed an issue where in certain circumstances Gallery albums/images may be converted to a category that was removed.
- Fixed an issue where private messages may not be converted from vB3/4 in certain circumstances.
- Fixed an issue where vBulletin archive links may not be redirected.
- Fixed an issue where hidden posts from vBulletin (3.x/4.x) may not convert correctly.
- Fixed an issue where topic reply counts were not converted.
- Fixed an issue where vBulletin Blog Attachments may not convert correctly from vBulletin 3.x.
- Fixed an issue where member history group information may not display correctly after conversion.
Changes affecting third-party developers and designers
Please note from “Core - Misc” section above: uninstalling an application will now delete those files from disk. Be careful when uninstalling your applications locally.
Backwards-incompatible changes that may affect third party applications / plugins:
- Changed how share services, file storage engines, package types, payment gateways, license key generation methods, server types, converters, and widget types are loaded: instead of using a DirectoryIterator to look at what files are on disk, all of these are now defined in a method. To add a new one, you can (and will need to) extend the appropriate method, rather than having users upload a file to a particular location.
-
Changed
\IPS\Node\Model::modPermission()
to require a value for the$class
argument. -
Changed how invalid language string keys are handled (that is, if calling
\IPS\Lang::addToStack()
with a language string key that doesn’t exist). Now rather than returning the key as it was passed, it will return the value HTML escaped in an effort to prevent accidentally introducing XSS vulnerabilities. -
Changed how table sorting works: If the column is specified in the content items
$databaseColumnMap
, the table name will be prefixed to avoid ambiguous column issues. -
Moved
\IPS\Content\Comment::checkProfanityFilters()
to the\IPS\Content
class, and changed it to work on both items and comments. - Removed deprecated constant \IPS\HTMLENTITIES.
- Removed deprecated get__stripTagsTitle magic method for node models.
- Removed deprecated \IPS\Lang::wordbreak method.
Enhancements / fixes for designers:
-
Added a
data-pageID
param to<body>
tag (alongsidedata-pageApp
,data-pageController
, etc.) to allow for targeted CSS styling per-node/item. - Changed theme setting keys to only allow alphanumeric values to remove confusion of why they may not be parsed in themes.
Enhancements / fixes for developers:
-
Added
\IPS\Request::referrer()
method to more reliably and securely get the referrer for a request without duplicating code. -
Added support for multi-table database deletes in
\IPS\Db::delete()
. - Changed how applications extensions are loaded: a data/extensions.json file (generated in the developer center when an extension is added/removed) now stores the available extensions instead of using a DirectoryIterator to look at what files are on disk. This change is backwards compatible for end users if there is no extensions.json file, but will need to be used properly once it has been generated.
- Changed maximum plugin name length to 128 characters (previously 32 characters).
- Fixed the ability to make cross-domain AJAX by removing the X-Requested-With header in AJAX requests.
- Fixed a missing try/catch when loading login handlers which meant 3rd party login handlers could completely break the login form and lock out the AdminCP to disable them.
Enhancements / fixes for translators:
-
Changed the version numbers on the support page to use a different language string (new string:
acp_version_number_raw
) than the AdminCP dashboard (acp_version_number
). -
Fixed days of the week always having an uppercase first letter (language strings
_date_this_week_c
and_date_this_week
now receive the day number so you can display each however you like rather than receiving the name from the server). - Fixed non-translatable options for the “Javascript include location” theme setting.
Fixes that only affect developer mode or third party apps/plugins:
-
Changed
\IPS\forums\SavedAction::runOn()
to separate the permission check and the actual logic into separate methods for easier hooking. -
Changed the database query log to skip over the core PHP class
IteratorIterator
when showing the function that ran a query. - Fixed resources sometimes duplicating when building applications for distribution.
- Fixed multiple SEO titles not working in custom URLs.
- Fixed errors in developer when member objects were compared.
- Fixed an error saving payment settings when in developer mode.
- Fixed an error saving Analytics code with developer mode enabled.
- Fixed an error deleting Gallery categories from clubs when in developer mode.
- Fixed error when a guest adds a product with tax to the cart when in developer mode.
- Fixed an error viewing the referrals page in the Commerce client area when in developer mode and using PHP 7.2 or higher.
- Fixed an error when parsing incoming emails for Commerce support requests when in developer mode.
- Fixed broken Hosting Settings page in Commerce on PHP 7.2 when in developer mode.
- Fixed an error that would occur sending emails when in developer mode if the email template parameters had changed but the updated templates had not been imported into the database yet.
Code-level fixes that may have been caused bugs in third party apps/plugins:
- Fixed moderator control panel approval queue not working for any apps where the database table for nodes contains a column with the same name as is used for the “hidden” column in their database table for items.
-
Fixed
\IPS\Math\Number
constructor accepting a blank string (this will now throw an exception). -
Fixed encoding of
\IPS\Output::i()->jsVars
for values containing quotes. -
Fixed the
core.global.core.datetime
JS controller not returning the correct value for the day of the week. -
Fixed
\IPS\Content\Item::addMeta()
not throwing the correct exception when passed an invalid value for$type
. -
Fixed
\IPS\Content\Item::markRead()
not honouring the$member
argument.