TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,192 @@
|
||||
<?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;
|
||||
|
||||
/**
|
||||
* A representation for a module used for the menu generation.
|
||||
*
|
||||
* @internal only to be used by TYPO3 Core.
|
||||
*/
|
||||
class MenuModule implements ModuleInterface
|
||||
{
|
||||
/**
|
||||
* @var ModuleInterface[]
|
||||
*/
|
||||
protected array $subModules = [];
|
||||
|
||||
public function __construct(protected readonly ModuleInterface $module, protected $isCollapsed = false) {}
|
||||
|
||||
public function getIdentifier(): string
|
||||
{
|
||||
return $this->module->getIdentifier();
|
||||
}
|
||||
|
||||
public function getIconIdentifier(): string
|
||||
{
|
||||
return $this->module->getIconIdentifier();
|
||||
}
|
||||
|
||||
public function getTitle(): string
|
||||
{
|
||||
return $this->module->getTitle();
|
||||
}
|
||||
|
||||
public function getDescription(): string
|
||||
{
|
||||
return $this->module->getDescription();
|
||||
}
|
||||
|
||||
public function getShortDescription(): string
|
||||
{
|
||||
return $this->module->getShortDescription();
|
||||
}
|
||||
|
||||
public function isStandalone(): bool
|
||||
{
|
||||
return $this->module->isStandalone();
|
||||
}
|
||||
|
||||
public function getComponent(): string
|
||||
{
|
||||
return $this->module->getComponent();
|
||||
}
|
||||
|
||||
public function getNavigationComponent(): string
|
||||
{
|
||||
return $this->module->getNavigationComponent();
|
||||
}
|
||||
|
||||
public function getPosition(): array
|
||||
{
|
||||
return $this->module->getPosition();
|
||||
}
|
||||
|
||||
public function getAppearance(): array
|
||||
{
|
||||
return $this->module->getAppearance();
|
||||
}
|
||||
|
||||
public function getAccess(): string
|
||||
{
|
||||
return $this->module->getAccess();
|
||||
}
|
||||
|
||||
public function getWorkspaceAccess(): string
|
||||
{
|
||||
return $this->module->getWorkspaceAccess();
|
||||
}
|
||||
|
||||
public function getParentIdentifier(): string
|
||||
{
|
||||
return $this->module->getParentIdentifier();
|
||||
}
|
||||
|
||||
public function setParentModule(ModuleInterface $module): void
|
||||
{
|
||||
$this->module->setParentModule($module);
|
||||
}
|
||||
|
||||
public function getParentModule(): ?ModuleInterface
|
||||
{
|
||||
return $this->module->getParentModule();
|
||||
}
|
||||
|
||||
public function hasParentModule(): bool
|
||||
{
|
||||
return $this->module->hasParentModule();
|
||||
}
|
||||
|
||||
public function addSubModule(ModuleInterface $module): void
|
||||
{
|
||||
$this->subModules[$module->getIdentifier()] = $module;
|
||||
}
|
||||
|
||||
public function removeSubModule(string $identifier): void
|
||||
{
|
||||
unset($this->subModules[$identifier]);
|
||||
}
|
||||
|
||||
public function hasSubModule(string $identifier): bool
|
||||
{
|
||||
return isset($this->subModules[$identifier]);
|
||||
}
|
||||
|
||||
public function hasSubModules(): bool
|
||||
{
|
||||
return $this->subModules !== [];
|
||||
}
|
||||
|
||||
public function getSubModule(string $identifier): ?ModuleInterface
|
||||
{
|
||||
return $this->subModules[$identifier] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ModuleInterface[]
|
||||
*/
|
||||
public function getSubModules(): array
|
||||
{
|
||||
return $this->subModules;
|
||||
}
|
||||
|
||||
public function getPath(): string
|
||||
{
|
||||
return $this->module->getPath();
|
||||
}
|
||||
|
||||
public function getDefaultRouteOptions(): array
|
||||
{
|
||||
return $this->module->getDefaultRouteOptions();
|
||||
}
|
||||
|
||||
public function getDefaultModuleData(): array
|
||||
{
|
||||
return $this->module->getDefaultModuleData();
|
||||
}
|
||||
|
||||
public function getAliases(): array
|
||||
{
|
||||
return $this->module->getAliases();
|
||||
}
|
||||
|
||||
public function hasSubmoduleOverview(): bool
|
||||
{
|
||||
return $this->module->hasSubmoduleOverview();
|
||||
}
|
||||
|
||||
public function isCollapsed(): bool
|
||||
{
|
||||
return $this->isCollapsed;
|
||||
}
|
||||
|
||||
public function getIsCollapsed(): bool
|
||||
{
|
||||
return $this->isCollapsed();
|
||||
}
|
||||
|
||||
public function getShouldBeLinked(): bool
|
||||
{
|
||||
if ($this->module->isStandalone()) {
|
||||
return true;
|
||||
}
|
||||
if ($this->module->hasParentModule()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user