Compteur de téléchargement

Coucou

Vu que la gestion de téléchargement de documents a été mise en place (j'ai remarqué la présence d'une adresse particulière /?telechargement etc), je me demande si du coup le système de compteur est présent.

Si non, est-il possible de le mettre en place simplement ?

TCho, Hamtaro.

Réponses

  • c'est vrai que cela serait plus qu'intéressant.
    +1
  • Up,

    Je remonte ce vieux sujet car n'ayant rien trouvé sur le forum/wiki sur cette fonction de lien hashé + compteur.

    Utilisé ici pour les ressources et sur d'autre blog pluxml.

    Donc merci de vos retours ;)
  • OK une partie de la réponse sur ce Sujet
  • Bonsoir,

    pour compter les telehargement il faudrait integrer un plugin a partir du fichier index.php aprés la fonction : $pluxMotor->prechaufage();

    Piste : voir la methode de captage des stats des telechargements (qui permet principalement de recuperer le nom du fihier ) http://wiki.pluxml.org/?page=bbclone:Statistiques%20des%20documents%20t%C3%A9l%C3%A9chargeables

    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • StéphaneStéphane Member, Former PluXml Project Manager
    Ne toucher pas au fichier index.php, mais utiliser plutôt cette méthode
    1) créer un dossier plugins à la racine de votre pluxml (s'il n'existe pas)
    2) dans ce dossier créer une fichier php: plx.monplugin.php
    3) faire un include de ce fichier plx.monplugin.php dans le fichier header.php de votre thème, après la 1ere ligne:
    <?php if(!defined(PLX_ROOT)) exit; ?>
    
    Pour le contenu du plugin.

    L'idée est d'analyser l'url, si elle est du type ?telechargement alors décoder le nom du fichier et faire +1 dans un compteur stocké dans un fichier texte (dans le répertoire du plugins)

    # Analyse de l'url
    
    if($plxShow->plxMotor->get AND preg_match('/^telechargement\/(.+)$/',$plxShow->plxMotor->get,$capture)) {
    
    
    	# On décrypte le nom du fichier
    	$file = PLX_ROOT.$plxShow->plxMotor->aConf['documents'].plxEncrypt::decryptId($capture[1]);
    
            ....
    
    }
    
    De cette manière on touche pas au core de pluxml et pas (ou peu) de souci lors de mise à jour.

    Voilà en gros le principe de ce qui permettrait de compter le nombre de téléchargement d'un fichier

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • @Stephane ,
    ne serait pas judicieux de faire usage d'un fichier supplementaire communs a tout les themes present (themes ecrans et mobil) ?

    Un fichier a la racine du repertoire theme , permettrait d'inclure une fois pour tous , sans avoir a réediter chaque theme , pour beneficier d'un jquery , des fonctions d'un plugins(comme les tags) ou des statistiques par exemples .

    J'inclus par exemple mes stats et mes fichiers js a partir d'index.php et j'en beneficie quelques soit le theme (mobile ou normal) , pas besoin de réediter les themes ou de les mettre a jours

    Pour le comptage de telechargement a partir du theme , il me semble que les headers sont renvoyé au navigateur avant de commencé a traiter les fichiers du thémes , non ? Enfin i me parait tellement logique de stoppé le processus a ce niveau que je n'imagine pas que pluxml s'en va quand même chargé le theme dans le cas d'un telechargement .

    Cordialement et curieusement

    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • StéphaneStéphane Member, Former PluXml Project Manager
    @gcyrillus-nomade
    pour le compteur ça ne pose pas de problème si tu fais l'include tout de suite après la 1ere ligne du header.
    il n'y aura pas d'erreur du genre "header already sent" (si c'est a quoi tu penses)

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Non , en fait je pensais qu'aucun fichier du theme n'était chargé et que l'on quitté le processus avec la fonction
    function sendTelechargement($cible) {
    	
    		# On décrypte le nom du fichier
    		$file = PLX_ROOT.$this->aConf['documents'].plxEncrypt::decryptId($cible);
    
    		# On lance le téléchargement et on check le répertoire documents
    		if(@file_exists($file) AND preg_match('#^'.str_replace('\\', '/', realpath(PLX_ROOT.$this->aConf['documents']).'#'), str_replace('\\', '/', realpath($file)))) {
    			header('Content-Description: File Transfer');
    			header('Content-Type: application/download');
    			header('Content-Disposition: attachment; filename='.basename($file));
    			header('Content-Transfer-Encoding: binary');
    			header('Expires: 0');
    			header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    			header('Pragma: no-cache');
    			header('Content-Length: '.filesize($file));
    			readfile($file);
    			exit;
    		} else { # On retourne false
    			return false;
    		}
    		
    	}
    
    aprés coup et relecture , je m'aperçois que rien n'empeche la creation de l'objet de l'affichage et que ce n'est utile que dans le cas ou le fichier demandé n'existe pas .

    Okay :)


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Connectez-vous ou Inscrivez-vous pour répondre.