summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/parser/xhtml.php20
-rw-r--r--lib/exe/css.php30
2 files changed, 31 insertions, 19 deletions
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index d62fdfff6..b3d97718c 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 2fb30999a..9874299b0 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 '}';
+ }
+ }
}
/**