8.5.0 Release Notes

Improvements?

Let us know by posting here.

Feature Updates

  • File Storage Location improvements: added the ability to search by file storage location, added file storage location to the file menu, allows changing file storage in bulk using a progressive operation, prevents deletion of file storage locations if they have files (thanks marvinde)
  • Added the User Selector attribute to the core, enabling the selection of users for pages, files and Express objects (thanks haeflimi)
  • Much improved logging support: more actions are logged, and you have the ability to specify what log levels you want to keep/discard in the Dashboard. Additionally, Monolog Cascade support means granular logging configuration is available in the PHP config.
  • Added date modified to express entries (thanks deek87)
  • Added “Author” as a property to Express – the users who create express entries are tracked. Added form field for author property as well.
  • Added the ability to specify an HTML Input vs Entry Selector vs. Select2 search autocomplete for association selecting in the Dashboard (thanks hissy)
  • Added the ability to filter the Express Entry List block at the block level before the data hits the page.
  • Express Entry List block can now be filtered by associations in advanced search on the page (thanks hissy)
  • You can now filter block types by searching them when adding blocks in stacks (thanks mlocati)
  • Added preview images when mousing over images in the file manager (thanks haeflimi)
  • Updated CKEditor from 4.9.1 to 4.10.0 (thanks MrKarlDilkington)
  • Added the ability to search a site by any locale in the local selector on multilingual sites (thanks mlocati)
  • Added a page changes report that lets users export a full list of versions that have been created during a particular time period.
  • Nascent support for the upcoming REST API (defaulted to off.)
  • Add ability to configure password requirements in a new Password Options Dashboard page.
  • Add ability to keep users from reusing the same password.
  • Add ability to automatically log users out after a period of inactivity.
  • Added a Dashboard page to control Automated Logout settings that were previously only available by editing PHP config files directly (thanks mlocati)
  • Added ability to automatically log out all signed-in users from the Automated Logout page.
  • Added a dashboard page to configure trusted proxy IPs (thanks mlocati)
  • Show URL of selected page in sitemap selector (thanks mlocati)
  • Added an external authentication type based on OAuth2 authorization, allowing one concrete5 site to act as the authentication provider for another.
  • Add support to generate animated GIF thumbnails (Requires Imagick) (thanks mlocati)
  • Add “Scheduled” as an option for page searches (thanks deek87)
  • Add the ability to automatically deactivate user accounts that receive many failed login attempts
  • You now can control whether CSV exports contain a BOM with an Export Options Dashboard settings page (thanks mlocati)
  • Added ability for YouTube videos to skip setting a cookie (thanks HamedDarragi and tigerxy)

