[!!!][TASK] Remove deprecated TypoScriptFrontendController logic 14/45414/5
authorBenni Mack <benni@typo3.org>
Tue, 22 Dec 2015 20:16:11 +0000 (21:16 +0100)
committerWouter Wolters <typo3@wouterwolters.nl>
Thu, 24 Dec 2015 10:39:22 +0000 (11:39 +0100)
Resolves: #72424
Releases: master
Change-Id: Ic7654c075412c4186a5e8347c15182ae3046ec37
Reviewed-on: https://review.typo3.org/45414
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
typo3/sysext/core/Documentation/Changelog/master/Breaking-72424-RemovedDeprecatedTypoScriptFrontendControllerOptionsAndMethods.rst [new file with mode: 0644]
typo3/sysext/felogin/Classes/Controller/FrontendLoginController.php
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/frontend/Classes/Http/RequestHandler.php
typo3/sysext/frontend/Classes/Page/PageGenerator.php
typo3/sysext/frontend/Classes/Page/PageRepository.php
typo3/sysext/version/Classes/Hook/PreviewHook.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-72424-RemovedDeprecatedTypoScriptFrontendControllerOptionsAndMethods.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-72424-RemovedDeprecatedTypoScriptFrontendControllerOptionsAndMethods.rst
new file mode 100644 (file)
index 0000000..64773e9
--- /dev/null
@@ -0,0 +1,48 @@
+======================================================================================
+Breaking: #72424 - Removed deprecated TypoScriptFrontendController options and methods
+======================================================================================
+
+Description
+===========
+
+The following methods from ``TypoScriptFrontendController`` were removed:
+
+* ``getPageRenderer()``
+* ``setExternalJumpUrl()``
+* ``jumpUrl()``
+* ``acquirePageGenerationLock()``
+* ``releasePageGenerationLock()``
+* ``doXHTML_cleaning()``
+* ``doLocalAnchorFix()``
+* ``checkFileInclude()``
+* ``prefixLocalAnchorsWithScript()``
+* ``getStorageSiterootPids()``
+
+Additionally, the public properties ``jumpurl``, ``JSeventFuncCalls`` and ``anchorPrefix`` have been removed. The
+request parameter ``jumpurl`` is not evaluated anymore.
+
+The TypoScript property ``config.additionalHeaders`` was removed.
+
+
+Impact
+======
+
+Calling any of the PHP methods directly will result in a fatal error. Accessing the properties will result in a PHP
+warning. Setting the TypoScript property has no effect anymore.
+
+Additionally, if EXT:felogin is misconfigured and lacks the ``storagePid`` property, an exception will be thrown.
+
+
+Affected Installations
+======================
+
+Any installation using the TypoScript property above, or a TYPO3 instance having third-party extensions calling
+the methods or properties directly.
+
+
+Migration
+=========
+
+Use the TER extension ``jumpurl`` to implement the jumpurl functionality.
+
+Use the ``config.additionalHeaders`` subproperties (see https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#additionalheaders for details) to add the additional header lines.
index 395f855..7a20842 100644 (file)
@@ -108,6 +108,7 @@ class FrontendLoginController extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin
      * @param string $content The PlugIn content
      * @param array $conf The PlugIn configuration
      * @return string The content that is displayed on the website
+     * @throws \RuntimeException when no storage PID was configured.
      */
     public function main($content, $conf)
     {
@@ -129,9 +130,7 @@ class FrontendLoginController extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin
                 $this->spid = $this->conf['storagePid'];
             }
         } else {
-            GeneralUtility::deprecationLog('Extension "felogin" must have a storagePid set via TypoScript or the plugin configuration.');
-            $pids = $this->frontendController->getStorageSiterootPids();
-            $this->spid = $pids['_STORAGE_PID'];
+            throw new \RuntimeException('No storage folder (option storagePid) for frontend users given.', 1450904202);
         }
         // GPvars:
         $this->logintype = GeneralUtility::_GP('logintype');
