[FOLLOWUP] Use GeneralUtility::quoteJSvalue() where needed part 1 59/39159/4
authorNicole Cordes <typo3@cordes.co>
Fri, 1 May 2015 14:55:59 +0000 (16:55 +0200)
committerHelmut Hummel <helmut.hummel@typo3.org>
Fri, 1 May 2015 16:58:50 +0000 (18:58 +0200)
Fix accidentally quoted JavaScript links.

Releases: master
Resolves: #66706
Relates: #66115
Change-Id: Icf23b5f3a9b9a9a3cd206a9201b38d64d5fc62fd
Reviewed-on: http://review.typo3.org/39159
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Helmut Hummel <helmut.hummel@typo3.org>
Tested-by: Helmut Hummel <helmut.hummel@typo3.org>
typo3/sysext/backend/Classes/Controller/NewRecordController.php
typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeCommands.php
typo3/sysext/backend/Classes/Tree/View/PagePositionMap.php
typo3/sysext/core/Classes/Database/QueryView.php
typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateInformationModuleFunctionController.php

index 662af3a..d48eed2 100644 (file)
@@ -323,7 +323,7 @@ class NewRecordController {
                        $this->code .= $positionMap->positionTree($this->id, $this->pageinfo, $this->perms_clause, $this->R_URI);
                } else {
                        // No pages yet, no need to prompt for position, redirect to page creation.
-                       $javascript = BackendUtility::editOnClick('&edit[pages][0]=new&returnNewPageId=1', '', BackendUtility::getModuleUrl('db_new', array('id' => $this->id, 'pagesOnly' => '1')));
+                       $javascript = stripslashes(BackendUtility::editOnClick('&edit[pages][0]=new&returnNewPageId=1', '', BackendUtility::getModuleUrl('db_new', array('id' => $this->id, 'pagesOnly' => '1'))));
                        $startPos = strpos($javascript, 'href=\'') + 6;
                        $endPos = strpos($javascript, '\';');
                        $url = substr($javascript, $startPos, $endPos - $startPos);
index c8c2ec6..2261f35 100644 (file)
@@ -321,7 +321,7 @@ class ExtdirectTreeCommands {
        static public function getViewLink($nodeData) {
                /** @var $node \TYPO3\CMS\Backend\Tree\Pagetree\PagetreeNode */
                $node = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Tree\Pagetree\PagetreeNode::class, (array)$nodeData);
-               $javascriptLink = BackendUtility::viewOnClick($node->getId());
+               $javascriptLink = stripslashes(BackendUtility::viewOnClick($node->getId()));
                preg_match('/window\\.open\\(\'([^\']+)\'/i', $javascriptLink, $match);
                return $match[1];
        }
index cea5ba4..8d82efc 100644 (file)
@@ -197,7 +197,7 @@ class PagePositionMap {
                $prev_dat = end($t3lib_pageTree->tree);
                if ($prev_dat['row']['uid'] == $id) {
                        if (!$this->dontPrintPageInsertIcons && $this->checkNewPageInPid($id)) {
-                               $code .= '<span class="text-nowrap">' . $this->insertQuadLines($saveLatestUid[$latestInvDepth]['blankLineCode'], 1) . '<img src="clear.gif" width="18" height="8" align="top" alt="" />' . '<a href="#" onclick="' . $this->onClickEvent($id, $id, 4) . '">' . '<i class="t3-icon fa fa-long-arrow-left" name="mImgSubpage' . $cc . '" title="' . $this->insertlabel() . '"></i>' . '</a></span><br />';
+                               $code .= '<span class="text-nowrap">' . $this->insertQuadLines($saveLatestUid[$latestInvDepth]['blankLineCode'], 1) . '<img src="clear.gif" width="18" height="8" align="top" alt="" />' . '<a href="#" onclick="' . htmlspecialchars($this->onClickEvent($id, $id, 4)) . '">' . '<i class="t3-icon fa fa-long-arrow-left" name="mImgSubpage' . $cc . '" title="' . $this->insertlabel() . '"></i>' . '</a></span><br />';
                        }
                }
                for ($a = $latestInvDepth; $a <= $this->depth; $a++) {
index 8d0955a..ecabe0c 100644 (file)
@@ -543,7 +543,7 @@ class QueryView {
                $out .= '<td><div class="btn-group">';
                if (!$row['deleted']) {
                        $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, '', (GeneralUtility::getIndpEnv('REQUEST_URI') . GeneralUtility::implodeArrayForUrl('SET', (array)GeneralUtility::_POST('SET')))) . '">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-document-open') . '</a>';
+                       $out .= '<a class="btn btn-default" href="#" onClick="' . htmlspecialchars(BackendUtility::editOnClick($params, '', 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(
                                        ('cmd[' . $table . '][' . $row['uid'] . '][undelete]') => '1',
index 0b2f7ff..da7f303 100644 (file)
@@ -65,7 +65,7 @@ class TypoScriptTemplateInformationModuleFunctionController extends AbstractFunc
                } else {
                        $params = '&columnsOnly=' . $field . '&createExtension=0' . '&edit[sys_template][' . $id . ']=edit';
                        $editOnClick = BackendUtility::editOnClick($params);
-                       $startAnchor = '<a href="#" onclick="' . $editOnClick . '">';
+                       $startAnchor = '<a href="#" onclick="' . htmlspecialchars($editOnClick) . '">';
                }
                $icon = IconUtility::getSpriteIcon(
                        'actions-document-open',
@@ -275,9 +275,9 @@ class TypoScriptTemplateInformationModuleFunctionController extends AbstractFunc
                        $outCode = '<div class="table-fit"><table class="table table-striped table-hover">' . $outCode . '</table></div>';
 
                        // Edit all icon:
-                       $editOnClick = BackendUtility::editOnClick(rawurlencode('&createExtension=0') . '&amp;edit[sys_template][' . $tplRow['uid'] . ']=edit');
+                       $editOnClick = BackendUtility::editOnClick('&createExtension=0&edit[sys_template][' . $tplRow['uid'] . ']=edit');
                        $icon = IconUtility::getSpriteIcon('actions-document-open', array('title' => $lang->getLL('editTemplateRecord'))) . $lang->getLL('editTemplateRecord');
-                       $outCode .= '<br /><a href="#" onclick="' . $editOnClick . '"><strong>' . $icon . '</strong></a>';
+                       $outCode .= '<br /><a href="#" onclick="' . htmlspecialchars($editOnClick) . '"><strong>' . $icon . '</strong></a>';
                        $theOutput .= $this->pObj->doc->section('', $outCode);
 
                                // hook after compiling the output