[TASK] Make Backend Module URLs absolute 46/38246/14
authorBenjamin Mack <benni@typo3.org>
Thu, 26 Mar 2015 14:04:11 +0000 (15:04 +0100)
committerBenjamin Mack <benni@typo3.org>
Fri, 27 Mar 2015 23:14:17 +0000 (00:14 +0100)
In the approach to remove all occurences of dealing with
relative URL referencing in the TYPO3 Backend, the main mod.php
calls are now always prefixed with "/{possiblesubfolder/}typo3/" so
no backPath parameter and calculations are needed anymore.

The patch thus removes all locations of the JavaScript
variable "top.TS.PATH_typo3" containing the backpath and
makes the "relative" path to BackendUtility::getModuleUrl()
always a absolute prefix relative to the PATH_typo3 structure.

Resolves: #66052
Releases: master
Change-Id: Ie8192f227b8d1715be90efff8746482adf252ac7
Reviewed-on: http://review.typo3.org/38246
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Benjamin Mack <benni@typo3.org>
Tested-by: Benjamin Mack <benni@typo3.org>
45 files changed:
typo3/sysext/backend/Classes/Backend/ToolbarItems/ClearCacheToolbarItem.php
typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php
typo3/sysext/backend/Classes/ClickMenu/ClickMenu.php
typo3/sysext/backend/Classes/Clipboard/Clipboard.php
typo3/sysext/backend/Classes/Controller/EditDocumentController.php
typo3/sysext/backend/Classes/Controller/FileSystemNavigationFrameController.php
typo3/sysext/backend/Classes/Controller/PageLayoutController.php
typo3/sysext/backend/Classes/Controller/PageTreeNavigationController.php
typo3/sysext/backend/Classes/Controller/Wizard/AddController.php
typo3/sysext/backend/Classes/Form/Element/InlineElement.php
typo3/sysext/backend/Classes/Form/FormEngine.php
typo3/sysext/backend/Classes/Search/LiveSearch/LiveSearch.php
typo3/sysext/backend/Classes/Template/DocumentTemplate.php
typo3/sysext/backend/Classes/Utility/BackendUtility.php
typo3/sysext/backend/Classes/View/PageLayoutView.php
typo3/sysext/backend/Modules/NewContentElement/index.php
typo3/sysext/backend/Resources/Public/JavaScript/ContextHelp.js
typo3/sysext/backend/Resources/Public/JavaScript/backend.js
typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/actions.js
typo3/sysext/backend/Resources/Public/JavaScript/jsfunc.inline.js
typo3/sysext/backend/Resources/Public/JavaScript/jsfunc.tbe_editor.js
typo3/sysext/backend/Resources/Public/JavaScript/jsfunc.tceforms_suggest.js
typo3/sysext/beuser/Classes/ViewHelpers/EditRecordViewHelper.php
typo3/sysext/beuser/Classes/ViewHelpers/IssueCommandViewHelper.php
typo3/sysext/beuser/Classes/ViewHelpers/RemoveUserViewHelper.php
typo3/sysext/cms/layout/db_new_content_el.php
typo3/sysext/core/Classes/Database/QueryView.php
typo3/sysext/core/Classes/Utility/PathUtility.php
typo3/sysext/extbase/Classes/Mvc/Web/Routing/UriBuilder.php
typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php
typo3/sysext/extensionmanager/Classes/ViewHelpers/Form/TypoScriptConstantsViewHelper.php
typo3/sysext/feedit/Classes/FrontendEditPanel.php
typo3/sysext/filelist/Classes/FileList.php
typo3/sysext/frontend/Classes/View/AdminPanelView.php
typo3/sysext/recordlist/Classes/Browser/ElementBrowser.php
typo3/sysext/recordlist/Classes/RecordList.php
typo3/sysext/recordlist/Classes/RecordList/AbstractDatabaseRecordList.php
typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php
typo3/sysext/reports/Classes/Report/Status/SecurityStatus.php
typo3/sysext/sys_action/Classes/ActionTask.php
typo3/sysext/sys_note/Classes/ViewHelpers/DeleteLinkViewHelper.php
typo3/sysext/sys_note/Classes/ViewHelpers/EditLinkViewHelper.php
typo3/sysext/version/Classes/Controller/VersionModuleController.php
typo3/sysext/workspaces/Classes/Controller/ReviewController.php
typo3/sysext/workspaces/Resources/Public/JavaScript/Component/TabPanel.js

index 2cbc40c..658a1c6 100644 (file)
@@ -54,7 +54,7 @@ class ClearCacheToolbarItem implements ToolbarItemInterface {
                                'id' => 'pages',
                                'title' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushPageCachesTitle', TRUE),
                                'description' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushPageCachesDescription', TRUE),
-                               'href' => BackendUtility::getModuleUrl('tce_db') . '&vC=' . $backendUser->veriCode() . '&cacheCmd=pages&ajaxCall=1' . BackendUtility::getUrlToken('tceAction'),
+                               'href' => BackendUtility::getModuleUrl('tce_db', ['vC' => $backendUser->veriCode(), 'cacheCmd' => 'pages', 'ajaxCall' => 1]) . BackendUtility::getUrlToken('tceAction'),
                                'icon' => IconUtility::getSpriteIcon('actions-system-cache-clear-impact-low')
                        );
                        $this->optionValues[] = 'pages';
@@ -66,7 +66,7 @@ class ClearCacheToolbarItem implements ToolbarItemInterface {
                                'id' => 'all',
                                'title' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushGeneralCachesTitle', TRUE),
                                'description' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushGeneralCachesDescription', TRUE),
-                               'href' => BackendUtility::getModuleUrl('tce_db') . '&vC=' . $backendUser->veriCode() . '&cacheCmd=all&ajaxCall=1' . BackendUtility::getUrlToken('tceAction'),
+                               'href' => BackendUtility::getModuleUrl('tce_db', ['vC' => $backendUser->veriCode(), 'cacheCmd' => 'all', 'ajaxCall' => 1]) . BackendUtility::getUrlToken('tceAction'),
                                'icon' => IconUtility::getSpriteIcon('actions-system-cache-clear-impact-medium')
                        );
                        $this->optionValues[] = 'all';
@@ -82,7 +82,7 @@ class ClearCacheToolbarItem implements ToolbarItemInterface {
                                'id' => 'system',
                                'title' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushSystemCachesTitle', TRUE),
                                'description' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushSystemCachesDescription', TRUE),
-                               'href' => BackendUtility::getModuleUrl('tce_db') . '&vC=' . $backendUser->veriCode() . '&cacheCmd=system&ajaxCall=1' . BackendUtility::getUrlToken('tceAction'),
+                               'href' => BackendUtility::getModuleUrl('tce_db', ['vC' => $backendUser->veriCode(), 'cacheCmd' => 'system', 'ajaxCall' => 1]) . BackendUtility::getUrlToken('tceAction'),
                                'icon' => IconUtility::getSpriteIcon('actions-system-cache-clear-impact-high')
                        );
                        $this->optionValues[] = 'system';
index 4a5ab79..da5374d 100644 (file)
@@ -324,7 +324,7 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
 
                if (strpos($parsedUrl['path'], 'mod.php') !== FALSE && isset($parameters['M'])) {
                        $module = $parameters['M'];
-                       $url = str_replace('mod.php', '', $parsedUrl['path']) . BackendUtility::getModuleUrl($module, $parameters);
+                       $url = BackendUtility::getModuleUrl($module, $parameters);
                }
                return $url;
        }
index 9e586f7..c55ff68 100644 (file)
@@ -490,7 +490,7 @@ class ClickMenu {
        public function urlRefForCM($url, $retUrl = '', $hideCM = TRUE, $overrideLoc = '') {
                $loc = 'top.content.list_frame';
                return ($overrideLoc ? 'var docRef=' . $overrideLoc : 'var docRef=(top.content.list_frame)?top.content.list_frame:' . $loc)
-                       . '; docRef.location.href=top.TS.PATH_typo3+\'' . $url . '\'' . ($retUrl ? '+\'&' . $retUrl . '=\'+top.rawurlencode('
+                       . '; docRef.location.href=\'' . $url . '\'' . ($retUrl ? '+\'&' . $retUrl . '=\'+top.rawurlencode('
                        . $this->frameLocation('docRef.document') . '.pathname+' . $this->frameLocation('docRef.document') . '.search)' : '')
                        . ';';
        }
@@ -535,7 +535,7 @@ class ClickMenu {
                } else {
                        $conf = $loc;
                }
-               $editOnClick = 'if(' . $conf . '){' . $loc . '.location.href=top.TS.PATH_typo3+\'' . $this->clipObj->pasteUrl($table, $uid, 0) . '&redirect=\'+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search);}';
+               $editOnClick = 'if(' . $conf . '){' . $loc . '.location.href=\'' . $this->clipObj->pasteUrl($table, $uid, 0) . '&redirect=\'+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search);}';
                return $this->linkItem($this->label('paste' . $type), IconUtility::getSpriteIcon('actions-document-paste-' . $type), $editOnClick . 'return false;');
        }
 
@@ -699,11 +699,11 @@ class ClickMenu {
                        if ($this->backendUser->uc['classicPageEditMode']) {
                                $addParam = '&editRegularContentFromId=' . (int)$this->iParts[1];
                        } else {
-                               $editOnClick = 'if(' . $loc . '){' . $loc . '.location.href=top.TS.PATH_typo3+\'' . $link . '&returnUrl=\'+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+\'' . $addParam . '\';}';
+                               $editOnClick = 'if(' . $loc . '){' . $loc . '.location.href=\'' . $link . '&returnUrl=\'+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+\'' . $addParam . '\';}';
                        }
                }
                if (!$editOnClick) {
-                       $editOnClick = 'if(' . $loc . '){' . $loc . '.location.href=top.TS.PATH_typo3+\'' . $link . '&returnUrl=\'+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+\'' . $addParam . '\';}';
+                       $editOnClick = 'if(' . $loc . '){' . $loc . '.location.href=\'' . $link . '&returnUrl=\'+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+\'' . $addParam . '\';}';
                }
                return $this->linkItem($this->label('edit'), IconUtility::getSpriteIcon($theIcon), $editOnClick . ';');
        }
