MODX Revolution 2.5 is out! The first pre-release was released last night, and we'd like to give you a walk through of what's new and improved in this release.
First of all, here's who contributed to this release: JP DeVries, Lukas Zahnd, Romain, Jason Coward, goldsky, Thomas Jakobi, Jan Peca, inreti, Mike Reid, Christian Seel, Jan Tezner, Whitebyte, Sergey Shlokov, Jens Külzer, Gildas NOEL, oori, ViieeS, Vasily Naumkin, Treigh, Ronald Exterkate, Oleg, Nikolay Lanets, Liam Kerr, Johan van der Molen, Andrey, Alexander Herling.
Without these contributors, MODX 2.5 wouldn't have happened, so you're the best!
Now, onwards to all the great new things in this release.
Improved Accessibility & Usability
JP was the top community contributor for this release (at least based on number of commits!), and one of the reasons for that is his quest for a more accessible manager. In 2.5, he has delivered a number of improvements related to accessibility, including increased screenreader and keyboard navigation on the login screen.
A bigger and more noticable improvement though, was his effort in making the MODX manager more mobile friendly. It's now sort of responsive, allowing you to actually navigate the manager on mobile devices in a way that doesn't want to make you tear your eyes out. It's not a full mobile-first or accessible experience, but it does make it a lot more usable for quick changes to resources or elements on the go.
Here's some screenshots of the manager in action on a (simulated) small device.
More Manager Improvements
One of the most disliked features in MODX is probably the dynamic assets minification, controlled by the compress_js and compress_css settings. It was meant to provide a better performance by minifying and compressing assets on the fly, rather than serving dozens of different files. But it was also prone to issues and was often the cause of broken managers.
For third party extras, that does mean their assets are no longer automatically minified in 2.5 though, so if you have a lot of different files in your extra, it probably wouldn't hurt to precompile those as well. The number of files being downloaded is becoming less of a problem with HTTP/2 and SPDY being adopted rapidly, but not everyone is there yet ;)
Another performance improvement was provided by Ronald Exterkate, who found a way to cut down the time the parser spent processing MODX tags in certain cases. This speed improvement is rumoured to be able of cutting down parsing time anywhere from a few to 15%, so definitely worth upgrading for if your site is fairly complex. The speed improvement has to do with deep levels of parsing, so the more complex your site build, the more you might benefit from this improvement.
PHP 7 Compatibility
Another long-awaited improvement is compatibility with PHP 7. This effort involved several members of the community, Lukas Zahnd being the top contributor in this area, which focused on updating dependencies within MODX that were not compatible, as well as fixing some issues caused by a number of breaking changes in PHP 7.
There aren't a lot of hosts offering PHP 7 by default yet, but when they do you'll be able of migrating without concern about the MODX core.
Easier CMPs with a new Manager Controller
Announced at the MODXpo in Munich, Romain contributed (among other things!) a new way to build manager pages in MODX 2.5. This makes use of a new base controller class, the modParsedManagerController, which eases the way you can use simple HTML and MODX tags to build out a component.
We'll look at how this works in more detail in a future post.
New Base Template
Congratulations, you installed MODX! Here's a blank page...
Here's a look at what you now get on a clean install:
Obviously there's a lot more in this release that is worth checking out. The example core/ht.access file now contains something that will actually lock down your core folder when you rename it to .htaccess, new output filters
stripmodxtags were added, users now have a new
createdon field that tracks when they signed up and a whole bunch of small tweaks and improvements were made to the manager.
The complete changelog for this release (which, if upgrading from 2.4.2, also include the fixes slated for 2.4.3-dev) is included below and can also be seen on github.
MODX Revolution 2.5.0-rc1
- Implement X-Powered-By header to send "MODX Revolution" on all requests [#12885]
- Add cleanup script to remove legacy files during upgrades
- Fix installed package list in package detail page when the package's name has spaces [#12870]
- Add filter and search to the templates grind in TV panel [#12873]
- Add typeahead for templates in resource panel [#12872]
- Fix session warning on HHVM [#12868]
- Add new stripmodxtags output filter [#12860]
- Add new base template and resource content [#12855]
- Fix re-definition of function mkdirs
createdondate field to modUser [#12581]
- Ensure $restarted in templates/language.tpl always exists [#12847]
- Update LinkedIn link description on Help page [#12851]
- Fix undefined index in modOutputFilter->filter [#12856]
- Add new output filter 'htmlspecial' [#12861]
- Autoload third party packages when viewing manager actions [#11866]
- Fix example core/ht.access file to properly lock down access to the core when used [#12503]
- Fix selecting values on the tag TV input type [#12627]
- Fix the insert element by drag & drop feature remembering properties it shouldn't [#12729]
- Potential improved speed on certain pages thanks to processElementTags optimisation [#12717]
- Fix checking for duplicate URIs when resources are unpublished [#12844]
- Add border for grids
- Change modResource Children to Composite relation [#12279]
- Allow searching by Resource ID in Uberbar [#12783]
- Add modParsedManagerController which can be used for developing CMPs with snippets and chunks [#12555]
- Allow custom redirect method for each action button in action bar
- Fire emptyTrash event after emptying recycle bin [#12673]
- Add anonymous_sessions to allow session-less access for anonymous users [#12616]
- Make the manager a lot more mobile friendly [#12776]
- Fix .icon-coffee class to show a coffee cup, use .icon-coffeescript for the code icon [#12784]
- Update Font Awesome to 4.5 (includes
- Make use of the maximum available height when viewing the error log [#12746]
- Improve usability of the tree by limiting click target for editing containers to the name [#12773]
- Add published_resources and unpublished_resources to result of OnResourceAutoPublish event [#12747]
- Improve keyboard navigation and screen reader support on the login screen [#12784]
- Update PHPMailer to 5.2.14: https://github.com/PHPMailer/PHPMailer/releases/tag/v5.2.14 [#12808]
- Update Smarty to 3.1.27: https://github.com/smarty-php/smarty/blob/v3.1.27/change_log.txt [#12807]
- Allow uberbar labels and icons to be set server-side in extended search processors [#12749]
- Add ability to unpack zip files in the file tree / media manager [#12775]
- Ensure setup can continue if date.timezone is not set [#12738]
- Make modPhpThumb class compatible with PHP7 [#12809]
MODX Revolution 2.4.3-dev
- Prevent uncacheable elements from being cached in cacheable elements [#12835]
- Fix the DocBlock comment for leaveGroup() [#12877]
- Fix modX->getUser to force load settings when parameter is passed [#12840]
- Fix issue with parent name not showing when creating a new resource under a parent [#12849]
- Fix system settings pagination issue if default_per_page is > 30 [#12862]
- Remove the 'Installed on' part of the language string.
- Fix getOption call in modUser->getProfilePhoto
- Sets correct responseType in the rest service for multiple packages via a single request [#12669]
- Fix loading rich text editors on non-document resource types [#12632]
- Fix dashboard and dashboard widget save button [#12711]
- Fix failure message in Export processor [#12709]
- Fix tree style for deactivated plugin [#12712]
- Fix fatal error if user not found [#12772]
- Fix warning generated by configcheck dashboard widget if safe_mode or open_basedir is enabled [#12745]
- Include a random hash for core assets being loaded to refresh browser caches [#12700]
- Fix fatal errors in the manager on PHP7 [#12741]
- Fix "Remember Me" on the manager login [#12802]
- Show message after triggering a URI refresh [#12800]