function dirtree in TinyBrowser 7
4 calls to dirtree()
- edit.php in tinybrowser/edit.php
- folders.php in tinybrowser/folders.php
- tinybrowser.php in tinybrowser/tinybrowser.php
- upload.php in tinybrowser/upload.php
File
- tinybrowser/fns_tinybrowser.php, line 418
Code
function dirtree(&$alldirs, $types, $root = '', $tree = '', $branch = '', $level = 0) {
$filetypes = $types;
for ($i = 0; $i < count($filetypes); $i++) {
$filetypes[$i] = '*.' . $filetypes[$i];
}
if ($level == 0 && is_dir($root . $tree . $branch)) {
$filenum = 0;
foreach ($filetypes as $filetype) {
$filenum = $filenum + count(glob($root . $tree . $branch . sql_regcase($filetype), GLOB_NOSORT));
}
$treeparts = explode('/', rtrim($tree, '/'));
$topname = end($treeparts);
$alldirs[] = array(
$branch,
rtrim($topname, '/') . ' (' . $filenum . ')',
rtrim($topname, '/'),
rtrim($topname, '/'),
$filenum,
filemtime($root . $tree . $branch),
);
}
$level++;
$dh = opendir($root . $tree . $branch);
while (($dirname = readdir($dh)) !== false) {
if ($dirname != '.' && $dirname != '..' && is_dir($root . $tree . $branch . $dirname) && $dirname != '_thumbs') {
$filenum = 0;
foreach ($filetypes as $filetype) {
$filenum = $filenum + count(glob($root . $tree . $branch . $dirname . '/' . sql_regcase($filetype), GLOB_NOSORT));
}
$indent = '';
for ($i = 0; $i < $level; $i++) {
$indent .= ' ';
}
if (strlen($indent) > 0) {
$indent .= '→ ';
}
$alldirs[] = array(
urlencode($branch . $dirname . '/'),
$indent . $dirname . ' (' . $filenum . ')',
$indent . $dirname,
$dirname,
$filenum,
filemtime($root . $tree . $branch . $dirname),
);
dirtree($alldirs, $types, $root, $tree, $branch . $dirname . '/', $level);
}
}
closedir($dh);
$level--;
}