PluXml.org

Blog ou CMS à l'Xml

Créer une page de fichiers à télécharger(Edit)

Voici une solution rapide pour mettre en place une liste de fichiers à télécharger dans une page statique.

L'idée est d'afficher sous forme de liste les noms de fichiers d'un dossier sous forme de lien cliquable ; les fichiers affichés sont filtrés par leur extension et le chemin d'accès au fichier est masqué.

Important : si les fichiers sont uploadés manuellement (par FTP), veillez à ce qu'ils soient nommés avec uniquement des minuscules, des chiffres et le caractère "_" de manière à valider l'expression régulière qui sélectionne les fichiers dans le code ci-dessous :

a-z0-9-_

Installation(Edit)

1. Créez une page statique et copiez dedans le code suivant

PluXml 5.2+

<?php
global $plxMotor;
# Nom du sous-dossier dans /data/documents/ contenant les fichiers à télécharger
$dir = 'telechargements/';
# Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance(PLX_ROOT.'data/documents/'.$dir);
if ($files = $glob->query('/[a-zA-Z0-9-_-]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv|rtf|doc)$/')) {
    sort($files);
    echo '<ul class="telechargements">';
    foreach($files as $filename) {
        echo '<li><a href="'.$plxMotor->urlRewrite('?download/'.plxEncrypt::encryptId($dir.$filename)).'">'.$filename.'</a></li>';
    }
    echo '</ul>';
}
else echo "Aucun document";
?>

2. Modifiez la ligne suivante en remplaçant par l'emplacement de vos fichiers.

# Nom du sous-dossier dans /data/documents/ contenant les fichiers à télécharger
$dir = 'telechargements/';

3. Ajustez le filtre des fichiers à afficher

Ajoutez/supprimer des extensions à la liste

(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)

Personnalisation de l'affichage de la galerie(Edit)

Vous pouvez mettre en forme l'affichage de votre page en ajoutant un style dans le fichier style.css de votre thème pour la classe appelée "telechargement", définie dans le code source par la ligne:

    echo '<ul class="telechargements">';

Exemple de code à rajouter dans le fichier css du thème pour personnaliser l'affichage

.telechargements ul{
   ...
}
.telechargements ul li {
  ...
}
.telechargements a{
  ... 
}

Version initiale du Sujet