diff --git a/module/folder/folder.php b/module/folder/folder.php index 5265d6c1..89b31f1e 100644 --- a/module/folder/folder.php +++ b/module/folder/folder.php @@ -46,9 +46,9 @@ class folder extends common 'xl' => 'Grande' ]; - public static $openingTarget = [ + public static $target = [ 'data-lity' => 'Images dans une lightbox (lity), sinon téléchargement', - '_blank' => 'Nouvel onglet', + 'blank' => 'Nouvel onglet', 'download' => 'Téléchargement forcé', ]; @@ -88,6 +88,7 @@ class folder extends common 'folderstate' => $this->getInput('folderConfigFolderState', helper::FILTER_BOOLEAN), 'iconpack' => $this->getInput('folderConfigiconPack'), 'iconsize' => $this->getInput('folderConfigIconSize'), + 'target' => $this->getInput('folderConfigTarget'), ] ]); @@ -117,6 +118,7 @@ class folder extends common $initialFolderState = isset($config['folderstate']) ? $config['folderstate'] : 'collapsed'; $iconPack = isset($config['iconpack']) || !empty($config['iconpack']) ? $config['iconpack'] : 'classic'; $iconSize = isset($config['iconsize']) || !empty($config['iconsize']) ? $config['iconsize'] : 'md'; + $target = isset($config['target']) || !empty($config['target']) ? $config['target'] : 'data-lity'; // Vérifier si le chemin existe et est un dossier if (is_dir($chemin)) { @@ -185,7 +187,20 @@ class folder extends common $fileSizeFormatted = $this->formatSizeUnits($fileSize); $fileInfo = '
' . date('d/m/Y H:i', filemtime($fileFullPath)) . ' - ' . $fileSizeFormatted . '
'; } - $target = in_array($fileExtension, ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg', 'ico', 'webp', 'avif']) ? 'data-lity' : 'download'; + + // Redirige la cible vers un téléchargement lorsque le format n'est pas supporté par Lity pour éviter unefenêtre Lity vide. + // Génére l'attribut _blank + switch ($target) { + case 'data-lity': + $target = in_array($fileExtension, ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg', 'ico', 'webp', 'avif']) + ? 'data-lity' + : 'download'; + break; + case 'blank': + $target = 'target="_blank"'; + break; + } + // Ajouter des balises d'ancrage autour du nom de fichier pour le rendre cliquable $items .= '
  • ' . $file . '
    ' . $fileInfo . '
  • '; } @@ -201,9 +216,6 @@ class folder extends common } - - - private function formatSizeUnits($bytes) { $units = array('octets', 'Ko', 'Mo', 'Go', 'To'); @@ -217,12 +229,6 @@ class folder extends common - - - - - - /** * Liste les dossier contenus dans RFM */ diff --git a/module/folder/view/config/config.php b/module/folder/view/config/config.php index 45e8adaa..bad3fd22 100644 --- a/module/folder/view/config/config.php +++ b/module/folder/view/config/config.php @@ -34,18 +34,24 @@
    -
    +
    'Thème des icônes', 'selected' => $this->getData(['module', $this->getUrl(0), 'iconpack']) ]); ?>
    -
    +
    'Taille', + 'label' => 'Tailledes icones', 'selected' => $this->getData(['module', $this->getUrl(0), 'iconsize']) ]); ?>
    +
    + 'Cible des liens', + 'selected' => $this->getData(['module', $this->getUrl(0), 'target']) + ]); ?> +