168 lines
4.3 KiB
PHP
168 lines
4.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/*
|
|
* This file is part of the TYPO3 CMS project.
|
|
*
|
|
* It is free software; you can redistribute it and/or modify it under
|
|
* the terms of the GNU General Public License, either version 2
|
|
* of the License, or any later version.
|
|
*
|
|
* For the full copyright and license information, please read the
|
|
* LICENSE.txt file that was distributed with this source code.
|
|
*
|
|
* The TYPO3 project - inspiring people to share!
|
|
*/
|
|
|
|
namespace TYPO3\CMS\Backend\Module;
|
|
|
|
/**
|
|
* An interface representing a TYPO3 Backend module.
|
|
*/
|
|
interface ModuleInterface
|
|
{
|
|
/**
|
|
* The internal name of the module, used for referencing in permissions etc
|
|
*/
|
|
public function getIdentifier(): string;
|
|
|
|
/**
|
|
* Return the main route path
|
|
*/
|
|
public function getPath(): string;
|
|
|
|
/**
|
|
* The icon identifier for the module
|
|
*/
|
|
public function getIconIdentifier(): string;
|
|
|
|
/**
|
|
* The title of the module, used in the menu
|
|
*/
|
|
public function getTitle(): string;
|
|
|
|
/**
|
|
* A longer description, common for the "About" section with a long explanation
|
|
*/
|
|
public function getDescription(): string;
|
|
|
|
/**
|
|
* A shorter description, used when hovering over a module in the menu as title attribute
|
|
*/
|
|
public function getShortDescription(): string;
|
|
|
|
/**
|
|
* Useful for main modules that are also "clickable" such as the dashboard module
|
|
*/
|
|
public function isStandalone(): bool;
|
|
|
|
/**
|
|
* Returns the view component responsible for rendering the module (iFrame or name of the web component)
|
|
*/
|
|
public function getComponent(): string;
|
|
|
|
/**
|
|
* The web component to be rendering the navigation area
|
|
*/
|
|
public function getNavigationComponent(): string;
|
|
|
|
/**
|
|
* The position of the module, such as [top] or [bottom] or [after => anotherModule] or [before => anotherModule]
|
|
*/
|
|
public function getPosition(): array;
|
|
|
|
/**
|
|
* Returns a modules appearance options, e.g. used for module menu
|
|
*/
|
|
public function getAppearance(): array;
|
|
|
|
/**
|
|
* Can be user (editor permissions), admin, or systemMaintainer
|
|
*/
|
|
public function getAccess(): string;
|
|
|
|
/**
|
|
* Can be "*" (= empty) or "live" or "offline"
|
|
*/
|
|
public function getWorkspaceAccess(): string;
|
|
|
|
/**
|
|
* The identifier of the parent module during registration
|
|
*/
|
|
public function getParentIdentifier(): string;
|
|
|
|
/**
|
|
* Set a reference to the next upper menu item
|
|
*
|
|
* @internal Might vanish soon
|
|
*/
|
|
public function setParentModule(ModuleInterface $module): void;
|
|
|
|
/**
|
|
* Get the reference to the next upper menu item
|
|
*/
|
|
public function getParentModule(): ?ModuleInterface;
|
|
|
|
/**
|
|
* Can be checked if the module is a "main module"
|
|
*/
|
|
public function hasParentModule(): bool;
|
|
|
|
/**
|
|
* Used to set another module as part of the parent module
|
|
*
|
|
* @internal Might vanish soon
|
|
*/
|
|
public function addSubModule(ModuleInterface $module): void;
|
|
|
|
/**
|
|
* Remove a submodule
|
|
*
|
|
* @internal Might vanish soon
|
|
*/
|
|
public function removeSubModule(string $identifier): void;
|
|
|
|
/**
|
|
* Checks whether this module has a submodule with the given identifier
|
|
*/
|
|
public function hasSubModule(string $identifier): bool;
|
|
|
|
/**
|
|
* Checks if this module has further submodules
|
|
*/
|
|
public function hasSubModules(): bool;
|
|
|
|
/**
|
|
* Return a submodule given by its full identifier
|
|
*/
|
|
public function getSubModule(string $identifier): ?ModuleInterface;
|
|
|
|
/**
|
|
* Return all direct descendants of this module
|
|
* @return ModuleInterface[]
|
|
*/
|
|
public function getSubModules(): array;
|
|
|
|
/**
|
|
* Returns module related route options - used for the router
|
|
*/
|
|
public function getDefaultRouteOptions(): array;
|
|
|
|
/**
|
|
* Get allowed and available module data properties and their default values.
|
|
*/
|
|
public function getDefaultModuleData(): array;
|
|
|
|
/**
|
|
* Return a list of identifiers that are aliases to this module
|
|
*/
|
|
public function getAliases(): array;
|
|
|
|
/**
|
|
* Whether this module should display a card-based overview of its submodules
|
|
* instead of automatically routing to the first available submodule.
|
|
*/
|
|
public function hasSubmoduleOverview(): bool;
|
|
}
|