From 27bf79241161079d1d15f8fe1927682ec562835f Mon Sep 17 00:00:00 2001 From: Tom N Harris Date: Sat, 26 Sep 2009 01:17:46 +0200 Subject: Use all available icons for file links (FS#1759) All PNG and GIF images in the lib/images/fileicons directory will be used for media file links. The conf/mime.conf file continues to restrict which file types may be uploaded. File types not in the configuration list are download-only. darcs-hash:20090925231746-6942e-299a52772f67e265a8702bda3686f495e4337a8f.gz --- lib/exe/css.php | 29 ++++++++++++++++++----------- lib/exe/fetch.php | 2 +- 2 files changed, 19 insertions(+), 12 deletions(-) (limited to 'lib') diff --git a/lib/exe/css.php b/lib/exe/css.php index 2517db38d..6216df6e5 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -238,18 +238,25 @@ function css_filetypes(){ echo '}'; // additional styles when icon available - $mimes = getMimeTypes(); - foreach(array_keys($mimes) as $mime){ - $class = preg_replace('/[^_\-a-z0-9]+/i','_',$mime); - if(@file_exists(DOKU_INC.'lib/images/fileicons/'.$mime.'.png')){ - echo "a.mf_$class {"; - echo ' background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$mime.'.png)'; - echo '}'; - }elseif(@file_exists(DOKU_INC.'lib/images/fileicons/'.$mime.'.gif')){ - echo "a.mf_$class {"; - echo ' background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$mime.'.gif)'; - echo '}'; + // scan directory for all icons + $exts = array(); + if($dh = opendir(DOKU_INC.'lib/images/fileicons')){ + while(false !== ($file = readdir($dh))){ + if(preg_match('/([_\-a-z0-9]+(?:\.[_\-a-z0-9]+)*?)\.(png|gif)/i',$file,$match)){ + $ext = strtolower($match[1]); + $type = '.'.strtolower($match[2]); + if($ext!='file' && (!isset($exts[$ext]) || $type=='.png')){ + $exts[$ext] = $type; + } + } } + closedir($dh); + } + foreach($exts as $ext=>$type){ + $class = preg_replace('/[^_\-a-z0-9]+/','_',$ext); + echo "a.mf_$class {"; + echo ' background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.$type.')'; + echo '}'; } } diff --git a/lib/exe/fetch.php b/lib/exe/fetch.php index 728b0b448..78c130081 100644 --- a/lib/exe/fetch.php +++ b/lib/exe/fetch.php @@ -26,7 +26,7 @@ $CACHE = calc_cache($_REQUEST['cache']); $WIDTH = (int) $_REQUEST['w']; $HEIGHT = (int) $_REQUEST['h']; - list($EXT,$MIME,$DL) = mimetype($MEDIA); + list($EXT,$MIME,$DL) = mimetype($MEDIA,false); if($EXT === false){ $EXT = 'unknown'; $MIME = 'application/octet-stream'; -- cgit v1.2.3