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 = '
';
-
- // Ajouter les sous-dossiers à la liste
- foreach ($subDirectories as $subDirectory) {
- $items .= "- $subDirectory";
- // Appeler récursivement la fonction pour ce sous-dossier
- $items .= $this->getFolderContent($chemin . '/' . $subDirectory);
- $items .= '
';
- }
-
- // Ajouter les fichiers à la liste
- foreach ($files as $file) {
- $items .= "- $file
";
- }
-
- // Fermer la liste
- $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 = '';
+
+ // Ajouter les sous-dossiers à la liste si configuré pour les afficher
+ if ($showSubFolder) {
+ foreach ($subDirectories as $subDirectory) {
+ $items .= "- $subDirectory";
+ // Appeler récursivement la fonction pour ce sous-dossier
+ $items .= $this->getFolderContent($chemin . '/' . $subDirectory, $config);
+ $items .= '
';
+ }
+ }
+
+ // Ajouter les fichiers à la liste
+ foreach ($files as $file) {
+ $items .= "- $file
";
+ }
+
+ // Fermer la liste
+ $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°