41 $this->availableWorkspaces = GeneralUtility::makeInstance(WorkspaceService::class)
42 ->getAvailableWorkspaces();
46 $pageRenderer->loadRequireJsModule(
'TYPO3/CMS/Workspaces/Toolbar/WorkspacesMenu');
56 return count($this->availableWorkspaces) > 1;
66 if (empty($this->availableWorkspaces)) {
80 $additionalItems = [];
83 $activeWorkspace = (int)$backendUser->workspace;
84 $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
85 foreach ($this->availableWorkspaces as $workspaceId => $label) {
86 $workspaceId = (int)$workspaceId;
88 'isActive' => $workspaceId === $activeWorkspace,
90 'link' => (string)$uriBuilder->buildUriFromRoute(
'main', [
'changeWorkspace' => $workspaceId]),
91 'workspaceId' => $workspaceId
93 if ($topItem ===
null) {
96 $additionalItems[] = $item;
102 if ($topItem !==
null && $backendUser->check(
'modules',
'web_WorkspacesWorkspaces')) {
103 $view->assign(
'showLinkToModule',
true);
105 $view->assign(
'topItem', $topItem);
106 $view->assign(
'additionalItems', $additionalItems);
107 return $view->render();
127 return !empty($this->availableWorkspaces);
157 return GeneralUtility::makeInstance(PageRenderer::class);
168 $view = GeneralUtility::makeInstance(StandaloneView::class);
169 $view->setLayoutRootPaths([
'EXT:workspaces/Resources/Private/Layouts']);
170 $view->setPartialRootPaths([
171 'EXT:backend/Resources/Private/Partials/ToolbarItems',
172 'EXT:workspaces/Resources/Private/Partials/ToolbarItems'
174 $view->setTemplateRootPaths([
'EXT:workspaces/Resources/Private/Templates/ToolbarItems']);
176 $view->setTemplate($filename);
178 $view->getRequest()->setControllerExtensionName(
'Workspaces');