index b3057fc..8f56545 100644 (file)
@@ -134,12 +134,6 @@ class TypoScriptFrontendController
     public $sys_page = '';
 
     /**
-     * @var string
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8. JumpURL handling is moved to extensions.
-     */
-    public $jumpurl = '';
-
-    /**
      * Contains all URL handler instances that are active for the current request.
      *
      * The methods isGeneratePage(), isOutputting() and isINTincScript() depend on this property.
@@ -435,24 +429,6 @@ class TypoScriptFrontendController
     public $additionalCSS = array();
 
     /**
-     * You can add JavaScript functions to each entry in these arrays. Please see
-     * how this is done in the GMENU_LAYERS script. The point is that many
-     * applications on a page can set handlers for onload, onmouseover and onmouseup
-     *
-     * @var array
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $JSeventFuncCalls = array(
-        'onmousemove' => array(),
-        'onmouseup' => array(),
-        'onkeydown' => array(),
-        'onkeyup' => array(),
-        'onkeypress' => array(),
-        'onload' => array(),
-        'onunload' => array()
-    );
-
-    /**
      * @var  string
      */
     public $JSCode;
@@ -715,14 +691,6 @@ class TypoScriptFrontendController
     public $baseUrl = '';
 
     /**
-     * The proper anchor prefix needed when using speaking urls. (only set if
-     * baseUrl is set)
-     * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8, use substr(GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'), strlen(GeneralUtility::getIndpEnv('TYPO3_SITE_URL'))) directly
-     * @var string
-     */
-    public $anchorPrefix = '';
-
-    /**
      * IDs we already rendered for this page (to make sure they are unique)
      * @var array
      */
@@ -894,12 +862,12 @@ class TypoScriptFrontendController
      * @param int $type The value of GeneralUtility::_GP('type')
      * @param bool|string $no_cache The value of GeneralUtility::_GP('no_cache'), evaluated to 1/0
      * @param string $cHash The value of GeneralUtility::_GP('cHash')
-     * @param string $jumpurl The value of GeneralUtility::_GP('jumpurl'), unused since TYPO3 CMS 7. Will have no effect in TYPO3 CMS 8 anymore
+     * @param string $_ previously was used to define the jumpURL
      * @param string $MP The value of GeneralUtility::_GP('MP')
      * @param string $RDCT The value of GeneralUtility::_GP('RDCT')
      * @see index_ts.php
      */
-    public function __construct($TYPO3_CONF_VARS, $id, $type, $no_cache = '', $cHash = '', $jumpurl = '', $MP = '', $RDCT = '')
+    public function __construct($TYPO3_CONF_VARS, $id, $type, $no_cache = '', $cHash = '', $_ = null, $MP = '', $RDCT = '')
     {
         // Setting some variables:
         $this->TYPO3_CONF_VARS = $TYPO3_CONF_VARS;
@@ -916,7 +884,6 @@ class TypoScriptFrontendController
             GeneralUtility::sysLog($warning, 'cms', GeneralUtility::SYSLOG_SEVERITY_WARNING);
         }
         $this->cHash = $cHash;
-        $this->jumpurl = $jumpurl;
         $this->MP = $this->TYPO3_CONF_VARS['FE']['enable_mount_pids'] ? (string)$MP : '';
         $this->RDCT = $RDCT;
         $this->clientInfo = GeneralUtility::clientInfo();
@@ -1024,20 +991,6 @@ class TypoScriptFrontendController
         }
     }
 
-    /**
-     * Gets instance of PageRenderer
-     *
-     * @return PageRenderer
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8.
-     */
-    public function getPageRenderer()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $this->initPageRenderer();
-
-        return $this->pageRenderer;
-    }
-
     /********************************************
      *
      * Initializing, resolving page id
@@ -2243,10 +2196,6 @@ class TypoScriptFrontendController
             if (isset($GET_VARS['cHash'])) {
                 $this->cHash = $GET_VARS['cHash'];
             }
-            // @deprecated since TYPO3 7, remove in TYPO3 8 together with jumpurl property.
-            if (isset($GET_VARS['jumpurl'])) {
-                $this->jumpurl = $GET_VARS['jumpurl'];
-            }
             if (isset($GET_VARS['MP'])) {
                 $this->MP = $this->TYPO3_CONF_VARS['FE']['enable_mount_pids'] ? $GET_VARS['MP'] : '';
             }
@@ -2664,7 +2613,6 @@ class TypoScriptFrontendController
     /********************************************
      *
      * Further initialization and data processing
-     * (jumpurl/submission of forms)
      *
      *******************************************/
 
