request = $request; } public function checkAccess(): bool { $result = false; $backendUser = $this->getBackendUser(); if ($backendUser->isAdmin()) { $result = true; } if ($backendUser->getTSConfig()['options.']['showSystemInformation'] ?? false) { $result = true; } $release = $this->getRelease(); if (empty($release)) { $result = false; } return $result; } public function getItem(): string { $view = $this->backendViewFactory->create($this->request, ['typo3/cms-backend', 'evoweb/ew-base']); return $view->render('ToolbarItems/ShowReleaseToolbarItem'); } public function hasDropDown(): bool { return true; } public function getDropDown(): string { $view = $this->backendViewFactory->create($this->request, ['typo3/cms-backend', 'evoweb/ew-base']); $view->assignMultiple([ 'release' => $this->getRelease(), ]); return $view->render('ToolbarItems/ShowReleaseDropDown'); } public function getAdditionalAttributes(): array { return []; } public function getIndex(): int { return 20; } protected function getRelease(): array { $release = GeneralUtility::getUrl(Environment::getProjectPath() . '/release'); return $release ? [ 'release' => trim($release), 'isTag' => str_contains($release, '.'), ] : []; } protected function getBackendUser(): BackendUserAuthentication { return $GLOBALS['BE_USER']; } }