PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 25/01/2018 10:05:35

jol5926
Membre
Lieu : Drôme
Inscription : 25/04/2015
Messages : 472
Site Web

Lien de téléchargement non visible.

Hello la team,

J'ai besoin d'aide !
J'ai un bouton, c'est un lien de téléchargement d'un fichier.
Quand je passe la souris dessus, le lien apparait en bas du navigateur, on peut donc télécharger ce fichier en direct.
J'aurais aimé crypter ce lien.
Je pense que cela doit être possible mais je ne suis pas assez compétent pour le faire.
Alors si quelqu'un peut m'aider !

Merci

Jol

Hors ligne

#2 16/02/2018 03:54:44

jack31
Membre
Lieu : Luchon
Inscription : 03/04/2012
Messages : 590
Site Web

Re : Lien de téléchargement non visible.

J'ai peut-être ce dont tu as besoin.

En plus, cela te compte si tu veux le nombre de téléchargements + les logs de celui qui a téléchargé.

IP
FAI
Date/heure de téléchargement
Nom du fichier téléchargé

Démo ici pour quelques jours.

*ttp://56.reseauk.info/


--
Tout va bien !
Des Pluxml tant qu'on en veut avec Pluxautomatic.
Pluxml pour Les Nuls :   Un petit tuto pour mes besoins personnels et ceux des débutants qui voudraient avoir une autre approche de notre CMS favori.

Hors ligne

#3 16/02/2018 09:47:45

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 060
Site Web

Re : Lien de téléchargement non visible.

Voici un bout de code à mettre dans une page statique pour cacher l'emplacement des fichiers/documents :

[== PHP ==]
<div class="scrollable-table">
	<table class="download full-width">
    	<thead>
        	<th>&nbsp;</th>
        	<th>Name</th>
        	<th>Date</th>
        	<th>Size</th>
        	<th>Description</th>
    	</thead>
    	<tbody>
<?php

$dir = 'download/';

function byteConvert($bytes) {
    if ($bytes == 0) { return "0.00&nbsp;"; }

    $s = array('&nbsp;', 'K', 'M', 'G', 'T', 'P');
    $e = floor(log($bytes, 1024));

    return round($bytes/pow(1024, $e), 2).$s[$e];
}

# Récupération et affichage de la liste des fichiers sous forme de liste
global $plxMotor;
$root = PLX_ROOT.$plxMotor->aConf['medias'].$dir;
$filename = $root.'.htaccess';
$descriptions = array();
if(file_exists($filename)) {
    if(preg_match_all('@^AddDescription\s+"([^"]+)"\s+(.+)$@m', file_get_contents($filename), $matches, PREG_SET_ORDER)) {
        foreach($matches as $capture) {
            $descriptions[$capture[2]] = $capture[1];            
        }
    }
}
$glob = plxGlob::getInstance($root);
if ($files = $glob->query('/[\w-]+\.\w+$/')) {
	sort($files);
	foreach($files as $filename) {
		$href = $plxMotor->urlRewrite('?download/'.plxEncrypt::encryptId($dir.$filename));
		$ext = pathinfo($filename, PATHINFO_EXTENSION);
        $time = date('Y-m-d H:i', filemtime($root.$filename));
        $icon = '&nbsp;';
        $size = byteConvert(filesize($root.$filename));
        $description = (array_key_exists($filename, $descriptions)) ? $descriptions[$filename] : '';
		echo <<< TR
   	     <tr>
    	        <td class="$ext">$icon</td><td><a href="$href">$filename</a></td><td>$time</td><td>$size</td><td>$description</td>
        </tr>\n
TR;
	}
}
else {
?>
	<tr colspan="5"><td>Aucun document</td></tr>
<?php
}
?>
    	</tbody>
	</table>
</div>

Indiquer dans la variable $dir le nom du bon dossier où sont stockés les fichiers dans le dossier data/medias
Afficher sur http://gist.github.com

voir démo

Dernière modification par bazooka07 (18/02/2018 12:01:32)

Hors ligne

#4 16/02/2018 15:57:44

jack31
Membre
Lieu : Luchon
Inscription : 03/04/2012
Messages : 590
Site Web

Re : Lien de téléchargement non visible.

Pourquoi faire compliqué avec des scripts externes quand on peut faire simple et propre avec Pluxml ?

Cela fonctionne très bien.

@Bazooka07

Mon idée, Jean-Pierre, c’est que tu  devrais compléter la liste de tes scripts et bouts de code comme ici par exemple

C'est ce que je suis en train de  faire de mon coté en constituant une vraie scripothèque et tes productions rendent service à beaucoup de monde.

A moi par exemple. wink


