From 898c472e2ccc266e5114ecdfcd55d91f090646ca Mon Sep 17 00:00:00 2001
From: Andreas Fernandez <a.fernandez@scripting-base.de>
Date: Mon, 29 Aug 2016 17:35:00 +0200
Subject: [PATCH] [BUGFIX] Add returnUrl to records opened by EXT:opendocs

If a record that was opened by the opendocs menu gets closed, the user
now gets the record list of the record's pid.

Resolves: #77675
Releases: master, 7.6
Change-Id: I90014ea639ce191ad0ee2d1a1cd650d2aaaebc52
Reviewed-on: https://review.typo3.org/49627
Tested-by: Bamboo TYPO3com <info@typo3.com>
Reviewed-by: Philipp Gampe <philipp.gampe@typo3.org>
Tested-by: Philipp Gampe <philipp.gampe@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
---
 .../Classes/Backend/ToolbarItems/OpendocsToolbarItem.php   | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php b/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php
index 711231167048..148da223622e 100644
--- a/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php
+++ b/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php
@@ -17,6 +17,7 @@ namespace TYPO3\CMS\Opendocs\Backend\ToolbarItems;
 use Psr\Http\Message\ResponseInterface;
 use Psr\Http\Message\ServerRequestInterface;
 use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface;
+use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Imaging\IconFactory;
 use TYPO3\CMS\Core\Page\PageRenderer;
@@ -144,14 +145,16 @@ class OpendocsToolbarItem implements ToolbarItemInterface
     {
         $table = $document[3]['table'];
         $uid = $document[3]['uid'];
-        $record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecordWSOL($table, $uid);
+        $record = BackendUtility::getRecordWSOL($table, $uid);
         if (!is_array($record)) {
             // Record seems to be deleted
             return '';
         }
         $label = htmlspecialchars(strip_tags(htmlspecialchars_decode($document[0])));
         $icon = $this->iconFactory->getIconForRecord($table, $record, Icon::SIZE_SMALL)->render();
-        $link = \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('record_edit') . '&' . $document[2];
+        $link = BackendUtility::getModuleUrl('record_edit')
+            . '&' . $document[2]
+            . '&returnUrl=' . rawurlencode(BackendUtility::getModuleUrl('web_list') . '&id=' . (int)$document[3]['pid']);
         $pageId = (int)$document[3]['uid'];
         if ($document[3]['table'] !== 'pages') {
             $pageId = (int)$document[3]['pid'];
-- 
GitLab