Archives FluxBB.fr

Les archives de FluxBB.fr

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

#1 17-12-2007 18:10:33

Xonzai
Membre

Top 10 Posteurs 1.0

Auteur : Xonzai

Cette modification mineure vous permet d'afficher sur votre index, le top 10 des posteurs de votre forum.

Les instructions d'installation sont disponibles en anglais et français.

Télécharger

Hors ligne

#2 17-12-2007 18:33:43

Lost
Membre

Re : Top 10 Posteurs 1.0

Merci;

Y'aurai t'il moyen d'avoir la meme chose mais cette fois ci avec les membres qui ont le plus de messages par jour de moyenne ?

Il suffirai de faire au script une division : nbr de message divisé par nbr de jour depuis lequel il est enregistré et ça donne la valeur moyenne en msg/j et classé par ordre décroissant d'après ces valeurs, est ce que quelqu'un pourrai faire ça ?

Hors ligne

#3 17-12-2007 18:40:43

Xonzai
Membre

Re : Top 10 Posteurs 1.0

Oui c'est très simplement faisable smile
Je peux adapter le script sans problèmes.
Ps : sur le même modèle de présentation ?

Dernière modification par Xonzai (17-12-2007 18:47:07)

Hors ligne

#4 17-12-2007 18:43:59

Lost
Membre

Re : Top 10 Posteurs 1.0

Ouais tu peux utiliser le mème modèle de présentation c parfait comme t'a fait pour le top10 ! c juste que ça serai mieux de voir proportionnellement a leur inscription les plus actifs parcequ'un membre inscrit depuis 2 semaine et qui a posté 200 messages et plus actif qu'un membre inscrit depuis 1 ans et qui a posté 500 messages !

qd t'aura fait les modifs du script, met un lien ici stp.



merci d'avançe pour ton boulot !



ps : tu pourrai m'ajouter ds tes contacts msn stp ? ( feisty@live.fr )

Dernière modification par Lost (17-12-2007 18:54:40)

Hors ligne

#5 17-12-2007 19:07:50

Xonzai
Membre

Re : Top 10 Posteurs 1.0

Arghh, désolé, j'ai un contre temps, je ferais le script à mon retour.
ps: désolé, je n'accepte pas les gens sur msn, sinon ça part toujours en sucette sur msn avec les demandes de coding. wink

Hors ligne

#6 17-12-2007 19:15:55

Lost
Membre

Re : Top 10 Posteurs 1.0

Ok pas grave, je repasserai demain


sinon petit détail, ça serai bien si tu pouvai mettre "1er" "2eme" "3eme" et préciser que c des msg/j et non mettre juste la valeur si possible.

Exemple :

Top10 des + actifs : 1er > DrNo (31.567 msg/j) 2e > Supertrack (30.641 msg/j) 3e> Superpopol (27.564 msg/j)...

Dernière modification par Lost (17-12-2007 19:18:18)

Hors ligne

#7 19-12-2007 16:50:09

Dr Wax
Membre

Re : Top 10 Posteurs 1.0

Salut,

Merci pour cette mod sympa. ^^

Sur mon forum, il manque le haut du cadre.

Est-ce normal et si oui, comment y remédier ?? siffle

Merci...


Un râleur sachant râler passe par mon forum....

Hors ligne

#8 19-12-2007 19:16:38

Lost
Membre

Re : Top 10 Posteurs 1.0

Xonzai t'ai arrivé a faire la meme chose avec le nbr de msg/j ?

Hors ligne

#9 29-12-2007 19:30:11

Dr Wax
Membre

Re : Top 10 Posteurs 1.0

Dr Wax a écrit :

Salut,

Merci pour cette mod sympa. ^^

Sur mon forum, il manque le haut du cadre.

Est-ce normal et si oui, comment y remédier ?? siffle

Merci...

J'ai résolu ce défaut...


Un râleur sachant râler passe par mon forum....

Hors ligne

#10 24-01-2008 14:54:31

galexicon
Membre

Re : Top 10 Posteurs 1.0

