From c4fc466876490b863586365d081c87fee40c0dd4 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Fri, 15 Mar 2024 21:14:49 +0100 Subject: [PATCH] config deux options --- module/folder/folder.php | 157 +++++++++++++++------------ module/folder/view/config/config.php | 80 ++++++++------ 2 files changed, 135 insertions(+), 102 deletions(-) diff --git a/module/folder/folder.php b/module/folder/folder.php index 81b13009..dc86ddba 100644 --- a/module/folder/folder.php +++ b/module/folder/folder.php @@ -36,7 +36,10 @@ class folder extends common public function index() { - self::$folders = $this->getFolderContent($this->getData(['module', $this->getUrl(0), 'path'])); + $config['showsubfolder'] = $this->getData(['module', $this->getUrl(0), 'subfolder']); + $config['sort'] = $this->getData(['module', $this->getUrl(0), 'sort']); + + self::$folders = $this->getFolderContent($this->getData(['module', $this->getUrl(0), 'path']), $config); // Valeurs en sortie $this->addOutput([ @@ -54,12 +57,18 @@ class folder extends common $this->getUser('permission', __CLASS__, __FUNCTION__) === true && $this->isPost() ) { - $this->setData(['module', - $this->getUrl(0),[ - 'path'=> preg_replace('/^\\./', '', $this->getInput('folderConfigPath')), - 'title' => $this->getInput('folderConfigTitle') + $this->setData([ + 'module', + $this->getUrl(0), + [ + 'path' => preg_replace('/^\\./', '', $this->getInput('folderConfigPath')), + 'title' => $this->getInput('folderConfigTitle'), + 'sort' => $this->getInput('folderConfigSort', helper::FILTER_BOOLEAN), + 'subfolder' => $this->getInput('folderConfigSubfolder', helper::FILTER_BOOLEAN), + 'folder' => $this->getInput('folderConfigFolder', helper::FILTER_BOOLEAN), - ]]); + ] + ]); // Valeurs en sortie $this->addOutput([ @@ -80,70 +89,80 @@ 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)) { - // 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 - sort($subDirectories); - sort($files); - - // Initialiser la liste des éléments - $items = '"; - - return $items; - } - } - - return ''; - } - +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 = []; + + // 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 ''; +} + + + + + + - - /** * Liste les dossier contenus dans RFM diff --git a/module/folder/view/config/config.php b/module/folder/view/config/config.php index f4946c9d..8960452c 100644 --- a/module/folder/view/config/config.php +++ b/module/folder/view/config/config.php @@ -1,39 +1,53 @@ -
-
- 'buttonGrey', - 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0), - 'value' => template::ico('left') - ]); ?> -
-
- +
+
+ 'buttonGrey', + 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0), + 'value' => template::ico('left') + ]); ?> +
+
+ +
+
+
+
+
+

+ +

+
+
+ 'Dossier', + 'class' => 'filemanager', + 'selected' => $this->getData(['module', $this->getUrl(0), 'path']) + ]); ?> +
+
+ 'Titre', + 'placeholder' => 'Répertoire', + 'value' => empty ($this->getData(['module', $this->getUrl(0), 'title'])) ? 'Répertoire' : $this->getData(['module', $this->getUrl(0), 'title']) + ]); ?> +
+
+
+
+ $this->getData(['module', $this->getUrl(0), 'sort']) + ]); ?> +
+
+ $this->getData(['module', $this->getUrl(0), 'subfolder']) + ]); ?> +
+
-
-
-
-

-
-
- 'Dossier', - 'class' => 'filemanager', - 'selected' => $this->getData(['module', $this->getUrl(0), 'path']) - ]); ?> -
-
- 'Titre', - 'placeholder' => 'Répertoire', - 'value' => empty($this->getData(['module', $this->getUrl(0), 'title'])) ? 'Répertoire' : $this->getData(['module', $this->getUrl(0), 'title']) - ]); ?> -
-
-
-
-
+
Version n°