config deux options
This commit is contained in:
parent
75203d6e8e
commit
c4fc466876
@ -36,7 +36,10 @@ class folder extends common
|
|||||||
public function index()
|
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
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
@ -54,12 +57,18 @@ class folder extends common
|
|||||||
$this->getUser('permission', __CLASS__, __FUNCTION__) === true &&
|
$this->getUser('permission', __CLASS__, __FUNCTION__) === true &&
|
||||||
$this->isPost()
|
$this->isPost()
|
||||||
) {
|
) {
|
||||||
$this->setData(['module',
|
$this->setData([
|
||||||
$this->getUrl(0),[
|
'module',
|
||||||
'path'=> preg_replace('/^\\./', '', $this->getInput('folderConfigPath')),
|
$this->getUrl(0),
|
||||||
'title' => $this->getInput('folderConfigTitle')
|
[
|
||||||
|
'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
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
@ -80,66 +89,76 @@ class folder extends common
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private function getFolderContent($chemin)
|
private function getFolderContent($chemin, $config = [])
|
||||||
{
|
{
|
||||||
// Vérifier si le chemin existe et est un dossier
|
$showSubFolder = isset($config['showsubfolder']) ? $config['showsubfolder'] : true;
|
||||||
if (is_dir($chemin)) {
|
$sort = isset($config['sort']) ? $config['sort'] : true;
|
||||||
// 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
|
// Vérifier si le chemin existe et est un dossier
|
||||||
while (($element = readdir($dh)) !== false) {
|
if (is_dir($chemin)) {
|
||||||
// Exclure les éléments spéciaux
|
// Ouvrir le dossier
|
||||||
if ($element != '.' && $element != '..') {
|
if ($dh = opendir($chemin)) {
|
||||||
// Construire le chemin complet de l'élément
|
// Initialiser les tableaux pour les sous-dossiers et les fichiers
|
||||||
$cheminComplet = $chemin . '/' .$element;
|
$subDirectories = [];
|
||||||
|
$files = [];
|
||||||
|
|
||||||
// Vérifier si c'est un dossier
|
// Parcourir les éléments du dossier
|
||||||
if (is_dir($cheminComplet)) {
|
while (($element = readdir($dh)) !== false) {
|
||||||
// Ajouter le dossier au tableau des sous-dossiers
|
// Exclure les éléments spéciaux
|
||||||
$subDirectories[] = $element;
|
if ($element != '.' && $element != '..') {
|
||||||
} else {
|
// Construire le chemin complet de l'élément
|
||||||
// Ajouter le fichier au tableau des fichiers
|
$cheminComplet = $chemin . '/' .$element;
|
||||||
$files[] = $element;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fermer le dossier
|
// Vérifier si c'est un dossier
|
||||||
closedir($dh);
|
if (is_dir($cheminComplet)) {
|
||||||
|
// Ajouter le dossier au tableau des sous-dossiers
|
||||||
|
$subDirectories[] = $element;
|
||||||
|
} else {
|
||||||
|
// Ajouter le fichier au tableau des fichiers
|
||||||
|
$files[] = $element;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Trier les sous-dossiers et les fichiers
|
// Fermer le dossier
|
||||||
sort($subDirectories);
|
closedir($dh);
|
||||||
sort($files);
|
|
||||||
|
|
||||||
// Initialiser la liste des éléments
|
// Trier les sous-dossiers et les fichiers si nécessaire
|
||||||
$items = '<ul>';
|
if ($sort) {
|
||||||
|
sort($subDirectories);
|
||||||
|
sort($files);
|
||||||
|
}
|
||||||
|
|
||||||
// Ajouter les sous-dossiers à la liste
|
// Initialiser la liste des éléments
|
||||||
foreach ($subDirectories as $subDirectory) {
|
$items = '<ul>';
|
||||||
$items .= "<li class='directory'>$subDirectory";
|
|
||||||
// Appeler récursivement la fonction pour ce sous-dossier
|
|
||||||
$items .= $this->getFolderContent($chemin . '/' . $subDirectory);
|
|
||||||
$items .= '</li>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ajouter les fichiers à la liste
|
// Ajouter les sous-dossiers à la liste si configuré pour les afficher
|
||||||
foreach ($files as $file) {
|
if ($showSubFolder) {
|
||||||
$items .= "<li class='file'><a href='" . $chemin . '/' . $file . "' data-lity>$file</a></li>";
|
foreach ($subDirectories as $subDirectory) {
|
||||||
}
|
$items .= "<li class='directory'>$subDirectory";
|
||||||
|
// Appeler récursivement la fonction pour ce sous-dossier
|
||||||
|
$items .= $this->getFolderContent($chemin . '/' . $subDirectory, $config);
|
||||||
|
$items .= '</li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ajouter les fichiers à la liste
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$items .= "<li class='file'><a href='" . $chemin . '/' . $file . "' data-lity>$file</a></li>";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fermer la liste
|
||||||
|
$items .= "</ul>";
|
||||||
|
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
// Fermer la liste
|
|
||||||
$items .= "</ul>";
|
|
||||||
|
|
||||||
return $items;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,39 +1,53 @@
|
|||||||
<?php echo template::formOpen('folderConfig'); ?>
|
<?php echo template::formOpen('folderConfig'); ?>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col1">
|
<div class="col1">
|
||||||
<?php echo template::button('folderConfigBack', [
|
<?php echo template::button('folderConfigBack', [
|
||||||
'class' => 'buttonGrey',
|
'class' => 'buttonGrey',
|
||||||
'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0),
|
'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0),
|
||||||
'value' => template::ico('left')
|
'value' => template::ico('left')
|
||||||
]); ?>
|
]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col2 offset9">
|
<div class="col2 offset9">
|
||||||
<?php echo template::submit('folderConfigSubmit'); ?>
|
<?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('folderConfigPath', $module::$sharePath, [
|
||||||
|
'label' => 'Dossier',
|
||||||
|
'class' => 'filemanager',
|
||||||
|
'selected' => $this->getData(['module', $this->getUrl(0), 'path'])
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
|
<div class="col6">
|
||||||
|
<?php echo template::text('folderConfigTitle', [
|
||||||
|
'label' => 'Titre',
|
||||||
|
'placeholder' => 'Répertoire',
|
||||||
|
'value' => empty ($this->getData(['module', $this->getUrl(0), 'title'])) ? 'Répertoire' : $this->getData(['module', $this->getUrl(0), 'title'])
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col4">
|
||||||
|
<?php echo template::checkbox('folderConfigSort', true, 'Trier les dossiers et les fichiers', [
|
||||||
|
'checked' => $this->getData(['module', $this->getUrl(0), 'sort'])
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
|
<div class="col4">
|
||||||
|
<?php echo template::checkbox('folderConfigSubfolder', true, 'Descendre dans l\'arboresence', [
|
||||||
|
'checked' => $this->getData(['module', $this->getUrl(0), 'subfolder'])
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='row'>
|
</div>
|
||||||
<div class="col12">
|
|
||||||
<div class="block">
|
|
||||||
<h4><?php echo helper::translate('Paramètres'); ?></h4>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col6">
|
|
||||||
<?php echo template::select('folderConfigPath', $module::$sharePath, [
|
|
||||||
'label' => 'Dossier',
|
|
||||||
'class' => 'filemanager',
|
|
||||||
'selected' => $this->getData(['module', $this->getUrl(0), 'path'])
|
|
||||||
]); ?>
|
|
||||||
</div>
|
|
||||||
<div class="col6">
|
|
||||||
<?php echo template::text('folderConfigTitle', [
|
|
||||||
'label' => 'Titre',
|
|
||||||
'placeholder' => 'Répertoire',
|
|
||||||
'value' => empty($this->getData(['module', $this->getUrl(0), 'title'])) ? 'Répertoire' : $this->getData(['module', $this->getUrl(0), 'title'])
|
|
||||||
]); ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php echo template::formClose(); ?>
|
<?php echo template::formClose(); ?>
|
||||||
<div class="moduleVersion">Version n°
|
<div class="moduleVersion">Version n°
|
||||||
<?php echo $module::VERSION; ?>
|
<?php echo $module::VERSION; ?>
|
||||||
|
Loading…
Reference in New Issue
Block a user