.. include:: /Includes.rst.txt .. _important-82763: ============================================================================================ Important: #82763 - Fluid config for ExpressionNodeType and TemplatePreProcessor made global ============================================================================================ See :issue:`82763` Description =========== Before, Fluid's arrays of class names for ``ExpressionNodeType`` and ``TemplatePreProcessor`` were hardcoded into the ``RenderingContext`` constructor and were not possible to modify except when having access to the ``RenderingContext``. Now, these two arrays of class names are possible to configure in ``TYPO3_CONF_VARS`` which allows extensions or site administrators to add and remove such Fluid components on a global level. Example: .. code-block:: php // Add one new ExpressionNodeType and one new TemplatePreProcessor to be used in every RenderingContext // For example from an ext_localconf.php file in an extension. $GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['expressionNodeTypes'][] = \MyVendor\MyExtension\MyFluidExpressionNodeType::class; $GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['preProcessors'][] = \MyVendor\MyExtension\MyFluidTemplatePreProcessor::class; These classes will then be *added to the list of existing implementations* and will be automatically used as defaults when new ``RenderingContext`` instances are created. See for reference how to create such implementations: * :php:`\TYPO3Fluid\Fluid\Core\Parser\TemplateProcessorInterface` * :php:`\TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\Expression\ExpressionNodeInterface` Both interfaces contain the documentation for how they must be implemented, when/why functions get called and what the expected return types are. The interfaces must of course be implemented by classes you add to ``TYPO3_CONF_VARS`` in these configuration sections. Due to their global nature you should be very careful to implement the classes and in particular observe the return types. .. index:: Fluid, LocalConfiguration