This release of Neos comes with some great new features, bugfixes and a lot of modernisation of the existing code base.
As usual, we worked hard to keep this release as backwards compatible as possible but some of the changes might require manual adjustments. So please make sure to carefully read the upgrade instructions below.
- added translation to all flash messages
- added translator and translation units to all flash messages
Related issue: #3334
The default asset collection for every site is now listed in the site management module.
This feature improves the policy selection in the account editing by making use of the labels and descriptions added to roles and privileges with Neos 7.0
Before: !image
After: !image
With this helper it’s easier to define custom node label schemas in nodetypes.
Moved the previously used Eel expression from the main Neos.Neos:Node
nodetype into the NodeHelper. Similar to the TranslationParameterToken it provides a chainable interface to simplify custom nodetype naming.
All labels in the Neos document and content tree should still be the same. Override the nodetype label by copying the expression from Neos.Neos:Node
and modifying it.
Examples:
Use properties as label with fallback chain (replaces the previous default) ` 'Neos.Neos:Node': label: "${Neos.Node.labelForNode(node).properties('title', 'text')}"
`
Show number of elements in a multicolumn next to its label ` 'Neos.Demo:Content.Columns.Two': label: "${Neos.Node.labelForNode(node).postfix(' (' + q(node).children().children().count() + ' elements)')}"
`
Use override, prefix and postfix: ` 'Neos.Demo:Content.Special': label: "${Neos.Node.labelForNode(node).prefix('The ').override('child of').postfix(' ' + q(node).parent().get(0).label)}"
`
Adjust cropping: ` 'Neos.Demo:Content.Cropped': label: "${Neos.Node.labelForNode(node).crop(20, ' - - -')}"
`
Again we plan to remove the mission pieces of the EmberJS based UI. It is an ongoing process since version 5.0.
This PR is based on the webpack 5 upgrade PR (#3301).
Reimplement the API based on vanilla js. And remove the old ember based JS in the end.
Check the backend modules and the APIs like window.NeosCMS.Notification
and window.NeosCMS.I18n
This allows to use a single tag in AFX to render links to actions or resources like this:
<Neos.Fusion:Link.Action href.action="show" href.controller="SomeOther" href.arguments={{ object: myObjectValue }}>Link text</Neos.Fusion:Link.Action>
<Neos.Fusion:Link.Resource href.path="resource://Some.Package/Public/Images/SomeImage.png">Download</Neos.Fusion:Link.Action>
This change adds a new Fusion object to replace many situations where the Case object was used just to return a value based on a string.
The idea is based on the new match method in PHP 8 https://www.php.net/manual/tr/control-structures.match.php.
Related issue: #3318
With this new Fusion object it’s possible to debug to the browser console via an inserted script tag instead of showing a big dump that breaks the layout.
It optionally allows setting a title, method and additional arguments.
` renderer.@process.debug = Neos.Fusion:Debug.Console { value = '%cfoo' method = 'table' color = 'color: green' }
`
Related issue: #3319
Related issue: #3304
Before this change only resource://…
urls were supported.
Set https://source.unsplash.com/random
as background image and enjoy a nice random picture for every login.
While experimenting with PSR-15 middlewares I found out that no content type is returned from the Fusion rendering step when using the Neos default page prototype. This keeps those middlewares from applying their effects as they do not know what kind of content they get.
This can be easily fixed in custom packages, but it makes sense to just have this as default for the future.
See https://docs.neos.io/cms/references/upgrade-instructions/upgrade-instructions-7-0-7-1
Note
Additionally all changes in Flow 7.1 apply, see the release notes to further information. See https://flowframework.readthedocs.org/en/7.1/TheDefinitiveGuide/PartV/ReleaseNotes/710.html