[BUGFIX] Query parameters of external link may get altered 82/22682/2
authorStanislas Rolland <typo3@sjbr.ca>
Tue, 30 Jul 2013 02:34:54 +0000 (22:34 -0400)
committerPhilipp Gampe <philipp.gampe@typo3.org>
Sat, 17 Aug 2013 16:31:56 +0000 (18:31 +0200)
If an external link is set to the same domain as the BE domain and
the id query parameter is present, any other query parameters will
be altered (and repeated).
Solution: href of external link should remain unaltered.

Resolves: #47844
Releases: 6.0, 6.1, 6.2
Change-Id: I79564ebf63ee4f92bfd3f95b17f72592ea849163
Reviewed-on: https://review.typo3.org/22682
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
typo3/sysext/core/Classes/Html/RteHtmlParser.php

index d8d0f24..4dc7777 100644 (file)
@@ -679,7 +679,11 @@ class RteHtmlParser extends \TYPO3\CMS\Core\Html\HtmlParser {
                                        $attribArray['title'] = preg_match('/ /', $attribArray['title']) ? '"' . $attribArray['title'] . '"' : $attribArray['title'];
                                        // Creating the TYPO3 pseudo-tag "<LINK>" for the link (includes href/url, target and class attributes):
                                        // If data-htmlarea-external attribute is set, keep the href unchanged
-                                       $href = ($attribArray['data-htmlarea-external'] ? $attribArray['href'] : $info['url']) . ($info['query'] ? ',0,' . $info['query'] : '');
+                                       if ($attribArray['data-htmlarea-external']) {
+                                               $href = $attribArray['href'];
+                                       } else {
+                                               $href = $info['url'] . ($info['query'] ? ',0,' . $info['query'] : '');
+                                       }
                                        $bTag = '<link ' . $href . ($attribArray['target'] ? ' ' . $attribArray['target'] : ($attribArray['class'] || $attribArray['title'] ? ' -' : '')) . ($attribArray['class'] ? ' ' . $attribArray['class'] : ($attribArray['title'] ? ' -' : '')) . ($attribArray['title'] ? ' ' . $attribArray['title'] : '') . '>';
                                        $eTag = '</link>';
                                        // Modify parameters