[FEATURE] Template Path fallback for Fluid Standalone View
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / master / Feature-61361-FallbackTemplatePathsForFluidStandaloneView.rst
1 =================================================================
2 Feature: #61361 - Template Path Fallback for Fluid StandaloneView
3 =================================================================
4
5 Description
6 ===========
7
8 Earlier in the development of Fluid, a template fallback was introduced
9 in the TemplateView, providing the possibility to pass a set of possible
10 file locations to the View Configuration, where Templates, Layouts and Partials
11 can be found.
12
13 The same functionality is now in the StandaloneView. It is possible to
14 let the system look up the fitting paths for Partials and Layouts. It is
15 in the nature of the StandaloneView to get a specific template file set, so
16 for Templates there is no lookup requirement.
17
18 As a developer or integrator, you can configure your View as follows:
19
20 ::
21 $view = $this->objectManager->get('TYPO3\\CMS\\Fluid\\View\\StandaloneView');
22 $view->setFormat('html');
23 $view->setTemplatePathAndFileName(ExtensionManagementUtility::extPath('myExt') . 'Resources/Private/Templates/Email.html');
24 $view->setLayoutRootPaths(array(
25   'default' => ExtensionManagementUtility::extPath('myExt') . 'Resources/Private/Layouts',
26   'specific' => ExtensionManagementUtility::extPath('myTemplateExt') . 'Resources/Private/Layouts/MyExt',
27 ));
28 $view->setPartialRootPaths(array(
29   'default' => ExtensionManagementUtility::extPath('myExt') . 'Resources/Private/Partials',
30   'specific' => ExtensionManagementUtility::extPath('myTemplateExt') . 'Resources/Private/Layouts/MyExt',
31   'evenMoreSpecific' => 'fileAdmin/templates/myExt/Partials',
32 ));
33 ..
34
35 With this, the View will first look up the requested layout file in the path with the key
36 _specific_, and in case there is no such file, it will fall back to _default_. For the partials the
37 sequence would be _evenMoreSpecific_, then _specific_, then fall back to _default_.
38
39 You are free in the naming
40 of the keys. The paths are searched from bottom to top.
41 In case you choose for numeric array keys, the array is ordered first, then reversed for the lookup, so
42 the highest index is accessed first.
43
44 Impact
45 ======
46
47 In order to change the skin of an extension output, provided by the Fluid StandaloneView, you are no longer required to
48 copy the whole Resources folder into fileadmin or to some specific location, but you can pick only the files you want
49 to change. Those need to be organized in folders, which are then configured for the view. The system will fall through
50 all the provided locations, taking the first fitting file it finds.