diff --git a/module/folder/folder.php b/module/folder/folder.php index dc86ddba..bb6b9447 100644 --- a/module/folder/folder.php +++ b/module/folder/folder.php @@ -36,9 +36,13 @@ class folder extends common public function index() { + // Configuration de l'affichage $config['showsubfolder'] = $this->getData(['module', $this->getUrl(0), 'subfolder']); $config['sort'] = $this->getData(['module', $this->getUrl(0), 'sort']); + $config['showdetails'] = $this->getData(['module', $this->getUrl(0), 'details']); + $config['initialfolderstate'] = $this->getData(['module', $this->getUrl(0), 'folderstate']); + // Générer l'affichage self::$folders = $this->getFolderContent($this->getData(['module', $this->getUrl(0), 'path']), $config); // Valeurs en sortie @@ -66,7 +70,8 @@ class folder extends common 'sort' => $this->getInput('folderConfigSort', helper::FILTER_BOOLEAN), 'subfolder' => $this->getInput('folderConfigSubfolder', helper::FILTER_BOOLEAN), 'folder' => $this->getInput('folderConfigFolder', helper::FILTER_BOOLEAN), - + 'details' => $this->getInput('folderConfigDetails', helper::FILTER_BOOLEAN), + 'folderstate' => $this->getInput('folderConfigFolderState', helper::FILTER_BOOLEAN), ] ]); @@ -88,74 +93,104 @@ class folder extends common ]); } + private function getFolderContent($chemin, $config = []) + { + $showSubFolder = isset ($config['showsubfolder']) ? $config['showsubfolder'] : true; + $sort = isset ($config['sort']) ? $config['sort'] : true; + $showDetails = isset ($config['showdetails']) ? $config['showdetails'] : false; + $initialFolderState = isset ($config['initialfolderstate']) ? $config['initialfolderstate'] : 'collapsed'; -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_dir($chemin)) { + // Ouvrir le dossier + if ($dh = opendir($chemin)) { + // Initialiser les tableaux pour les sous-dossiers et les fichiers + $subDirectories = []; + $files = []; - // Vérifier si le chemin existe et est un dossier - if (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; - // 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; + } + } + } - // 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); - // Fermer le dossier - closedir($dh); + // Trier les sous-dossiers et les fichiers si nécessaire + if ($sort) { + sort($subDirectories); + sort($files); + } - // Trier les sous-dossiers et les fichiers si nécessaire - if ($sort) { - sort($subDirectories); - sort($files); - } + // Initialiser la liste des éléments + $items = '