ModuleProvider API

The ModuleProvider API allows extension authors to work with the registered modules.

This API is the central point to retrieve modules, since it automatically performs necessary access checks and prepares specific structures, for example for the use in menus.

class ModuleProvider
Fully qualified name
\TYPO3\CMS\Backend\Module\TYPO3\CMS\Backend\Module

This is the central point to retrieve modules from the ModuleRegistry, while performing the necessary access checks, which ModuleRegistry does not deal with.

isModuleRegistered ( string $identifier)

Simple wrapper for the registry, which just checks if a module is registered. Does NOT perform any access checks.

param $identifier

the identifier

Returns
bool
getModule ( string $identifier, ?TYPO3\CMS\Core\Authentication\BackendUserAuthentication $user = NULL, bool $respectWorkspaceRestrictions = true)

Returns a Module for the given identifier. In case a user is given, also access checks are performed.

param $identifier

the identifier

param $user

the user, default: NULL

param $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

Returns
?TYPO3CMSBackendModuleModuleInterface
getModules ( ?TYPO3\CMS\Core\Authentication\BackendUserAuthentication $user = NULL, bool $respectWorkspaceRestrictions = true, bool $grouped = true)

Returns all modules either grouped by main modules or flat.

In case a user is given, also access checks are performed.

param $user

the user, default: NULL

param $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

param $grouped

the grouped, default: true

Returns
ModuleInterface[]
getModuleForMenu ( string $identifier, TYPO3\CMS\Core\Authentication\BackendUserAuthentication $user, bool $respectWorkspaceRestrictions = true)

Return the requested (main) module if exist and allowed, prepared for menu generation or similar structured output (nested). Takes TSConfig into account. Does not respect "appearance[renderInModuleMenu]".

param $identifier

the identifier

param $user

the user

param $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

Returns
?TYPO3CMSBackendModuleMenuModule
getModulesForModuleMenu ( TYPO3\CMS\Core\Authentication\BackendUserAuthentication $user, bool $respectWorkspaceRestrictions = true)

Returns all allowed modules for the current user, prepared for module menu generation or similar structured output (nested).

Takes TSConfig and "appearance[renderInModuleMenu]" into account.

param $user

the user

param $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

Returns
MenuModule[]
accessGranted ( string $identifier, TYPO3\CMS\Core\Authentication\BackendUserAuthentication $user, bool $respectWorkspaceRestrictions = true)

Check access of a module for a given user

param $identifier

the identifier

param $user

the user

param $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

Returns
bool

ModuleInterface

The registered backend modules are stored as objects in a registry. All module objects implement the ModuleInterface. This allows a well-defined OOP-based approach to work with registered models.

The ModuleInterface basically provides getters for the options defined in the module registration and additionally provides methods for relation handling (main modules and sub modules).

interface ModuleInterface
Fully qualified name
\TYPO3\CMS\Backend\Module\TYPO3\CMS\Backend\Module

An interface representing a TYPO3 Backend module.

getIdentifier ( )

The internal name of the module, used for referencing in permissions etc

Returns
string
getPath ( )

Return the main route path

Returns
string
getIconIdentifier ( )

The icon identifier for the module

Returns
string
getTitle ( )

The title of the module, used in the menu

Returns
string
getDescription ( )

A longer description, common for the "About" section with a long explanation

Returns
string
getShortDescription ( )

A shorter description, used when hovering over a module in the menu as title attribute

Returns
string
isStandalone ( )

Useful for main modules that are also "clickable" such as the dashboard module

Returns
bool
getComponent ( )

Returns the view component responsible for rendering the module (iFrame or name of the web component)

Returns
string
getNavigationComponent ( )

The web component to be rendering the navigation area

Returns
string
getPosition ( )

The position of the module, such as [top] or [bottom] or [after => anotherModule] or [before => anotherModule]

Returns
array
getAppearance ( )

Returns a modules appearance options, e.g. used for module menu

Returns
array
getAccess ( )

Can be user (editor permissions), admin, or systemMaintainer

Returns
string
getWorkspaceAccess ( )

Can be "*" (= empty) or "live" or "offline"

Returns
string
getParentIdentifier ( )

The identifier of the parent module during registration

Returns
string
getParentModule ( )

Get the reference to the next upper menu item

Returns
?TYPO3CMSBackendModuleModuleInterface
hasParentModule ( )

Can be checked if the module is a "main module"

Returns
bool
hasSubModule ( string $identifier)

Checks whether this module has a submodule with the given identifier

param $identifier

the identifier

Returns
bool
hasSubModules ( )

Checks if this module has further submodules

Returns
bool
getSubModule ( string $identifier)

Return a submodule given by its full identifier

param $identifier

the identifier

Returns
?TYPO3CMSBackendModuleModuleInterface
getSubModules ( )

Return all direct descendants of this module

Returns
ModuleInterface[]
getDefaultRouteOptions ( )

Returns module related route options - used for the router

Returns
array
getDefaultModuleData ( )

Get allowed and available module data properties and their default values.

Returns
array
getAliases ( )

Return a list of identifiers that are aliases to this module

Returns
array