Breaking: #97135 - Removed support for module handling based on TBE_MODULES_EXT
See forge#97135
Description
Previously it had been possible to add additional functionality to TYPO3
backend modules, such as Web > Info or Web > Template,
using the
Extension
API method,
which attached a new entry to the global
TBE_
array.
Since the introduction of the new
Module Registration API,
all modules are registered in the dedicated Configuration/
configuration file. Additional modules, or "third-level modules" are now also
registered via the new mechanism.
Therefore, the
$GLOBALS
has been removed, while the
corresponding
Extension
API
method has no effect.
The related page TSconfig options
mod.
as well as
mod.
have been removed in favor
of the existing
hide
user TSconfig option and the module
access logic, which due to the new registration, now also covers those modules.
Additionally, the following hooks have been removed, because their use cases does no longer exist:
$GLOBALS
['TYPO3_ CONF_ VARS'] ['SC_ OPTIONS'] ['TYPO3\ CMS\ Tstemplate\ Controller\ Typo Script Template Module Controller'] ['new Standard Template View'] $GLOBALS
['TYPO3_ CONF_ VARS'] ['SC_ OPTIONS'] ['TYPO3\ CMS\ Tstemplate\ Controller\ Typo Script Template Module Controller'] ['new Standard Template Handler']
Impact
The global
TBE_
array does no longer exist and the
Extension
API method no
longer has any effect.
The page TSconfig options
mod.
and
mod.
are no longer evaluated.
Using one of mentioned,
Typo
related
hooks does no longer have any effect.
Affected Installations
All installations using the global
TBE_
array or
calling
Extension
in
custom extension code.
All installations using one of the removed page TSconfig options or one of the removed hooks.
Migration
Register your "third-level" module in our extension's
Configuration/
file.
Previous configuration in ext_
:
ExtensionManagementUtility::insertModuleFunction(
'web_info',
MyAdditonalInfoModuleController::class,
'',
'LLL:EXT:extkey/Resources/Private/Language/locallang.xlf:mod_title'
);
Will now be registered in Configuration/
:
'web_info_additional' => [
'parent' => 'web_info',
'access' => 'user',
'path' => '/module/web/info/additional',
'iconIdentifier' => 'module-my-icon-identifier',
'labels' => [
'title' => 'LLL:EXT:extkey/Resources/Private/Language/locallang.xlf:mod_title',
],
'routes' => [
'_default' => [
'target' => MyAdditonalInfoModuleController::class . '::handleRequest',
],
],
],
To hide a "third-level" module in the doc header menu, use the user TSconfig
options.
option:
# before
mod.web_info.menu.function.TYPO3\CMS\Info\Controller\TranslationStatusController = 0
# after
options.hideModules := addToList(web_info_translations)
Note
While the previously used TSconfig options mod.*.
are bound
to a page is the new options.
option based on user and user
group level. This allows greater influence and furthermore allows to hide
any module, even if the module is not connected to a page.
Additionally, use the module access logic to restrict access to those modules.
Remove any registration of the mentioned hooks. There is no direct migration, since the use cases for those hooks do no longer exist.