@@ -2907,35 +2855,6 @@ class TypoScriptFrontendController
     }
 
     /**
-     * Checks if the current page points to an external URL and stores this value in the redirectUrl variable.
-     * The redirection will then be handled by the redirectToExternalUrl() method.
-     *
-     * @return void
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8. See handleExternalUrlPage()
-     */
-    public function setExternalJumpUrl()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $this->initializeRedirectUrlHandlers();
-    }
-
-    /**
-     * Sends a header "Location" to jumpUrl, if jumpurl is set.
-     * Will exit if a location header is sent (for instance if jumpUrl was triggered)
-     *
-     * "jumpUrl" is a concept where external links are redirected from the TYPO3 Frontend, but first logs the URL.
-     *
-     * @throws \Exception
-     * @return void
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8. JumpURL handling is moved to extensions.
-     */
-    public function jumpUrl()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $this->redirectToExternalUrl();
-    }
-
-    /**
      * Loops over all registered URL handlers and lets them process the current URL.
      *
      * If no handler has stopped the current process (e.g. by redirecting) and a
@@ -3255,68 +3174,6 @@ class TypoScriptFrontendController
     }
 
     /**
-     * Lock the page generation process
-     * The lock is used to queue page requests until this page is successfully stored in the cache.
-     *
-     * @param Locker $lockObj Reference to a locking object
-     * @param string $key String to identify the lock in the system
-     * @return bool Returns TRUE if the lock could be obtained, FALSE otherwise (= process had to wait for existing lock to be released)
-     * @see releasePageGenerationLock()
-     * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8
-     */
-    public function acquirePageGenerationLock(&$lockObj, $key)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if ($this->no_cache || $this->headerNoCache()) {
-            GeneralUtility::sysLog('Locking: Page is not cached, no locking required', 'cms', GeneralUtility::SYSLOG_SEVERITY_INFO);
-            // No locking is needed if caching is disabled
-            return true;
-        }
-        try {
-            if (!is_object($lockObj)) {
-                $lockObj = GeneralUtility::makeInstance(Locker::class, $key, $this->TYPO3_CONF_VARS['SYS']['lockingMode']);
-            }
-            $success = false;
-            if ($key !== '') {
-                // TRUE = Page could get locked without blocking
-                // FALSE = Page could get locked but process was blocked before
-                $success = $lockObj->acquire();
-                if ($lockObj->getLockStatus()) {
-                    $lockObj->sysLog('Acquired lock');
-                }
-            }
-        } catch (\Exception $e) {
-            GeneralUtility::sysLog('Locking: Failed to acquire lock: ' . $e->getMessage(), 'cms', GeneralUtility::SYSLOG_SEVERITY_ERROR);
-            // If locking fails, return with FALSE and continue without locking
-            $success = false;
-        }
-        return $success;
-    }
-
-    /**
-     * Release the page generation lock
-     *
-     * @param Locker $lockObj Reference to a locking object
-     * @return bool Returns TRUE on success, FALSE otherwise
-     * @see acquirePageGenerationLock()
-     * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8
-     */
-    public function releasePageGenerationLock(&$lockObj)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $success = false;
-        // If lock object is set and was acquired (may also happen if no_cache was enabled during runtime), release it:
-        if (is_object($lockObj) && $lockObj instanceof Locker && $lockObj->getLockStatus()) {
-            $success = $lockObj->release();
-            $lockObj->sysLog('Released lock');
-            $lockObj = null;
-        } elseif ($this->no_cache || $this->headerNoCache()) {
-            $success = true;
-        }
-        return $success;
-    }
-
-    /**
      * Release pending locks
      *
      * @internal
@@ -3389,7 +3246,7 @@ class TypoScriptFrontendController
 
     /**
      * Does some processing AFTER the pagegen script is included.
-     * This includes calling XHTML cleaning (if configured), caching the page, indexing the page (if configured) and setting sysLastChanged
+     * This includes caching the page, indexing the page (if configured) and setting sysLastChanged
      *
      * @return void
      */
