folder config wip

This commit is contained in:
Fred Tempez 2024-03-13 18:45:06 +01:00
parent 69852c82bc
commit 90a5a8a96a
3 changed files with 125 additions and 12 deletions

View File

@ -26,23 +26,52 @@ class folder extends common
'index' => self::GROUP_VISITOR, 'index' => self::GROUP_VISITOR,
]; ];
static $folders = ''; // Contenu du chemin sélectionné
public static $folders = '';
public function index() { public static $sharePath = [
'/site/file/source/'
];
self::$folders = $this->listerSousDossier( self::FILE_DIR . 'source/partage'); public function index()
{
// Valeurs en sortie self::$folders = $this->listerSousDossier(self::FILE_DIR . 'source/partage');
// Valeurs en sortie
$this->addOutput([ $this->addOutput([
'showBarEditButton' => true, 'showBarEditButton' => true,
'showPageContent' => true, 'showPageContent' => true,
'view' => 'index' 'view' => 'index'
]); ]);
} }
private function listerSousDossier($chemin) {
public function config()
{
// Soumission du formulaire
if (
$this->getUser('permission', __CLASS__, __FUNCTION__) === true &&
$this->isPost()
) {
$this->setData(['module', $this->getUrl(0), 'path', preg_replace('/^\\./', '', $this->getInput('folderEditPath')) ]);
}
self::$sharePath = $this->getSubdirectories('./site/file/source');
self::$sharePath = array_flip(self::$sharePath);
// Valeurs en sortie
$this->addOutput([
'view' => 'config'
]);
}
private function listerSousDossier($chemin)
{
// Vérifier si le chemin existe et est un dossier // Vérifier si le chemin existe et est un dossier
if (is_dir($chemin)) { if (is_dir($chemin)) {
// Ouvrir le dossier // Ouvrir le dossier
if ($dh = opendir($chemin)) { if ($dh = opendir($chemin)) {
$items = isset($items) ? $items . '<ul>' : '<ul>'; $items = isset($items) ? $items . '<ul>' : '<ul>';
@ -53,7 +82,7 @@ class folder extends common
if ($element != '.' && $element != '..') { if ($element != '.' && $element != '..') {
// Construire le chemin complet de l'élément // Construire le chemin complet de l'élément
$cheminComplet = $chemin . '/' . $element; $cheminComplet = $chemin . '/' . $element;
// Vérifier si c'est un dossier // Vérifier si c'est un dossier
if (is_dir($cheminComplet)) { if (is_dir($cheminComplet)) {
// Afficher le nom du dossier // Afficher le nom du dossier
@ -67,16 +96,48 @@ class folder extends common
} }
} }
} }
$items .= "</ul>"; $items .= "</ul>";
// Fermer le dossier // Fermer le dossier
closedir($dh); closedir($dh);
} }
return $items; return $items;
} else { } else {
exit ('Erreur de chemin'); exit('Erreur de chemin');
} }
}
/**
* Liste les dossier contenus dans RFM
*/
private function getSubdirectories($dir, $basePath = '')
{
$subdirs = array();
// Ouvrez le répertoire spécifié
$dh = opendir($dir);
// Parcourez tous les fichiers et répertoires dans le répertoire
while (($file = readdir($dh)) !== false) {
// Ignorer les entrées de répertoire parent et actuel
if ($file == '.' || $file == '..') {
continue;
}
// Construisez le chemin complet du fichier ou du répertoire
$path = $dir . '/' . $file;
// Vérifiez si c'est un répertoire
if (is_dir($path)) {
// Construisez la clé et la valeur pour le tableau associatif
$key = $basePath === '' ? ucfirst($file) : $basePath . '/' . $file;
$value = $path . '/';
// Ajouter la clé et la valeur au tableau associatif
$subdirs[$key] = $value;
// Appeler la fonction récursivement pour ajouter les sous-répertoires
$subdirs = array_merge($subdirs, $this->getSubdirectories($path, $key));
}
}
// Fermez le gestionnaire de dossier
closedir($dh);
return $subdirs;
} }
} }

View File

@ -0,0 +1,19 @@
/**
* This file is part of Zwii.
*
* For full copyright and license information, please see the LICENSE
* file that was distributed with this source code.
*
* @author Rémi Jean <remi.jean@outlook.com>
* @copyright Copyright (C) 2008-2018, Rémi Jean
* @author Frédéric Tempez <frederic.tempez@outlook.com>
* @copyright Copyright (C) 2018-2024, Frédéric Tempez
* @license CC Attribution-NonCommercial-NoDerivatives 4.0 International
* @link http://zwiicms.fr/
*/
/** NE PAS EFFACER
* admin.css
*/

View File

@ -0,0 +1,33 @@
<?php echo template::formOpen('folderConfig'); ?>
<div class="row">
<div class="col1">
<?php echo template::button('folderConfigBack', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0),
'value' => template::ico('left')
]); ?>
</div>
<div class="col2 offset9">
<?php echo template::submit('folderConfigSubmit'); ?>
</div>
</div>
<div class='row'>
<div class="col12">
<div class="block">
<h4><?php echo helper::translate('Paramètres'); ?></h4>
<div class="row">
<div class="col6">
<?php echo template::select('folderEditPath', $module::$sharePath, [
'label' => 'Dossier',
'class' => 'filemanager',
'selected' => '.' . $this->getData(['module', $this->getUrl(0), 'path'])
]); ?>
</div>
</div>
</div>
</div>
</div>
<?php echo template::formClose(); ?>
<div class="moduleVersion">Version
<?php echo $module::VERSION; ?>
</div>