From 72d6c6e7b8ffe77e6f3cfbd9cc89464e4b11619a Mon Sep 17 00:00:00 2001 From: Oliver Hader <oliver@typo3.org> Date: Mon, 14 Dec 2015 22:53:55 +0100 Subject: [PATCH] [BUGFIX] Workspace page previews collide with generated preview links Workspace page previews collide with that configuration that might have been set by using a preview link containing a ADMCMD_prev command. The keyword "IGNORE" is introduced to actually ignore these configurations when viewing a page from the workspace module. Resolves: #72225 Releases: master, 7.6, 6.2 Change-Id: I6a73e860a76308028f0a3b1bcd182e41082adcd6 Reviewed-on: https://review.typo3.org/45253 Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by: Mathias Schreiber <mathias.schreiber@wmdb.de> Tested-by: Mathias Schreiber <mathias.schreiber@wmdb.de> Reviewed-by: Benni Mack <benni@typo3.org> Tested-by: Benni Mack <benni@typo3.org> --- typo3/sysext/version/Classes/Hook/PreviewHook.php | 4 ++-- .../workspaces/Classes/Controller/PreviewController.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/typo3/sysext/version/Classes/Hook/PreviewHook.php b/typo3/sysext/version/Classes/Hook/PreviewHook.php index 39487feaf642..1fcf803312eb 100644 --- a/typo3/sysext/version/Classes/Hook/PreviewHook.php +++ b/typo3/sysext/version/Classes/Hook/PreviewHook.php @@ -152,8 +152,8 @@ class PreviewHook implements \TYPO3\CMS\Core\SingletonInterface public function getPreviewConfiguration() { $inputCode = $this->getPreviewInputCode(); - // If inputcode is available, look up the settings - if ($inputCode) { + // If input code is available and shall not be ignored, look up the settings + if ($inputCode && $inputCode !== 'IGNORE') { // "log out" if ($inputCode == 'LOGOUT') { setcookie($this->previewKey, '', 0, GeneralUtility::getIndpEnv('TYPO3_SITE_PATH')); diff --git a/typo3/sysext/workspaces/Classes/Controller/PreviewController.php b/typo3/sysext/workspaces/Classes/Controller/PreviewController.php index 2680ca7844ad..41e668535209 100644 --- a/typo3/sysext/workspaces/Classes/Controller/PreviewController.php +++ b/typo3/sysext/workspaces/Classes/Controller/PreviewController.php @@ -138,11 +138,11 @@ class PreviewController extends AbstractController if (\TYPO3\CMS\Workspaces\Service\WorkspaceService::isNewPage($this->pageId)) { $wsNewPageUri = $uriBuilder->uriFor('newPage', array(), \TYPO3\CMS\Workspaces\Controller\PreviewController::class, 'workspaces', 'web_workspacesworkspaces'); $wsNewPageParams = '&tx_workspaces_web_workspacesworkspaces[controller]=Preview'; - $this->view->assign('liveUrl', $wsSettingsPath . $wsNewPageUri . $wsNewPageParams); + $this->view->assign('liveUrl', $wsSettingsPath . $wsNewPageUri . $wsNewPageParams . '&ADMCMD_prev=IGNORE'); } else { - $this->view->assign('liveUrl', $wsBaseUrl . '&ADMCMD_noBeUser=1'); + $this->view->assign('liveUrl', $wsBaseUrl . '&ADMCMD_noBeUser=1&ADMCMD_prev=IGNORE'); } - $this->view->assign('wsUrl', $wsBaseUrl . '&ADMCMD_view=1&ADMCMD_editIcons=1&ADMCMD_previewWS=' . $GLOBALS['BE_USER']->workspace); + $this->view->assign('wsUrl', $wsBaseUrl . '&ADMCMD_prev=IGNORE&ADMCMD_view=1&ADMCMD_editIcons=1&ADMCMD_previewWS=' . $GLOBALS['BE_USER']->workspace); $this->view->assign('wsSettingsUrl', $wsSettingsUrl); $this->view->assign('backendDomain', GeneralUtility::getIndpEnv('TYPO3_HOST_ONLY')); $splitPreviewTsConfig = BackendUtility::getModTSconfig($this->pageId, 'workspaces.splitPreviewModes'); -- GitLab