Je serais également intéressé par un classement en msg/j. Quelqu'un a-t'il déjà travaillé sur ce script ?

Hors ligne

#11 07-03-2008 19:08:48

toadlemalin
Membre

Re : Top 10 Posteurs 1.0

bonjour,
quelqu'un a-t'il du nouveau pour la stat nb msg / jours ?
Merci

Hors ligne

#12 15-03-2008 22:32:01

tektonik-killer
Membre

Re : Top 10 Posteurs 1.0

Elle est compatible avec 1.2.17 fr punbb

Hors ligne

#13 08-10-2008 21:06:41

kronos
Membre

Re : Top 10 Posteurs 1.0

bonjour a tous


merci pour ce mod comment faire pour l inserer en bas du forum

Hors ligne

#14 18-01-2009 13:13:31

actuboard
Membre

Re : Top 10 Posteurs 1.0

toadlemalin a écrit :

bonjour,
quelqu'un a-t'il du nouveau pour la stat nb msg / jours ?
Merci

UP


Forum : http://actuboard.com
Forum de test : http://test.actuboard.com
"Merci d'aller sur le forum de test pour vérifier une "mod""

Hors ligne

#15 18-01-2009 15:18:48

M@x
Membre

Re : Top 10 Posteurs 1.0

Rechercher dans index.php :

$result = $db->query('SELECT id, username, num_posts FROM '. $db->prefix .'users ORDER BY num_posts DESC LIMIT 10', true)or error('Database error', __FILE__, __LINE__, $db->error());

Dans la ligne, remplacer :

BY num_posts

Par

BY (num_posts/(('.time().'-registered)/(3600*24)))

Non testé et c'est pas si simple donc si erreur, activer le mod débug et donner l'erreur.

EDIT : Petite correction.

Dernière modification par M@x (18-01-2009 15:19:53)


...

Hors ligne

#16 18-01-2009 16:21:26

actuboard
Membre

Re : Top 10 Posteurs 1.0

Le problème c'est qu'a l'affichage ça classe les membres en indiquant le nombre de message en tout alors qu'il faudrai que ça affiche leur moyenne en msg/jour

a cause de cette ligne :

                    echo '<a href="profile.php?id='. $top10_membre['id'] .'">'. $top20_membre['username'] .'</a> (<i>'. $top10_membre['num_posts'] .'</i>), ';

Tu saurai comment afficher la moyenne msg/jour a coté au lieu du nombre de poste en tout ? (en prenant 2 chiffres après la virgule maxi) ex : 17.54 m/j


Par exemple affiché :

Top 10 posteurs  :  Jackie045 (21.59 m/j), Pierre899 (18.10 m/j), girar (16.99 m/j)...

Dernière modification par actuboard (18-01-2009 16:27:57)


Forum : http://actuboard.com
Forum de test : http://test.actuboard.com
"Merci d'aller sur le forum de test pour vérifier une "mod""

Hors ligne

#17 18-01-2009 16:37:04

M@x
Membre

Re : Top 10 Posteurs 1.0

Et le classement, c'est bon ? Parce qu'a l'origine c'est l'unique demande.

<?php 
                $result = $db->query('SELECT id, username, num_posts, registered FROM '. $db->prefix .'users ORDER BY (num_posts/(('.time().'-registered)/(3600*24))) DESC LIMIT 10', true)or error('Database error', __FILE__, __LINE__, $db->error());
                while($top10_membre = $db->fetch_assoc($result))
                {
                    $messages_jours = round($top10_membre['num_posts']/(('.time().'-$top10_membre['registered'])/(3600*24))), 2);
                    echo '<a href="profile.php?id='. $top10_membre['id'] .'">'. $top10_membre['username'] .'</a> (<i>'. $messages_jours .'</i>), ';
                }
            ?>

Ptètes des erreurs. Pas testé.

Dernière modification par M@x (18-01-2009 16:38:03)


...

Hors ligne

#18 18-01-2009 16:44:31

actuboard
Membre

Re : Top 10 Posteurs 1.0

