With Neos Flow you can override a certain option of your view class, depending on one or more values of the current request.
The concept is farily well documented so instead of copy/paste I will provide a ways I’ve used it
Reuse a Layout from a different package
I tend to split some functionality into separate packages, but will love to use template parts from my main application package to avoud duplicates.
In this example, I will show you how my Vendor.Login
package will use the Default.html layout from my Vendor.Application
package
To do so, I can create a Views.yaml
file in my Vendor.Login
package and have it contain the following
- requestFilter: 'isPackage("Dafis.Login")' options: layoutRootPaths: 'Vendor.Login': 'resource://Vendor.Application/Private/Layouts'
The requestFilter
option can use methods from the RequestMatcher class to create conditions. Read the Flow documentation for further details on conditions.
The options
key allow to overrode certain options from the implemented template class. If you use Neos Fluid Adaptor and the TYPO3 Fluid rendering engine the TemplateView class will be the default, and you can find possible options to override in the implementation.
Now, when my templates in Vendor.Login
contains
<f:layout name="Default" />
Flow will automatically
- Find the
Views.yaml
- Check if the
requestFilter
matches current request - If it does (in our case with Vendor.Login) look for the
Default.html
layout file in theVendor.Application
package