Folder 1.02 target

This commit is contained in:
Fred Tempez 2024-03-28 08:48:59 +01:00
parent 95e1f738fb
commit 0d9990a1c1
2 changed files with 27 additions and 15 deletions

View File

@ -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 = '<div class="file-info-container">' . date('d/m/Y H:i', filemtime($fileFullPath)) . ' - ' . $fileSizeFormatted . '</div>';
}
$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 .= '<li class=" fiv-' . $iconPack . ' fiv-icon-' . $fileExtensionClass . ' fiv-size-' . $iconSize . ' "><a href="' . $fileFullPath . '" ' . $target . ' ><div class="fileContainer"><div class="file-name">' . $file . '</div>' . $fileInfo . '</div></a></li>';
}
@ -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
*/

View File

@ -34,18 +34,24 @@
</div>
</div>
<div class="row">
<div class="col6">
<div class="col4">
<?php echo template::select('folderConfigiconPack', $module::$iconPack, [
'label' => 'Thème des icônes',
'selected' => $this->getData(['module', $this->getUrl(0), 'iconpack'])
]); ?>
</div>
<div class="col6">
<div class="col4">
<?php echo template::select('folderConfigIconSize', $module::$iconSize, [
'label' => 'Taille',
'label' => 'Tailledes icones',
'selected' => $this->getData(['module', $this->getUrl(0), 'iconsize'])
]); ?>
</div>
<div class="col4">
<?php echo template::select('folderConfigTarget', $module::$target, [
'label' => 'Cible des liens',
'selected' => $this->getData(['module', $this->getUrl(0), 'target'])
]); ?>
</div>
</div>
<div class="row">
<div class="col6">