From: Robin Appelman Date: Wed, 29 May 2013 13:43:41 +0000 (+0200) Subject: Cache mimetype icons X-Git-Tag: v6.0.0alpha2~714^2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=24a401a548fd65bd546ed61c38236d286c657eb5;p=nextcloud-server.git Cache mimetype icons --- 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"; } }