Behavioral Improvements

  • We have removed the spaces from URLs generated by the topic list block for improved display (thanks JackVanson)
  • We now show the types of Express entities being viewed in the Dashboard page header (thanks hissy)
  • Show errors when displaying Ajax dialogs fails (thanks mlocati)
  • We now remember the state of both sitemaps in the 2-up sitemap interface, instead of just 1 (thanks mlocati)
  • Split install steps in smaller chunks for better performance (thanks mlocati)
  • SVG images in the image block can now be resized in the image block (thanks dimger)
  • When entities that own other entities are deleted in Express their child entities will also be deleted.
  • Improvements to the stack panel: you can now drag the entire row (instead of a small handle) and you can click an arrow to expand/collapse the stack (thanks mlocati)
  • My Account now honors user attribute sets (thanks marvinde)
  • Registration now honors user attribute sets (thanks marvinde)
  • Added the ability to sanitize uploaded SVG files (thanks mlocati)
  • Improved performance of large CSV exports (thanks mlocati)
  • Express Entry Detail block now modifies the title of the page when it’s rendering a detailed express entry (thanks hissy)
  • Improvements to drag performance and experience in sitemap (thanks mlocati)
  • Miscellaneous improvements to editing external links – https://github.com/concrete5/concrete5/pull/7004 (thanks mlocati)
  • When deleting an element (express entity, file, page, site, user), the associated row in the index table are automatically deleted (thanks mlocati)
  • Uploading files via the Your Computer dialog in the File Manager now has chunking support (thanks joemeyer)
  • Fixed error where “stay signed in for two weeks” didn’t work (thanks Xianghar)
  • Send a JSON error response only if the client is requesting a JSON response (thanks mlocati)
  • When showing changelog updates for packages we now read from CHANGELOG.txt and CHANGELOG.md if they exist (thanks mlocati)
  • You can now view SVG images in the file manager like other image files (thanks mlocati)
  • Remove frameborder attribute on YouTube block and use CSS border for W3C validation (thanks marvinde)
  • Show different text for aliases and external links in removal confirmation (thanks mlocati)
  • New and existing databases will be updated to utf8mb4 – adding emoji support! (thanks mlocati)
  • Add a version-specific querystring parameter to URL local assets based on core version or the package version (thanks mlocati)
  • Improvements and consolidation of different libraries used to upload files (thanks mlocati)
  • Added CKEditor Emoji plugin (thanks mlocati)
  • Allow sending the registration notification to multiple email addresses (thanks marvinde)
  • Fixing issue with Image Editor not adding crossOrigin (thanks deek87)
  • Moving Delete all channels button to header to remove ambiguity (thanks joemeyer)
  • Use translated text when dislaying checkbox labels with the checkbox custom attribute (thanks mlocati)
  • Fixed bug where deleted pages could break uses of the page selector component that referred to them (thanks Ruud-Zuiderlicht)
  • We use less memory when uploading and resizing large images in the file manager (thanks mlocati)
  • Better validation against unexpected input when filtering page list blocks and page title blocks by months and years (thanks hissy)
  • Better error checking against remote files uploaded in the file manager (thanks mlocati)
  • Keep animations when ConstrainImageProcessor resizes animated GIFs (only works if you’re using Imagick support in PHP) (thanks mlocati)
  • Return the default 404 error page if a feed can't be found (thanks mlocati)
  • You can now merge social links as well as append them in config (thanks mesuva)
  • We force MyISAM database tables for the PageSearchIndex now only if the MySQL version of InnoDB tables doesn’t support it (thanks mlocati)
  • Downloading multiple files with the same name downloads only one (thanks marvinde)
  • Added the ability to replace a page with another page (thanks mlocati)
  • Update CKEditor from 4.10.0 to 4.11.1 and add Auto Link plugin (thanks MrKarlDilkington)
  • Fixed workflow emails showing irrelevant dates in some cases (thanks katzueno)
  • Fixed: Group Combination returns wrong group combination if there is another entity contains same group combination (thanks deek87)
  • Improved speed when adding files to file sets because we no longer refresh thumbnails on every add to file set (thanks mlocati).
  • Fixed incorrect flag showing if a page is aliased from one locale to the next (thanks Ruud-Zuiderlicht)
  • Fixing errors in UserList::filterByInAnyGroup (thanks deek87)
  • Fix issue where some console commands didn’t have a description even though it had been set in the command class (thanks mlocati)
  • Fixed: When using inline blocks, I can edit other inline blocks (thanks hissy)
  • (Try to) redirect to the newly generated thumbnail if it's the requested one (thanks mlocati)
  • Dashboard page title tags are now translated properly (thanks mlocati)
  • Stack In Dashboard leave pop-up menu when adding a content block (thanks mlocati)

