From 24a401a548fd65bd546ed61c38236d286c657eb5 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 29 May 2013 15:43:41 +0200 Subject: [PATCH] Cache mimetype icons --- lib/helper.php | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/helper.php b/lib/helper.php index c69445ed788..9e4978f6b96 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -27,6 +27,7 @@ class OC_Helper { private static $mimetypes=array(); private static $tmpFiles=array(); + private static $mimetypeIcons = array(); /** * @brief Creates an url using a defined route @@ -192,25 +193,32 @@ class OC_Helper { if(isset($alias[$mimetype])) { $mimetype=$alias[$mimetype]; } + if (isset(self::$mimetypeIcons[$mimetype])) { + return self::$mimetypeIcons[$mimetype]; + } // Replace slash and backslash with a minus - $mimetype = str_replace( "/", "-", $mimetype ); - $mimetype = str_replace( "\\", "-", $mimetype ); + $icon = str_replace( "/", "-", $mimetype ); + $icon = str_replace( "\\", "-", $icon ); // Is it a dir? if( $mimetype == "dir" ) { + self::$mimetypeIcons[$mimetype] = OC::$WEBROOT."/core/img/filetypes/folder.png"; return OC::$WEBROOT."/core/img/filetypes/folder.png"; } // Icon exists? - if( file_exists( OC::$SERVERROOT."/core/img/filetypes/$mimetype.png" )) { - return OC::$WEBROOT."/core/img/filetypes/$mimetype.png"; + if( file_exists( OC::$SERVERROOT."/core/img/filetypes/$icon.png" )) { + self::$mimetypeIcons[$mimetype] = OC::$WEBROOT."/core/img/filetypes/$icon.png"; + return OC::$WEBROOT."/core/img/filetypes/$icon.png"; } //try only the first part of the filetype - $mimetype=substr($mimetype, 0, strpos($mimetype, '-')); - if( file_exists( OC::$SERVERROOT."/core/img/filetypes/$mimetype.png" )) { - return OC::$WEBROOT."/core/img/filetypes/$mimetype.png"; + $mimePart=substr($icon, 0, strpos($icon, '-')); + if( file_exists( OC::$SERVERROOT."/core/img/filetypes/$mimePart.png" )) { + self::$mimetypeIcons[$mimetype] = OC::$WEBROOT."/core/img/filetypes/$mimePart.png"; + return OC::$WEBROOT."/core/img/filetypes/$mimePart.png"; } else{ + self::$mimetypeIcons[$mimetype] = OC::$WEBROOT."/core/img/filetypes/file.png"; return OC::$WEBROOT."/core/img/filetypes/file.png"; } } -- 2.39.5