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 téléversés 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-_
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"; ?>
On peut ajouter des items à la boîte à outils par défaut en modifiant le code du fichier context.php
, dans le répertoire lib/tpl/monobook
. Aux environs de la ligne 355, insérer du code en s'inspirant des exemples suivants.
//Ajouter un lien pour nettoyer le cache des pages en un clic $monobook['defaulttoolbox']['purgecache']['href'] = DOKU_BASE."doku.php?id=".$ID."&purge=true"; $monobook['defaulttoolbox']['purgecache']['text'] = $lang['monobook_purgecache']; //Ajouter un lien pour exporter en ODT (pour le plugin ODT) //FIXME: should probably check if ODT plugin is installed $monobook['defaulttoolbox']['odt']['href'] = exportlink($ID, 'odt'); $monobook['defaulttoolbox']['odt']['text'] = $lang['monobook_odtexport']; //Ajoute un accès rapide au plugin PageMove //FIXME: Should probably hide this for non-superusers, check if plugin is installed $monobook['defaulttoolbox']['movepage']['href'] = DOKU_BASE."doku.php?id=".$ID."&do=admin&page=pagemove"; $monobook['defaulttoolbox']['movepage']['text'] = $lang['monobook_movepage'];
Maintenant, dans le fichier de monobook /lib/tpl/monobook/lang/fr/lang.php
, ajouter des lignes semblables aux exemples suivants.
$lang['monobook_purgecache'] = "Nettoie le cache des pages"; $lang['monobook_odtexport'] = "export OpenOffice"; $lang['monobook_movepage'] = "Déplace ou renomme la page";
Le modèle monobook nécessite l'installation du plugin displaywikipage
(cf ci-après)
Ajoutez/supprimer des extensions à la liste
(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)
Personnalisation de l'affichage de la galerie
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{ ... }
Remplacez par l'emplacement de vos fichiers
# Nom du sous-dossier dans /data/documents/ contenant les fichiers à télécharger $dir = 'telechargements/';