2.3.0
User experience improvements
Stylesheets are now replaced on load of pages in backend allowing different stylesheets per page to be applied correctly. This might introduce a slight flash of unstyled content on changing pages.
Text editor placeholders are now translatable
The Neos logo in the login screen is now replaceable by configuring a different partial path for the login and overwriting the partial containing the logo.
The login screen has an overhauled CSS for better usability on mobile devices.
The content cache filters special characters used inside the cache to avoid broken cache entries. The special characters are all ascii control characters that should not appear in regular content but are sometimes introduced by copy/paste from other applications.
The alignment of expand icons in the node tree was corrected.
Select options in an inspector select editor can now
Switching sites is no longer error prone to session values like
lastVisitedNode
not lining up with the new site.Cross-domain linking behavior was improved by changing internal behavior of the linking service.
RequireJS mapping for views is now the same as for editors, handlers and validators, allowing you to includde custom views to the inspector.
Node repair repairs shadow nodes, removes nodes with invalid dimensions, uses less memory and has an overall improved stability. The command also got
--skip
and--only
options now to process the repairs in small chunks for bigger sites.
Asset and Media improvements
You can now add your own strategies to track usage of assets in your project. This is used in Neos to track usage of Assets inside content. Any AssetUsageStrategyInterface
implementation that you provide will also be taken in to consideration in the Media module.
Extensible Asset validation allows you to add validation to any asset class from your package, restricting the possible uploaded assets.
Assets can now be replaced in the Media module, which will automatically put the new asset in place in all places the old one was used before. This works in conjunction with the asset usage strategies.
The image handling supports ImageMagick 7 now, but that breaks support for some older versions.
Kickstarted sites improved
The kickstarted site now contains only the homepage, no content element anymore. Additionally the TypoScript was streamlined and improved towards extensibility.
TypoScript and EEL
The new TYPO3.Neos:ContentElementWrapping
prototype can be used as a processor to the same as the contentElement.editable
ViewHelper of Neos. You don’t need to do this for regular content elmeents, but for example to make properties of pages inline editable.
A TYPO3.TypoScript:Debug
prototype allows to debug values inside TypoScript. You can set arbitrary key/value combinations which are output formatted.
The TYPO3.TypoScript:Collection
object now has itemName
set to item
as default. That means you can access the current element of the collection inside the renderer via item
, previously there was no default set.
The TYPO3.Neos:DimensionsMenu
replaces the TYPO3.Neos:DimensionMenu
(note the “s”). For backwards compatibility reasons TYPO3.Neos:DimensionMenu
still works but is deprecated. The new DimensionsMenu has much more features than the old one and can be used to render dimensions in various ways.
All multi column elements now automatically provide the columnIteration
variable containing iteration information and the columnLayout
variable containing the selected laoyut via TypoScript context to the children (the columns).
The new sort
operation (example usage: ${q(node).children().sort('title', 'DESC')}
) is now available. Note that the sort is done in PHP for now, so performance for bigger datasets might decrease.
Caching changes
Objects with @cache.mode = 'cached'
and no entryIdentifier
set previously would use all currently assigned context variables (+ the TYPO3.TypoScript:GlobalCacheIdentifiers
prototype) to build an entryIdentifier
. This behavior is rather pointless as it would also use the request and possibly set backend configuration variables for example. The new behavior is to only use the GlobalIdentifiers prototype, so make sure you configure the necessary entryIdentifier
variables.
Dynamic cache is a new mode for the TypoScript cache configuration. This mode will cache results but create separate cache entries based on a configured discriminator. This cache discriminator does not need to be part of the parent objects cache identifier to work (which is the case for fully cached segments). The drawback is that evaluation of this will execute a bit of PHP logic instead of pulling the cached value straight from cache. A typical example for a descriminator and dynamic cached segment is if your result is based on a request argument. See documentation for configuration examples.
Further additions
In addition to the larger features, lots of small improvements and bugfixes have been included in Neos 2.2, among them:
Filetype icon view helper to output icons for specific filetypes.
Various documentation fixes
General Cleanup of NodeTypes package.
See also the full release notes
Upgrade instructions
See https://www.neos.io/download-and-extend/upgrade-instructions-2-2-2-2-3.html
!!! Breaking changes
Keep supertypes unset in supertypes unset
This bugfix correctly keeps supertypes unset that are unset in a parent node type when inheriting, which was not always the case. As a result some previously (wrongly) existing configuration might now disappear.
Http RequestHandler returns correct instance of Request and Response
If you used
Request::createFromEnvironment()
to create URLs in your custom code you must retrieve theRequest
object from theRequestHandler
from now on. Otherwise you might run into malformed URLs like https://acme.com:80 (depending on your environment).
Note
Additionally all changes in Flow 3.3 apply, see the release notes to further information. See http://flowframework.readthedocs.org/en/3.3/TheDefinitiveGuide/PartV/ReleaseNotes/330.html