{FileList} in your page where the file list should appear."; /** Plugin parameters */ var $params = array('dirbase' => "", 'urlbase' => "", 'match' => ""); /** Prepare the output for a single file of the list. * * @param $file * @param $title * @param $url */ function list_file($file,$title,$url="") { if (empty($url)) $url = $file; global $globals; /* get modification date / time */ $modified = date ("d M Y H:m:s", filemtime($file)); /* get file icon */ $icon = $globals->icons->get_mime_icon($file); /* calculate file size */ $size = filesize($file); if ($size < 1000) $size = "$size B"; elseif ($size < 1000000) $size = floor($size/1000)." kB"; else $size = floor($size/1000000)." MB"; /* figure out description */ $show = 1; if (preg_match("/(i386\.changes|\.dsc)$/",$file)) $show = 0; elseif (preg_match("/\.tar\.gz$/",$file)) $desc = "source tarball"; elseif (preg_match("/_(all|i386)\.deb$/",$file,$matches)) { $type = $matches[1]; $desc = "Debian package"; if ($type == "all") $desc .= " [platform independant]"; else $desc .= " [$type specific]"; } elseif (preg_match("/\.diff\.gz$/",$file)) $desc = "Debian diff"; else $desc = " "; /* display the link */ if ($show) return "\"file\"$title$modified$size$desc\n"; } /** Show an instance of the FileList plugin. * * @param $args */ function show($args) { 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]; } //print_r($params); if (empty($params['dirbase'])) { $params['dirbase'] = $bbarel->spool->spoolPath($page->curpage->props['PID']); } // process parameters $output = ''; $dir = $params['dirbase']; if (is_dir($dir) && ($dh = opendir($dir))) { $output .= ''; /* get the matching files */ while (($fname = readdir($dh)) !== false) { if ( is_file("$dir/$fname") && preg_match('/^'.$params['match'].'/',$fname) ) $filelist[] = $fname; } closedir($dh); /* order and display */ if (is_array($filelist)) { rsort($filelist); while(list ($key,$val) = each($filelist)) { $output .= $this->list_file("$dir/$val",$val,$params['urlbase'].$val); } } else { $output .= ''; } $output .= '
'.__("file").' '.__("date").' '.__("size").' '.__("description").'
'.__("no files").'
'; } return $output; } } ?>