Le classement était bon oui par contre là ça marche pas ça affiche la page blanche :

http://test.actuboard.com

Y'a du avoir un syntaxe qui pose problème dans ce que tu m'a donné.


Forum : http://actuboard.com
Forum de test : http://test.actuboard.com
"Merci d'aller sur le forum de test pour vérifier une "mod""

Hors ligne

#19 18-01-2009 16:54:45

M@x
Membre

Re : Top 10 Posteurs 1.0

J'ai pas de page blanche mais un soucis de calcul.


...

Hors ligne

#20 18-01-2009 17:02:49

actuboard
Membre

Re : Top 10 Posteurs 1.0

Si il y a bien une page blanche, elle disparait parfois parceque j'ai essayé la proposition d'un autre et son comptage n'est pas bon sans parler qu'il n'y a pas d'arrondis mais le tiens de code si je le met ça met page blanche.

voila ce qu'il m'a proposé :

?>
<!-- BEGIN MOD TOP 10 -->
    <div id="top10" class="block">
        <div class="box">
            <div class="inbox">
            <p><strong>Top 10 posteurs par jour</strong> 
            <?php 
                $result = $db->query('SELECT id, username, num_posts, registered FROM '. $db->prefix .'users ORDER BY (CURRENT_TIMESTAMP() - registered) / num_posts DESC LIMIT 10', true)or error('Database error', __FILE__, __LINE__, $db->error());
                while($top10_membre = $db->fetch_assoc($result))
                {
                    $memberdays = max(1, round((time() - $top10_membre['registered']) / 86400));
                    $top10_membre['num_posts'] /= $memberdays;
                    echo '<a href="profile.php?id='. $top10_membre['id'] .'">'. $top10_membre['username'] .'</a> (<i>'. $top10_membre['num_posts'] .'</i>), ';
                }
            ?>
            </p>
            </div>
        </div>
    </div> 
    <!-- END MOD TOP 10 -->
<?php

Dernière modification par actuboard (18-01-2009 17:03:40)


Forum : http://actuboard.com
Forum de test : http://test.actuboard.com
"Merci d'aller sur le forum de test pour vérifier une "mod""

Hors ligne

#21 18-01-2009 18:47:02

actuboard
Membre

Re : Top 10 Posteurs 1.0

Alors M@x t'a une idée du souci dans ton code ?