--
Tout va bien !
Des Pluxml tant qu'on en veut avec Pluxautomatic.
Pluxml pour Les Nuls :   Un petit tuto pour mes besoins personnels et ceux des débutants qui voudraient avoir une autre approche de notre CMS favori.

Hors ligne

#5 16/02/2018 17:35:04

jack31
Membre
Lieu : Luchon
Inscription : 03/04/2012
Messages : 590
Site Web

Re : Lien de téléchargement non visible.

Cela ne fonctionne pas avec Pluxml 5.4 mais après une maj vers 5.6,ça roule fort bien.

A ce propos, le thème Bounce fonctionne bien sur la 5.6 .

Un petit truc.

Est-il possible de modifier le script pour lister aussi les sous/répertoires et ce qu'ils contiennent ?


--
Tout va bien !
Des Pluxml tant qu'on en veut avec Pluxautomatic.
Pluxml pour Les Nuls :   Un petit tuto pour mes besoins personnels et ceux des débutants qui voudraient avoir une autre approche de notre CMS favori.

Hors ligne

#6 17/02/2018 19:22:54

jol5926
Membre
Lieu : Drôme
Inscription : 25/04/2015
Messages : 472
Site Web

Re : Lien de téléchargement non visible.

jack31 a écrit :

J'ai peut-être ce dont tu as besoin.

En plus, cela te compte si tu veux le nombre de téléchargements + les logs de celui qui a téléchargé.

IP
FAI
Date/heure de téléchargement
Nom du fichier téléchargé

Démo ici pour quelques jours.

*ttp://56.reseauk.info/

Hello,
je suis intéressé par ton script.


@ Bazooka
Ton script fonctionne très bien dans une page statique mais pas sur une page article.

Est-il possible de modifier le script pour lister aussi les sous/répertoires et ce qu'ils contiennent ?

Je suis également preneur.

Merci

Jol

Dernière modification par jol5926 (17/02/2018 19:26:10)

Hors ligne

#7 17/02/2018 20:14:53

jack31
Membre
Lieu : Luchon
Inscription : 03/04/2012
Messages : 590
Site Web

Re : Lien de téléchargement non visible.

jol5926 a écrit :

je suis intéressé par ton script.

Voici un lien pour télécharger cela. Tu as deux scripts dans le zip et au cas où, je peux t'aider à les paramétrer.

*ttp://jo.legtux.fr/scripts-tele/scripts-telechargement.zip

Le premier est tout simple mais pas pratique à mon goût et le second (DCL) plus élaboré avec une page d'aide et des liens vers le support en anglais mais ça vaut le coup.

Maintenant, ils ne font rien de mieux que le script de Bazooka et il est peut-être inutile de se casser la tête avec des scripts externes sauf si tu en as besoin pour un site hors Pluxml.

En fait, cela dépends de ce que tu cherche à faire.


--
Tout va bien !
Des Pluxml tant qu'on en veut avec Pluxautomatic.
Pluxml pour Les Nuls :   Un petit tuto pour mes besoins personnels et ceux des débutants qui voudraient avoir une autre approche de notre CMS favori.

Hors ligne

#8 17/02/2018 21:02:54

jol5926
Membre
Lieu : Drôme
Inscription : 25/04/2015
Messages : 472
Site Web

Re : Lien de téléchargement non visible.

@jack31
Merci
je regarde ça

Hors ligne

#9 18/02/2018 12:14:04

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 1 060
Site Web

Re : Lien de téléchargement non visible.

J'ai mis à jour le code dans le billet #3.
Maintenant la taille et la date des fichiers, avec une description succinte s'affichent.

Pour les descriptions, il faut renseigner un fichier .htaccess comme décrit ici

Il n'est pas possible d'utiliser directement ce script dans un article. L'insertion de code PHP dans un article est interdite par PluXml.
Par contre, il est possible de le mettre dans le template de l'article.

Pour afficher une liste de fichiers à télécharger en masquant leurs noms réels, il faut créer un plugin pour cela. Ce n'est pas très compliqué. Il suffira ensuite de rajouter dans l'article une balise du type <div data-download="mon-dossier-de-telechargement">&nbsp;</div>

C'est un peu dommage que PluXml ne gére pas les liens <a href="index.php?download/ce-fichier-est-payant">Donnez-moi des sous</a>  big_smile

Je ferai un pull request quand j'aurai un peu de temps.

Hors ligne

#10 18/02/2018 12:36:12

jol5926
Membre
Lieu : Drôme
Inscription : 25/04/2015
Messages : 472
Site Web

Re : Lien de téléchargement non visible.

@ Bazooka
Merci de ton aide.
Il existe déjà un plugin qui permet de télécharger un fichier :
http://forum.pluxml.org/viewtopic.php?id=4606
mais celui-ci permet le téléchargement que d'un seul fichier dans l'article.
smile

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2018 PluXml.org, tous droits réservés