Index: typo3/sysext/install/updates/class.tx_coreupdates_migrateworkspaces.php =================================================================== --- typo3/sysext/install/updates/class.tx_coreupdates_migrateworkspaces.php (revision 10114) +++ typo3/sysext/install/updates/class.tx_coreupdates_migrateworkspaces.php (working copy) @@ -50,19 +50,36 @@ migrates the old-style workspaces with fixed workflow to a custom-stage workflow. If required the extbase, fluid, version and workspaces extensions are installed.'; + $reason = ''; // TYPO3 version 4.5 and above if ($this->versionNumber >= 4005000) { + + if(!t3lib_extMgm::isLoaded('version') || !t3lib_extMgm::isLoaded('workspaces')) { + $result = TRUE; + $reason .= ' The extensions "version" and "workspaces" need to be + present to use the entire versioning and workflow featureset of TYPO3.'; + } + $tables = array_keys($GLOBALS['TYPO3_DB']->admin_get_tables()); // sys_workspace table might not exists if version extension was never installed - if (in_array('sys_workspace', $tables)) { + if (!in_array('sys_workspace', $tables) || !in_array('sys_workspace_stage', $tables)) { + $result = TRUE; + $reason .= ' The database tables for the workspace functionality are missing.'; + } else { $wsCount = $GLOBALS['TYPO3_DB']->exec_SELECTcountRows('uid', 'sys_workspace', ''); - $result = $wsCount > 0; + $result |= $wsCount > 0; + $reason .= ' The existing workspaces will be checked for compatibility with the new features.'; } - if (!$result) { - $this->includeTCA(); - $result = $this->isDraftWorkspaceUsed(); + $this->includeTCA(); + $draftWorkspaceTestResult = $this->isDraftWorkspaceUsed(); + if ($draftWorkspaceTestResult) { + $reason .= ' The old style draft workspace is used. + Related records will be moved into a full featured workspace.'; + $result = TRUE; } + + $description .= '
Why do you need this wizard?
' . $reason; } return $result;