[TASK] IconViewHelper should generate absolute URLs 21/48321/4
authorBenni Mack <benni@typo3.org>
Fri, 27 May 2016 11:16:09 +0000 (13:16 +0200)
committerWouter Wolters <typo3@wouterwolters.nl>
Fri, 27 May 2016 12:32:29 +0000 (14:32 +0200)
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>
typo3/sysext/reports/Classes/ViewHelpers/IconViewHelper.php

index 2e467f5..f9b90dd 100644 (file)
@@ -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) . '" />';
     }
 }