From d3de5d553ccb70e0aa93bd94b8b8ee65186101da Mon Sep 17 00:00:00 2001 From: Oliver Hader <oliver@typo3.org> Date: Wed, 28 May 2014 15:42:21 +0200 Subject: [PATCH] [BUGFIX] Preview of moved workspace elements on source page If e.g. a content element gets moved to a different page, the workspace preview link opens the source page (which does not contain the element anymore, because it was moved). Since the elements are shown on the correct page in the workspace backend module, using the target page in the preview link for the frontend is just obvious. Resolves: #59143 Releases: 6.2 Change-Id: Ib84e65766e825cc26a66cbda9ffa8132c3a3ec18 Reviewed-on: https://review.typo3.org/30474 Reviewed-by: Oliver Hader Tested-by: Oliver Hader --- .../sysext/workspaces/Classes/Service/WorkspaceService.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/typo3/sysext/workspaces/Classes/Service/WorkspaceService.php b/typo3/sysext/workspaces/Classes/Service/WorkspaceService.php index da98278ec752..3adfb30ce6f6 100644 --- a/typo3/sysext/workspaces/Classes/Service/WorkspaceService.php +++ b/typo3/sysext/workspaces/Classes/Service/WorkspaceService.php @@ -528,7 +528,11 @@ class WorkspaceService implements \TYPO3\CMS\Core\SingletonInterface { if ($versionRecord === NULL) { $versionRecord = BackendUtility::getRecord($table, $uid); } + if (VersionState::cast($versionRecord['t3ver_state'])->equals(VersionState::MOVE_POINTER)) { + $movePlaceholder = BackendUtility::getMovePlaceholder($table, $liveRecord['uid'], 'pid'); + } + $previewPageId = (empty($movePlaceholder['pid']) ? $liveRecord['pid'] : $movePlaceholder['pid']); $additionalParameters = '&tx_workspaces_web_workspacesworkspaces[previewWS]=' . $versionRecord['t3ver_wsid']; $languageField = $GLOBALS['TCA'][$table]['ctrl']['languageField']; @@ -536,7 +540,7 @@ class WorkspaceService implements \TYPO3\CMS\Core\SingletonInterface { $additionalParameters .= '&L=' . $versionRecord[$languageField]; } - $viewUrl = BackendUtility::viewOnClick($liveRecord['pid'], '', '', '', '', $additionalParameters); + $viewUrl = BackendUtility::viewOnClick($previewPageId, '', '', '', '', $additionalParameters); } else { if (isset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['workspaces']['viewSingleRecord'])) { $_params = array( -- GitLab