diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index d62fdfff62536d242be8f2669a1aa739acf4d5e8..b3d97718c6bd97aca6003a8bc174e02f350c451a 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -703,22 +703,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['title'] = $this->_xmlEntities($src); list($ext,$mime) = mimetype($src); if(substr($mime,0,5) == 'image'){ - // link only jpeg images - // if ($ext != 'jpg' && $ext != 'jpeg') $noLink = TRUE; $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),($linking=='direct')); }elseif($mime == 'application/x-shockwave-flash'){ // don't link flash movies $noLink = TRUE; }else{ // add file icons - $link['class'] = 'urlextern'; - if(@file_exists(DOKU_INC.'lib/images/fileicons/'.$ext.'.png')){ - $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.'.png)'; - }elseif(@file_exists(DOKU_INC.'lib/images/fileicons/'.$ext.'.gif')){ - $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.'.gif)'; - }else{ - $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/file.png)'; - } + $link['class'] .= ' mediafile mf_'.$ext; $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),true); } $link['name'] = $this->_media ($src, $title, $align, $width, $height, $cache); @@ -757,14 +748,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $noLink = TRUE; }else{ // add file icons - $link['class'] = 'urlextern'; - if(@file_exists(DOKU_INC.'lib/images/fileicons/'. $ext.'.png')){ - $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.'.png)'; - }elseif(@file_exists(DOKU_INC.'lib/images/fileicons/'.$ext.'.gif')){ - $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.'.gif)'; - }else{ - $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/file.png)'; - } + $link['class'] .= ' mediafile mf_'.$ext; } //output formatted diff --git a/lib/exe/css.php b/lib/exe/css.php index 2fb30999a3c32623c195920d9dbe848d27127144..9874299b04a04d4875e360a26226d0181f1979f8 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -66,8 +66,9 @@ function css_out(){ // start output buffering and build the stylesheet ob_start(); - // print the default classes for Interwikilinks + // print the default classes for interwiki links and file downloads css_interwiki(); + css_filetypes(); // load files foreach($files as $file => $location){ @@ -163,7 +164,34 @@ function css_interwiki(){ echo '}'; } } +} + +/** + * Prints classes for file download links + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function css_filetypes(){ + // default style + echo 'a.mediafile {'; + echo ' background: transparent url('.DOKU_BASE.'lib/images/fileicons/file.png) 0px 1px no-repeat;'; + echo ' padding-left: 16px;'; + echo '}'; + + // additional styles when icon available + $mimes = getMimeTypes(); + foreach(array_keys($mimes) as $mime){ + if(@file_exists(DOKU_INC.'lib/images/fileicons/'.$mime.'.png')){ + echo "a.mf_$mime {"; + 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_$mime {"; + echo ' background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$mime.'.gif)'; + echo '}'; + } + } } /**