<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -64,14 +64,21 @@ class syntax_plugin_medialist extends DokuWiki_Syntax_Plugin {
         $match = substr($match,12,-2);
 
         // process the match
-        if(empty($match) || $match == '@PAGE@') {
-            return array($ID);
-        } elseif(@file_exists(wikiFN($match))) {
-            return array(cleanID($match));
-        } else {
-            return array();
+        if($match == '@PAGE@') {
+            $mode = 'page';
+            $id = $ID;
+        } elseif($match == '@NAMESPACE@') {
+            $mode = 'ns';
+            $id = $ID;
+        } elseif($match == '@ALL@') {
+            $mode = 'all';
+            $id = $ID;
+        } elseif(@page_exists(cleanID($match))) {
+            $mode = 'page';
+            $id = $match;
         }
 
+        return array($mode, $id);
     }
 
     /**
@@ -81,9 +88,11 @@ class syntax_plugin_medialist extends DokuWiki_Syntax_Plugin {
         
         if($mode == 'xhtml'){
             // disable caching
+            $mode = $data[0];
+            $id = $data[1];
             if(!empty($data[0])) {
                 $renderer-&gt;info['cache'] = false;
-                $renderer-&gt;doc .= $this-&gt;_medialist_xhtml($data[0]);
+                $renderer-&gt;doc .= $this-&gt;_medialist_xhtml($mode, $id);
             }
             return true;
         }
@@ -95,11 +104,11 @@ class syntax_plugin_medialist extends DokuWiki_Syntax_Plugin {
      *
      * @author Michael Klier &lt;chi@chimeric.de&gt;
      */
-    function _medialist_xhtml($id){
+    function _medialist_xhtml($mode, $id){
         $out  = '';
 
         $medialist = array();
-        $media = $this-&gt;_media_lookup($id);
+        $media = $this-&gt;_media_lookup($mode, $id);
 
         if(empty($media)) return;
 
@@ -153,37 +162,44 @@ class syntax_plugin_medialist extends DokuWiki_Syntax_Plugin {
      *
      * @author Michael Klier &lt;chi@chimeric.de&gt;
      */
-    function _media_lookup($id) {
+    function _media_lookup($mode, $id) {
         global $conf;
 
+        dbglog($mode);
+        dbglog($id);
+
         $media = array();
         $linked_media = array();
         $intern_media = array();
 
-        // check permissions for the page
-        if(auth_quickaclcheck($id) &gt;= AUTH_READ) {
-            // get the instructions
-            $ins = p_cached_instructions(wikiFN($id),true,$id);
-
-            // get linked media files
-            foreach($ins as $node) {
-                if($node[0] == 'internalmedia') {
-                    array_push($linked_media,$node[1][0]);
-                } elseif($node[0] == 'externalmedia') {
-                    array_push($linked_media,$node[1][0]);
+        if(($mode == 'page') or ($mode == 'all')) {
+            // check permissions for the page
+            if(auth_quickaclcheck($id) &gt;= AUTH_READ) {
+                // get the instructions
+                $ins = p_cached_instructions(wikiFN($id),true,$id);
+
+                // get linked media files
+                foreach($ins as $node) {
+                    if($node[0] == 'internalmedia') {
+                        array_push($linked_media,$node[1][0]);
+                    } elseif($node[0] == 'externalmedia') {
+                        array_push($linked_media,$node[1][0]);
+                    }
                 }
             }
         }
 
-        $dir = utf8_encode(str_replace(':','/', getNS($id)));
-        if(@is_dir($conf['mediadir'] . '/' . $dir)) {
-            if(auth_quickaclcheck($dir) &gt;= AUTH_READ) {
-                // get mediafiles of current namespace
-                $res = array(); // search result
-                require_once(DOKU_INC.'inc/search.php');
-                search($res,$conf['mediadir'],'search_media',array(),$dir);
-                foreach($res as $item) {
-                    array_push($intern_media,$item['id']);
+        if(($mode == 'ns') or ($mode == 'all')) {
+            $dir = utf8_encode(str_replace(':','/', getNS($id)));
+            if(@is_dir($conf['mediadir'] . '/' . $dir)) {
+                if(auth_quickaclcheck($dir) &gt;= AUTH_READ) {
+                    // get mediafiles of current namespace
+                    $res = array(); // search result
+                    require_once(DOKU_INC.'inc/search.php');
+                    search($res,$conf['mediadir'],'search_media',array(),$dir);
+                    foreach($res as $item) {
+                        array_push($intern_media,$item['id']);
+                    }
                 }
             }
         }</diff>
      <filename>syntax.php</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c084b7522ba3f1aa21bfe482077137dd0db5b93a</id>
    </parent>
  </parents>
  <author>
    <name>Michael Klier</name>
    <email>chi@chimeric.de</email>
  </author>
  <url>http://github.com/chimeric/dokuwiki-plugin-medialist/commit/2a2c87d8e29ab0a0814ccdfd10d7939a87ee9696</url>
  <id>2a2c87d8e29ab0a0814ccdfd10d7939a87ee9696</id>
  <committed-date>2009-05-21T03:24:05-07:00</committed-date>
  <authored-date>2009-05-21T03:24:05-07:00</authored-date>
  <message>added additional modes</message>
  <tree>7426025d3d066afef099bb8ecddabc221598f5e2</tree>
  <committer>
    <name>Michael Klier</name>
    <email>chi@chimeric.de</email>
  </committer>
</commit>