@@ -3421,7 +3278,7 @@ class TypoScriptFrontendController
         // One thing is that the charset mentioned in the HTML header would be wrong since the output charset (metaCharset)
         // has not been converted to from renderCharset. And indexed search will internally convert from metaCharset
         // to renderCharset so the content MUST be in metaCharset already!
-        $this->content = $this->convOutputCharset($this->content, 'mainpage');
+        $this->content = $this->convOutputCharset($this->content);
         // Hook for indexing pages
         if (is_array($this->TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing'])) {
             foreach ($this->TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing'] as $_classRef) {
@@ -3486,9 +3343,9 @@ class TypoScriptFrontendController
                 '<!--TDS_' . $this->config['INTincScript_ext']['divKey'] . '-->'
             ),
             array(
-                $this->convOutputCharset(implode(LF, $this->additionalHeaderData), 'HD'),
-                $this->convOutputCharset(implode(LF, $this->additionalFooterData), 'FD'),
-                $this->convOutputCharset($this->divSection, 'TDS'),
+                $this->convOutputCharset(implode(LF, $this->additionalHeaderData)),
+                $this->convOutputCharset(implode(LF, $this->additionalFooterData)),
+                $this->convOutputCharset($this->divSection),
             ),
             $this->pageRenderer->renderJavaScriptAndCssForProcessingOfUncachedContentObjects($this->content, $this->config['INTincScript_ext']['divKey'])
         );
@@ -3569,7 +3426,7 @@ class TypoScriptFrontendController
                             $incContent = $INTiS_cObj->callUserFunction($INTiS_config[$INTiS_key]['postUserFunc'], $INTiS_config[$INTiS_key]['conf'], $INTiS_config[$INTiS_key]['content']);
                             break;
                     }
-                    $this->content .= $this->convOutputCharset($incContent, 'INC-' . $INTiS_c);
+                    $this->content .= $this->convOutputCharset($incContent);
                     $this->content .= substr($INTiS_cPart, 35);
                     $timeTracker->pull($incContent);
                 } else {
@@ -3626,30 +3483,6 @@ class TypoScriptFrontendController
         return is_array($this->config['INTincScript']) && empty($this->activeUrlHandlers);
     }
 