@@ -722,7 +722,7 @@ class ClickMenu {
                $module = $this->listFrame
                        ? GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('record_edit', array('edit[' . $table . '][-' . $uid . ']' => 'new')) . '&returnUrl=') . '+top.rawurlencode(' . $location . '.pathname+' . $location . '.search)'
                        : GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', array('id' => (int)$uid)));
-               $editOnClick = 'if(' . $frame . '){' . $frame . '.location.href=top.TS.PATH_typo3+' . $module . ';}';
+               $editOnClick = 'if(' . $frame . '){' . $frame . '.location.href=' . $module . ';}';
                $icon = IconUtility::getSpriteIcon('actions-' . ($table === 'pages' ? 'page' : 'document') . '-new');
                return $this->linkItem($this->label('new'), $icon, $editOnClick);
        }
@@ -743,7 +743,7 @@ class ClickMenu {
                } else {
                        $conf = '1==1';
                }
-               $editOnClick = 'if(' . $loc . ' && ' . $conf . ' ){' . $loc . '.location.href=top.TS.PATH_typo3+' .
+               $editOnClick = 'if(' . $loc . ' && ' . $conf . ' ){' . $loc . '.location.href=' .
                        GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_db') . '&redirect=') . '+top.rawurlencode(' .
                        $this->frameLocation($loc . '.document') . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+' .
                        GeneralUtility::quoteJSvalue(
@@ -819,7 +819,7 @@ class ClickMenu {
        public function DB_changeFlag($table, $rec, $flagField, $title) {
                $uid = $rec['_ORIG_uid'] ?: $rec['uid'];
                $loc = 'top.content.list_frame';
-               $editOnClick = 'if(' . $loc . '){' . $loc . '.location.href=top.TS.PATH_typo3+' .
+               $editOnClick = 'if(' . $loc . '){' . $loc . '.location.href=' .
                        GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_db') . '&redirect=') . '+top.rawurlencode(' .
                        $this->frameLocation($loc . '.document') . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+' .
                        GeneralUtility::quoteJSvalue(
@@ -1003,7 +1003,7 @@ class ClickMenu {
                        $scriptUrl = BackendUtility::getModuleUrl($moduleName);
                }
 
-               $editOnClick = 'if(' . $loc . '){' . $loc . '.location.href=top.TS.PATH_typo3+' . GeneralUtility::quoteJSvalue($scriptUrl . '&target=' . rawurlencode($path)) . ($noReturnUrl ? '' : '+\'&returnUrl=\'+top.rawurlencode(' . $this->frameLocation($loc . '.document') . '.pathname+' . $this->frameLocation($loc . '.document') . '.search)') . ';}';
+               $editOnClick = 'if(' . $loc . '){' . $loc . '.location.href=' . GeneralUtility::quoteJSvalue($scriptUrl . '&target=' . rawurlencode($path)) . ($noReturnUrl ? '' : '+\'&returnUrl=\'+top.rawurlencode(' . $this->frameLocation($loc . '.document') . '.pathname+' . $this->frameLocation($loc . '.document') . '.search)') . ';}';
                return $this->linkItem($this->label($type), IconUtility::getSpriteIcon($iconName), $editOnClick . 'top.nav.refresh();');
        }
 
@@ -1044,7 +1044,7 @@ class ClickMenu {
                } else {
                        $conf = '1==1';
                }
-               $editOnClick = 'if(' . $loc . ' && ' . $conf . ' ){' . $loc . '.location.href=top.TS.PATH_typo3+' .
+               $editOnClick = 'if(' . $loc . ' && ' . $conf . ' ){' . $loc . '.location.href=' .
                        GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_file') . '&redirect=') . '+top.rawurlencode(' .
                        $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+' .
                        GeneralUtility::quoteJSvalue(
@@ -1069,7 +1069,7 @@ class ClickMenu {
                } else {
                        $conf = $loc;
                }
-               $editOnClick = 'if(' . $conf . '){' . $loc . '.location.href=top.TS.PATH_typo3+\'' . $this->clipObj->pasteUrl('_FILE', $path, 0) . '&redirect=\'+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search);  };top.nav.refresh();';
+               $editOnClick = 'if(' . $conf . '){' . $loc . '.location.href=\'' . $this->clipObj->pasteUrl('_FILE', $path, 0) . '&redirect=\'+top.rawurlencode(' . $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search);  };top.nav.refresh();';
                return $this->linkItem($this->label('pasteinto'), IconUtility::getSpriteIcon('actions-document-paste-into'), $editOnClick . 'return false;');
        }
 
@@ -1148,7 +1148,7 @@ class ClickMenu {
        public function dragDrop_copymovepage($srcUid, $dstUid, $action, $into) {
                $negativeSign = $into === 'into' ? '' : '-';
                $loc = 'top.content.list_frame';
-               $editOnClick = 'if(' . $loc . '){' . $loc . '.document.location=top.TS.PATH_typo3+' .
+               $editOnClick = 'if(' . $loc . '){' . $loc . '.document.location=' .
                        GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_db') . '&redirect=') . '+top.rawurlencode(' .
                        $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+' .
                        GeneralUtility::quoteJSvalue(
@@ -1169,7 +1169,7 @@ class ClickMenu {
         */
        public function dragDrop_copymovefolder($srcPath, $dstPath, $action) {
                $loc = 'top.content.list_frame';
-               $editOnClick = 'if(' . $loc . '){' . $loc . '.document.location=top.TS.PATH_typo3+' .
+               $editOnClick = 'if(' . $loc . '){' . $loc . '.document.location=' .
                        GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_file') . '&redirect=') . '+top.rawurlencode(' .
                        $this->frameLocation(($loc . '.document')) . '.pathname+' . $this->frameLocation(($loc . '.document')) . '.search)+' .
                        GeneralUtility::quoteJSvalue(
index fce53f6..5ccd300 100644 (file)
@@ -503,7 +503,7 @@ class Clipboard {
                        if ($this->fileMode) {
                                $str = '<span class="text-muted">' . $str . '</span>';
                        } else {
-                               $str = '<a href="' . htmlspecialchars(BackendUtility::getModuleUrl('web_list', array('id' => $rec['pid']), $this->backPath)) . '">' . $str . '</a>';
+                               $str = '<a href="' . htmlspecialchars(BackendUtility::getModuleUrl('web_list', array('id' => $rec['pid']))) . '">' . $str . '</a>';
                        }
                } elseif (file_exists($rec)) {
                        if (!$this->fileMode) {
@@ -566,14 +566,20 @@ class Clipboard {
         * @return string
         */
        public function pasteUrl($table, $uid, $setRedirect = TRUE, array $update = NULL) {
-               return ($table == '_FILE' ? BackendUtility::getModuleUrl('tce_file', array(), $this->backPath) : BackendUtility::getModuleUrl('tce_db', array(), $this->backPath)) .
-                       ($setRedirect ? '&redirect=' . rawurlencode(GeneralUtility::linkThisScript(array('CB' => ''))) : '') .
-                       '&vC=' . $this->getBackendUser()->veriCode() .
-                       '&prErr=1&uPT=1' .
-                       '&CB[paste]=' . rawurlencode($table . '|' . $uid) .
-                       '&CB[pad]=' . $this->current .
-                       (is_array($update) ? GeneralUtility::implodeArrayForUrl('CB[update]', $update) : '') .
-                       BackendUtility::getUrlToken('tceAction');
+               $urlParameters = [
+                       'vC' => $this->getBackendUser()->veriCode(),
+                       'prErr' => 1,
+                       'uPT' => 1,
+                       'CB[paste]' => $table . '|' . $uid,
+                       'CB[pad]' => $this->current
+               ];
+               if ($setRedirect) {
+                       $urlParameters['redirect'] = GeneralUtility::linkThisScript(array('CB' => ''));
+               }
+               if (is_array($update)) {
+                       $urlParameters['CB[update]'] = $update;
+               }
+               return BackendUtility::getModuleUrl($table === '_FILE' ? 'tce_file' : 'tce_db', $urlParameters) . BackendUtility::getUrlToken('tceAction');
        }
 
        /**
@@ -584,9 +590,17 @@ class Clipboard {
         * @return string
         */
        public function deleteUrl($setRedirect = 1, $file = 0) {
-               return ($file ? BackendUtility::getModuleUrl('tce_file', array(), $this->backPath) : BackendUtility::getModuleUrl('tce_db', array(), $this->backPath))
-                       . ($setRedirect ? '&redirect=' . rawurlencode(GeneralUtility::linkThisScript(array('CB' => ''))) : '') . '&vC=' . $this->getBackendUser()->veriCode()
-                       . '&prErr=1&uPT=1' . '&CB[delete]=1' . '&CB[pad]=' . $this->current . BackendUtility::getUrlToken('tceAction');
+               $urlParameters = [
+                       'vC' => $this->getBackendUser()->veriCode(),
+                       'prErr' => 1,
+                       'uPT' => 1,
+                       'CB[delete]' => 1,
+                       'CB[pad]' => $this->current
+               ];
+               if ($setRedirect) {
+                       $urlParameters['redirect'] = GeneralUtility::linkThisScript(array('CB' => ''));
+               }
+               return BackendUtility::getModuleUrl($file ? 'tce_file' : 'tce_db', $urlParameters) . BackendUtility::getUrlToken('tceAction');
        }
 
        /**
index 210ffbb..042f233 100644 (file)
@@ -684,7 +684,7 @@ class EditDocumentController {
                        function typoSetup() {  //
                                this.uniqueID = "";
                                this.passwordDummy = "********";
-                               this.PATH_typo3 = " ";
+                               this.PATH_typo3 = "";
                                this.decimalSign = ".";
                        }
                        var TS = new typoSetup();
index 58619f4..0522369 100644 (file)
@@ -141,7 +141,7 @@ class FileSystemNavigationFrameController {
                $this->doc->JScode .= $this->doc->wrapScriptTags(($this->currentSubScript ? 'top.currentSubScript=unescape("' . rawurlencode($this->currentSubScript) . '");' : '') . '
                // Function, loading the list frame from navigation tree:
                function jumpTo(id, linkObj, highlightID, bank) {
-                       var theUrl = top.TS.PATH_typo3 + top.currentSubScript ;
+                       var theUrl = top.currentSubScript;
                        if (theUrl.indexOf("?") != -1) {
                                theUrl += "&id=" + id
                        } else {
index be2095b..49d047a 100644 (file)
@@ -483,7 +483,7 @@ class PageLayoutController {
 
                                function deleteRecord(table,id,url) {   //
                                        if (confirm(' . GeneralUtility::quoteJSvalue($GLOBALS['LANG']->getLL('deleteWarning')) . ')) {
-                                               window.location.href = ' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_db', array(), $GLOBALS['BACK_PATH']) . '&cmd[') . '+table+"]["+id+"][delete]=1&redirect="+escape(url)+"&vC=' . $GLOBALS['BE_USER']->veriCode() . BackendUtility::getUrlToken('tceAction') . '&prErr=1&uPT=1";
+                                               window.location.href = ' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_db') . '&cmd[') . '+table+"]["+id+"][delete]=1&redirect="+escape(url)+"&vC=' . $GLOBALS['BE_USER']->veriCode() . BackendUtility::getUrlToken('tceAction') . '&prErr=1&uPT=1";
                                        }
                                        return false;
                                }
@@ -662,7 +662,7 @@ class PageLayoutController {
                // Alternative template
                $this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/db_layout_quickedit.html');
                // Alternative form tag; Quick Edit submits its content to tce_db.php.
-               $this->doc->form = '<form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_db', array(), $GLOBALS['BACK_PATH']) . '&prErr=1&uPT=1') . '" method="post" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '" name="editform" onsubmit="return TBE_EDITOR.checkSubmit(1);">';
+               $this->doc->form = '<form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_db', ['prErr' => 1, 'uPT' => 1])) . '" method="post" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '" name="editform" onsubmit="return TBE_EDITOR.checkSubmit(1);">';
                // Setting up the context sensitive menu:
                $this->doc->getContextMenuCode();
                // Set the edit_record value for internal use in this function:
@@ -676,7 +676,7 @@ class PageLayoutController {
                        }
                        $url = BackendUtility::getModuleUrl('record_edit', array(
                                'edit[tt_content][' . implode(',', $idListA) . ']' => 'edit',
-                               'returnUrl' => rawurlencode($this->local_linkThisScript(array('edit_record' => '')))
+                               'returnUrl' => $this->local_linkThisScript(array('edit_record' => ''))
                        ));
                        \TYPO3\CMS\Core\Utility\HttpUtility::redirect($url);
                }
@@ -1093,7 +1093,12 @@ class PageLayoutController {
                if (!$this->modTSconfig['properties']['disableIconToolbar']) {
                        // Move record
                        if (MathUtility::canBeInterpretedAsInteger($this->eRParts[1])) {
-                               $buttons['move_record'] = '<a href="' . htmlspecialchars(BackendUtility::getModuleUrl('move_element', array(), $GLOBALS['BACK_PATH']) . '&table=' . $this->eRParts[0] . '&uid=' . $this->eRParts[1] . '&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI'))) . '">' . IconUtility::getSpriteIcon(('actions-' . ($this->eRParts[0] == 'tt_content' ? 'document' : 'page') . '-move'), array('class' => 'c-inputButton', 'title' => $GLOBALS['LANG']->getLL(('move_' . ($this->eRParts[0] == 'tt_content' ? 'record' : 'page')), TRUE))) . '</a>';
+                               $urlParameters = [
+                                       'table' => $this->eRParts[0],
+                                       'uid' => $this->eRParts[1],
+                                       'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')
+                               ];
+                               $buttons['move_record'] = '<a href="' . htmlspecialchars(BackendUtility::getModuleUrl('move_element', $urlParameters)) . '">' . IconUtility::getSpriteIcon(('actions-' . ($this->eRParts[0] == 'tt_content' ? 'document' : 'page') . '-move'), array('class' => 'c-inputButton', 'title' => $GLOBALS['LANG']->getLL(('move_' . ($this->eRParts[0] == 'tt_content' ? 'record' : 'page')), TRUE))) . '</a>';
                        }
 
                        // Edit page properties and page language overlay icons
index 41e5bca..8dc9466 100644 (file)
@@ -155,7 +155,7 @@ class PageTreeNavigationController {
                $this->doc->JScode .= $this->doc->wrapScriptTags(($this->currentSubScript ? 'top.currentSubScript=unescape("' . rawurlencode($this->currentSubScript) . '");' : '') . '
                // Function, loading the list frame from navigation tree:
                function jumpTo(id, linkObj, highlightID, bank) { //
-                       var theUrl = top.TS.PATH_typo3 + top.currentSubScript ;
+                       var theUrl = top.currentSubScript ;
                        if (theUrl.indexOf("?") != -1) {
                                theUrl += "&id=" + id
                        } else {
@@ -227,7 +227,7 @@ class PageTreeNavigationController {
                        'refresh' => ''
                );
                // New Page
-               $onclickNewPageWizard = 'top.content.list_frame.location.href=top.TS.PATH_typo3+' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', ['pagesOnly' => 1, 'id' => ''])) . '+Tree.pageID;';
+               $onclickNewPageWizard = 'top.content.list_frame.location.href=' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', ['pagesOnly' => 1, 'id' => ''])) . '+Tree.pageID;';
                $buttons['new_page'] = '<a href="#" onclick="' . $onclickNewPageWizard . '" title="' . $GLOBALS['LANG']->sL('LLL:EXT:cms/layout/locallang.xlf:newPage', TRUE) . '">' . IconUtility::getSpriteIcon('actions-page-new') . '</a>';
                // Refresh
                $buttons['refresh'] = '<a href="' . htmlspecialchars(GeneralUtility::getIndpEnv('REQUEST_URI')) . '" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.refresh', TRUE) . '">' . IconUtility::getSpriteIcon('actions-system-refresh') . '</a>';
index b648951..f25c327 100644 (file)
@@ -203,7 +203,7 @@ class AddController extends AbstractWizardController {
                        $redirectUrl = BackendUtility::getModuleUrl('record_edit', array(
                                'returnEditConf' => 1,
                                'edit[' . $this->P['params']['table'] . '][' . $this->pid . ']' => 'new',
-                               'returnUrl' => rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI'))
+                               'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')
                        ));
                        HttpUtility::redirect($redirectUrl);
                }
index a58d994..9368a9c 100644 (file)
@@ -741,7 +741,7 @@ class InlineElement {
                                        $url = BackendUtility::getModuleUrl('record_edit', array(
                                                'edit[sys_file_metadata][' . (int)$recordInDatabase['uid'] . ']' => 'edit'
                                        ));
-                                       $editOnClick = 'if(top.content.list_frame){top.content.list_frame.location.href=top.TS.PATH_typo3+\'' . $url . '&returnUrl=\'+top.rawurlencode('
+                                       $editOnClick = 'if(top.content.list_frame){top.content.list_frame.location.href=\'' . $url . '&returnUrl=\'+top.rawurlencode('
                                                . 'top.content.list_frame.document.location' . '.pathname+top.content.list_frame.document.location' . '.search);}';
                                        $title = $languageService->sL('LLL:EXT:lang/locallang_core.xlf:cm.editMetadata');
                                        $cells['editmetadata'] = '
index c098009..24f1bc2 100644 (file)
@@ -926,7 +926,7 @@ class FormEngine {
                                                $lTTS_url = BackendUtility::getModuleUrl('record_edit', array(
                                                        'edit[' . $table . '][' . $row['uid'] . ']' => 'edit',
                                                        'columnsOnly' => $field,
-                                                       'returnUrl' => rawurlencode($this->thisReturnUrl())
+                                                       'returnUrl' => $this->thisReturnUrl()
                                                ));
                                                $label = '<a href="' . htmlspecialchars($lTTS_url) . '">' . $label . '</a>';
                                        }
index 277e009..ff58492 100644 (file)
@@ -249,7 +249,7 @@ class LiveSearch {
                        $returnUrl = BackendUtility::getModuleUrl('web_list', array('id' => $row['pid']));
                        $editLink = BackendUtility::getModuleUrl('record_edit', array(
                                'edit[' . $tableName . '][' . $row['uid'] . ']' => 'edit',
-                               'returnUrl' => rawurlencode($returnUrl)
+                               'returnUrl' => $returnUrl
                        ));
                }
                return $editLink;
index e955862..96d729d 100644 (file)
@@ -545,7 +545,7 @@ function jumpToUrl(URL) {
         */
        public function issueCommand($params, $redirectUrl = '') {
                $redirectUrl = $redirectUrl ? $redirectUrl : GeneralUtility::getIndpEnv('REQUEST_URI');
-               $commandUrl = BackendUtility::getModuleUrl('tce_db', array(), $this->backPath) . '&' . $params . '&redirect=' . ($redirectUrl == -1 ? '\'+T3_THIS_LOCATION+\'' : rawurlencode($redirectUrl)) . '&vC=' . rawurlencode($GLOBALS['BE_USER']->veriCode()) . BackendUtility::getUrlToken('tceAction') . '&prErr=1&uPT=1';
+               $commandUrl = BackendUtility::getModuleUrl('tce_db') . '&' . $params . '&redirect=' . ($redirectUrl == -1 ? '\'+T3_THIS_LOCATION+\'' : rawurlencode($redirectUrl)) . '&vC=' . rawurlencode($GLOBALS['BE_USER']->veriCode()) . BackendUtility::getUrlToken('tceAction') . '&prErr=1&uPT=1';
                return $commandUrl;
        }
 
index 94640de..9acd236 100644 (file)
@@ -2672,7 +2672,7 @@ class BackendUtility {
         * REMEMBER to always htmlspecialchar() content in href-properties to ampersands get converted to entities (XHTML requirement and XSS precaution)
         *
         * @param string $params Parameters sent along to EditDocumentController. This requires a much more details description which you must seek in Inside TYPO3s documentation of the FormEngine API. And example could be '&edit[pages][123] = edit' which will show edit form for page record 123.
-        * @param string $backPath Must point back to the TYPO3_mainDir directory (where the main entry point is)
+        * @param string $backPath (unused)
         * @param string $requestUri An optional returnUrl you can set - automatically set to REQUEST_URI.
         *
         * @return string
@@ -2683,7 +2683,7 @@ class BackendUtility {
                        ? '\'+T3_THIS_LOCATION+\''
                        : rawurlencode($requestUri ?: GeneralUtility::getIndpEnv('REQUEST_URI'));
                $retUrlParam = 'returnUrl=' . $returnUrl;
-               return 'window.location.href=\'' . self::getModuleUrl('record_edit', array(), $backPath) . '&' . $retUrlParam . $params . '\'; return false;';
+               return 'window.location.href=\'' . self::getModuleUrl('record_edit') . '&' . $retUrlParam . $params . '\'; return false;';
        }
 
        /**
@@ -3136,16 +3136,11 @@ class BackendUtility {
         *
         * @param string $moduleName Name of the module
         * @param array $urlParameters URL parameters that should be added as key value pairs
-        * @param bool|string $backPathOverride backpath that should be used instead of the global $BACK_PATH
+        * @param bool|string $backPathOverride (unused)
         * @param bool $returnAbsoluteUrl If set to TRUE, the URL returned will be absolute, $backPathOverride will be ignored in this case
         * @return string Calculated URL
         */
        static public function getModuleUrl($moduleName, $urlParameters = array(), $backPathOverride = FALSE, $returnAbsoluteUrl = FALSE) {
-               if ($backPathOverride === FALSE) {
-                       $backPath = isset($GLOBALS['BACK_PATH']) ? $GLOBALS['BACK_PATH'] : '';
-               } else {
-                       $backPath = $backPathOverride;
-               }
                $urlParameters = array(
                        'M' => $moduleName,
                        'moduleToken' => FormProtectionFactory::get()->generateToken('moduleCall', $moduleName)
@@ -3154,7 +3149,7 @@ class BackendUtility {
                if ($returnAbsoluteUrl) {
                        return GeneralUtility::getIndpEnv('TYPO3_REQUEST_DIR') . $url;
                } else {
-                       return $backPath . $url;
+                       return PathUtility::getAbsoluteWebPath(PATH_typo3 . $url);
                }
        }
 
index 06daea5..04969cf 100644 (file)
@@ -861,8 +861,7 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
                        }
                        if ($this->ext_CALC_PERMS & Permission::PAGE_DELETE || $this->ext_CALC_PERMS & Permission::PAGE_EDIT) {
                                $bArray[1] = $this->getPageLayoutController()->doc->t3Button(
-                                       'window.location.href=' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('move_element', array(), $this->backPath) . '&table=pages&uid=' . $id
-                                               . '&returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI'))) . ';',
+                                       'window.location.href=' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('move_element', ['table' => 'pages', 'uid' => $id, 'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')])) . ';',
                                        $this->getLanguageService()->getLL('move_page')
                                );
                        }
@@ -873,7 +872,7 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
                                        'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')
                                ];
                                $bArray[2] = $this->getPageLayoutController()->doc->t3Button(
-                                       'window.location.href=' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', $parameters, $this->backPath)) . ';',
+                                       'window.location.href=' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', $parameters)) . ';',
                                        $this->getLanguageService()->getLL('newPage2')
                                );
                        }
@@ -1835,8 +1834,8 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
                                $url = BackendUtility::getModuleUrl('record_edit', array(
                                        'edit[pages_language_overlay]['. $id . ']' => 'new',
                                        'overrideVals[pages_language_overlay][doktype]' => (int)$this->pageRecord['doktype'],
-                                       'returnUrl' => rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI'))
-                               ), $this->backPath);
+                                       'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')
+                               ));
                                $onChangeContent = 'window.location.href=\'' . $url . '&overrideVals[pages_language_overlay][sys_language_uid]=\'+this.options[this.selectedIndex].value';
                                return '<div class="form-inline form-inline-spaced">'
                                        . '<div class="form-group">'
index a7368cf..694a1a5 100644 (file)
@@ -50,7 +50,7 @@ class ext_posMap extends \TYPO3\CMS\Backend\Tree\View\PagePositionMap {
                        'edit[tt_content][' . (is_array($row) ? -$row['uid'] : $pid) . ']' => 'new',
                        'defVals[tt_content][colPos]' => $vv,
                        'defVals[tt_content][sys_language_uid]' => $sys_lang,
-                       'returnUrl' => rawurlencode($GLOBALS['SOBE']->R_URI)
+                       'returnUrl' => $GLOBALS['SOBE']->R_URI
                ));
                return 'window.location.href=' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($location) . '+document.editForm.defValues.value; return false;';
        }
index 3f00a92..426fec2 100644 (file)
@@ -97,7 +97,7 @@ define('TYPO3/CMS/Backend/ContextHelp', ['jquery', 'TYPO3/CMS/Backend/Popover',
                var identifier = $trigger.data('table') + '.' + $trigger.data('field');
                try {
                        var cshWindow = window.open(
-                               top.TYPO3.configuration.PATH_typo3 + ContextHelp.helpModuleUrl + '&tfID=' + identifier,
+                               ContextHelp.helpModuleUrl + '&tfID=' + identifier,
                                'ContextHelpWindow',
                                'height=' + top.TYPO3.configuration.ContextHelpWindows.height + ',width=' + top.TYPO3.configuration.ContextHelpWindows.width + ',status=0,menubar=0,scrollbars=1'
                        );
index 2f38548..d26f034 100644 (file)
@@ -134,7 +134,7 @@ function str_replace(match,replace,string)  {       //
  */
 function launchView(table, uid, bP) {
        var thePreviewWindow = "";
-       thePreviewWindow = window.open(TS.PATH_typo3 + TYPO3.settings.ShowItem.moduleUrl + '&table=' + encodeURIComponent(table) + "&uid=" + encodeURIComponent(uid),
+       thePreviewWindow = window.open(TYPO3.settings.ShowItem.moduleUrl + '&table=' + encodeURIComponent(table) + "&uid=" + encodeURIComponent(uid),
                        "ShowItem" + TS.uniqueID,
                        "width=650,height=600,status=0,menubar=0,resizable=0,location=0,directories=0,scrollbars=1,toolbar=0");
        if (thePreviewWindow && thePreviewWindow.focus) {
index c7ec3e4..74a75e7 100644 (file)
@@ -715,7 +715,7 @@ TYPO3.Components.PageTree.Actions = {
                fsMod.recentIds['web'] = node.attributes.nodeData.id;
 
                TYPO3.Backend.ContentContainer.setUrl(
-                       TS.PATH_typo3 + currentSubScript + separator + 'id=' + node.attributes.nodeData.id
+                       currentSubScript + separator + 'id=' + node.attributes.nodeData.id
                );
        },
 
index 0277094..d9d6cd6 100644 (file)
@@ -192,7 +192,7 @@ var inline = {
        makeAjaxCall: function (method, params, lock, context) {
                var url = '', urlParams = '', options = {};
                if (method && params && params.length && this.lockAjaxMethod(method, lock)) {
-                       url = TBE_EDITOR.getBackendPath() + TYPO3.settings.ajaxUrls['t3lib_TCEforms_inline::' + method];
+                       url = TYPO3.settings.ajaxUrls['t3lib_TCEforms_inline::' + method];
                        urlParams = '';
                        for (var i = 0, max = params.length; i < max; i++) {
                                urlParams += '&ajax[' + i + ']=' + encodeURIComponent(params[i]);
index b562197..d8a0a3d 100644 (file)
@@ -520,9 +520,12 @@ var TBE_EDITOR = {
        /**
         * Determines backend path to be used for e.g. ajax.php
         * @return string
+        * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8
         */
        getBackendPath: function() {
-               var backendPath = '';
+               if (typeof console != 'undefined') {
+                       console.log('TS.getBackendPath() is deprecated since TYPO3 CMS 7, and will be removed in TYPO3 CMS 8.');
+               }
                if (TYPO3) {
                        if (TYPO3.configuration && TYPO3.configuration.PATH_typo3) {
                                backendPath = TYPO3.configuration.PATH_typo3;
index cadc8fd..1be2076 100644 (file)
@@ -43,13 +43,12 @@ TCEForms.Suggest = Class.create({
         * @param string newRecordRow JSON encoded new content element. Only set when new record is inside flexform
         */
        initialize: function(objectId, table, field, uid, pid, minimumCharacters, fieldType, newRecordRow) {
-               var PATH_typo3 = top.TS.PATH_typo3 || window.opener.top.TS.PATH_typo3;
                this.objectId = objectId;
                this.suggestField = objectId + 'Suggest';
                this.suggestResultList = objectId + 'SuggestChoices';
                this.fieldType = fieldType;
 
-               new Ajax.Autocompleter(this.suggestField, this.suggestResultList, PATH_typo3 + TYPO3.settings.ajaxUrls['t3lib_TCEforms_suggest::searchRecord'], {
+               new Ajax.Autocompleter(this.suggestField, this.suggestResultList, TYPO3.settings.ajaxUrls['t3lib_TCEforms_suggest::searchRecord'], {
                                paramName: 'value',
                                minChars: (minimumCharacters ? minimumCharacters : this.minimumCharacters),
                                updateElement: this.addElementToList.bind(this),
index 594a47e..94bcaa2 100644 (file)
@@ -32,9 +32,6 @@ class EditRecordViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractView
         */
        public function render($parameters) {
                $parameters = \TYPO3\CMS\Core\Utility\GeneralUtility::explodeUrl2Array($parameters);
-               if (isset($parameters['returnUrl'])) {
-                       $parameters['returnUrl'] = rawurlencode($parameters['returnUrl']);
-               }
                return BackendUtility::getModuleUrl('record_edit', $parameters);
        }
 
index ee46747..405bdc3 100644 (file)
@@ -36,7 +36,13 @@ class IssueCommandViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractVi
         */
        public function render($parameters, $redirectUrl = '') {
                $redirectUrl = $redirectUrl ?: \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('REQUEST_URI');
-               return htmlspecialchars(BackendUtility::getModuleUrl('tce_db', array(), $GLOBALS['BACK_PATH']) . '&' . $parameters . '&redirect=' . ($redirectUrl === '' ? '\' + T3_THIS_LOCATION + \'' : rawurlencode($redirectUrl)) . '&vC=' . rawurlencode($GLOBALS['BE_USER']->veriCode()) . \TYPO3\CMS\Backend\Utility\BackendUtility::getUrlToken('tceAction') . '&prErr=1&uPT=1');
+               $redirect = '&redirect=' . ($redirectUrl === '' ? '\' + T3_THIS_LOCATION + \'' : rawurlencode($redirectUrl));
+               $urlParameters = [
+                       'vC' => $GLOBALS['BE_USER']->veriCode(),
+                       'prErr' => 1,
+                       'uPT' => 1
+               ];
+               return htmlspecialchars(BackendUtility::getModuleUrl('tce_db', $urlParameters) . '&' . $parameters . $redirect  . BackendUtility::getUrlToken('tceAction'));
        }
 
 }
index 759c03a..13dfd05 100644 (file)
@@ -38,10 +38,15 @@ class RemoveUserViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractView
                }
 
                $redirectUrl = GeneralUtility::getIndpEnv('REQUEST_URI');
-               $parameters = 'cmd[be_users][' . $backendUser->getUid() . '][delete]=1';
-               $url = BackendUtility::getModuleUrl('tce_db', array(), $GLOBALS['BACK_PATH']) . '&' . $parameters . '&redirect=' .
-                       ($redirectUrl == '' ? '\' + T3_THIS_LOCATION + \'' : rawurlencode($redirectUrl)) . '&vC=' .
-                       rawurlencode($GLOBALS['BE_USER']->veriCode()) . BackendUtility::getUrlToken('tceAction') . '&prErr=1&uPT=1';
+               $redirect = '&redirect=' . ($redirectUrl == '' ? '\' + T3_THIS_LOCATION + \'' : rawurlencode($redirectUrl));
+               $urlParameters = [
+                       'cmd[be_users][' . $backendUser->getUid() . '][delete]' => 1,
+                       'vC' => $GLOBALS['BE_USER']->veriCode(),
+                       'prErr' => 1,
+                       'uPT' => 1
+               ];
+               $url = BackendUtility::getModuleUrl('tce_db', $urlParameters) . $redirect . BackendUtility::getUrlToken('tceAction');
+
                return '<a class="btn btn-default" href="' . $url . '"  onclick="return confirm(' .
                        GeneralUtility::quoteJSvalue(LocalizationUtility::translate('confirm', 'beuser', array($backendUser->getUserName()))) .
                        ')">' . IconUtility::getSpriteIcon(('actions-edit-delete')) . '</a>';
index f754796..7eddb52 100644 (file)
@@ -68,7 +68,7 @@ class ext_posMap extends \TYPO3\CMS\Backend\Tree\View\PagePositionMap {
                        'edit[tt_content][' . (is_array($row) ? -$row['uid'] : $pid) . ']' => 'new',
                        'defVals[tt_content][colPos]' => $vv,
                        'defVals[tt_content][sys_language_uid]' => $sys_lang,
-                       'returnUrl' => rawurlencode($GLOBALS['SOBE']->R_URI)
+                       'returnUrl' => $GLOBALS['SOBE']->R_URI
                ));
                return 'window.location.href=\'' . $location . '\'+document.editForm.defValues.value; return false;';
        }
index bb89246..37ebe94 100644 (file)
@@ -545,7 +545,7 @@ class QueryView {
                        $out .= '<a class="btn btn-default" href="#" onClick="top.launchView(\'' . $table . '\',' . $row['uid'] . ',\'' . $GLOBALS['BACK_PATH'] . '\');return false;">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('status-dialog-information') . '</a>';
                        $out .= '<a class="btn btn-default" href="#" onClick="' . BackendUtility::editOnClick($params, $GLOBALS['BACK_PATH'], (GeneralUtility::getIndpEnv('REQUEST_URI') . GeneralUtility::implodeArrayForUrl('SET', (array)GeneralUtility::_POST('SET')))) . '">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-document-open') . '</a>';
                } else {
-                       $out .= '<a class="btn btn-default" href="' . GeneralUtility::linkThisUrl(BackendUtility::getModuleUrl('tce_db', array(), $GLOBALS['BACK_PATH']), array(
+                       $out .= '<a class="btn btn-default" href="' . GeneralUtility::linkThisUrl(BackendUtility::getModuleUrl('tce_db'), array(
                                        ('cmd[' . $table . '][' . $row['uid'] . '][undelete]') => '1',
                                        'redirect' => GeneralUtility::linkThisScript(array())
                                )) . BackendUtility::getUrlToken('tceAction') . '">';
@@ -555,7 +555,7 @@ class QueryView {
                                'returnUrl' => GeneralUtility::linkThisScript(array())
                        );
                        $redirectUrl = BackendUtility::getModuleUrl('record_edit', $formEngineParameters);
-                       $out .= '<a class="btn btn-default" href="' . GeneralUtility::linkThisUrl(BackendUtility::getModuleUrl('tce_db', array(), $GLOBALS['BACK_PATH']), array(
+                       $out .= '<a class="btn btn-default" href="' . GeneralUtility::linkThisUrl(BackendUtility::getModuleUrl('tce_db'), array(
                                        ('cmd[' . $table . '][' . $row['uid'] . '][undelete]') => '1',
                                        'redirect' => $redirectUrl
                                )) . BackendUtility::getUrlToken('tceAction') . '">';
index 06d4e66..db29dd4 100644 (file)
@@ -33,6 +33,28 @@ class PathUtility {
        }
 
        /**
+        * Creates an absolute URL out of really any input path, removes '../' parts for the targetPath
+        *
+        * @param string $targetPath can be "../../typo3/contrib/myfile.js" or "/myfile.js"
+        * @return string something like "/mysite/typo3/sysext/backend.js"
+        */
+       static public function getAbsoluteWebPath($targetPath) {
+               if ($targetPath[0] === '/') {
+                       if (StringUtility::beginsWith($targetPath, PATH_site)) {
+                               $targetPath = GeneralUtility::getIndpEnv('TYPO3_SITE_PATH') . self::stripPathSitePrefix($targetPath);
+                       }
+               } elseif (strpos($targetPath, '://') !== FALSE) {
+                       return $targetPath;
+               } else {
+                       // Make an absolute path out of it
+                       $targetPath = GeneralUtility::resolveBackPath(dirname(PATH_thisScript) . '/' . $targetPath);
+                       $targetPath = self::stripPathSitePrefix($targetPath);
+                       $targetPath = GeneralUtility::getIndpEnv('TYPO3_SITE_PATH') . $targetPath;
+               }
+               return $targetPath;
+       }
+
+       /**
         * Gets the relative path from a source directory to a target directory.
         * The allowed TYPO3 path is checked as well, thus it's not possible to go to upper levels.
         *
index 9f92b14..46598b6 100644 (file)
@@ -641,13 +641,14 @@ class UriBuilder {
                $this->lastArguments = $arguments;
                $moduleName = $arguments['M'];
                unset($arguments['M'], $arguments['moduleToken']);
-               $uri = BackendUtility::getModuleUrl($moduleName, $arguments, '');
+               if ($this->request instanceof WebRequest && $this->createAbsoluteUri) {
+                       $uri = BackendUtility::getModuleUrl($moduleName, $arguments, NULL, TRUE);
+               } else {
+                       $uri = BackendUtility::getModuleUrl($moduleName, $arguments);
+               }
                if ($this->section !== '') {
                        $uri .= '#' . $this->section;
                }
-               if ($this->request instanceof WebRequest && $this->createAbsoluteUri) {
-                       $uri = $this->request->getBaseUri() . $uri;
-               }
                return $uri;
        }
 
index 5fd5221..54c1cc1 100644 (file)
@@ -201,7 +201,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                $_POST['foo2'] = 'bar2';
                $this->uriBuilder->setAddQueryString(TRUE);
                $this->uriBuilder->setAddQueryStringMethod('GET,POST');
-               $expectedResult = 'mod.php?M=moduleKey&moduleToken=dummyToken&id=pageId&foo=bar&foo2=bar2';
+               $expectedResult = PATH_typo3 . 'mod.php?M=moduleKey&moduleToken=dummyToken&id=pageId&foo=bar&foo2=bar2';
                $actualResult = $this->uriBuilder->buildBackendUri();
                $this->assertEquals($expectedResult, $actualResult);
        }
@@ -215,7 +215,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                $_POST['foo2'] = 'bar2';
                $this->uriBuilder->setAddQueryString(TRUE);
                $this->uriBuilder->setAddQueryStringMethod(NULL);
-               $expectedResult = 'mod.php?M=moduleKey&moduleToken=dummyToken&id=pageId&foo=bar';
+               $expectedResult = PATH_typo3 . 'mod.php?M=moduleKey&moduleToken=dummyToken&id=pageId&foo=bar';
                $actualResult = $this->uriBuilder->buildBackendUri();
                $this->assertEquals($expectedResult, $actualResult);
        }
@@ -238,7 +238,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                                        'M',
                                        'id'
                                ),
-                               'mod.php?moduleToken=dummyToken&foo=bar&foo2=bar2'
+                               PATH_typo3 . 'mod.php?moduleToken=dummyToken&foo=bar&foo2=bar2'
                        ),
                        'Arguments to be excluded in the end' => array(
                                array(
@@ -253,7 +253,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                                        'M',
                                        'id'
                                ),
-                               'mod.php?moduleToken=dummyToken&foo=bar&foo2=bar2'
+                               PATH_typo3 . 'mod.php?moduleToken=dummyToken&foo=bar&foo2=bar2'
                        ),
                        'Arguments in nested array to be excluded' => array(
                                array(
@@ -270,7 +270,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                                        'id',
                                        'tx_foo[bar]'
                                ),
-                               'mod.php?M=moduleKey&moduleToken=dummyToken&foo2=bar2'
+                               PATH_typo3 . 'mod.php?M=moduleKey&moduleToken=dummyToken&foo2=bar2'
                        ),
                        'Arguments in multidimensional array to be excluded' => array(
                                array(
@@ -289,7 +289,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                                        'id',
                                        'tx_foo[bar][baz]'
                                ),
-                               'mod.php?M=moduleKey&moduleToken=dummyToken&foo2=bar2'
+                               PATH_typo3 . 'mod.php?M=moduleKey&moduleToken=dummyToken&foo2=bar2'
                        ),
                );
        }
@@ -313,7 +313,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         */
        public function buildBackendUriKeepsModuleQueryParametersIfAddQueryStringIsNotSet() {
                \TYPO3\CMS\Core\Utility\GeneralUtility::_GETset(array('M' => 'moduleKey', 'id' => 'pageId', 'foo' => 'bar'));
-               $expectedResult = 'mod.php?M=moduleKey&moduleToken=dummyToken&id=pageId';
+               $expectedResult = PATH_typo3 . 'mod.php?M=moduleKey&moduleToken=dummyToken&id=pageId';
                $actualResult = $this->uriBuilder->buildBackendUri();
                $this->assertEquals($expectedResult, $actualResult);
        }
@@ -324,7 +324,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
        public function buildBackendUriMergesAndOverrulesQueryParametersWithArguments() {
                \TYPO3\CMS\Core\Utility\GeneralUtility::_GETset(array('M' => 'moduleKey', 'id' => 'pageId', 'foo' => 'bar'));
                $this->uriBuilder->setArguments(array('M' => 'overwrittenModuleKey', 'somePrefix' => array('bar' => 'baz')));
-               $expectedResult = 'mod.php?M=overwrittenModuleKey&moduleToken=dummyToken&id=pageId&somePrefix%5Bbar%5D=baz';
+               $expectedResult = PATH_typo3 . 'mod.php?M=overwrittenModuleKey&moduleToken=dummyToken&id=pageId&somePrefix%5Bbar%5D=baz';
                $actualResult = $this->uriBuilder->buildBackendUri();
                $this->assertEquals($expectedResult, $actualResult);
        }
@@ -337,7 +337,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                $mockDomainObject = $this->getAccessibleMock(\TYPO3\CMS\Extbase\DomainObject\AbstractEntity::class, array('dummy'));
                $mockDomainObject->_set('uid', '123');
                $this->uriBuilder->setArguments(array('somePrefix' => array('someDomainObject' => $mockDomainObject)));
-               $expectedResult = 'mod.php?M=moduleKey&moduleToken=dummyToken&somePrefix%5BsomeDomainObject%5D=123';
+               $expectedResult = PATH_typo3 . 'mod.php?M=moduleKey&moduleToken=dummyToken&somePrefix%5BsomeDomainObject%5D=123';
                $actualResult = $this->uriBuilder->buildBackendUri();
                $this->assertEquals($expectedResult, $actualResult);
        }
@@ -348,7 +348,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
        public function buildBackendUriRespectsSection() {
                \TYPO3\CMS\Core\Utility\GeneralUtility::_GETset(array('M' => 'moduleKey'));
                $this->uriBuilder->setSection('someSection');
-               $expectedResult = 'mod.php?M=moduleKey&moduleToken=dummyToken#someSection';
+               $expectedResult = PATH_typo3 . 'mod.php?M=moduleKey&moduleToken=dummyToken#someSection';
                $actualResult = $this->uriBuilder->buildBackendUri();
                $this->assertEquals($expectedResult, $actualResult);
        }
@@ -358,7 +358,9 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         */
        public function buildBackendUriCreatesAbsoluteUrisIfSpecified() {
                \TYPO3\CMS\Core\Utility\GeneralUtility::_GETset(array('M' => 'moduleKey'));
-               $this->mockRequest->expects($this->any())->method('getBaseUri')->will($this->returnValue('http://baseuri/' . TYPO3_mainDir));
+               $_SERVER['HTTP_HOST'] = 'baseuri';
+               $_SERVER['SCRIPT_NAME'] = '/typo3/index.php';
+               $this->mockRequest->expects($this->any())->method('getBaseUri')->will($this->returnValue('http://baseuri'));
                $this->uriBuilder->setCreateAbsoluteUri(TRUE);
                $expectedResult = 'http://baseuri/' . TYPO3_mainDir . 'mod.php?M=moduleKey&moduleToken=dummyToken';
                $actualResult = $this->uriBuilder->buildBackendUri();
@@ -392,7 +394,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                );
                $this->uriBuilder->setAddQueryString(TRUE);
                $this->uriBuilder->setAddQueryStringMethod('POST,GET');
-               $expectedResult = $this->rawUrlEncodeSquareBracketsInUrl('mod.php?moduleToken=dummyToken&key1=POST1&key2=GET2&key3[key31]=POST31&key3[key32]=GET32&key3[key33][key331]=GET331&key3[key33][key332]=POST332');
+               $expectedResult = $this->rawUrlEncodeSquareBracketsInUrl(PATH_typo3 . 'mod.php?moduleToken=dummyToken&key1=POST1&key2=GET2&key3[key31]=POST31&key3[key32]=GET32&key3[key33][key331]=GET331&key3[key33][key332]=POST332');
                $actualResult = $this->uriBuilder->buildBackendUri();
                $this->assertEquals($expectedResult, $actualResult);
        }
@@ -424,7 +426,7 @@ class UriBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                );
                $this->uriBuilder->setAddQueryString(TRUE);
                $this->uriBuilder->setAddQueryStringMethod('GET,POST');
-               $expectedResult = $this->rawUrlEncodeSquareBracketsInUrl('mod.php?moduleToken=dummyToken&key1=GET1&key2=POST2&key3[key31]=GET31&key3[key32]=POST32&key3[key33][key331]=POST331&key3[key33][key332]=GET332');
+               $expectedResult = $this->rawUrlEncodeSquareBracketsInUrl(PATH_typo3 . 'mod.php?moduleToken=dummyToken&key1=GET1&key2=POST2&key3[key31]=GET31&key3[key32]=POST32&key3[key33][key331]=POST331&key3[key33][key332]=GET332');
                $actualResult = $this->uriBuilder->buildBackendUri();
                $this->assertEquals($expectedResult, $actualResult);
        }
index fc6ff0c..9a71c37 100644 (file)
@@ -101,7 +101,7 @@ class TypoScriptConstantsViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\Abs
                $onClick =
                        'this.blur();' .
                        'vHWin=window.open(' .
-                               GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('wizard_colorpicker') . GeneralUtility::implodeArrayForUrl('', array('P' => $params)))  . ' + \'&P[currentValue]=\' + encodeURIComponent(document.getElementById(' . GeneralUtility::quoteJSvalue($elementId) . ').value),' .
+                               GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('wizard_colorpicker', array('P' => $params))) . ' + \'&P[currentValue]=\' + encodeURIComponent(document.getElementById(' . GeneralUtility::quoteJSvalue($elementId) . ').value),' .
                                '\'popUpem-' . GeneralUtility::shortmd5($elementName) . '\',' .
                                '\'height=400,width=400,status=0,menubar=0,scrollbars=1\'' .
                        ');' .
index 876992b..2f0df39 100644 (file)
@@ -207,7 +207,7 @@ class FrontendEditPanel {
                $iconImg = $conf['iconImg'] ? $conf['iconImg'] : '<img  ' . IconUtility::skinImg(TYPO3_mainDir, 'gfx/edit_fe.gif', 'width="11" height="12" border="0" align="top" ') . ' title="' . htmlspecialchars($iconTitle, ENT_COMPAT, 'UTF-8', FALSE) . '"' . $style . ' class="frontEndEditIcons" alt="" />';
                $nV = GeneralUtility::_GP('ADMCMD_view') ? 1 : 0;
                $adminURL = GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . TYPO3_mainDir;
-               $icon = $this->editPanelLinkWrap_doWrap($iconImg, $adminURL . BackendUtility::getModuleUrl('record_edit', array('edit[' . $table . '][' . $editUid . ']' => 'edit', 'columnsOnly' => rawurlencode($fieldList), 'noView' => $nV)) . $addUrlParamStr);
+               $icon = $this->editPanelLinkWrap_doWrap($iconImg, $adminURL . BackendUtility::getModuleUrl('record_edit', array('edit[' . $table . '][' . $editUid . ']' => 'edit', 'columnsOnly' => $fieldList, 'noView' => $nV)) . $addUrlParamStr);
                if ($conf['beforeLastTag'] < 0) {
                        $content = $icon . $content;
                } elseif ($conf['beforeLastTag'] > 0) {
index b1617b2..5db45c8 100644 (file)
@@ -696,7 +696,7 @@ class FileList extends AbstractRecordList {
                                                                        } else {
                                                                                $href = $GLOBALS['SOBE']->doc->issueCommand(
                                                                                        '&cmd[sys_file_metadata][' . $metaDataRecord['uid'] . '][localize]=' . $languageId,
-                                                                                       BackendUtility::getModuleUrl('record_edit', array('justLocalized' => rawurlencode('sys_file_metadata:' . $metaDataRecord['uid'] . ':' . $languageId), 'returnUrl' => rawurlencode($this->listURL())), $this->backPath) . BackendUtility::getUrlToken('editRecord')
+                                                                                       BackendUtility::getModuleUrl('record_edit', array('justLocalized' => 'sys_file_metadata:' . $metaDataRecord['uid'] . ':' . $languageId, 'returnUrl' => $this->listURL())) . BackendUtility::getUrlToken('editRecord')
                                                                                );
                                                                                $flagButtonIcon = IconUtility::getSpriteIcon(
                                                                                        $flagIcon,
@@ -861,7 +861,7 @@ class FileList extends AbstractRecordList {
                // Edit file content (if editable)
                if ($fileOrFolderObject instanceof File && $fileOrFolderObject->checkActionPermission('write') && GeneralUtility::inList($GLOBALS['TYPO3_CONF_VARS']['SYS']['textfile_ext'], $fileOrFolderObject->getExtension())) {
                        $url = BackendUtility::getModuleUrl('file_edit', array('target' => $fullIdentifier));
-                       $editOnClick = 'top.content.list_frame.location.href=top.TS.PATH_typo3+' . GeneralUtility::quoteJSvalue($url) . '+\'&returnUrl=\'+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);return false;';
+                       $editOnClick = 'top.content.list_frame.location.href=' . GeneralUtility::quoteJSvalue($url) . '+\'&returnUrl=\'+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);return false;';
                        $cells['edit'] = '<a href="#" class="btn btn-default" onclick="' . htmlspecialchars($editOnClick) . '" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:cm.editcontent') . '">' . IconUtility::getSpriteIcon('actions-page-open') . '</a>';
                } else {
                        $cells['edit'] = $this->spaceIcon;
@@ -880,7 +880,7 @@ class FileList extends AbstractRecordList {
                // rename the file
                if ($fileOrFolderObject->checkActionPermission('rename')) {
                        $url = BackendUtility::getModuleUrl('file_rename', array('target' => $fullIdentifier));
-                       $renameOnClick = 'top.content.list_frame.location.href = top.TS.PATH_typo3+' . GeneralUtility::quoteJSvalue($url) . '+\'&returnUrl=\'+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);return false;';
+                       $renameOnClick = 'top.content.list_frame.location.href = ' . GeneralUtility::quoteJSvalue($url) . '+\'&returnUrl=\'+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);return false;';
                        $cells['rename'] = '<a href="#" class="btn btn-default" onclick="' . htmlspecialchars($renameOnClick) . '"  title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:cm.rename') . '">' . IconUtility::getSpriteIcon('actions-edit-rename') . '</a>';
                } else {
                        $cells['rename'] = $this->spaceIcon;
@@ -912,7 +912,7 @@ class FileList extends AbstractRecordList {
                                $confirmationCheck = '1 == 1';
                        }
 
-                       $removeOnClick = 'if (' . $confirmationCheck . ') { top.content.list_frame.location.href=top.TS.PATH_typo3+' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_file') .'&file[delete][0][data]=' . rawurlencode($fileOrFolderObject->getCombinedIdentifier()) . '&vC=' . $this->getBackendUser()->veriCode() . BackendUtility::getUrlToken('tceAction') . '&redirect=') . '+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);};';
+                       $removeOnClick = 'if (' . $confirmationCheck . ') { top.content.list_frame.location.href=' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('tce_file') .'&file[delete][0][data]=' . rawurlencode($fileOrFolderObject->getCombinedIdentifier()) . '&vC=' . $this->getBackendUser()->veriCode() . BackendUtility::getUrlToken('tceAction') . '&redirect=') . '+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);};';
 
                        $cells['delete'] = '<a href="#" class="btn btn-default" onclick="' . htmlspecialchars($removeOnClick) . '"  title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:cm.delete') . '">' . IconUtility::getSpriteIcon('actions-edit-delete') . '</a>';
                } else {
index a6fad3c..2c2b297 100644 (file)
@@ -627,7 +627,7 @@ class AdminPanelView {
                        $url = BackendUtility::getModuleUrl('record_edit', array(
                                'edit[pages][' . $id . ']' => 'edit',
                                'noView' => 1,
-                               'returnUrl' => rawurlencode($returnUrl)
+                               'returnUrl' => $returnUrl
                        ), FALSE, TRUE);
                        $toolBar .= '<a href="' . htmlspecialchars($url) . '">' . $icon . '</a>';
                        if ($GLOBALS['TSFE']->sys_language_uid && $langAllowed) {
@@ -644,7 +644,7 @@ class AdminPanelView {
                                        $url = BackendUtility::getModuleUrl('record_edit', array(
                                                'edit[pages_language_overlay][' . $row['uid'] . ']' => 'edit',
                                                'noView' => 1,
-                                               'returnUrl' => rawurlencode($returnUrl)
+                                               'returnUrl' => $returnUrl
                                        ), FALSE, TRUE);
                                        $toolBar .= '<a href="' . htmlspecialchars($url) . '">' . $icon . '</a>';
                                }
index bd858ae..e9cedc6 100644 (file)
@@ -2493,7 +2493,7 @@ class ElementBrowser {
                        <!--
                                Form, for uploading files:
                        -->
-                       <form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_file', array(),  $GLOBALS['BACK_PATH'])) . '" method="post" name="editform"'
+                       <form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_file')) . '" method="post" name="editform"'
                        . ' id="typo3-uplFilesForm" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '">
                                <table border="0" cellpadding="0" cellspacing="0" id="typo3-uplFiles">
                                        <tr>
@@ -2565,7 +2565,7 @@ class ElementBrowser {
                        <!--
                                Form, for creating new folders:
                        -->
-                       <form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_file', array(), $GLOBALS['BACK_PATH'])) . '" method="post" name="editform2" id="typo3-crFolderForm">
+                       <form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_file')) . '" method="post" name="editform2" id="typo3-crFolderForm">
                                <table border="0" cellpadding="0" cellspacing="0" id="typo3-crFolder">
                                        <tr>
                                                <td>' . $this->barheader($lang->sL(
index bc3b622..c067ab6 100644 (file)
@@ -301,7 +301,7 @@ class RecordList {
                /** @var $dblist RecordList\DatabaseRecordList */
                $dblist = GeneralUtility::makeInstance(RecordList\DatabaseRecordList::class);
                $dblist->backPath = $GLOBALS['BACK_PATH'];
-               $dblist->script = BackendUtility::getModuleUrl('web_list', array(), '');
+               $dblist->script = BackendUtility::getModuleUrl('web_list');
                $dblist->calcPerms = $backendUser->calcPerms($this->pageinfo);
                $dblist->thumbs = $backendUser->uc['thumbnailsByDefault'];
                $dblist->returnUrl = $this->returnUrl;
@@ -405,7 +405,7 @@ class RecordList {
                                ' . $this->doc->redirectUrls($listUrl) . '
                                ' . $dblist->CBfunctions() . '
                                function editRecords(table,idList,addParams,CBflag) {   //
-                                       window.location.href="' . BackendUtility::getModuleUrl('record_edit', array('returnUrl' => rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')))) . '&edit["+table+"]["+idList+"]=edit"+addParams;
+                                       window.location.href="' . BackendUtility::getModuleUrl('record_edit', array('returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI'))) . '&edit["+table+"]["+idList+"]=edit"+addParams;
                                }
                                function editList(table,idList) {       //
                                        var list="";
index cec501b..6f022b7 100644 (file)
@@ -1014,7 +1014,7 @@ class AbstractDatabaseRecordList extends AbstractRecordList {
                                        'record_edit',
                                        array(
                                                'edit[' . $table . '][' . $localizedRecord['uid'] . ']' => 'edit',
-                                               'returnUrl' => rawurlencode($url)
+                                               'returnUrl' => $url
                                        )
                                );
                                HttpUtility::redirect($editUserAccountUrl);
index 19002b6..a264a46 100644 (file)
@@ -242,7 +242,7 @@ class DatabaseRecordList extends AbstractDatabaseRecordList {
                        }
                        // New record
                        if (!$module->modTSconfig['properties']['noCreateRecordsLink']) {
-                               $onClick = htmlspecialchars('return jumpExt(' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', ['id' => $this->id], $this->backPath)) . ');');
+                               $onClick = htmlspecialchars('return jumpExt(' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', ['id' => $this->id])) . ');');
                                $buttons['new_record'] = '<a href="#" onclick="' . $onClick . '" title="'
                                        . $lang->getLL('newRecordGeneral', TRUE) . '">'
                                        . IconUtility::getSpriteIcon('actions-document-new') . '</a>';
@@ -949,14 +949,14 @@ class DatabaseRecordList extends AbstractDatabaseRecordList {
                                                                $tmpTSc = $tmpTSc['properties']['newContentWiz.']['overrideWithExtension'];
                                                                $newContentWizScriptPath = ExtensionManagementUtility::isLoaded($tmpTSc)
                                                                        ? $this->backPath . ExtensionManagementUtility::extRelPath($tmpTSc) . 'mod1/db_new_content_el.php?id=' . $this->id
-                                                                       : BackendUtility::getModuleUrl('new_content_element', array('id' => $this->id), $this->backPath);
+                                                                       : BackendUtility::getModuleUrl('new_content_element', array('id' => $this->id));
 
                                                                $onClick = 'return jumpExt(' . GeneralUtility::quoteJSvalue($newContentWizScriptPath) . ');';
                                                                $icon = '<a class="btn btn-default" href="#" onclick="' . htmlspecialchars($onClick) . '" title="'
                                                                        . $lang->getLL('new', TRUE) . '">' . $spriteIcon . '</a>';
                                                        } elseif ($table == 'pages' && $this->newWizards) {
                                                                $parameters = ['id' => $this->id, 'pagesOnly' => 1, 'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')];
-                                                               $href = BackendUtility::getModuleUrl('db_new', $parameters, $this->backPath);
+                                                               $href = BackendUtility::getModuleUrl('db_new', $parameters);
                                                                $icon = '<a class="btn btn-default" href="' . htmlspecialchars($href) . '" title="' . $lang->getLL('new', TRUE) . '">'
                                                                        . $spriteIcon . '</a>';
                                                        } else {
index b63adbe..7a770ae 100644 (file)
@@ -75,7 +75,7 @@ class SecurityStatus implements \TYPO3\CMS\Reports\StatusProviderInterface {
                                        'record_edit',
                                        array(
                                                'edit[be_users][' . $row['uid'] . ']' => 'edit',
-                                               'returnUrl' => rawurlencode(BackendUtility::getModuleUrl('system_ReportsTxreportsm1'))
+                                               'returnUrl' => BackendUtility::getModuleUrl('system_ReportsTxreportsm1')
                                        )
                                );
                                $message = sprintf($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:warning.backend_admin'),
index f4a4657..0e768ad 100644 (file)
@@ -162,7 +162,7 @@ class ActionTask implements \TYPO3\CMS\Taskcenter\TaskInterface {
                                        'record_edit',
                                        array(
                                                'edit[sys_action][' . $actionRow['uid'] . ']' => 'edit',
-                                               'returnUrl' => rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI'))
+                                               'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')
                                        ),
                                        FALSE,
                                        TRUE
@@ -204,7 +204,7 @@ class ActionTask implements \TYPO3\CMS\Taskcenter\TaskInterface {
                                'record_edit',
                                array(
                                        'edit[sys_action][0]' => 'new',
-                                       'returnUrl' => rawurlencode($this->moduleUrl)
+                                       'returnUrl' => $this->moduleUrl
                                ),
                                FALSE,
                                TRUE
@@ -627,7 +627,7 @@ class ActionTask implements \TYPO3\CMS\Taskcenter\TaskInterface {
                        'record_edit',
                        array(
                                'edit[' . $record['t3_tables'] . '][' . (int)$record['t3_listPid'] . ']' => 'new',
-                               'returnUrl' => rawurlencode($this->moduleUrl)
+                               'returnUrl' => $this->moduleUrl
                        ),
                        FALSE,
                        TRUE
@@ -662,7 +662,7 @@ class ActionTask implements \TYPO3\CMS\Taskcenter\TaskInterface {
                                'record_edit',
                                array(
                                        'edit[' . $el['table'] . '][' . $el['id'] . ']' => 'edit',
-                                       'returnUrl' => rawurlencode($this->moduleUrl)
+                                       'returnUrl' => $this->moduleUrl
                                ),
                                FALSE,
                                TRUE
@@ -817,7 +817,7 @@ class ActionTask implements \TYPO3\CMS\Taskcenter\TaskInterface {
 
                                ' . $dblist->CBfunctions() . '
                                function editRecords(table,idList,addParams,CBflag) {
-                                       window.location.href="' . BackendUtility::getModuleUrl('record_edit', array('returnUrl' => rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')))) . '&edit["+table+"]["+idList+"]=edit"+addParams;
+                                       window.location.href="' . BackendUtility::getModuleUrl('record_edit', array('returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI'))) . '&edit["+table+"]["+idList+"]=edit"+addParams;
                                }
                                function editList(table,idList) {
                                        var list="";
index fcb17c4..fdf0b76 100644 (file)
@@ -31,9 +31,9 @@ class DeleteLinkViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractView
         */
        public function render($id) {
                $redirectUrl = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('REQUEST_URI');
-               $parameters = 'cmd[sys_note][' . $id . '][delete]=1';
-               $url = BackendUtility::getModuleUrl('tce_db', array(), $GLOBALS['BACK_PATH']) . '&' . $parameters . '&redirect=' . ($redirectUrl == '' ? '\' + T3_THIS_LOCATION + \'' : rawurlencode($redirectUrl)) . BackendUtility::getUrlToken('tceAction');
+               $urlParameters = ['cmd[sys_note][' . $id . '][delete]' => 1];
+               $url = BackendUtility::getModuleUrl('tce_db', $urlParameters) . '&redirect=' . ($redirectUrl == '' ? '\' + T3_THIS_LOCATION + \'' : rawurlencode($redirectUrl)) . BackendUtility::getUrlToken('tceAction');
                return htmlspecialchars($url);
        }
 
-}
\ No newline at end of file
+}
index 4b69096..a79aa29 100644 (file)
@@ -31,7 +31,7 @@ class EditLinkViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHe
                        'record_edit',
                        array(
                                'edit[sys_note][' . $id . ']' => 'edit',
-                               'returnUrl' => rawurlencode(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('REQUEST_URI'))
+                               'returnUrl' => \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('REQUEST_URI')
                        )
                );
        }
index 44b95d7..c8befae 100644 (file)
@@ -385,7 +385,7 @@ class VersionModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
                // Create new:
                $content = '
 
-                       <form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_db', array(), $this->doc->backPath)) . '" method="post">
+                       <form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_db')) . '" method="post">
                        ' . $GLOBALS['LANG']->getLL('tblHeader_t3ver_label') . ': <input type="text" name="cmd[' . $this->table . '][' . $this->uid . '][version][label]" /><br />
                        <br /><input type="hidden" name="cmd[' . $this->table . '][' . $this->uid . '][version][action]" value="new" />
                        <input type="hidden" name="prErr" value="1" />
index e3b4335..6b9a5d4 100644 (file)
@@ -66,7 +66,6 @@ class ReviewController extends AbstractController {
                $this->pageRenderer->addInlineSetting('Workspaces', 'isLiveWorkspace', (int)$GLOBALS['BE_USER']->workspace === 0 ? TRUE : FALSE);
                $this->pageRenderer->addInlineSetting('Workspaces', 'workspaceTabs', $this->prepareWorkspaceTabs($wsList, $activeWorkspace));
                $this->pageRenderer->addInlineSetting('Workspaces', 'activeWorkspaceId', $activeWorkspace);
-               $this->pageRenderer->addInlineSetting('Workspaces', 'PATH_typo3', GeneralUtility::getIndpEnv('TYPO3_SITE_PATH') . TYPO3_mainDir);
                $this->view->assign('performWorkspaceSwitch', $performWorkspaceSwitch);
                $this->view->assign('workspaceList', $wsList);
                $this->view->assign('activeWorkspaceUid', $activeWorkspace);
@@ -93,7 +92,6 @@ class ReviewController extends AbstractController {
 
                $this->pageRenderer->addInlineSetting('Workspaces', 'workspaceTabs', $this->prepareWorkspaceTabs($wsList, WorkspaceService::SELECT_ALL_WORKSPACES));
                $this->pageRenderer->addInlineSetting('Workspaces', 'activeWorkspaceId', WorkspaceService::SELECT_ALL_WORKSPACES);
-               $this->pageRenderer->addInlineSetting('Workspaces', 'PATH_typo3', GeneralUtility::getIndpEnv('TYPO3_SITE_PATH') . TYPO3_mainDir);
                $this->view->assign('pageUid', GeneralUtility::_GP('id'));
                $this->view->assign('showGrid', TRUE);
                $this->view->assign('showLegend', TRUE);
index b0cd410..635b47d 100644 (file)
@@ -96,7 +96,7 @@ TYPO3.Workspaces.Component.TabPanel = Ext.extend(Ext.TabPanel, {
        },
 
        handleTriggerUrl: function(item) {
-               location.href = TYPO3.settings.Workspaces.PATH_typo3 + item.triggerUrl;
+               location.href = item.triggerUrl;
        },
 
        handleResize: function(width, height) {
@@ -156,4 +156,4 @@ TYPO3.Workspaces.Component.TabPanel = Ext.extend(Ext.TabPanel, {
                }
        }
 });
-Ext.reg('WorkspacesTabPanel', TYPO3.Workspaces.Component.TabPanel);
\ No newline at end of file
+Ext.reg('WorkspacesTabPanel', TYPO3.Workspaces.Component.TabPanel);