X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=plugins%2FFileList.php;h=07acbfd03106ac98b0e2c2a8f6824529077a95b7;hb=16807ba08214124b17b1f14226be12cdd646adc1;hp=f97197a9a8c7cbb49955b008e2e1a25e4f320a02;hpb=6855525e48fad5de270500a5445c4f4ff85d8bda;p=diogenes.git diff --git a/plugins/FileList.php b/plugins/FileList.php index f97197a..07acbfd 100644 --- a/plugins/FileList.php +++ b/plugins/FileList.php @@ -35,9 +35,17 @@ class FileList extends Diogenes_Plugin_Filter { /** 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 {FileList} 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 .= ' @@ -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 .= '';
'.__("no files").'