-    /**
-     * Returns the mode of XHTML cleaning
-     *
-     * @return string Keyword: "all", "cached" or "output
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8; The TypoScript option "config.xhtml_cleaning" has been deprecated
-     */
-    public function doXHTML_cleaning()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return $this->config['config']['xhtml_cleaning'];
-    }
-
-    /**
-     * Returns the mode of Local Anchor prefixing
-     *
-     * @return string Keyword: "all", "cached" or "output
-     * @deprecated The TypoScript option "config.prefixLocalAnchors" and the according method in TSFE have been deprecated with TYPO3 CMS 7 and will be removed with TYPO3 CMS 8.
-     */
-    public function doLocalAnchorFix()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return isset($this->config['config']['prefixLocalAnchors']) ? $this->config['config']['prefixLocalAnchors'] : null;
-    }
-
     /********************************************
      *
      * Finished off; outputting, storing session data, statistics...
@@ -3701,14 +3534,6 @@ class TypoScriptFrontendController
             $this->sendCacheHeaders();
         }
         // Set headers, if any
-        if (!empty($this->config['config']['additionalHeaders'])) {
-            $headerArray = explode('|', $this->config['config']['additionalHeaders']);
-            GeneralUtility::deprecationLog('The TypoScript option "config.additionalHeaders" has been deprecated with TYPO3 CMS 7, and will be removed with CMS 8, please use the more flexible syntax config.additionalHeaders.10... to separate each header value.');
-            foreach ($headerArray as $headLine) {
-                $headLine = trim($headLine);
-                header($headLine);
-            }
-        }
         if (is_array($this->config['config']['additionalHeaders.'])) {
             ksort($this->config['config']['additionalHeaders.']);
             foreach ($this->config['config']['additionalHeaders.'] as $options) {
@@ -4022,19 +3847,6 @@ class TypoScriptFrontendController
     }
 
     /**
-     * Checks if a PHPfile may be included.
-     *
-     * @param string $incFile Relative path to php file
-     * @return bool Returns TRUE if $GLOBALS['TYPO3_CONF_VARS']['FE']['noPHPscriptInclude'] is not set OR if the file requested for inclusion is found in one of the allowed paths.
-     * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8
-     */
-    public function checkFileInclude($incFile)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return !$this->TYPO3_CONF_VARS['FE']['noPHPscriptInclude'] || substr($incFile, 0, 4 + strlen(TYPO3_mainDir)) == TYPO3_mainDir . 'ext/' || substr($incFile, 0, 7 + strlen(TYPO3_mainDir)) == TYPO3_mainDir . 'sysext/' || substr($incFile, 0, 14) == 'typo3conf/ext/';
-    }
-
-    /**
      * Creates an instance of ContentObjectRenderer in $this->cObj
      * This instance is used to start the rendering of the TypoScript template structure
      *
@@ -4140,35 +3952,6 @@ class TypoScriptFrontendController
         $this->getDatabaseConnection()->exec_UPDATEquery('cache_md5params', 'md5hash=' . $this->getDatabaseConnection()->fullQuoteStr($hash, 'cache_md5params'), array('tstamp' => $GLOBALS['EXEC_TIME']));
     }
 
-    /**
-     * Substitutes all occurencies of <a href="#"... in $this->content with <a href="[path-to-url]#"...
-     *
-     * @return void Works directly on $this->content
-     * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8
-     */
-    public function prefixLocalAnchorsWithScript()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if (!$this->beUserLogin) {
-            if (!is_object($this->cObj)) {
-                $this->newCObj();
-            }
-            $scriptPath = $this->cObj->getUrlToCurrentLocation();
-        } else {
-            // To break less existing sites, we allow the REQUEST_URI to be used for the prefix
-            $scriptPath = GeneralUtility::getIndpEnv('REQUEST_URI');
-            // Disable the cache so that these URI will not be the ones to be cached
-            $this->disableCache();
-        }
-        $originalContent = $this->content;
-        $this->content = preg_replace('/(<(?:a|area).*?href=")(#[^"]*")/i', '${1}' . htmlspecialchars($scriptPath) . '${2}', $originalContent);
-        // There was an error in the call to preg_replace, so keep the original content (behavior prior to PHP 5.2)
-        if (preg_last_error() > 0) {
-            GeneralUtility::sysLog('preg_replace returned error-code: ' . preg_last_error() . ' in function prefixLocalAnchorsWithScript. Replacement not done!', 'cms', GeneralUtility::SYSLOG_SEVERITY_FATAL);
-            $this->content = $originalContent;
-        }
-    }
-
     /********************************************
      * PUBLIC ACCESSIBLE WORKSPACES FUNCTIONS
      *******************************************/
@@ -4236,29 +4019,6 @@ class TypoScriptFrontendController
      * Various external API functions - for use in plugins etc.
      *
      *******************************************/
