[BUGFIX] Fallback to empty array if ExportController receives no input
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / 8.0 / Breaking-76155-ViewHelperNamespaceImportsWithXmlnsAreNowSingular.rst
1
2 .. include:: ../../Includes.txt
3
4 =============================================================================
5 Breaking: #76155 - ViewHelper Namespace imports with `xmlns` are now singular
6 =============================================================================
7
8 See :issue:`76155`
9
10 Description
11 ===========
12
13 Fluid templates which use **multiple** ยด<div xmlns:xyz="...">` in one template file are affected. Only the first
14 such node is now detected and respected. The reasons for this new limitation are the reworked internals of Fluid since
15 the standalone version.
16
17 Before, namespace nodes were handled internally by the TemplateParser. They worked in a way that the namespace
18 dictated by the node would **only apply inside that node**.
19
20 After, namespace nodes are handled by template pre-processing and handed off to the ViewHelperResolver without going
21 through the TemplateParser first. Since it happens in pre-processing, namespaces dictated by such nodes now **apply
22 across the entire template file**.
23
24 This has two effects on template parsing:
25
26 1. Extraction of `xmlns:xyz` style imports happens **once** and detects only a single node.
27 2. Nesting no longer matters; a namespace imported with this method will apply to the entire template file since it
28    is extracted during pre-processing and is not recursive.
29
30 Most templates will not be affected by this since the norm is already to include a single such namespace import and
31 put it as the outermost surrounding tag, then add all imported namespaces on that single node. This usage is still
32 fully supported.
33
34
35 Impact
36 ======
37
38 The change affects template files which fulfill one or both of the following conditions:
39
40 1. Any template file which contains multiple nodes with `xmlns:xyz` imports will see only the first node detected.
41 2. Any template file which assumes an imported namespace is removed when the enclosing tag is closed and uses a
42    previously imported namespace after the closing node will likely see errors with `ViewHelper could not be resolved`
43    since Fluid will attempt to translate matching XHTML nodes with namespace prefixes to ViewHelper classes.
44
45
46 Affected Installations
47 ======================
48
49 TYPO3 8.0 and above, any site matching conditions stated in `Impact`.
50
51
52 Migration
53 =========
54
55 There is one migration for each of the conditions above:
56
57 1. Templates with multiple `xmlns:xyz` nodes can be migrated by combining all those nodes into one.
58 2. Templates which assume a closing container tag removes the namespace will have to migrate by extracting the XHTML
59    that collides with the Fluid namespace and placing it in a separate template file (e.g. Partial template).
60
61
62 .. index:: Fluid