Index: t3lib/class.t3lib_page.php =================================================================== --- t3lib/class.t3lib_page.php (Revision 10349) +++ t3lib/class.t3lib_page.php (Arbeitskopie) @@ -1414,7 +1414,7 @@ * @return boolean true if has access */ function checkWorkspaceAccess($wsid) { - if (!$GLOBALS['BE_USER']) { + if (!$GLOBALS['BE_USER'] || !t3lib_extMgm::isLoaded('workspaces')) { return FALSE; } if (isset($this->workspaceCache[$wsid])) { Index: t3lib/class.t3lib_userauthgroup.php =================================================================== --- t3lib/class.t3lib_userauthgroup.php (Revision 10349) +++ t3lib/class.t3lib_userauthgroup.php (Arbeitskopie) @@ -876,7 +876,7 @@ return TRUE; } - if ($this->workspace > 0) { + if ($this->workspace > 0 && t3lib_extMgm::isLoaded('workspaces')) { $stat = $this->checkWorkspaceCurrent(); // Check if custom staging is activated @@ -1645,14 +1645,16 @@ $wsRec = array('uid' => $wsRec); break; default: - $wsRec = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow( - $fields, - 'sys_workspace', - 'pid=0 AND uid=' . intval($wsRec) . - t3lib_BEfunc::deleteClause('sys_workspace'), - '', - 'title' - ); + if (t3lib_extMgm::isLoaded('workspaces')) { + $wsRec = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow( + $fields, + 'sys_workspace', + 'pid=0 AND uid=' . intval($wsRec) . + t3lib_BEfunc::deleteClause('sys_workspace'), + '', + 'title' + ); + } break; } } @@ -1772,7 +1774,7 @@ return 0; } elseif ($this->checkWorkspace(-1)) { // Check offline return -1; - } else { // Traverse custom workspaces: + } elseif (t3lib_extMgm::isLoaded('workspaces')) { // Traverse custom workspaces: $workspaces = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid,title,adminusers,members,reviewers', 'sys_workspace', 'pid=0' . t3lib_BEfunc::deleteClause('sys_workspace'), '', 'title'); foreach ($workspaces as $rec) { if ($this->checkWorkspace($rec)) { Index: typo3/alt_shortcut.php =================================================================== --- typo3/alt_shortcut.php (Revision 10349) +++ typo3/alt_shortcut.php (Arbeitskopie) @@ -736,11 +736,13 @@ } // Add custom workspaces (selecting all, filtering by BE_USER check): - $workspaces = $TYPO3_DB->exec_SELECTgetRows('uid,title,adminusers,members,reviewers','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title'); - if (count($workspaces)) { - foreach ($workspaces as $rec) { - if ($BE_USER->checkWorkspace($rec)) { - $options[$rec['uid']] = $rec['uid'].': '.$rec['title']; + if (t3lib_extMgm::isLoaded('workspaces')) { + $workspaces = $TYPO3_DB->exec_SELECTgetRows('uid,title,adminusers,members,reviewers','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title'); + if (count($workspaces)) { + foreach ($workspaces as $rec) { + if ($BE_USER->checkWorkspace($rec)) { + $options[$rec['uid']] = $rec['uid'].': '.$rec['title']; + } } } } Index: typo3/sysext/beuser/mod/index.php =================================================================== --- typo3/sysext/beuser/mod/index.php (Revision 10349) +++ typo3/sysext/beuser/mod/index.php (Arbeitskopie) @@ -1048,18 +1048,20 @@ } // Add custom workspaces (selecting all, filtering by BE_USER check): - $workspaces = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid,title,adminusers,members,reviewers,db_mountpoints','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title'); - if (count($workspaces)) { - foreach ($workspaces as $rec) { - if ($this->checkWorkspace($rec)) { - $options[$rec['uid']] = $rec['uid'].': '.$rec['title']; + if (t3lib_extMgm::isLoaded('workspaces')) { + $workspaces = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid,title,adminusers,members,reviewers,db_mountpoints','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title'); + if (count($workspaces)) { + foreach ($workspaces as $rec) { + if ($this->checkWorkspace($rec)) { + $options[$rec['uid']] = $rec['uid'].': '.$rec['title']; - // Check if all mount points are accessible, otherwise show error: - if (trim($rec['db_mountpoints'])!=='') { - $mountPoints = t3lib_div::intExplode(',',$this->workspaceRec['db_mountpoints'],1); - foreach ($mountPoints as $mpId) { - if (!$this->isInWebMount($mpId,'1=1')) { - $options[$rec['uid']].= '
\- ' . $GLOBALS['LANG']->getLL('notAccessible', true) . ' ' . $mpId; + // Check if all mount points are accessible, otherwise show error: + if (trim($rec['db_mountpoints'])!=='') { + $mountPoints = t3lib_div::intExplode(',',$this->workspaceRec['db_mountpoints'],1); + foreach ($mountPoints as $mpId) { + if (!$this->isInWebMount($mpId,'1=1')) { + $options[$rec['uid']].= '
\- ' . $GLOBALS['LANG']->getLL('notAccessible', true) . ' ' . $mpId; + } } } } Index: typo3/sysext/belog/mod/index.php =================================================================== --- typo3/sysext/belog/mod/index.php (Revision 10349) +++ typo3/sysext/belog/mod/index.php (Arbeitskopie) @@ -179,10 +179,12 @@ ); // Add custom workspaces (selecting all, filtering by BE_USER check): - $workspaces = $TYPO3_DB->exec_SELECTgetRows('uid,title','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title'); - if (count($workspaces)) { - foreach ($workspaces as $rec) { - $this->MOD_MENU['workspaces'][$rec['uid']] = $rec['uid'].': '.$rec['title']; + if (t3lib_extMgm::isLoaded('workspaces')) { + $workspaces = $TYPO3_DB->exec_SELECTgetRows('uid,title','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title'); + if (count($workspaces)) { + foreach ($workspaces as $rec) { + $this->MOD_MENU['workspaces'][$rec['uid']] = $rec['uid'].': '.$rec['title']; + } } } Index: typo3/sysext/lowlevel/class.tx_lowlevel_cleaner_core.php =================================================================== --- typo3/sysext/lowlevel/class.tx_lowlevel_cleaner_core.php (Revision 10349) +++ typo3/sysext/lowlevel/class.tx_lowlevel_cleaner_core.php (Arbeitskopie) @@ -78,7 +78,9 @@ var $performanceStatistics = array(); + protected $workspaceIndex = array(); + /** * Constructor * @@ -332,7 +334,9 @@ $pt = t3lib_div::milliseconds();$this->performanceStatistics['genTree()']=''; // Initialize: - $this->workspaceIndex = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid,title','sys_workspace','1=1'.t3lib_BEfunc::deleteClause('sys_workspace'),'','','','uid'); + if (t3lib_extMgm::isLoaded('workspaces')) { + $this->workspaceIndex = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid,title','sys_workspace','1=1'.t3lib_BEfunc::deleteClause('sys_workspace'),'','','','uid'); + } $this->workspaceIndex[-1] = TRUE; $this->workspaceIndex[0] = TRUE; Index: typo3/sysext/cms/tslib/class.tslib_fe.php =================================================================== --- typo3/sysext/cms/tslib/class.tslib_fe.php (Revision 10349) +++ typo3/sysext/cms/tslib/class.tslib_fe.php (Arbeitskopie) @@ -4370,7 +4370,7 @@ if ($returnTitle) { if ($ws===-1) { return 'Default Draft Workspace'; - } else { + } elseif (t3lib_extMgm::isLoaded('workspaces')) { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('title', 'sys_workspace', 'uid='.intval($ws)); if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { return $row['title'];