[BUGFIX] Wrong file icon in info popup 19/27819/4
authorFrans Saris <franssaris@gmail.com>
Mon, 24 Feb 2014 20:55:40 +0000 (21:55 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Sat, 8 Mar 2014 16:31:30 +0000 (17:31 +0100)
In the info popup of a file/folder the wrong icon is shown.

This patch changes it so IconUtility::getSpriteIconForResource()
is used and moves the rendering of the header to the
DocumentTemplate.

Resolves: #56251
Releases: 6.2
Change-Id: I7fc40af85b8bc623112bcec29c2409221a937718
Reviewed-on: https://review.typo3.org/27819
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php
typo3/sysext/backend/Classes/Template/DocumentTemplate.php

index 4a8eea2..590b59c 100644 (file)
@@ -229,8 +229,11 @@ class ElementInformationController {
         */
        protected function renderPageTitle() {
                if ($this->type === 'folder') {
-                       $title = IconUtility::getSpriteIcon('apps-filetree-folder-default') . ' ' .
-                                       $this->folderObject->getName();
+                       $table = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xlf:folder');
+                       $title = $this->doc->getResourceHeader($this->folderObject, array(' ', ''));
+               } elseif ($this->type === 'file') {
+                       $table = $GLOBALS['LANG']->sL($GLOBALS['TCA'][$this->table]['ctrl']['title']);
+                       $title = $this->doc->getResourceHeader($this->fileObject, array(' ', ''));
                } else {
                        $table = $GLOBALS['LANG']->sL($GLOBALS['TCA'][$this->table]['ctrl']['title']);
                        $title = $this->doc->getHeader($this->table, $this->row, $this->pageinfo['_thePath'], 1, array(' ', ''));
index 509779f..e326a69 100644 (file)
@@ -565,6 +565,26 @@ function jumpToUrl(URL) {
                return '<span class="typo3-moduleHeader">' . $this->wrapClickMenuOnIcon($iconImgTag, $table, $row['uid']) . $viewPage . $tWrap[0] . htmlspecialchars(GeneralUtility::fixed_lgd_cs($title, 45)) . $tWrap[1] . '</span>';
        }
 
+       /**
+        * Like ->getHeader() but for files and folders
+        * Returns the icon with the path of the file/folder set in the alt/title attribute. Shows the name after the icon.
+        *
+        * @param \TYPO3\CMS\Core\Resource\ResourceInterface $resource
+        * @param array $tWrap is an array with indexes 0 and 1 each representing HTML-tags (start/end) which will wrap the title
+        * @return string
+        */
+       public function getResourceHeader(\TYPO3\CMS\Core\Resource\ResourceInterface $resource, $tWrap = array('', '')) {
+               $path = $resource->getStorage()->getName() . $resource->getParentFolder()->getIdentifier();
+               $iconImgTag = IconUtility::getSpriteIconForResource($resource, array('title' => htmlspecialchars($path)));
+
+               if ($resource instanceof \TYPO3\CMS\Core\Resource\File) {
+                       $metaData = $resource->_getMetaData();
+                       $iconImgTag = $this->wrapClickMenuOnIcon($iconImgTag, 'sys_file_metadata', $metaData['uid']);
+               }
+
+               return '<span class="typo3-moduleHeader">' . $iconImgTag .  $tWrap[0] . htmlspecialchars(GeneralUtility::fixed_lgd_cs($resource->getName(), 45)) .  $tWrap[1] . '</span>';
+       }
+
        /**
         * Like ->getHeader() but for files in the File>* main module/submodules
         * Returns the file-icon with the path of the file set in the alt/title attribute. Shows the file-name after the icon.
@@ -573,9 +593,10 @@ function jumpToUrl(URL) {
         * @param string $path Alt text
         * @param string $iconfile The icon file (relative to TYPO3 dir)
         * @return string HTML content
-        * @todo Define visibility
+        * @deprecated since 6.2 remove 2 version later use getResourceHeader() instead
         */
        public function getFileheader($title, $path, $iconfile) {
+               GeneralUtility::logDeprecatedFunction();
                $fileInfo = GeneralUtility::split_fileref($title);
                $title = htmlspecialchars(GeneralUtility::fixed_lgd_cs($fileInfo['path'], -35)) . '<strong>' . htmlspecialchars($fileInfo['file']) . '</strong>';
                return '<span class="typo3-moduleHeader"><img' . IconUtility::skinImg($this->backPath, $iconfile, 'width="18" height="16"') . ' title="' . htmlspecialchars($path) . '" alt="" />' . $title . '</span>';