function boost_tree_directory in Boost 6
Return a tree directory structure array
Parameters
$dir: Directory name
$limit: If there are more then this many sub directories in this directory then set the $GLOBALS['_boost_dir_limit_hit'] variable. Default is 31,000; set to zero to disable this functionality.
1 call to boost_tree_directory()
- boost_requirements in ./
boost.install - Implementation of hook_requirements().
File
- ./
boost.install, line 391 - Handles Boost module installation and upgrade tasks.
Code
function boost_tree_directory($dir, $limit = 31000) {
if (!is_dir($dir)) {
return FALSE;
}
// Get directories/files
$files = scandir($dir);
// Only keep directories
$dirs = array();
foreach ($files as $file) {
if (is_dir($dir . '/' . $file) && $file != '.' && $file != '..') {
$dirs[] = $file;
}
}
// Recursive operation to get subdirectories
if (count($dirs)) {
if (count($dirs) >= 31990) {
$GLOBALS['_boost_dir_limit_hit'][] = $dir;
}
elseif ($limit && count($dirs) > $limit) {
$GLOBALS['_boost_dir_limit_warning'][] = $dir;
}
foreach ($dirs as $key => $subdir) {
unset($dirs[$key]);
$dirs[$subdir] = boost_tree_directory($dir . '/' . $subdir, $limit);
}
}
else {
return NULL;
}
// Return Array
return $dirs;
}