';
-}
-
/**
* Build link based on the current, adding/rewriting parameters
*
diff --git a/inc/search.php b/inc/search.php
index db495ef3a..a33ba87c5 100644
--- a/inc/search.php
+++ b/inc/search.php
@@ -233,6 +233,58 @@ function search_media(&$data,$base,$file,$type,$lvl,$opts){
return false;
}
+/**
+ * List all mediafiles in a namespace
+ * $opts['depth'] recursion level, 0 for all
+ * $opts['showmsg'] shows message if invalid media id is used
+ * $opts['skipacl'] skip acl checking
+ * $opts['pattern'] check given pattern
+ * $opts['hash'] add hashes to result list
+ *
+ * @todo This is a temporary copy of search_media returning a list of MediaFile intances
+ *
+ * @param array $data
+ * @param string $base
+ * @param string $file
+ * @param string $type
+ * @param integer $lvl
+ * @param array $opts
+ *
+ * @return bool
+ */
+function search_mediafiles(&$data,$base,$file,$type,$lvl,$opts){
+
+ //we do nothing with directories
+ if($type == 'd') {
+ if(empty($opts['depth'])) return true; // recurse forever
+ $depth = substr_count($file,'/');
+ if($depth >= $opts['depth']) return false; // depth reached
+ return true;
+ }
+
+ $id = pathID($file,true);
+ if($id != cleanID($id)){
+ if($opts['showmsg'])
+ msg(hsc($id).' is not a valid file name for DokuWiki - skipped',-1);
+ return false; // skip non-valid files
+ }
+
+ //check ACL for namespace (we have no ACL for mediafiles)
+ $info['perm'] = auth_quickaclcheck(getNS($id).':*');
+ if(empty($opts['skipacl']) && $info['perm'] < AUTH_READ){
+ return false;
+ }
+
+ //check pattern filter
+ if(!empty($opts['pattern']) && !@preg_match($opts['pattern'], $id)){
+ return false;
+ }
+
+ $data[] = new \dokuwiki\File\MediaFile($id);
+ return false;
+}
+
+
/**
* This function just lists documents (for RSS namespace export)
*
diff --git a/lib/exe/css.php b/lib/exe/css.php
index 2ea2c0963..9ca1bac48 100644
--- a/lib/exe/css.php
+++ b/lib/exe/css.php
@@ -357,30 +357,26 @@ function css_filetypes(){
// default style
echo '.mediafile {';
- echo ' background: transparent url('.DOKU_BASE.'lib/images/fileicons/file.png) 0px 1px no-repeat;';
- echo ' padding-left: 18px;';
- echo ' padding-bottom: 1px;';
+ echo ' background: transparent url('.DOKU_BASE.'lib/images/fileicons/svg/file.svg) 0px 1px no-repeat;';
+ echo ' background-size: 1.2em;';
+ echo ' padding-left: 1.5em;';
echo '}';
// additional styles when icon available
// scan directory for all icons
$exts = array();
- if($dh = opendir(DOKU_INC.'lib/images/fileicons')){
+ if($dh = opendir(DOKU_INC.'lib/images/fileicons/svg')){
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;
- }
+ if(preg_match('/(.*?)\.svg$/i',$file, $match)){
+ $exts[] = strtolower($match[1]);
}
}
closedir($dh);
}
- foreach($exts as $ext=>$type){
+ foreach($exts as $ext){
$class = preg_replace('/[^_\-a-z0-9]+/','_',$ext);
echo ".mf_$class {";
- echo ' background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.$type.')';
+ echo ' background-image: url('.DOKU_BASE.'lib/images/fileicons/svg/'.$ext.'.svg)';
echo '}';
}
}
diff --git a/lib/images/fileicons/svg/7z.svg b/lib/images/fileicons/svg/7z.svg
new file mode 100644
index 000000000..44e435e43
--- /dev/null
+++ b/lib/images/fileicons/svg/7z.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/README b/lib/images/fileicons/svg/README
new file mode 100644
index 000000000..4e7770bed
--- /dev/null
+++ b/lib/images/fileicons/svg/README
@@ -0,0 +1 @@
+Icons come from https://fileicons.org/
diff --git a/lib/images/fileicons/svg/asm.svg b/lib/images/fileicons/svg/asm.svg
new file mode 100644
index 000000000..748386696
--- /dev/null
+++ b/lib/images/fileicons/svg/asm.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/bash.svg b/lib/images/fileicons/svg/bash.svg
new file mode 100644
index 000000000..8406f792f
--- /dev/null
+++ b/lib/images/fileicons/svg/bash.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/bz2.svg b/lib/images/fileicons/svg/bz2.svg
new file mode 100644
index 000000000..44e435e43
--- /dev/null
+++ b/lib/images/fileicons/svg/bz2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/c.svg b/lib/images/fileicons/svg/c.svg
new file mode 100644
index 000000000..d014cb253
--- /dev/null
+++ b/lib/images/fileicons/svg/c.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/conf.svg b/lib/images/fileicons/svg/conf.svg
new file mode 100644
index 000000000..1a9cae0db
--- /dev/null
+++ b/lib/images/fileicons/svg/conf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/cpp.svg b/lib/images/fileicons/svg/cpp.svg
new file mode 100644
index 000000000..178f532a0
--- /dev/null
+++ b/lib/images/fileicons/svg/cpp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/cs.svg b/lib/images/fileicons/svg/cs.svg
new file mode 100644
index 000000000..c6853d00c
--- /dev/null
+++ b/lib/images/fileicons/svg/cs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/csh.svg b/lib/images/fileicons/svg/csh.svg
new file mode 100644
index 000000000..8406f792f
--- /dev/null
+++ b/lib/images/fileicons/svg/csh.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/css.svg b/lib/images/fileicons/svg/css.svg
new file mode 100644
index 000000000..f359b94cc
--- /dev/null
+++ b/lib/images/fileicons/svg/css.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/csv.svg b/lib/images/fileicons/svg/csv.svg
new file mode 100644
index 000000000..318ba0573
--- /dev/null
+++ b/lib/images/fileicons/svg/csv.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/deb.svg b/lib/images/fileicons/svg/deb.svg
new file mode 100644
index 000000000..2cdb6d758
--- /dev/null
+++ b/lib/images/fileicons/svg/deb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/doc.svg b/lib/images/fileicons/svg/doc.svg
new file mode 100644
index 000000000..ac084a0dc
--- /dev/null
+++ b/lib/images/fileicons/svg/doc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/docx.svg b/lib/images/fileicons/svg/docx.svg
new file mode 100644
index 000000000..ac084a0dc
--- /dev/null
+++ b/lib/images/fileicons/svg/docx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/file.svg b/lib/images/fileicons/svg/file.svg
new file mode 100644
index 000000000..2537cbec9
--- /dev/null
+++ b/lib/images/fileicons/svg/file.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/gif.svg b/lib/images/fileicons/svg/gif.svg
new file mode 100644
index 000000000..8d4cac8c0
--- /dev/null
+++ b/lib/images/fileicons/svg/gif.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/gz.svg b/lib/images/fileicons/svg/gz.svg
new file mode 100644
index 000000000..44e435e43
--- /dev/null
+++ b/lib/images/fileicons/svg/gz.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/h.svg b/lib/images/fileicons/svg/h.svg
new file mode 100644
index 000000000..b80f32f2c
--- /dev/null
+++ b/lib/images/fileicons/svg/h.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/htm.svg b/lib/images/fileicons/svg/htm.svg
new file mode 100644
index 000000000..1e37bd48a
--- /dev/null
+++ b/lib/images/fileicons/svg/htm.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/html.svg b/lib/images/fileicons/svg/html.svg
new file mode 100644
index 000000000..1e37bd48a
--- /dev/null
+++ b/lib/images/fileicons/svg/html.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/ico.svg b/lib/images/fileicons/svg/ico.svg
new file mode 100644
index 000000000..da894c465
--- /dev/null
+++ b/lib/images/fileicons/svg/ico.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/index.php b/lib/images/fileicons/svg/index.php
new file mode 100644
index 000000000..66c4835af
--- /dev/null
+++ b/lib/images/fileicons/svg/index.php
@@ -0,0 +1,22 @@
+
+
+
+ Filetype icons
+
+
+
+
+
+
+ ';
+}
+?>
+
+
diff --git a/lib/images/fileicons/svg/java.svg b/lib/images/fileicons/svg/java.svg
new file mode 100644
index 000000000..2a095856b
--- /dev/null
+++ b/lib/images/fileicons/svg/java.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/jpeg.svg b/lib/images/fileicons/svg/jpeg.svg
new file mode 100644
index 000000000..8d4cac8c0
--- /dev/null
+++ b/lib/images/fileicons/svg/jpeg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/jpg.svg b/lib/images/fileicons/svg/jpg.svg
new file mode 100644
index 000000000..8d4cac8c0
--- /dev/null
+++ b/lib/images/fileicons/svg/jpg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/js.svg b/lib/images/fileicons/svg/js.svg
new file mode 100644
index 000000000..c97554772
--- /dev/null
+++ b/lib/images/fileicons/svg/js.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/json.svg b/lib/images/fileicons/svg/json.svg
new file mode 100644
index 000000000..fde9988be
--- /dev/null
+++ b/lib/images/fileicons/svg/json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/lua.svg b/lib/images/fileicons/svg/lua.svg
new file mode 100644
index 000000000..8c2a373c3
--- /dev/null
+++ b/lib/images/fileicons/svg/lua.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/mp3.svg b/lib/images/fileicons/svg/mp3.svg
new file mode 100644
index 000000000..7d5a0a818
--- /dev/null
+++ b/lib/images/fileicons/svg/mp3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/mp4.svg b/lib/images/fileicons/svg/mp4.svg
new file mode 100644
index 000000000..f2a277268
--- /dev/null
+++ b/lib/images/fileicons/svg/mp4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/ods.svg b/lib/images/fileicons/svg/ods.svg
new file mode 100644
index 000000000..e36187083
--- /dev/null
+++ b/lib/images/fileicons/svg/ods.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/odt.svg b/lib/images/fileicons/svg/odt.svg
new file mode 100644
index 000000000..f30088bf5
--- /dev/null
+++ b/lib/images/fileicons/svg/odt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/ogg.svg b/lib/images/fileicons/svg/ogg.svg
new file mode 100644
index 000000000..7d5a0a818
--- /dev/null
+++ b/lib/images/fileicons/svg/ogg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/ogv.svg b/lib/images/fileicons/svg/ogv.svg
new file mode 100644
index 000000000..f2a277268
--- /dev/null
+++ b/lib/images/fileicons/svg/ogv.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/pdf.svg b/lib/images/fileicons/svg/pdf.svg
new file mode 100644
index 000000000..e6472df17
--- /dev/null
+++ b/lib/images/fileicons/svg/pdf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/php.svg b/lib/images/fileicons/svg/php.svg
new file mode 100644
index 000000000..096500ab5
--- /dev/null
+++ b/lib/images/fileicons/svg/php.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/pl.svg b/lib/images/fileicons/svg/pl.svg
new file mode 100644
index 000000000..9abc83799
--- /dev/null
+++ b/lib/images/fileicons/svg/pl.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/png.svg b/lib/images/fileicons/svg/png.svg
new file mode 100644
index 000000000..8d4cac8c0
--- /dev/null
+++ b/lib/images/fileicons/svg/png.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/ppt.svg b/lib/images/fileicons/svg/ppt.svg
new file mode 100644
index 000000000..edcc771bb
--- /dev/null
+++ b/lib/images/fileicons/svg/ppt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/pptx.svg b/lib/images/fileicons/svg/pptx.svg
new file mode 100644
index 000000000..edcc771bb
--- /dev/null
+++ b/lib/images/fileicons/svg/pptx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/ps.svg b/lib/images/fileicons/svg/ps.svg
new file mode 100644
index 000000000..9cb18357c
--- /dev/null
+++ b/lib/images/fileicons/svg/ps.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/py.svg b/lib/images/fileicons/svg/py.svg
new file mode 100644
index 000000000..4c268d42c
--- /dev/null
+++ b/lib/images/fileicons/svg/py.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/rar.svg b/lib/images/fileicons/svg/rar.svg
new file mode 100644
index 000000000..44e435e43
--- /dev/null
+++ b/lib/images/fileicons/svg/rar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/rb.svg b/lib/images/fileicons/svg/rb.svg
new file mode 100644
index 000000000..28b037b78
--- /dev/null
+++ b/lib/images/fileicons/svg/rb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/rpm.svg b/lib/images/fileicons/svg/rpm.svg
new file mode 100644
index 000000000..2cdb6d758
--- /dev/null
+++ b/lib/images/fileicons/svg/rpm.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/rtf.svg b/lib/images/fileicons/svg/rtf.svg
new file mode 100644
index 000000000..629562858
--- /dev/null
+++ b/lib/images/fileicons/svg/rtf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/sh.svg b/lib/images/fileicons/svg/sh.svg
new file mode 100644
index 000000000..8406f792f
--- /dev/null
+++ b/lib/images/fileicons/svg/sh.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/sql.svg b/lib/images/fileicons/svg/sql.svg
new file mode 100644
index 000000000..b2c3e21de
--- /dev/null
+++ b/lib/images/fileicons/svg/sql.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/svg.svg b/lib/images/fileicons/svg/svg.svg
new file mode 100644
index 000000000..9cb18357c
--- /dev/null
+++ b/lib/images/fileicons/svg/svg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/swf.svg b/lib/images/fileicons/svg/swf.svg
new file mode 100644
index 000000000..4642c115b
--- /dev/null
+++ b/lib/images/fileicons/svg/swf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/tar.svg b/lib/images/fileicons/svg/tar.svg
new file mode 100644
index 000000000..2cdb6d758
--- /dev/null
+++ b/lib/images/fileicons/svg/tar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/tgz.svg b/lib/images/fileicons/svg/tgz.svg
new file mode 100644
index 000000000..44e435e43
--- /dev/null
+++ b/lib/images/fileicons/svg/tgz.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/txt.svg b/lib/images/fileicons/svg/txt.svg
new file mode 100644
index 000000000..629562858
--- /dev/null
+++ b/lib/images/fileicons/svg/txt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/wav.svg b/lib/images/fileicons/svg/wav.svg
new file mode 100644
index 000000000..7d5a0a818
--- /dev/null
+++ b/lib/images/fileicons/svg/wav.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/webm.svg b/lib/images/fileicons/svg/webm.svg
new file mode 100644
index 000000000..f2a277268
--- /dev/null
+++ b/lib/images/fileicons/svg/webm.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/xls.svg b/lib/images/fileicons/svg/xls.svg
new file mode 100644
index 000000000..ddf80382f
--- /dev/null
+++ b/lib/images/fileicons/svg/xls.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/xlsx.svg b/lib/images/fileicons/svg/xlsx.svg
new file mode 100644
index 000000000..ddf80382f
--- /dev/null
+++ b/lib/images/fileicons/svg/xlsx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/xml.svg b/lib/images/fileicons/svg/xml.svg
new file mode 100644
index 000000000..6af9a7866
--- /dev/null
+++ b/lib/images/fileicons/svg/xml.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lib/images/fileicons/svg/zip.svg b/lib/images/fileicons/svg/zip.svg
new file mode 100644
index 000000000..44e435e43
--- /dev/null
+++ b/lib/images/fileicons/svg/zip.svg
@@ -0,0 +1 @@
+
\ No newline at end of file