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 \TYPO3\CMS\Backend\Module\ ModuleProvider

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 string $identifier

the identifier

returntype

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 string $identifier

the identifier

param TYPO3\\CMS\\Core\\Authentication\\BackendUserAuthentication $user

the user, default: NULL

param bool $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

returntype

TYPO3\CMS\Backend\Module\ModuleInterface

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 TYPO3\\CMS\\Core\\Authentication\\BackendUserAuthentication $user

the user, default: NULL

param bool $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

param bool $grouped

the grouped, default: true

returntype

array

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 string $identifier

the identifier

param TYPO3\\CMS\\Core\\Authentication\\BackendUserAuthentication $user

the user

param bool $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

returntype

TYPO3\CMS\Backend\Module\MenuModule

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 TYPO3\\CMS\\Core\\Authentication\\BackendUserAuthentication $user

the user

param bool $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

returntype

array

Returns:

MenuModule[]

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

Check access of a module for a given user

param string $identifier

the identifier

param TYPO3\\CMS\\Core\\Authentication\\BackendUserAuthentication $user

the user

param bool $respectWorkspaceRestrictions

the respectWorkspaceRestrictions, default: true

returntype

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 \TYPO3\CMS\Backend\Module\ ModuleInterface

An interface representing a TYPO3 Backend module.

getIdentifier ( )

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

returntype

string

getPath ( )

Return the main route path

returntype

string

getIconIdentifier ( )

The icon identifier for the module

returntype

string

getTitle ( )

The title of the module, used in the menu

returntype

string

getDescription ( )

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

returntype

string

getShortDescription ( )

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

returntype

string

isStandalone ( )

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

returntype

bool

getComponent ( )

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

returntype

string

getNavigationComponent ( )

The web component to be rendering the navigation area

returntype

string

getPosition ( )

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

returntype

array

getAppearance ( )

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

returntype

array

getAccess ( )

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

returntype

string

getWorkspaceAccess ( )

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

returntype

string

getParentIdentifier ( )

The identifier of the parent module during registration

returntype

string

getParentModule ( )

Get the reference to the next upper menu item

returntype

TYPO3\CMS\Backend\Module\ModuleInterface

hasParentModule ( )

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

returntype

bool

hasSubModule ( string $identifier)

Checks whether this module has a submodule with the given identifier

param string $identifier

the identifier

returntype

bool

hasSubModules ( )

Checks if this module has further submodules

returntype

bool

getSubModule ( string $identifier)

Return a submodule given by its full identifier

param string $identifier

the identifier

returntype

TYPO3\CMS\Backend\Module\ModuleInterface

getSubModules ( )

Return all direct descendants of this module

returntype

array

Returns:

ModuleInterface[]

getDefaultRouteOptions ( )

Returns module related route options - used for the router

returntype

array

getDefaultModuleData ( )

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

returntype

array

getAliases ( )

Return a list of identifiers that are aliases to this module

returntype

array