TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-79140:
|
||||
|
||||
=============================================================
|
||||
Feature: #79140 - Add hook to add custom TypoScript templates
|
||||
=============================================================
|
||||
|
||||
See :issue:`79140`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new hook in TemplateService allows to add or modify existing TypoScript templates.
|
||||
|
||||
Register the hook via :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['Core/TypoScript/TemplateService']['runThroughTemplatesPostProcessing']`
|
||||
in the extensions' ext_localconf.php file.
|
||||
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
An example implementation could look like this:
|
||||
|
||||
EXT:my_site/ext_localconf.php
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['Core/TypoScript/TemplateService']['runThroughTemplatesPostProcessing'][1313131313] =
|
||||
\MyVendor\MySite\Hooks\TypoScriptHook::class . '->addCustomTypoScriptTemplate';
|
||||
|
||||
|
||||
EXT:my_site/Classes/Hooks/TypoScriptHook.php
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
namespace MyVendor\MySite\Hooks;
|
||||
|
||||
class TypoScriptHook
|
||||
{
|
||||
|
||||
/**
|
||||
* Hooks into TemplateService after
|
||||
* @param array $parameters
|
||||
* @param \TYPO3\CMS\Core\TypoScript\TemplateService $parentObject
|
||||
* @return void
|
||||
*/
|
||||
public function addCustomTypoScriptTemplate($parameters, $parentObject)
|
||||
{
|
||||
// Disable the inclusion of default TypoScript set via TYPO3_CONF_VARS
|
||||
$parameters['isDefaultTypoScriptAdded'] = true;
|
||||
// Disable the inclusion of ext_typoscript_setup.txt of all extensions
|
||||
$parameters['processExtensionStatics'] = false;
|
||||
|
||||
// No template was found in rootline so far, so a custom "fake" sys_template record is added
|
||||
if ($parentObject->outermostRootlineIndexWithTemplate === 0) {
|
||||
$row = [
|
||||
'uid' => 'my_site_template',
|
||||
'config' => '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:my_site/Configuration/TypoScript/site_setup.t3s">',
|
||||
'root' => 1,
|
||||
'pid' => 0
|
||||
];
|
||||
$parentObject->processTemplate($row, 'sys_' . $row['uid'], 0, 'sys_' . $row['uid']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.. index:: PHP-API, TypoScript, Frontend
|
||||
Reference in New Issue
Block a user