Modeste contribution pour classer les fichiers par ordre alphabétique, j'utilise sort($files) :
<?php
global $plxShow;
# Nom du dossier fichiers à renseigner
$dir = 'data/documents';
# Nom du sous-dossier, si applicable, par rapport à $dir (ajouter un / devant le nom)
$sousdir = '/telechargements';
# Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir.$sousdir);
if ($files = $glob->query('/[a-zA-Z0-9-_-]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
sort($files);
echo '<ul class="telechargements">';
foreach($files as $filename) {
$encrypt = str_replace('/','',$sousdir).'/'.$filename;
$file = $dir.'/'.$filename;
echo '<li><a href="';
$plxShow->urlRewrite('?telechargement/'.plxEncrypt::encryptId($encrypt));
echo '">'.$filename.'</a></li>';
}
echo '</ul>';
}
else echo "Aucun document";
?>
Fonctionne en 5.1.6 et 5.1.7.
Merci pour le code de départ
Est il possible de créer un lien de téléchargement dans un <nav> du genre
<ul>
<li>je sais pas quoi</li>
<li>On va remettre un truc là</li>
<li>Inscrption
Ma page statique fonctionne, y compris avec l'utilisation de sous-dossiers.
2 questions:
Je souhaiterai que les titres des sous-dossiers n'aient pas de puces et qu'il y ait un espace avant le titre;
[== Indéfini ==]
echo '<li><h2>'.ucfirst(str_replace('/','',$sdir)).'</h2>';
# Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir.$sdir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|js|mp3|flv)$/')) {
natsort($files);
echo '<ul class="telechargements_sdir">';
j'ai donc rajouté dans mon css des classes correspondantes:
Mais cela n'a pas d'effet.. J'ai fait plusieurs essais avec differents paramètres. Mais pas plus d'effet.
La seconde question, c'est par rapport à l'affichage des fichiers à télécharger qui s'affichent avec le nom des fichiers.
J'aurai souhaité les afficher comme on fait pour un lien en affichant un intitulé masquant le nom du fichier
J'ai souhaité améliorer la présentation des fichiers ( cf mon post pour essayer d'avoir l'intitulé) ainsi que l'affichage de la taille du fichier d'une manière un peu plus "joli): séparateur de smilliers, unité différente suivant la taille ( G°, M°, K°)
J'ai avancé.; Il ne me resterait plus que le problème de remplacer l'affichage du nom du fichier par un intitulé.
Pour le css, j'ai trouvé en affichant la source de la page dans le navigateur. Et en fait le h2 n'est pas dans la class telechargements_sdir
[== Indéfini ==]
<article class="static">
<h1>Des ressources à télécharger</h1>
<ul class="telechargements">
<li><a href=""> Nom du fichier</a>Taille du fichier</li>
<li><a href=""> Nom du fichier</a>Taille du fichier</li>
<li><a href=""> Nom du fichier</a>Taille du fichier</li>
<li>
<h2>sous-dossier</h2>
<ul class="telechargements_sdir">
<li><a href=""> Nom du fichier</a>Taille du fichier</li>
<li><a href=""> Nom du fichier</a>Taille du fichier</li>
</ul>
</li>
<li>
<h2>sous-dossier</h2>
<ul class="telechargements_sdir">
<li><a href=""> Nom du fichier</a>Taille du fichier</li>
<li><a href=""> Nom du fichier</a>Taille du fichier</li>
</ul>
</li>
</ul>
</article>
Si tu ne veux pas voir apparaitre le nom du fichier mais une description à la place, je ne vois pas trop comment faire, vu que c'est un script basique automatisé.
Ce que tu peux faire à la rigueur, c'est mettre des noms de fichier avec une partie explicite mais courte : du style
cat676-la_photo_de_mon_chat.jpg
Et faire ensuite un traitement sur ce nom, du style
Je redécouvre les joies du php....
Cela fonctionne. Mes underscore sont supprimés et l'aspect me convient déjà bien.
J'ai seulement utilisé:
$desc = str_replace('_',' ',$filename);
Petite question: les autres paramètres que tu indiquais servaient à quoi?
C'était pour isoler uniquement la description sans l'extension du fichier. Le mieux aurait été d'écrire une petite regex et d'utiliser à la place pre_replace. Mais comme j'ai fait ça vite fait, je ne l'ai pas bien fait :rolleyes:
Ma page statique de téléchargement avec ses trois fichiers marchait parfaitement quand je l'ai mis en place au printemps dernier
et, à l'occasion d'une petite vérification ce jour, je constate que les fichiers sont bien listés, mais impossible de les télécharger.
Je ré-installe donc le script "classique" et je me retrouve avec le message "aucun documents", alors que ceux-ci sont bien présents dans data/documents
J'ai vérifié les autorisations, elle sont bonnes, différents noms de dossiers pour les documents,
rien n'y change ...
<?php
global $plxShow;
# Nom du dossier fichiers à renseigner
$dir = '/data/documents';
# Nom du sous-dossier, si applicable, par rapport à $dir (ajouter un / devant le nom)
$sousdir = '/telechargements';
# Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir.$sousdir);
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) {
$encrypt = str_replace('/','',$sousdir).'/'.$filename;
$file = $dir.'/'.$filename;
echo '<li><a href="';
$plxShow->urlRewrite('?telechargement/'.plxEncrypt::encryptId($encrypt));
echo '">'.$filename.'</a></li>';
}
echo '</ul>';
}
else echo "Absence de document";
?>
Malheureusement, ca ne change rien. J'ai bien essayé d'enlever le / au début, puis les ',
rien n'y change. Puis je te transmettre les identifiants d'administration par MP ?
J'ai besoin de créer une page statique avec une liste de fichiers à télécharger. J'ai suivi le tutoriel ci-dessous.
Dans la page statique, les fichiers s'affichent bien mais je ne peux pas les télécharger.
J'ai un message : la page que vous demandez n'existe pas.
J'utilise la reecriture d'url et je pense que le souci vient de là.
La solution existe-t-elle ?
Après quelques tests, cela fonctionne sans cryptage. J'utilise donc le script de téléchargement sans crypter le lien de téléchargement.
Est-il possible d'ajouter le nombre de téléchargement de chaque fichier à ce script ?
Merci
ci-dessous mon code :
<?php
global $plxShow;
# Nom du dossier fichiers à renseigner
$dir = PLX_ROOT.'data/documents/files/files-pdf';
# Nom du sous-dossier, si applicable, par rapport à $dir (ajouter un / devant le nom)
$sousdir = '/bricolage';
# Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir.$sousdir);
if ($files = $glob->query('/[a-z0-9-_]+.(pdf)$/')) {
sort($files);
echo '<ul class="telechargements">';
foreach($files as $filename) {
$file = $dir.$sousdir.'/'.$filename;
$size = ceil(filesize($file)/1024);
echo '<li><a href="'.$file.'" rel="noopener noreferrer" target="_blank">'.$filename.'</a> ('.$size.'Ko)</li>';
# $encrypt = str_replace('/','',$sousdir).'/'.$filename;
# echo '<li><a href="';
# $plxShow->urlRewrite('?telechargement/'.plxEncrypt::encryptId($encrypt));
# echo '">'.$filename.'</a> ('.$size.'Ko)</li>';
}
echo '</ul>';
}
else echo "Aucun document";
?>
Le même souci qu'il y a quatre ans refait surface, je suis en 5.5
Voilà le script :
<?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";
?>
Le même souci qu'il y a quatre ans refait surface, je suis en 5.5
Voilà le script :
<?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";
?>
<?php
global $plxMotor;
# Nom du sous-dossier contenant les fichiers à télécharger dans /data/medias/
$dir = 'downloads/';
# Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance(PLX_ROOT.$plxMotor->aConf['medias'].$dir);
if ($files = $glob->query('/[a-zA-Z0-9-_-]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv|rtf|doc|txt)$/')) {
sort($files);
echo '<ul class="downloads">';
foreach($files as $filename) {
echo '<li><a href="'.$plxMotor->urlRewrite('?download/'.plxEncrypt::encryptId($dir.$filename)).'">'.$filename.'</a></li>';
}
echo '</ul>';
}
else echo "Aucun document";
?>
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Un grand merci pour ta rapide réponse du dimanche soir,
mais, malheureusement, le souci persiste :
quand je me sers de ton code tel quel,
après avoir copié et changmodé mes fichiers à télécharger dans data/medias/downloads
j'ai "Aucun document" quand je vais sur la page de téléchargement.
Si je remplace $dir = 'downloads/'; par $dir = 'telechargements/';
alors, on est ramené à la situation antérieure : les liens de téléchargement sont alors présents, mais
renvoient le message
"Le document spécifié est introuvable"
J'ai testé le code, il fonctionne. Donc il doit avoir quelque chose de particulier sur ton site.
Est-ce que tu utilises la réécriture d'url ?
edit: tes fichiers sont bien dans data/medias/downloads ?
si tes fichiers sont dans data/medias/telechargements, il faut changer: $dir = 'telechargements/';
edit 2: je viens de relire ton post: tu dis etre en 5.5. le code donnée est pour la 5.6, je n'ai pas testé avec la 5.5
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Hello,
Sur mon site j'avais le même problème.
Testé sur un pluxml 5.6 vierge avec la réécriture URL, ça fonctionne ==> donc problème avec mon site !!
Après plusieurs recherches sur mon site, je m'aperçois que j'ai un répertoire data/images. En créant le répertoire "downloads" dans "data/images" => ça fonctionne.
Pourquoi "data/images" au lieu de "data/medias" ? ==> je pense que ça doit venir du thème utilisé ??
Est-ce qu'il possible de modifier le script pour avoir le répertoire "downloads" dans le répertoire "documents" ==> "data/documents/downloads ?
data/images c'était ce qui existait dans les anciennes versions de pluxml comme data/documents ou data/videos etc... ou data/downloads
Depuis tout est par défaut dans data/medias/images ou data/medias/documents
data/images c'était ce qui existait dans les anciennes versions de pluxml comme data/documents ou data/videos etc... ou data/downloads
Depuis tout est par défaut dans data/medias/images ou data/medias/documents
Réponses
Fonctionne en 5.1.6 et 5.1.7.
Merci pour le code de départ
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
mais pensez a mettre le nombre de telecharementt de chque element
<ul>
<li>je sais pas quoi</li>
<li>On va remettre un truc là</li>
<li>Inscrption
code pour télécharger fiche d'inscription.pdf
</li>
Je viens de créer une telle page de téléchargement et ça fonctionne.
Il me restera à la mettre en forme.
Cordialement
Ma page statique fonctionne, y compris avec l'utilisation de sous-dossiers.
2 questions:
Je souhaiterai que les titres des sous-dossiers n'aient pas de puces et qu'il y ait un espace avant le titre;
j'ai donc rajouté dans mon css des classes correspondantes:
Mais cela n'a pas d'effet.. J'ai fait plusieurs essais avec differents paramètres. Mais pas plus d'effet.
La seconde question, c'est par rapport à l'affichage des fichiers à télécharger qui s'affichent avec le nom des fichiers.
J'aurai souhaité les afficher comme on fait pour un lien en affichant un intitulé masquant le nom du fichier
Cordialement
J'ai donc remplacé le code:
Par celui-ci:
Pour le css, j'ai trouvé en affichant la source de la page dans le navigateur. Et en fait le h2 n'est pas dans la class telechargements_sdir
Ce que tu peux faire à la rigueur, c'est mettre des noms de fichier avec une partie explicite mais courte : du style
Et faire ensuite un traitement sur ce nom, du style
Puis tu remplaces $filename par $desc dans les lignes où tu trouves
J'ai pas testé mais ça devrait marcher. Si tu as des fichiers en jpeg, au pire tu devrais avoir un "." qui s'affiche à la fin de la description.
Je redécouvre les joies du php....
Cela fonctionne. Mes underscore sont supprimés et l'aspect me convient déjà bien.
J'ai seulement utilisé:
$desc = str_replace('_',' ',$filename);
Petite question: les autres paramètres que tu indiquais servaient à quoi?
Cordialement
Je deviens chèvre !
Ma page statique de téléchargement avec ses trois fichiers marchait parfaitement quand je l'ai mis en place au printemps dernier
et, à l'occasion d'une petite vérification ce jour, je constate que les fichiers sont bien listés, mais impossible de les télécharger.
Je ré-installe donc le script "classique" et je me retrouve avec le message "aucun documents", alors que ceux-ci sont bien présents dans data/documents
J'ai vérifié les autorisations, elle sont bonnes, différents noms de dossiers pour les documents,
rien n'y change ...
Qui aura l'idée de génie ?
Amicalement.
LB
PS : je suis sur un hébergement mutualisé OVH
Utilises-tu la reecriture d'url?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Oui
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Désormais, ya plus de lien sur la page
http://autaut/telechargement
dont le source est
Remplace la ligne
par
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Malheureusement, ca ne change rien. J'ai bien essayé d'enlever le / au début, puis les ',
rien n'y change. Puis je te transmettre les identifiants d'administration par MP ?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
J'ai besoin de créer une page statique avec une liste de fichiers à télécharger. J'ai suivi le tutoriel ci-dessous.
Dans la page statique, les fichiers s'affichent bien mais je ne peux pas les télécharger.
J'ai un message : la page que vous demandez n'existe pas.
J'utilise la reecriture d'url et je pense que le souci vient de là.
La solution existe-t-elle ?
Après quelques tests, cela fonctionne sans cryptage. J'utilise donc le script de téléchargement sans crypter le lien de téléchargement.
Est-il possible d'ajouter le nombre de téléchargement de chaque fichier à ce script ?
Merci
ci-dessous mon code :
<?php
global $plxShow;
# Nom du dossier fichiers à renseigner
$dir = PLX_ROOT.'data/documents/files/files-pdf';
# Nom du sous-dossier, si applicable, par rapport à $dir (ajouter un / devant le nom)
$sousdir = '/bricolage';
# Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir.$sousdir);
if ($files = $glob->query('/[a-z0-9-_]+.(pdf)$/')) {
sort($files);
echo '<ul class="telechargements">';
foreach($files as $filename) {
$file = $dir.$sousdir.'/'.$filename;
$size = ceil(filesize($file)/1024);
echo '<li><a href="'.$file.'" rel="noopener noreferrer" target="_blank">'.$filename.'</a> ('.$size.'Ko)</li>';
# $encrypt = str_replace('/','',$sousdir).'/'.$filename;
# echo '<li><a href="';
# $plxShow->urlRewrite('?telechargement/'.plxEncrypt::encryptId($encrypt));
# echo '">'.$filename.'</a> ('.$size.'Ko)</li>';
}
echo '</ul>';
}
else echo "Aucun document";
?>
Long time no contact !
Le même souci qu'il y a quatre ans refait surface, je suis en 5.5
Voilà le script :
<?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";
?>
et une copie d'écran de la page http://autaut.fr/telechargement
http://autaut.fr/download/dGVsZWNoYXJnZW1lbnRzL2J1bGxldGluX2FkaGVzaW9uLTIwMTUucnRmKjVmMzc0Nw,,
et un lien de téléchargement
http://autaut.fr/download/dGVsZWNoYXJnZW1lbnRzL2J1bGxldGluX2FkaGVzaW9uLTIwMTUucnRmKjVmMzc0Nw,,
Merci d'avance de ton aide...
Hello,
J'ai également le même problème, toujours pas résolu !
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Un grand merci pour ta rapide réponse du dimanche soir,
mais, malheureusement, le souci persiste :
quand je me sers de ton code tel quel,
après avoir copié et changmodé mes fichiers à télécharger dans data/medias/downloads
j'ai "Aucun document" quand je vais sur la page de téléchargement.
Si je remplace $dir = 'downloads/'; par $dir = 'telechargements/';
alors, on est ramené à la situation antérieure : les liens de téléchargement sont alors présents, mais
renvoient le message
"Le document spécifié est introuvable"
Est-ce que tu utilises la réécriture d'url ?
edit: tes fichiers sont bien dans data/medias/downloads ?
si tes fichiers sont dans data/medias/telechargements, il faut changer: $dir = 'telechargements/';
edit 2: je viens de relire ton post: tu dis etre en 5.5. le code donnée est pour la 5.6, je n'ai pas testé avec la 5.5
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Sur mon site j'avais le même problème.
Testé sur un pluxml 5.6 vierge avec la réécriture URL, ça fonctionne ==> donc problème avec mon site !!
Après plusieurs recherches sur mon site, je m'aperçois que j'ai un répertoire data/images. En créant le répertoire "downloads" dans "data/images" => ça fonctionne.
Pourquoi "data/images" au lieu de "data/medias" ? ==> je pense que ça doit venir du thème utilisé ??
Est-ce qu'il possible de modifier le script pour avoir le répertoire "downloads" dans le répertoire "documents" ==> "data/documents/downloads ?
Merci
Jol
data/images c'était ce qui existait dans les anciennes versions de pluxml comme data/documents ou data/videos etc... ou data/downloads
Depuis tout est par défaut dans data/medias/images ou data/medias/documents
Dans mon thème, qui est ancien, le répertoire médias se nomme image.
c'est un thème qui date de 2015 ==> Thème "lightblue", thème réalisé par Pluxopolis © 2015.