19 if (TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_AJAX) {
20 require_once \TYPO3\CMS\Core\Extension\ExtensionManager::extPath(
'backend') .
'Classes/Toolbar/ToolbarItemHookInterface.php';
62 public function checkAccess() { 63 if (!\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('workspaces
')) { 67 if ($this->checkAccess == NULL) { 70 $availableWorkspaces = $wsService->getAvailableWorkspaces(); 71 if (count($availableWorkspaces) > 0) { 72 $this->checkAccess = TRUE; 74 $this->checkAccess = FALSE; 77 return $this->checkAccess; 85 public function render() { 86 $title = $GLOBALS['LANG
']->sL('LLL:EXT:lang/locallang_core.xlf:toolbarItems.workspace
', TRUE); 87 $this->addJavascriptToBackend(); 92 $availableWorkspaces = $wsService->getAvailableWorkspaces(); 93 $activeWorkspace = (int)$GLOBALS['BE_USER
']->workspace; 94 $stateCheckedIcon = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('status-status-checked
'); 95 $stateUncheckedIcon = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('empty-empty
', array( 96 'title
' => $GLOBALS['LANG
']->getLL('bookmark_inactive
') 99 $workspaceSections = array( 104 foreach ($availableWorkspaces as $workspaceId => $label) { 105 $workspaceId = (int)$workspaceId; 106 $iconState = ($workspaceId === $activeWorkspace ? $stateCheckedIcon : $stateUncheckedIcon); 107 $classValue = ($workspaceId === $activeWorkspace ? ' class=
"selected"' : ''); 108 $sectionName = ($index++ === 0 ? 'top
' : 'items
'); 109 $workspaceSections[$sectionName][] = '<li
' . $classValue . '>
' . '<a href=
"backend.php?changeWorkspace=' . $workspaceId . '" id=
"ws-' . $workspaceId . '" class=
"ws">
' . $iconState . ' ' . htmlspecialchars($label) . '</a></li>
'; 112 if (count($workspaceSections['top
']) > 0) { 113 // Go to workspace module link 114 if ($GLOBALS['BE_USER
']->check('modules
', 'web_WorkspacesWorkspaces
')) { 115 $workspaceSections['top
'][] = '<li>
' . '<a href=
"javascript:top.goToModule(\'web_WorkspacesWorkspaces\');" target=
"content" id=
"goToWsModule">
' . $stateUncheckedIcon . ' ' . $GLOBALS['LANG
']->getLL('bookmark_workspace
', TRUE) . '</a></li>
'; 117 $workspaceSections['top
'][] = '<li
class=
"divider"></li>
'; 119 $workspaceSections['top
'][] = '<li>
' . $stateUncheckedIcon . ' ' . $GLOBALS['LANG
']->getLL('bookmark_noWSfound
', TRUE) . '</li>
'; 123 $workspaceMenu = array( 124 '<a href=
"#" class=
"toolbar-item">
' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('apps-toolbar-menu-workspace
', array('title
' => $title)) . '</a>
', 125 '<div
class=
"toolbar-item-menu" style=
"display: none">
' , 127 implode(LF, $workspaceSections['top
']), 129 '<ul
class=
"items">
', 130 implode(LF, $workspaceSections['items
']), 135 return implode(LF, $workspaceMenu); 143 protected function addJavascriptToBackend() { 144 $this->backendReference->addJavascriptFile(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('workspaces
') . 'Resources/Public/JavaScript/workspacemenu.js
'); 152 public function getAdditionalAttributes() { 153 return 'id=
"workspace-selector-menu"'; 159 if (!(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_AJAX)) {
static getWorkspaceTitle($wsId)
static makeInstance($className)
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]