Ton code installé donne cela : http://test.actuboard.com/index2.php
(index.php étant la modif de l'autre)


Forum : http://actuboard.com
Forum de test : http://test.actuboard.com
"Merci d'aller sur le forum de test pour vérifier une "mod""

Hors ligne

#22 18-01-2009 18:54:44

Otomatic
Régisseur

Re : Top 10 Posteurs 1.0

Bonjour,

Voilà la requête MySQL qui donne :
- Le Pseudo des dix posteurs (Posteur)
- Le nombre total de posts (Nombre_Post_Total)
- La date d'inscription (Date_Inscription) en texte sous la forme 12 Décembre 2007
- Le nombre de post par jour depuis l'inscription (Nombre_Jour)
Si on veut le nombre de posts par semaine au lieu de par jour, remplacer 86400 par 604800

SELECT u.username AS Posteur,
  u.num_posts AS Nombre_Post_Total,
  DATE_FORMAT(From_UnixTime(u.registered), CONCAT('%d ', ELT( MONTH(From_UnixTime(u.registered)),'Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'),' %Y')) AS Date_Inscription,
  (u.num_posts/((Unix_Timestamp(Curdate()) - u.registered)/86400)) AS Nombre_Jour
FROM punbb_users AS u
ORDER BY Nombre_Jour DESC LIMIT 10;

Il ne reste plus qu'a récupérer le résultat de la requête.
Nota : Testé et vérifié en local sous Windows XP Home SP3 avec PhpMyAdmin, Apache 2.2.11, PHP 5.2.8, MySQL 5.1.30 et PhpMyAdmin 3.1.1

Dernière modification par Otomatic (18-01-2009 19:33:21)


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#23 18-01-2009 20:34:00

actuboard
Membre

Re : Top 10 Posteurs 1.0

Je sais pas du tout ou placer ce que tu as mit Otomatic et comment récupéré les résultats, moi je veux juste :

afficher le top 10 des membres classé de celui le plus actif au moins actif par rapport a leur nombre de msg/jour de moyenne en précisant cette moyenne en allant 2 chiffres après la virgule.

Voici mon index.php avec le top10 normale (sans aucune modif pour la moyenne msg/jour. Otomatic pourrai tu stp me recopier mon code mais avec ta modif stp pour que ça affiche correctement.

Mon fichier index.php avec le topi10 normale :
Code trop long supprimé
PS : l'idéal serai de pouvoir faire ce que je demande en le moins de requête possible.

Dernière modification par actuboard (19-01-2009 11:55:04)


Forum : http://actuboard.com
Forum de test : http://test.actuboard.com
"Merci d'aller sur le forum de test pour vérifier une "mod""

Hors ligne

#24 19-01-2009 12:21:58

Otomatic
Régisseur

Re : Top 10 Posteurs 1.0

Bonjour,

Voilà un « truc » qui fonctionne parfaitement et qui, de plus, peut être paramétré en jour, semaine ou mois.

<!-- BEGIN MOD TOP 10 -->
<div id="top10" class="block">
  <div class="box">
    <div class="inbox">
      <?php
      //Choix de la période (jour, semaine, mois)
      $periode = "jour";
      switch($periode) {
        case "jour" :
        $interval = 86400;
        break;
        case "semaine" :
        $interval = 86400 * 7;
        break;
        case "mois" :
        $interval = 86400 * 30;
        break;
        default :
        $interval = 86400;
        $periode = "jour";
      }
      $sql = "SELECT u.id,u.username, ROUND((u.num_posts/((Unix_Timestamp(Curdate()) - u.registered)/".$interval.")),2) AS Moyenne FROM ".$db->prefix."users AS u ORDER BY Moyenne DESC LIMIT 10";
      $result = $db->query($sql)or error ('Erreur récupération Moyenne des posts', __FILE__, __LINE__, $db->error());
      echo "<p><strong>Top 10 posteurs</strong><small><i> (Moyenne par ".$periode.")</i></small> : ";
      while($top10_membre = $db->fetch_assoc($result)) echo '<a href="profile.php?id='. $top10_membre['id'] .'">'. $top10_membre['username'] .'</a> (<i>'. $top10_membre['Moyenne'] .'</i>), ';
      ?>
    </p>
    </div>
  </div>
 </div> 
 <!-- END MOD TOP 10 -->

Il serait quand même bien que tu te penches un peu sur le codage PHP et MySQL au lieu d'attendre que ça te tombe tout rôtit dans le bec.
Un bon début :
http://www.siteduzero.com/tutoriel-3-14 … c-php.html

Toutes les explications « officielles » PHP, en français :
http://www.php.net/manual/fr/

D'autre part - point de vue philosophique - afficher les dix « posteurs » les plus prolifiques, c'est privilégier la quantité au détriment de la qualité.:rolleyes:


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#25 19-01-2009 12:33:57

actuboard
Membre

Re : Top 10 Posteurs 1.0

Bon travail malheureusement ton code ne marche pas pour les nouveaux membres.

En effet j'ai installé ton code, donc apparemment pour les membres déja existant ça pose pas de souci mais ensuite j'ai créer un compte et j'ai posté 1 message avec et dans le top10 c'est affiché "0.00"

voir forum de test : http://test.actuboard.com
(compte crée : boudy)

edit : je viens de recréer un compte, de poster, de modifier la date d'inscription par une plus ancienne et ça a prit en compte la moyenne donc ça doit venir d'un problème de date.

Dernière modification par actuboard (19-01-2009 14:39:12)


Forum : http://actuboard.com
Forum de test : http://test.actuboard.com
"Merci d'aller sur le forum de test pour vérifier une "mod""

Hors ligne

Pied de page des forums