public static function Imce::scanDir in IMCE 8
Same name and namespace in other branches
- 8.2 src/Imce.php \Drupal\imce\Imce::scanDir()
Returns the contents of a directory.
1 call to Imce::scanDir()
- Delete::deleteFolderUri in src/
Plugin/ ImcePlugin/ Delete.php - Deletes a folder by uri.
File
- src/
Imce.php, line 246
Class
- Imce
- Imce container class for helper methods.
Namespace
Drupal\imceCode
public static function scanDir($diruri, array $options = []) {
$content = [
'files' => [],
'subfolders' => [],
];
$browse_files = isset($options['browse_files']) ? $options['browse_files'] : TRUE;
$browse_subfolders = isset($options['browse_subfolders']) ? $options['browse_subfolders'] : TRUE;
if (!$browse_files && !$browse_subfolders) {
return $content;
}
if (!($opendir = opendir($diruri))) {
return $content + [
'error' => TRUE,
];
}
// Prepare filters.
$name_filter = empty($options['name_filter']) ? FALSE : $options['name_filter'];
$callback = empty($options['filter_callback']) ? FALSE : $options['filter_callback'];
$uriprefix = substr($diruri, -1) === '/' ? $diruri : $diruri . '/';
while (($filename = readdir($opendir)) !== FALSE) {
// Exclude special names.
if ($filename === '.' || $filename === '..') {
continue;
}
// Check filter regexp.
if ($name_filter && preg_match($name_filter, $filename)) {
continue;
}
// Check browse permissions.
$fileuri = $uriprefix . $filename;
$is_dir = is_dir($fileuri);
if ($is_dir ? !$browse_subfolders : !$browse_files) {
continue;
}
// Execute callback.
if ($callback) {
$result = $callback($filename, $is_dir, $fileuri, $options);
if ($result === 'continue') {
continue;
}
elseif ($result === 'break') {
break;
}
}
$content[$is_dir ? 'subfolders' : 'files'][$filename] = $fileuri;
}
closedir($opendir);
return $content;
}