[!!!][BUGFIX] Allow override of page creation wizard again
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / Tree / View / PagePositionMap.php
index df37bce..45e4874 100644 (file)
@@ -23,9 +23,7 @@ use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction;
 use TYPO3\CMS\Core\Database\Query\Restriction\StartTimeRestriction;
 use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Imaging\IconFactory;
-use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Core\Utility\PathUtility;
 use TYPO3\CMS\Lang\LanguageService;
 
 /**
@@ -262,8 +260,8 @@ class PagePositionMap
     /**
      * Creates the onclick event for the insert-icons.
      *
-     * TSconfig mod.web_list.newPageWiz.overrideWithExtension may contain an extension which provides a module
-     * to be used instead of the normal create new page wizard.
+     * TSconfig mod.newPageWizard.override may contain an alternative module / route which can be
+     * used instead of the normal create new page wizard.
      *
      * @param int $pid The pid.
      * @param int $newPagePID New page id.
@@ -271,12 +269,16 @@ class PagePositionMap
      */
     public function onClickEvent($pid, $newPagePID)
     {
-        $TSconfigProp = $this->getModConfig($newPagePID);
-        if ($TSconfigProp['overrideWithExtension']) {
-            if (ExtensionManagementUtility::isLoaded($TSconfigProp['overrideWithExtension'])) {
-                $onclick = 'window.location.href=' . GeneralUtility::quoteJSvalue(PathUtility::getAbsoluteWebPath(ExtensionManagementUtility::extPath($TSconfigProp['overrideWithExtension'])) . 'mod1/index.php?cmd=crPage&positionPid=' . $pid) . ';';
-                return $onclick;
-            }
+        $TSconfig = BackendUtility::getModTSconfig($newPagePID, 'mod.newPageWizard');
+        $TSconfig = $TSconfig['properties'];
+        if (isset($TSconfig['override']) && !empty($TSconfig['override'])) {
+            $url = BackendUtility::getModuleUrl($TSconfig['override'], [
+                'positionPid' => $pid,
+                'newPageId'   => $newPagePID,
+                'cmd'         => 'crPage',
+                'returnUrl'   => GeneralUtility::getIndpEnv('REQUEST_URI')]
+            );
+            return 'window.location.href=' . GeneralUtility::quoteJSvalue($url) . ';';
         }
         $params = '&edit[pages][' . $pid . ']=new&returnNewPageId=1';
         return BackendUtility::editOnClick($params, '', $this->R_URI);