Neos 8.2

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, since it’s a major release, some of the changes might require manual adjustments. So please make sure to carefully read the upgrade instructions below.

New Features

FEATURE: Make login logo configurable

Since ages, we are able to configure the background of the login to customize. The logo was often replaced by CSS. With this change, we are able to configure a logo as well.

The new setting is ‘Neos.Neos.userInterface.backendLoginForm.logoImage’

Review instructions

Configure a new logo and check the login screen.

<img width=”1688” alt=”Screenshot 2022-10-18 at 10 39 31” src=”https://user-images.githubusercontent.com/1014126/196380887-4d52a85a-61d0-4f1b-b24a-e8d070845acb.png”>

FEATURE: Add Fusion EEL Helper ${Neos.Backend.interfaceLanguage()}

closes #3638 implemented as discussed in #3638

``` Neos.Backend ————

Backend helper eg. for translations in the backend

Implemented in: Neos\\Neos\\Fusion\\Helper\\BackendHelper

Neos.Backend.interfaceLanguage()

The interface language the user selected or the default language defined in the settings Formatted as {@see \Neos\Flow\I18n\Locale} identifier, eg “de”, “en”, …

Return (string) ```

If no user is available. assert https://www.php.net/manual/de/function.assert.php will fail and depending on you php config - throw an error

Upgrade instructions

Review instructions

use this helper in your fusion and check if it correctly reflects you backend user language. Try to switch your language via user-settings (possibly flush the fusion cache) and see it correctly reflected

` root > root = ${Neos.Backend.interfaceLanguage()} `

FEATURE: implement checkbox label in workspace module

Review instructions

Currently, in the Workspace module, in the overview, we have a checkbox for selecting all changes. But this checkbox is not marked with a label. For clarity (and looks), it is better if it is clearly marked what this checkbox does.

## Screenshots

### Before !`neos-backend-workspace-module-checkbox-without-label <https://user-images.githubusercontent.com/39345336/197170837-7b4e5878-0f76-4ebc-baeb-62320d4522f9.png>`_

### After !`neos-backend-workspace-module-checkbox-with-label <https://user-images.githubusercontent.com/39345336/197170857-b111a761-037a-4fb7-af02-8bb47380447d.png>`_

FEATURE: Add nodetypes:// stream wrapper to support including fusion from NodeTypes folder

To support colocation of NodeTypes and Fusion Files the nodetypes:// stream wrapper is added that allows to access files from the NodeTypes folder.

The following line in the Root.fusion will load all fusion files from the NodeTypes folder of package Vendor.Site ` include: nodetypes://Vendor.Site/**/*.fusion `

Review instructions

Basically the stream wrapper is a copy of the resource stream wrapper from flow (https://github.com/neos/flow-development-collection/blob/8.2/Neos.Flow/Classes/ResourceManagement/Streams/ResourceStreamWrapper.php) with the following adjustments. - Added protection against traversal out of the path via multiple .. in the path - Support an empty path as this is needed in the most likely globbing pattern nodetypes://Vendor.Site/**/*.fusion

The explicit filter for .. in the filePatternResolver is needed as otherwise the traversal protection will throw a valid exception because of boundary violation when calling isDir on the path NodeTypes/...

FEATURE: Provide Uris in MenuItemsImplementation

With this change the uris for nodes are included in menuitems. This makes it easier to use them in presentational components as no further processing is needed to turn nodes into uris.

Review instructions

Debugdump the output of a Neos.Neos:MenuItems instance. It should include uri fields for all items.

Related issue: #3907

Upgrade Instructions

See https://docs.neos.io/cms/references/upgrade-instructions/upgrade-instructions-8-1-8-2

Note

Additionally all changes in Flow 8.2 apply, see the release notes to further information. See https://flowframework.readthedocs.org/en/8.2/TheDefinitiveGuide/PartV/ReleaseNotes/820.html