From 1bda697fe1e9fb1d668091379f659c25cf823982 Mon Sep 17 00:00:00 2001
From: Benni Mack <benni@typo3.org>
Date: Fri, 27 May 2016 13:16:09 +0200
Subject: [PATCH] [TASK] IconViewHelper should generate absolute URLs

This change allows the IconViewHelper in the reports module
to be used not just from typo3/ (e.g. if a person puts typo3/index.php
to a different place or wants to show the reports in the install tool).

Resolves: #76322
Releases: master
Change-Id: I7067654b3fff5ac75fb9883b708ddb28a9ddc7d1
Reviewed-on: https://review.typo3.org/48321
Reviewed-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Tested-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Frank Naegler <frank.naegler@typo3.org>
Tested-by: Frank Naegler <frank.naegler@typo3.org>
---
 .../reports/Classes/ViewHelpers/IconViewHelper.php  | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/typo3/sysext/reports/Classes/ViewHelpers/IconViewHelper.php b/typo3/sysext/reports/Classes/ViewHelpers/IconViewHelper.php
index 2e467f5688ae..f9b90dd321e9 100644
--- a/typo3/sysext/reports/Classes/ViewHelpers/IconViewHelper.php
+++ b/typo3/sysext/reports/Classes/ViewHelpers/IconViewHelper.php
@@ -14,8 +14,8 @@ namespace TYPO3\CMS\Reports\ViewHelpers;
  * The TYPO3 project - inspiring people to share!
  */
 
-use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Core\Utility\PathUtility;
 use TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper;
 use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
 
@@ -64,14 +64,7 @@ class IconViewHelper extends AbstractBackendViewHelper
         $icon = $arguments['icon'];
         $title = $arguments['title'];
 
-        if (!empty($icon)) {
-            $absIconPath = GeneralUtility::getFileAbsFileName($icon);
-            if (file_exists($absIconPath)) {
-                $icon = '../' . str_replace(PATH_site, '', $absIconPath);
-            }
-        } else {
-            $icon = ExtensionManagementUtility::extRelPath('reports') . 'ext_icon.png';
-        }
-        return '<img src="' . htmlspecialchars($icon) . '" width="16" height="16" title="' . htmlspecialchars($title) . '" alt="' . htmlspecialchars($title) . '" />';
+        $icon = GeneralUtility::getFileAbsFileName($icon ?: 'EXT:reports/ext_icon.png');
+        return '<img src="' . htmlspecialchars(PathUtility::getAbsoluteWebPath($icon)) . '" width="16" height="16" title="' . htmlspecialchars($title) . '" alt="' . htmlspecialchars($title) . '" />';
     }
 }
-- 
GitLab