X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=plugins%2FFileList.php;h=ea410b1bd586b51192d2bb4fc4b9b733ae8a23c0;hb=b83c2cd955fee7bf470dc99406dfdc7dd4246491;hp=f97197a9a8c7cbb49955b008e2e1a25e4f320a02;hpb=6855525e48fad5de270500a5445c4f4ff85d8bda;p=diogenes.git diff --git a/plugins/FileList.php b/plugins/FileList.php index f97197a..ea410b1 100644 --- a/plugins/FileList.php +++ b/plugins/FileList.php @@ -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 {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").'