From 3470ba5ce191327c76e8bc301dbae0e56734fac2 Mon Sep 17 00:00:00 2001
From: Claus Due <claus@namelesscoder.net>
Date: Mon, 22 May 2017 17:19:02 +0200
Subject: [PATCH] [TASK] Remove duplicate ViewHelper from extensionmanager

JSON encoding ViewHelper from Fluid is fully compatible.
Also removes a number of unused arguments in the Fluid
template - note that removed ViewHelper declared it was
a tag based ViewHelper which supports additionalAttributes,
but did not render a tag, which is why all the attributes were
simply ignored and unused.

Change-Id: I8d59f5a5e8971aac2b63be86c0a51aaf56437306
Resolves: #81301
Releases: master
Reviewed-on: https://review.typo3.org/52903
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
---
 .../Format/JsonEncodeViewHelper.php           | 60 -------------------
 .../Templates/Download/InstallFromTer.json    | 11 +---
 2 files changed, 1 insertion(+), 70 deletions(-)
 delete mode 100644 typo3/sysext/extensionmanager/Classes/ViewHelpers/Format/JsonEncodeViewHelper.php

diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Format/JsonEncodeViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Format/JsonEncodeViewHelper.php
deleted file mode 100644
index 88b47199d481..000000000000
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Format/JsonEncodeViewHelper.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-namespace TYPO3\CMS\Extensionmanager\ViewHelpers\Format;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
-use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
-use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderStatic;
-
-/**
- * Wrapper for PHPs json_encode function.
- *
- * @see http://www.php.net/manual/en/function.json-encode.php
- * @internal
- */
-class JsonEncodeViewHelper extends AbstractViewHelper
-{
-    use CompileWithContentArgumentAndRenderStatic;
-
-    /**
-     * Rendered children is expected to be an array or object, which cannot be passed through htmlspecialchars.
-     *
-     * @var bool
-     */
-    protected $escapeChildren = false;
-
-    /**
-     * Initialize arguments
-     */
-    public function initializeArguments()
-    {
-        parent::initializeArguments();
-        $this->registerArgument('additionalAttributes', 'array', 'Additional tag attributes. They will be added directly to the resulting HTML tag.');
-    }
-
-    /**
-     * Replaces newline characters by HTML line breaks.
-     *
-     * @param array $arguments
-     * @param \Closure $renderChildrenClosure
-     * @param RenderingContextInterface $renderingContext
-     *
-     * @return string the altered string.
-     */
-    public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
-    {
-        return json_encode((array) $renderChildrenClosure());
-    }
-}
diff --git a/typo3/sysext/extensionmanager/Resources/Private/Templates/Download/InstallFromTer.json b/typo3/sysext/extensionmanager/Resources/Private/Templates/Download/InstallFromTer.json
index eae0355e2f83..5767379e66af 100644
--- a/typo3/sysext/extensionmanager/Resources/Private/Templates/Download/InstallFromTer.json
+++ b/typo3/sysext/extensionmanager/Resources/Private/Templates/Download/InstallFromTer.json
@@ -1,10 +1 @@
-{namespace em=TYPO3\CMS\Extensionmanager\ViewHelpers}
-<f:format.raw><em:format.jsonEncode additionalAttributes="{
-	result: result,
-	extension: extension.extensionKey,
-	installationTypeLanguageKey: installationTypeLanguageKey,
-	errorCount: '{f:count(subject: unresolvedDependencies)}',
-	errorTitle: '{f:translate(key: \'downloadExtension.dependencies.errorTitle\')}',
-	errorMessage: '{f:render(partial: \'List/UnresolvedDependencies\', arguments: \'{_all}\')}',
-	skipDependencyUri: '{f:uri.action(action: \'installExtensionWithoutSystemDependencyCheck\', format: \'json\', arguments: \'{extension: extension}\')}'
-}" /></f:format.raw>
\ No newline at end of file
+{result -> f:format.json() -> f:format.raw()}
\ No newline at end of file
-- 
GitLab