Bug Fixes

  • Fixed inability to delete conversation messages from dashboard (thanks hissy)
  • Fixed: Unpublished scheduled page gets published when there is a new version with schedule (thanks deek87)
  • Fixed: Avoid displaying an empty message when forcing exit edit mode (thanks mlocati)
  • Fixed built-in limit of 1920x1080 on some uploads (thanks mlocati)
  • Fixed: Automatically resize uploaded images" breaks PNG semi-transparency (thanks mlocati)
  • Fixed: User with 'Approve Changes' permission is not able to approve content in global areas (thanks mlocati)
  • Fixed: Avoid error on getting users of group permission access entity when group has been deleted (thanks hissy)
  • Improved page version publishing date support to ensure that versions cannot overlap (thanks mlocati)
  • Fix too many results in PagerAdapter::getSlice (thanks mlocati)
  • Fixing Issue when deleting users who created other users (Thanks deek87)
  • Fixed bug where a session cookie is always created in a multilingual site, even when it shouldn’t be required (thanks marvinde and mlocati)
  • Fixed poor performance when running the search indexing job on large sites where areas are set to use the blacklist indexing method (thanks ahukkanen)
  • Fixed: Trying to add a larger number of files to a file set in bulk leads to an out of memory error (thanks mlocati)
  • Fixed errors and buggy behaviors in sitemap overlay dialog (thanks marvinde)
  • Fixed minor display issues with the page version listing dialog/panel (thanks marvinde)
  • Fixed When the Zend I18N component loads language files with wrong or missing plural rules (thanks mlocati)
  • Correctly detect if sendPrivateMessage returned an error (thanks mlocati)
  • Fixed Call to a member function getTimezones() on null on editing profile (thanks mlocati)
  • MIscellaneous bug fixes with scheduled pages and 404 experience (thanks deek87)
  • Fix ParentPageField search field when page is no (more) available (thanks mlocati)
  • Fixed bug where editing an express entry in the Dashboard doesn’t re-show the entry form when validation is failed (thanks ahukkanen)
  • Fixed inability to add page type composer output control blocks if you were not the super admin but you still had access to page type defaults (thanks hissy)
  • Fixed: Single::addGlobal can create the same single page repeatedly (thanks hissy)
  • Fix resizing images on import when only max height is set (thanks mlocati)
  • Fixed: Thumbnail error takes down Dashboard completely (thanks mlocati)
  • Fixed: we now check more appropriate permissions when checking to see if users have permissions to edit stacks (in advanced permissions) (thanks mlocati)
  • Fixed: Deleting attributes used with customized results in advanced search leads to an error (thanks mlocati)
  • Fixed: RSS Feed can not be filtered by multilingual parents (thanks mlocati)
  • Add CSRF validation token to Copy Languages (thanks mlocati)
  • Fixed bug when the site id contained in the ConcreteSitemapTreeID cookie does not match a valid site (thanks marvinde and a3020).
  • Fix an error when selecting trash or system pages as the parent page on page search (thanks deek87)
  • Fixed: Old draft pages of multilingual site upgraded from 5.7.5.13 to 8.4.x gets error (thanks deek87)
  • Fixed bug where users could see certain aspects of others users private messages (thanks mlocati)
  • Patch Zend HTTP with security update to fix https://framework.zend.com/security/advisory/ZF2018-01 (thanks mlocati)
  • Fixed: Currently when using a userSelector if you search for a user or load a new page and try to use the dropdown to select user(s). The option will disappear. (thanks deek87)
  • Fixed: Page Selector with pagination doesn't work (thanks marvinde)
  • Fixed bug where exporting forms might put the form data in the wrong columns.
  • Fixed: Page version menu doesn't close automatically (thanks joemeyer)
  • Fixed: Option for the multilingual canonical URL is not respected (thanks 1stthomas)
  • Fixed: https://github.com/concrete5/concrete5/issues/7152 (thanks mlocati)
  • Fixed: Block is not being rendered using custom template after editing when custom template was set programmatically (thanks fabian)
  • Only parse $_SERVER[‘argv’] on the command line (thanks mlocati)

Developer Updates

  • Completely new routing component with a much nicer syntax for creating custom routes to closures, controllers and other classes, with full support for route requirements, HTTP verbs and much more. (fully backward compatible)
  • concrete5 now supports PHP 7.3
  • Adding Redis as a Session and Cache handler (thanks deek87 and concrete5 Japan)
  • Added the ability to rescan files via a console command.
  • Much improved console command, including support for progress bar, Laravel-like syntax definitions and more.
  • Improve ability to configure and extend concrete5 session.
  • New memcache session handler. See https://github.com/concrete5/concrete5/pull/7258 for configuration information.
  • Added an option to control whether or not to display parent page in AutoNav (thanks hissy)
  • Allow custom class loading from the package for a custom permission key (thanks biplobice)
  • Trigger event when the display order of a page changes (thanks a3020)
  • Improved SiteLocaleSelector: show Country in addition to Language, and added new selectMultiple method to the class (thanks mlocati)
  • Add a config value to toggle the generator meta tag (thanks marvinde)
  • Upgrade Imagine image manipulation library from 0.7.1 to 1.0.0 (thanks mlocati)
  • Refactored certain old tools files into routes, views and controllers (thanks mlocati, marvinde)
  • Added the ability to automatically include CSS files when adding/editing blocks by including an auto.css file in the block folder (thanks mlocati).
  • Image Slider block - remove old CSS and JS assets code (thanks MrKarlDilkington)
  • Refactoring and code improvements to CookieJar service (thanks mlocati)
  • Improved code quality and removal of PHP NOTICE errors (thanks mlocati, a3020)
  • Tons of new docblocks added to core classes (thanks mlocati)
  • Fix docblocks in Number service (thanks a3020)
  • Improve installation detection by allowing {$env}.database.php
  • Let sitemap event listeners modify the sitemap data (thanks mlocati and a3020)