Revision [14924]
This is an old revision of FileView made by SmaugDragon on 2006-07-20 18:29:46.
The only variable is "location" set to the location of the directory you want to show files from.
save as actions/fileview.php
examples:
{{fileview location="uploads/*.*"}} will show all files in uploads directory
{{fileview location="uploads/*.zip}} will show only zip files in uploads directory
{{fileview location="uploads/pic???.jpg}} will show only jpg files with names like pic000.jpg pic001.jpg etc
Additionally you can set $md5checksum on or off in the fileview.php file to have md5checksums generated on the fly [off by default].
(Not recomended for large directories or files tested on FreeBSD, Apache Server. I don't know what windows would do leave comment)
Please comment if you find this action helpful It is my first "published" code and I would love to hear back from the community
KNOWN BUGS: file names with spaces ie. "This windows file.zip" will not link correctly.
Table formatting (css) obstructs other objects in Wikka - working on a fix
<style type="text/css">
table {border:1px solid #000; border-collapse:collapse; font-family:arial,courier,sans-serif; font-size:90%; }
td,th{border:0px solid #000; border-collapse:collapse; padding:5px; }
thead th{text-align:center; background:#9cf; }
tbody th{text-align:center; background:#69c; }
tbody td{text-align:right; background:#DDDDDD; }
#ic{width: 0px;}
#nm{width: 80px; text-align: left; nowrap;}
#sz{width: 80px; text-align: right; nowrap;}
#mf{width: 80px; text-align: right; nowrap;}
#cd{width:120px; text-align:right; font-family:courier; nowrap;}
</style>
<?php
if (!$location) { $location = "uploads/*.*"; } /* if location is not specified show all files in uploads */
$md5checksum_on = 0; /* calculate md5 checksums (1 = yes | 0 = no) */
/* Taken from WikkaWakka actions files.php */
if (! function_exists('bytesToHumanReadableUsage')) {
function bytesToHumanReadableUsage($bytes, $precision = 2, $names = '')
{
if (!is_numeric($bytes) || $bytes < 0) {
return false;
}
for ($level = 0; $bytes >= 1024; $level++) { $bytes /= 1024; }
switch ($level)
{
case 0: $suffix = (isset($names[0])) ? $names[0] : 'Bytes'; break;
case 1: $suffix = (isset($names[1])) ? $names[1] : 'KB'; break;
case 2: $suffix = (isset($names[2])) ? $names[2] : 'MB'; break;
case 3: $suffix = (isset($names[3])) ? $names[3] : 'GB'; break;
case 4: $suffix = (isset($names[4])) ? $names[4] : 'TB'; break;
default: $suffix = (isset($names[$level])) ? $names[$level] : ''; break;
}
if (empty($suffix)) { trigger_error('Unable to find suffix for case ' . $level);
return false;
} return round($bytes, $precision) . ' ' . $suffix;
}
}
/* End of borrowed Code */
echo "<table summary=\"This table lists the files ".$location."\">\n";
echo "<tr><th scope=\"col\"> </th><th scope=\"col\">File</th><th scope=\"col\">Size</th><th scope=\"col\">Modified</th>";
if ($md5checksum_on == 1) echo "<th scope=\"col\">md5 Checksum</th></tr>\n"; else echo "</tr>\n";
foreach (glob($location) as $filename) {
echo "<td id=\"ic\"></td>";
echo "<td id=\"nm\"><a href=".$filename.">$filename</a>";
echo "<td id=\"sz\">".bytesToHumanReadableUsage(filesize($filename))."</td>";
echo "<td id=\"mf\">".date ("m/d/Y", filemtime($filename))."</td>";
if ($md5checksum_on == 1) echo "<td id=\"cd\">".md5_file($filename)."</td>";
echo "</tr>\n";
}
echo "</table>";
?>
table {border:1px solid #000; border-collapse:collapse; font-family:arial,courier,sans-serif; font-size:90%; }
td,th{border:0px solid #000; border-collapse:collapse; padding:5px; }
thead th{text-align:center; background:#9cf; }
tbody th{text-align:center; background:#69c; }
tbody td{text-align:right; background:#DDDDDD; }
#ic{width: 0px;}
#nm{width: 80px; text-align: left; nowrap;}
#sz{width: 80px; text-align: right; nowrap;}
#mf{width: 80px; text-align: right; nowrap;}
#cd{width:120px; text-align:right; font-family:courier; nowrap;}
</style>
<?php
if (!$location) { $location = "uploads/*.*"; } /* if location is not specified show all files in uploads */
$md5checksum_on = 0; /* calculate md5 checksums (1 = yes | 0 = no) */
/* Taken from WikkaWakka actions files.php */
if (! function_exists('bytesToHumanReadableUsage')) {
function bytesToHumanReadableUsage($bytes, $precision = 2, $names = '')
{
if (!is_numeric($bytes) || $bytes < 0) {
return false;
}
for ($level = 0; $bytes >= 1024; $level++) { $bytes /= 1024; }
switch ($level)
{
case 0: $suffix = (isset($names[0])) ? $names[0] : 'Bytes'; break;
case 1: $suffix = (isset($names[1])) ? $names[1] : 'KB'; break;
case 2: $suffix = (isset($names[2])) ? $names[2] : 'MB'; break;
case 3: $suffix = (isset($names[3])) ? $names[3] : 'GB'; break;
case 4: $suffix = (isset($names[4])) ? $names[4] : 'TB'; break;
default: $suffix = (isset($names[$level])) ? $names[$level] : ''; break;
}
if (empty($suffix)) { trigger_error('Unable to find suffix for case ' . $level);
return false;
} return round($bytes, $precision) . ' ' . $suffix;
}
}
/* End of borrowed Code */
echo "<table summary=\"This table lists the files ".$location."\">\n";
echo "<tr><th scope=\"col\"> </th><th scope=\"col\">File</th><th scope=\"col\">Size</th><th scope=\"col\">Modified</th>";
if ($md5checksum_on == 1) echo "<th scope=\"col\">md5 Checksum</th></tr>\n"; else echo "</tr>\n";
foreach (glob($location) as $filename) {
echo "<td id=\"ic\"></td>";
echo "<td id=\"nm\"><a href=".$filename.">$filename</a>";
echo "<td id=\"sz\">".bytesToHumanReadableUsage(filesize($filename))."</td>";
echo "<td id=\"mf\">".date ("m/d/Y", filemtime($filename))."</td>";
if ($md5checksum_on == 1) echo "<td id=\"cd\">".md5_file($filename)."</td>";
echo "</tr>\n";
}
echo "</table>";
?>
CategoryUserContributions