summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTom N Harris <tnharris@whoopdedo.org>2009-09-26 01:17:46 +0200
committerTom N Harris <tnharris@whoopdedo.org>2009-09-26 01:17:46 +0200
commit27bf79241161079d1d15f8fe1927682ec562835f (patch)
treea3bd8fee282dd481a4e4dd78aa445369b602b9d2 /lib
parent66b23ce9f134c838f393fa452c450f8b6fc147c3 (diff)
downloadrpg-27bf79241161079d1d15f8fe1927682ec562835f.tar.gz
rpg-27bf79241161079d1d15f8fe1927682ec562835f.tar.bz2
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
Diffstat (limited to 'lib')
-rw-r--r--lib/exe/css.php29
-rw-r--r--lib/exe/fetch.php2
2 files changed, 19 insertions, 12 deletions
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';