diff --git a/module/folder/folder.php b/module/folder/folder.php index f79022bf..7159835d 100644 --- a/module/folder/folder.php +++ b/module/folder/folder.php @@ -75,41 +75,74 @@ class folder extends common } -private function getFolderContent($chemin) -{ - // Vérifier si le chemin existe et est un dossier - if (is_dir($chemin)) { - // Ouvrir le dossier - if ($dh = opendir($chemin)) { - $items = isset($items) ? $items : '"; - - // Fermer le dossier - closedir($dh); - } - return $items; - } -} + private function getFolderContent($chemin, $config = []) + { + $showSubFolder = isset($config['showsubfolder']) ? $config['showsubfolder'] : true; + $sort = isset($config['sort']) ? $config['sort'] : true; + + // Vérifier si le chemin existe et est un dossier + if (!is_null($chemin) && is_dir($chemin)) { + // Ouvrir le dossier + if ($dh = opendir($chemin)) { + // Initialiser les tableaux pour les sous-dossiers et les fichiers + $subDirectories = []; + $files = []; + + // Parcourir les éléments du dossier + while (($element = readdir($dh)) !== false) { + // Exclure les éléments spéciaux + if ($element != '.' && $element != '..') { + // Construire le chemin complet de l'élément + $cheminComplet = $chemin . '/' .$element; + + // Vérifier si c'est un dossier + if (is_dir($cheminComplet)) { + // Ajouter le dossier au tableau des sous-dossiers + $subDirectories[] = $element; + } else { + // Ajouter le fichier au tableau des fichiers + $files[] = $element; + } + } + } + + // Fermer le dossier + closedir($dh); + + // Trier les sous-dossiers et les fichiers si nécessaire + if ($sort) { + sort($subDirectories); + sort($files); + } + + // Initialiser la liste des éléments + $items = '"; + + return $items; + } + } + + return ''; + } +