-    /**
-     * Traverses the ->rootLine and returns an array with the first occurrance of storage pid and siteroot pid
-     *
-     * @return array Array with keys '_STORAGE_PID' and '_SITEROOT' set to the first occurrences found.
-     * @deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8. The usage of "storage_pid" is discouraged, the option for "is_siteroot" is handled via the RootlineUtility directly.
-     */
-    public function getStorageSiterootPids()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $res = array();
-        if (!is_array($this->rootLine)) {
-            return array();
-        }
-        foreach ($this->rootLine as $rC) {
-            if (!$res['_STORAGE_PID']) {
-                $res['_STORAGE_PID'] = (int)$rC['storage_pid'];
-            }
-            if (!$res['_SITEROOT']) {
-                $res['_SITEROOT'] = $rC['is_siteroot'] ? (int)$rC['uid'] : 0;
-            }
-        }
-        return $res;
-    }
 
     /**
      * Returns the pages TSconfig array based on the currect ->rootLine
index 4293f1c..63da15d 100644 (file)
@@ -365,7 +365,7 @@ class RequestHandler implements RequestHandlerInterface
             GeneralUtility::_GP('type'),
             GeneralUtility::_GP('no_cache'),
             GeneralUtility::_GP('cHash'),
-            GeneralUtility::_GP('jumpurl'),
+            null,
             GeneralUtility::_GP('MP'),
             GeneralUtility::_GP('RDCT')
         );
index 0e8f3f4..0295b00 100644 (file)
@@ -74,8 +74,6 @@ class PageGenerator
         // Base url:
         if (isset($tsfe->config['config']['baseURL'])) {
             $tsfe->baseUrl = $tsfe->config['config']['baseURL'];
-            // Deprecated since TYPO3 CMS 7, will be removed with TYPO3 CMS 8
-            $tsfe->anchorPrefix = substr(GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'), strlen(GeneralUtility::getIndpEnv('TYPO3_SITE_URL')));
         }
         // Internal and External target defaults
         $tsfe->intTarget = '' . $tsfe->config['config']['intTarget'];
@@ -167,31 +165,6 @@ class PageGenerator
     }
 
     /**
-     * Processing JavaScript handlers
-     *
-     * @return array Array with a) a JavaScript section with event handlers and variables set and b) an array with attributes for the body tag.
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use JS directly
-     */
-    public static function JSeventFunctions()
-    {
-        $functions = array();
-        $setEvents = array();
-        $setBody = array();
-        foreach ($GLOBALS['TSFE']->JSeventFuncCalls as $event => $handlers) {
-            if (!empty($handlers)) {
-                GeneralUtility::deprecationLog('The usage of $GLOBALS[\'TSFE\']->JSeventFuncCalls is deprecated as of TYPO3 CMS 7. Use Javascript directly.');
-                $functions[] = '       function T3_' . $event . 'Wrapper(e) {  ' . implode('   ', $handlers) . '       }';
-                $setEvents[] = '       document.' . $event . '=T3_' . $event . 'Wrapper;';
-                if ($event == 'onload') {
-                    // Dubiuos double setting breaks on some browser - do we need it?
-                    $setBody[] = 'onload="T3_onloadWrapper();"';
-                }
-            }
-        }
-        return array(!empty($functions) ? implode(LF, $functions) . LF . implode(LF, $setEvents) : '', $setBody);
-    }
-
-    /**
      * Rendering the page content
      *
      * @return void
@@ -752,8 +725,7 @@ class PageGenerator
         } else {
             $tsfe->INTincScript_loadJSCode();
         }
-        $JSef = self::JSeventFunctions();
-        $scriptJsCode = $JSef[0];
+        $scriptJsCode = '';
 
         if ($tsfe->spamProtectEmailAddresses && $tsfe->spamProtectEmailAddresses !== 'ascii') {
             $scriptJsCode = '
@@ -957,10 +929,6 @@ class PageGenerator
             if (trim($tsfe->pSetup['bodyTagAdd'])) {
                 $bodyTag = preg_replace('/>$/', '', trim($bodyTag)) . ' ' . trim($tsfe->pSetup['bodyTagAdd']) . '>';
             }
-            // Event functions
-            if (!empty($JSef[1])) {
-                $bodyTag = preg_replace('/>$/', '', trim($bodyTag)) . ' ' . trim(implode(' ', $JSef[1])) . '>';
-            }
         }
         $pageRenderer->addBodyContent(LF . $bodyTag);
         // Div-sections
index 47b185b..2504b57 100644 (file)
@@ -857,7 +857,7 @@ class PageRepository
      * @param array $pagerow The page row to return URL type for
      * @param bool $disable A flag to simply disable any output from here. - deprecated - don't use anymore.
      * @return string|bool The URL type from $this->urltypes array. False if not found or disabled.
-     * @see \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::setExternalJumpUrl()
+     * @see \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::initializeRedirectUrlHandlers()
      */
     public function getExtURL($pagerow, $disable = false)
     {
index c862669..39487fe 100644 (file)
@@ -69,7 +69,7 @@ class PreviewHook implements \TYPO3\CMS\Core\SingletonInterface
                 GeneralUtility::_GP('type'),
                 GeneralUtility::_GP('no_cache'),
                 GeneralUtility::_GP('cHash'),
-                GeneralUtility::_GP('jumpurl'),
+                null,
                 GeneralUtility::_GP('MP'),
                 GeneralUtility::_GP('RDCT')
             );