Index: Classes/Service/Stages.php =================================================================== --- Classes/Service/Stages.php (revision 3302) +++ Classes/Service/Stages.php (revision ) @@ -165,10 +165,10 @@ // go through custom stages records foreach ($workspaceStageRecs as $workspaceStageRec) { // check if the user has permissions to the custom stage - if ($GLOBALS['BE_USER']->workspaceCheckStageForCurrent($this->encodeStageUid($workspaceStageRec['uid']))) { + if ($GLOBALS['BE_USER']->workspaceCheckStageForCurrent($workspaceStageRec['uid'])) { // yes, so add to return array $stagesForWSUserData[] = array( - 'uid' => $this->encodeStageUid($workspaceStageRec['uid']), + 'uid' => $workspaceStageRec['uid'], 'title' => $GLOBALS['LANG']->sL($this->pathToLocallang . ':actionSendToStage') . ' ' . $workspaceStageRec['title']); } else if ($workspaceStageRec['uid'] == self::STAGE_PUBLISH_EXECUTE_ID) { if ($GLOBALS['BE_USER']->workspacePublishAccess($this->getWorkspaceId())) { @@ -191,27 +191,6 @@ } /** - * converts from versioning stage id to stage record UID - * - * @return int UID of the database record - */ - public function resolveStageUid($ver_stage) { - return $ver_stage; - //return $ver_stage - $this->raiseStageIdAmount; - } - - /** - * converts from stage record UID to versioning stage id - * - * @param int UID of the stage database record - * @return int versioning stage id - */ - public function encodeStageUid($stage_uid) { - return $stage_uid; - //return $stage_uid + $this->raiseStageIdAmount; - } - - /** * Gets the title of a stage. * * @param integer $ver_stage @@ -250,7 +229,7 @@ * @return array */ public function getStageRecord($stageid) { - return t3lib_BEfunc::getRecord('sys_workspace_stage', $this->resolveStageUid($stageid)); + return t3lib_BEfunc::getRecord('sys_workspace_stage', $stageid); } /** @@ -274,7 +253,7 @@ reset($workspaceStageRecs); while (!is_null($workspaceStageRecKey = key($workspaceStageRecs))) { $workspaceStageRec = current($workspaceStageRecs); - if ($workspaceStageRec['uid'] == $this->resolveStageUid($stageId)) { + if ($workspaceStageRec['uid'] == $stageId) { $nextStage = next($workspaceStageRecs); break; } @@ -345,7 +324,7 @@ end($workspaceStageRecs); while (!is_null($workspaceStageRecKey = key($workspaceStageRecs))) { $workspaceStageRec = current($workspaceStageRecs); - if ($workspaceStageRec['uid'] == $this->resolveStageUid($stageid)) { + if ($workspaceStageRec['uid'] == $stageid) { $prevStage = prev($workspaceStageRecs); break; } @@ -558,10 +537,6 @@ throw new InvalidArgumentException($GLOBALS['LANG']->sL('LLL:EXT:workspaces/Resources/Private/Language/locallang.xml:error.stageId.integer')); } - if ($stageId != self::STAGE_PUBLISH_ID && $stageId != self::STAGE_EDIT_ID) { - $stageId = $this->resolveStageUid($stageId); - } - $workspaceStage = t3lib_BEfunc::getRecord(self::TABLE_STAGE, $stageId); if (is_array($workspaceStage) && isset($workspaceStage[$property])) { Index: ChangeLog =================================================================== --- ChangeLog (revision 3430) +++ ChangeLog (revision ) @@ -1,3 +1,7 @@ +2010-12-19 Sonja Scholz + + * Fixed bug: #11153: Determine whether Tx_Workspaces_Service_Stages::encodeStageUid and resolveStageUid are required + 2010-12-19 Tolleiv Nietsch * Followup-to #9819: Workspace preview window - "live" and "workspace" buttons are clickable now Index: Classes/Service/Tcemain.php =================================================================== --- Classes/Service/Tcemain.php (revision 3302) +++ Classes/Service/Tcemain.php (revision ) @@ -64,16 +64,12 @@ * @return void */ protected function resetStageOfElements($stageId) { - $service = t3lib_div::makeInstance('Tx_Workspaces_Service_Stages'); - // @todo: remove the encode/decode functionality - $pseudoStageId = $service->encodeStageUid($stageId); - $fields = array('t3ver_stage' => Tx_Workspaces_Service_Stages::STAGE_EDIT_ID); foreach ($this->getTcaTables() as $tcaTable) { if (t3lib_BEfunc::isTableWorkspaceEnabled($tcaTable)) { - $where = 't3ver_stage = ' . intval($pseudoStageId); + $where = 't3ver_stage = ' . intval($stageId); $where .= ' AND t3ver_wsid > 0 AND pid=-1'; $where .= t3lib_BEfunc::deleteClause($tcaTable);