Feature Updates
- Added the ability to automatically deactivate users based on how long it’s been since they’ve logged in.
- Added the ability to save search presets for users and pages and Express objects. (thanks marvinde)
- Added the ability to sort block types and block type sets in the Dashboard (thanks mlocati)
- Add support for theme-color meta tag in the Basics settings section of the Dashboard (thanks mlocati)
- Allow upscaling images for thumbnails based on thumbnail type (thanks mlocati, jneijt)
- Add tooltips to the plugins listed on the Rich Text Editor page in the Dashboard that describe what they do (thanks mlocati)
- The Page Selector attribute is now integrated into the core (thanks marvinde)
- Added a Draft List block type to the Waiting for Me screen in the Desktop (thanks marvinde)
- Added a command line script to generate sitemap.xml (thanks mlocati)
Behavioral Improvements
- Reworked Add Content Panel Functionality: Make it so that clicking again on the plus/add panel closes the panel (like all others.), If a user option/clicks the panel when opening it, activate the blue/pinned/locked functionality. Clicking to close the panel closes the panel and removes this functionality (thanks marvinde)
- Use UI localization context in concrete5 toolbar & account menu (thanks mlocati)
- Fixed: Whoops report is confusing the reporting with the original error when adding or updating blocks that fail (thanks mlocati)
- Version approved date is now shown in the approved version panel (thanks marvinde)
- Fixed: Language Switcher's language text should display in their native language (thanks mlocati)
- We now highlight localized stacks that have been created to override global stacks in a multilingual website (thanks mlocati)
- Make marketplace error handling more consolidated and handle timeouts
- Set links color in jquery ui dialogs (thanks mlocati)
- Better support for with MySQL 8 (thanks mlocati)
- Support for multiple Page List blocks on a page (thanks marvinde)
- Fix handling of JavascriptLocalizedAsset URL & path (thanks mlocati)
- Don't try to get package lists when concrete5 is not installed in language-install CLI command (thanks mlocati)
- Reduce concurrency problems in FileSystemStashDriver::storeData (can be a problem when clearing a cache on a high traffic site) (thanks mlocati)
- Added a link to the concrete5 Slack channel on the installation screen (thanks mlocati)
- Added a link to the concrete5 Sack channel in the welcome screen (thanks mlocati)
- Improved performance in route resolution (thanks mlocati)
- Avoid long timeouts when checking the Google API Key in Google Maps block (thanks mlocati)
- Avoid warning in Securimage::check when no captcha token is received (thanks mlocati)
- Add $subject to form email templates to make it easier to customize (thanks katzueno)
- Add option to not create session cookies in multilingual sites (thanks mlocati)
- Changed Redactor to CKEditor in the Conversations Rich text editor
- Add ability to change social network icon via config (thanks goesredy)
Bug Fixes
- Fixed irritating bug where adding multiple express form controls of the same type in a row would cause an error and require form controls to be added and re-saved before proceeding (thanks JeffPaetkau!)
- Fixed error when trying to login using certain third party authentication types (thanks fabian)
- Fixed: File Manager - Duplicate and blank search presets created when creating multiple search presets without page refresh (thanks marvinde)
- Fixed bug where Next/Previous block might skip pages under certain conditions (thanks gfischershaw, mlocati)
- Fixed: C5 8.4.0 - Unable to select root page (home) when adding a new page in sitemap on a multilingual site
- Specifying the items per page for an express entity now works.
- Fixed: 8.4, File Manager in versions, "Invalid file version" when removing old item (thanks mlocati)
- Fixed Call to a member function generate() on null at index.php/dashboard/extend/update
- Fixed bug resolving proper Multilingual Section from browser locale under certain situations (thanks mlocati)
- Fix HackerOne issue 277479 (thanks mlocati)
- Fixed: Copy page moves cID instead of copy in MultilingualPageRelations table (thanks 1stthomas)
- Fixed Express Bug: Argument 1 passed to DashboardFormContext::setLocation() must be an instance of TemplateLocator, boolean given
- Fixed exception thrown when accessing index.php/ccm/system/accept_privacy_policy directly.
- Fixed: Deleting theme error does not have a method 'getPackageItems
- Fixed out of memory error happening on non-US systems when a broken legacy package is included in the packages directory (thanks mlocati)
- Fixed errors with the Page List block not properly filtering by date options (thanks gfischershaw)
- Fixed 8.4.0RC2 - Search presets cannot be deleted in bulk (as the context menu suggests
- Fix a bug where the file manager's breadcrumb is behind the search form (thanks marvinde)
- Fixed inability to disable CKEditor plugins (thanks mlocati)
- Fix setTrustedProxies for Symfony 3.3.0 (thanks mlocati)
- Fixed: FileFolder::getNodeByName and duplicated folder names (thanks mlocati)
- Fix setting the "required" attribute of the privacy agreement on install page (thanks mlocati)
- Actually add translatable strings extracted from config files to Translations instance (thanks mlocati)
Developer Updates
- Much improve sitemap.xml generation routine, including better memory usage, better ability for extension, and cleaner code (thanks mlocati)
- General code cleanup (thanks mlocati)
- Add "withKey" feature to configuration (thanks mlocati)
- Add Thumbnail Type events (thanks a3020)
- Fix returning file objects in Exception classes (thanks a3020)
- Added
on_block_output
event (thanks a3020)
- Added a debug option in the Dashboard to report PHP NOTICE errors (thanks mlocati)
- Bring back the setNameSpace() method in ItemList (thanks marvinde)