Connectix Boards

Bienvenue, vous n'êtes pas connecté. ( Se connecter - S'enregistrer )

Dernière version sortie: 0.8.4!
Venez tester la version 1.0 beta :)

Connectix Boards > Zone développement > Programmation > Addons et mods finalisés > [MOD] Last registered in stats v1.0

 >  Sondage : Que pensez-vous de ce MOD ?
Très intéressant ---
Plus ou moins intéressant ---
Pas intéressant ---
Nombre de votes blancs : 0 Nombre total de votes (non-blancs) : 5
RSS >  [MOD] Last registered in stats v1.0, Dernier utilisateur enregistré dans les statistiques
Ishimaru Chiaki #1 13/07/2009 - 07h36

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

Nom du mod : cb_lastregistered_in_stats
Auteur : Ishimaru Chiaki
Date de création : 13/07/09
Version de CB : Testé sur un 0.8.4, versions antérieures non testées

Lien de téléchargement de l'archive : Télécharger le ZIP
Taille de l'archive : Environ 14 Ko

Description générale : Ce MOD permet d'afficher dans vos statistiques le nom du dernier utilisateur à s'être enregistré et à avoir été validé sur le forum, juste en dessous du nombre total de membres, de sujets et de messages.
Modifications apportées :
  • [*]include/parts/part.general.php, ligne 118
    avant /* Affichage des requètes effectuées */
    if (defined('CB_DISPLAY_QUERIES')) {
       $GLOBALS['cb_tpl']->lang_load('auxi.lang');
       $GLOBALS['cb_tpl']->assign(array(
           'g_debug_queries'            => $GLOBALS['cb_db']->queriesdone,
           'g_debug_numberqueries'        => $GLOBALS['cb_db']->gettotalqueries(),
           'g_debug_totalquerytime'    => $GLOBALS['cb_db']->querytime.' sec',
           'g_debugging'                 => true
           ));
    } else $GLOBALS['cb_tpl']->assign('g_debugging',false);

    ajouter /*Dernier enregistré*/
    if ($_SESSION['cb_user']->connected_position=='index')
    {
       $lastregistered = $GLOBALS['cb_db']->query('SELECT usr_id, usr_name, usr_class
           FROM '.$GLOBALS['cb_db']->prefix.'users
           WHERE usr_registered=\'TRUE\'
           ORDER BY usr_id DESC LIMIT 0,1 ');
       require_once(CB_CACHE_CLASSES);
       $contents_lastreg = '';
       $fetch = $GLOBALS['cb_db']->fetch_assoc($lastregistered);
       $contents_lastreg .= ((!empty($contents_lastreg))?' - ':'').'<a href="'.manage_url('index.php?act=user&amp;showprofile='.$fetch['usr_id'],'forum-m'.$fetch['usr_id'].','.rewrite_words($fetch['usr_name']).'.html').'" title="'.$GLOBALS['cb_classes'][$fetch['usr_class']]['gr_name'].'" '.((!empty($GLOBALS['cb_classes'][$fetch['usr_class']]['gr_color'])) ? 'style="color:'.$GLOBALS['cb_classes'][$fetch['usr_class']]['gr_color'].';"' : '').'>'.$fetch['usr_name'].'</a>';
       $GLOBALS['cb_tpl']->assign(array(
           'g_displaylastregistered' => true,
           'g_lastregistered' => $contents_lastreg
       ));
    } else $GLOBALS['cb_tpl']->assign('g_displaylastregistered',false);

  • [*]lang/fr/general.lang, ligne 94
    après    'total_messages' => 'Nos membres ont écrit un total de {m} messages dans {s} sujets.',
    ajouter    'member_lastregistered' => 'Le dernier utilisateur enregistré est',
  • [*]lang/en/general.lang, ligne 94
    après    'total_messages' => 'Our members posted {m} messages in {s} topics.',
    (soit) ajouter    'member_lastregistered' => 'The last registered user is',
  • [*]templates/Official/gen_contents.php, ligne 177
    après       <?php echo lang(array('item' => 'total_messages','m' => $g_totalmessages,'s' => $g_totaltopics)); ?>
    ajouter        <?php if ($g_displaylastregistered && !empty($g_lastregistered) ): ?><br />
           <?php echo lang('member_lastregistered'); ?> <?php echo $g_lastregistered; ?>
           <?php endif; ?>



Notes :
- Si votre forum n'a pas du tout été modifié, vous n'avez qu'à envoyer le contenu de l'archive pour écraser les fichiers existants (je vous recommande de faire une sauvegarde d'abord), et la modification manuelle ne sera donc pas nécessaire.
- Si au moins un des fichiers mentionnés a été modifié par un autre MOD, vous devrez effectuer la modification manuellement pour le ou les fichiers concernés.
- Aucune modification dans la base de données, puisque le mod utilise les champs existants dans les tables cb_users
- Contient les fichiers de langue modifiées pour le français et l'anglais
- Une démo du mod est maintenant présente sur mon forum

Changelog

26/07/09 - Vu l'absence de bugs, je passe la version du pack vers la 1.0

13/07/09 - Première release du MOD
10/09/10 - Mise à jour à la version 1.1 : Le script sélectionne maintenant le dernier enregistré à avoir été validé, ce qui fait que si l'enregistré le plus récent n'est pas validé, il ne sera pas pris en compte.  La boucle a aussi été retirée puisqu'il n'y a qu'une entrée à afficher.
Ce message a été édité par Ishimaru Chiaki le 10/09/2010 à 22h57.
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
Ishimaru Chiaki #2 27/07/2009 - 07h57

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

Après confirmation de la stabilité du MOD, celui-ci vient de passer à la version 1.0.
Le lien qui était devenu mort suite à la mise à jour du site vient d'être corrigé !
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
finalbob #3 27/07/2009 - 16h34

Groupe : Modérateur
Messages : 718
Enregistré le : 08/03/2007

Hors ligne Site Web

Il y en a encore beaucoup des liens à mettre à jour ?
Ça en fait des messages pour un truc dont quasiment personne ne s'etait vraiment rendu compte...

Et le up déguisé, saymal !
youplaboum !
Posted Image
tout mes MODs pour cb
Ishimaru Chiaki #4 27/07/2009 - 22h15

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

finalbob @ 27/07/2009 - 10h34 a dit:

Il y en a encore beaucoup des liens à mettre à jour ?
Ça en fait des messages pour un truc dont quasiment personne ne s'etait vraiment rendu compte...

Et le up déguisé, saymal !



*sort sa double-épée*

Toé mon torvis, tu vas y goûter !!!  :dev:
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
finalbob #5 27/07/2009 - 23h11

Groupe : Modérateur
Messages : 718
Enregistré le : 08/03/2007

Hors ligne Site Web

remettant sa cape grise, l'importun s'exclama :
Ahah ! Vous ne m'aurez jamais !

Puis lançant une petite bourse au sol qui explosa en un nuage de fumée, il disparu...
Ce message a été édité par finalbob le 27/07/2009 à 23h12.
youplaboum !
Posted Image
tout mes MODs pour cb
Ishimaru Chiaki #6 09/09/2010 - 02h09

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

Là je requiers l'aide de Martin ou de dixy !

Il y a une chose que je n'ai pu implémenter, mais que j'aimerais le faire dans le mod : sélectionner le dernier enregistré validé et exclure les non-validés !  Pour le moment, ça sélectionne le dernier inscrit, qu'il soit validé ou non !

Or, malgré plusieurs tests, je n'y arrive pas du tout : Soit j'ai un "Undefined index", soit la ligne ne s'affiche pas du tout, soit j'ai une page blanche.  Parmi ces essais, j'ai tenté de reformuler la requête pour utiliser la fonction MAX (afin de ne plus avoir besoin du ORDER BY et du LIMIT), et d'enlever la boucle while pour le fetch_assoc.

J'ai donc besoin d'aide pour résoudre ce problème.

Merci d'avance.

Ishimaru
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
dixy #7 09/09/2010 - 09h34

Groupe : Modérateur
Messages : 1060
Enregistré le : 06/02/2005

Hors ligne Site Web

En conservant le LIMIT et le ORDER BY, ça peut donner ceci (j'ai aussi enlevé la boucle) :

/*Dernier enregistré*/
if ($_SESSION['cb_user']->connected_position=='index')
{
  $lastregistered = $GLOBALS['cb_db']->query('SELECT usr_id, usr_name, usr_class
      FROM '.$GLOBALS['cb_db']->prefix.'users
      WHERE usr_registered=\'TRUE\'
      ORDER BY usr_id DESC
      LIMIT 0,1 ');
  require_once(CB_CACHE_CLASSES);
 
  $fetch = $GLOBALS['cb_db']->fetch_assoc($lastregistered);
  $contents_lastreg = '<a href="'.manage_url('index.php?act=user&amp;showprofile='.$fetch['usr_id'],'forum-m'.$fetch['usr_id'].','.rewrite_words($fetch['usr_name']).'.html').'" title="'.$GLOBALS['cb_classes'][$fetch['usr_class']]['gr_name'].'" '.((!empty($GLOBALS['cb_classes'][$fetch['usr_class']]['gr_color'])) ? 'style="color:'.$GLOBALS['cb_classes'][$fetch['usr_class']]['gr_color'].';"' : '').'>'.$fetch['usr_name'].'</a>';
 
  $GLOBALS['cb_tpl']->assign(array(
      'g_displaylastregistered' => true,
      'g_lastregistered' => $contents_lastreg
  ));
} else $GLOBALS['cb_tpl']->assign('g_displaylastregistered',false);


Ensuite pour supprimer le ORDER BY et le LIMIT, on peut peut être faire une sous-requête mais je ne sais pas si c'est plus performant :
$lastregistered = $GLOBALS['cb_db']->query('SELECT usr_id, usr_name, usr_class
      FROM '.$GLOBALS['cb_db']->prefix.'users
      WHERE usr_id = (SELECT MAX(usr_id) FROM '.$GLOBALS['cb_db']->prefix.'users WHERE usr_registered=\'TRUE\')');
Posted Image BrightMarks : gérer vos notes scolaires
Ishimaru Chiaki #8 10/09/2010 - 09h50

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

Je me demandais bien aussi comment concaténer un booléen dans une requête... là j'ai eu ma réponse et du coup, là la ligne s'affiche, alors qu'elle ne s'affichait pas si je n'entourais pas TRUE de guillemets simples échappés.

Par contre, si j'enlève la boucle, c'est la page blanche.

Voici ce que j'ai donc, sans la boucle :
/*Dernier enregistré*/
if ($_SESSION['cb_user']->connected_position=='index')
{
    $lastregistered = $GLOBALS['cb_db']->query('SELECT usr_id, usr_name, usr_class
        FROM '.$GLOBALS['cb_db']->prefix.'users
        WHERE usr_registered=\'TRUE\'
        ORDER BY usr_id DESC LIMIT 0,1 ');
    require_once(CB_CACHE_CLASSES);
    $fetch = $GLOBALS['cb_db']->fetch_assoc($lastregistered)
    $contents_lastreg = '<a href="'.manage_url('index.php?act=user&amp;showprofile='.$fetch['usr_id'],'forum-m'.$fetch['usr_id'].','.rewrite_words($fetch['usr_name']).'.html').'" title="'.$GLOBALS['cb_classes'][$fetch['usr_class']]['gr_name'].'" '.((!empty($GLOBALS['cb_classes'][$fetch['usr_class']]['gr_color'])) ? 'style="color:'.$GLOBALS['cb_classes'][$fetch['usr_class']]['gr_color'].';"' : '').'>'.$fetch['usr_name'].'</a>';
    $GLOBALS['cb_tpl']->assign(array(
        'g_displaylastregistered' => true,
        'g_lastregistered' => $contents_lastreg
    ));
} else $GLOBALS['cb_tpl']->assign('g_displaylastregistered',false);


et avec la boucle :
/*Dernier enregistré*/
if ($_SESSION['cb_user']->connected_position=='index')
{
    $lastregistered = $GLOBALS['cb_db']->query('SELECT usr_id, usr_name, usr_class
        FROM '.$GLOBALS['cb_db']->prefix.'users
        WHERE usr_registered=\'TRUE\'
        ORDER BY usr_id DESC LIMIT 0,1 ');
    require_once(CB_CACHE_CLASSES);
    $contents_lastreg = '';
    while ($fetch = $GLOBALS['cb_db']->fetch_assoc($lastregistered))
    {
        $contents_lastreg .= ((!empty($contents_lastreg))?' - ':'').'<a href="'.manage_url('index.php?act=user&amp;showprofile='.$fetch['usr_id'],'forum-m'.$fetch['usr_id'].','.rewrite_words($fetch['usr_name']).'.html').'" title="'.$GLOBALS['cb_classes'][$fetch['usr_class']]['gr_name'].'" '.((!empty($GLOBALS['cb_classes'][$fetch['usr_class']]['gr_color'])) ? 'style="color:'.$GLOBALS['cb_classes'][$fetch['usr_class']]['gr_color'].';"' : '').'>'.$fetch['usr_name'].'</a>';
    }
    $GLOBALS['cb_tpl']->assign(array(
        'g_displaylastregistered' => true,
        'g_lastregistered' => $contents_lastreg
    ));
} else $GLOBALS['cb_tpl']->assign('g_displaylastregistered',false);
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
dixy #9 10/09/2010 - 13h41

Groupe : Modérateur
Messages : 1060
Enregistré le : 06/02/2005

Hors ligne Site Web

Il manque le point virgule à la ligne avec le fetch_assoc() de la version sans la boucle ;)
Posted Image BrightMarks : gérer vos notes scolaires
Ishimaru Chiaki #10 10/09/2010 - 22h47

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

OMG !  Tout ça pour un point-virgule oublié !

Là maintenant ça marche, et je viens de faire les tests sur mon forum de prod en créant un compte non-validé !

Reste seulement à transposer les modifications dans l'archive, puis à mettre ça en ligne.

EDIT : Fait !
Ce message a été édité par Ishimaru Chiaki le 10/09/2010 à 22h58.
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter

 >  Réponse rapide

Composez votre message

Connectix Boards > Zone développement > Programmation > Addons et mods finalisés > [MOD] Last registered in stats v1.0

 >  Informations du forum

1 personne(s) présente(s) durant une période de 15 minutes (0 membre(s) et 1 invité(s)).