move more functionalty to Diogenes_Barrel_Menu
[diogenes.git] / plugins / FileList.php
index f97197a..ea410b1 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-require_once 'Plugin/Filter.php';
+require_once 'Plugin/Skel/Filter.php';
 require_once 'diogenes.icons.inc.php';
 
 
@@ -28,16 +28,24 @@ require_once 'diogenes.icons.inc.php';
  * To make use of this plugin, insert {FileList} in your page where 
  * the file list should appear.
  */
-class FileList extends Diogenes_Plugin_Filter {
+class FileList extends Diogenes_Plugin_Skel_Filter {
   /** Plugin name */
   var $name = "FileList";
   
   /** Plugin description */
   var $description = "This plugin allows you to insert a directory listing with icons and modification date. To make use of this plugin, insert <b>{FileList}</b> in your page where the file list should appear.";
   
-  /** Plugin parameters */
-  var $params = array('dirbase' => "", 'urlbase' => "", 'match' => "");
-    
+  /** Constructor.
+   */
+  function FileList()
+  {
+    global $page;
+    $this->declareParam('dirbase', '');
+    $this->declareParam('urlbase', '');
+    $this->declareParam('match', '');
+  }
+
   
   /** Prepare the output for a single file of the list.
    *
@@ -97,21 +105,21 @@ class FileList extends Diogenes_Plugin_Filter {
   {
     global $page;
     $bbarel = $page->barrel;
-    
+   
     // process arguments
-    $params = array();
-    foreach($this->params as $key => $val) {
-      $params[$key] = isset($args[$key]) ? $args[$key] : $this->params[$key];
+    $instance_vals = array();
+    foreach($this->getParamNames() as $key) {
+      $instance_vals[$key] = isset($args[$key]) ? $args[key] : $this->getParamValue($key);
     }
     
-   //print_r($params);
-    if (empty($params['dirbase'])) {
-      $params['dirbase'] = $bbarel->spool->spoolPath($page->curpage->props['PID']);
+   //print_r($instance_vals);
+    if (empty($instance_vals['dirbase'])) {
+      $instance_vals['dirbase'] =  $bbarel->spool->spoolPath($page->curpage->props['PID']);
     }
 
     // process parameters 
     $output = '';
-    $dir = $params['dirbase'];    
+    $dir = $instance_vals['dirbase'];
     if (is_dir($dir) && ($dh = opendir($dir))) {
       $output .= 
        '<table class="light">
@@ -125,7 +133,7 @@ class FileList extends Diogenes_Plugin_Filter {
       /* get the matching files */
       while (($fname = readdir($dh)) !== false) {
         if ( is_file("$dir/$fname") 
-              && preg_match('/^'.$params['match'].'/',$fname) )
+              && preg_match('/^'.$instance_vals['match'].'/',$fname) )
           $filelist[] = $fname;
       }
       closedir($dh);
@@ -134,7 +142,7 @@ class FileList extends Diogenes_Plugin_Filter {
       if (is_array($filelist)) {
         rsort($filelist);
         while(list ($key,$val) = each($filelist)) {
-          $output .= $this->list_file("$dir/$val",$val,$params['urlbase'].$val);
+          $output .= $this->list_file("$dir/$val",$val,$instance_vals['urlbase'].$val);
         }
       } else {
         $output .= '<tr><td colspan="4"><i>'.__("no files").'</i></td></tr>';