function _filetree_list_files in File Tree 6.2
Same name and namespace in other branches
- 6 filetree.module \_filetree_list_files()
- 7.2 filetree.module \_filetree_list_files()
- 7 filetree.module \_filetree_list_files()
Recursively lists folders and files in this directory.
Similar to file_scan_directory(), except that we need the hierarchy. Returns a sorted list which is compatible with theme('item_list') or theme('filetree'), folders first, then files.
1 call to _filetree_list_files()
- _filetree_process in ./
filetree.module - Process function for the filter.
File
- ./
filetree.module, line 169
Code
function _filetree_list_files($dir, $params) {
$list = array();
if (is_dir($dir) && ($handle = opendir($dir))) {
$folders = $files = array();
$descriptions = _filetree_parse_description($dir);
while (FALSE !== ($file = readdir($handle))) {
// Exclude certain paths:
// - those which start with a period (".", "..", and hidden files),
// - additional paths from the "exclude" param
if ($file[0] != '.' and !drupal_match_path($file, $params['exclude'])) {
$filename = "{$dir}/{$file}";
if (is_dir($filename)) {
$folders[$file] = array(
'data' => isset($descriptions[$file]) ? $descriptions[$file] : token_replace($params['dirname'], 'filetree', $file),
'children' => _filetree_list_files($filename, $params),
'title' => token_replace($params['dirtitle'], 'filetree', $file),
'class' => 'folder',
);
}
else {
$name = isset($descriptions[$file]) ? $descriptions[$file] : token_replace($params['filename'], 'filetree', $file);
// See http://drupal.org/node/278770#comment-1011434.
$url = $params['absolute'] ? file_create_url($filename) : substr(file_create_url($filename), strlen($GLOBALS['base_url'] . '/'));
$files[$file] = array(
'data' => l($name, $url),
'title' => token_replace($params['filetitle'], 'filetree', $file),
'class' => _filetree_icon(pathinfo($file, PATHINFO_EXTENSION)),
);
}
}
}
closedir($handle);
asort($folders);
asort($files);
$list += $folders;
$list += $files;
}
return $list;
}