AccueilAccueil  CalendrierCalendrier  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  

Petit complétage pour mon script qui compte les membres d'un groupe ♥

Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
C'est re-moi What a Face
J'abuse je sais, pardon

J'avais demandé de l'aide pour mon script ici déjà, mais j'ai oublié de prendre un détail en considération dans ce que je voulais faire

C't'à-dire que comme forumactif est relou, quand le nombre dépasse 10 il rajoute de la pagination sur la page de groupe et elle change donc d'url puisque "?start=10" se rajoute à la fin : et du coup le script ne compte pas au-delà de 10 membres. *rire nerveux*
(exemple, dans mon groupe "Lémures" j'ai 19 membres, donc 2 pages : http://www.peekaboo-rpg.com/g3-lemures)

J'ai essayé de voir pour retirer cette foutue pagination, ce qui serait l'idéal, mais je ne vois pas du tout comment je peux faire et sur forumactif personne ne me répond

Du coup je me demandais s'il était possible de transformer le script pour qu'il prenne en considération la pagination. (Genre, je sais pas, en considérant l'url de la page + ses "dérivées" ?) Je sais pas si c'est possible

Bref, si vous avez une idée, je suis preneuse
Rheah
avatar
Codeur VeryActif
Voir le profil de l'utilisateur
Messages : 35
Coda'Points : 165
Date d'inscription : 10/12/2015

Niveau en programmation
HTML/CSS:
0/0  (0/0)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Coucou !

Je ne pense pas qu'il soit possible de modifier la pagination...

J'ai peut être une idée, par contre, on va devoir modifier le script tout entier et jouer de mathématiques et de logique ! :p
Eluknow
avatar
Administrateur
Voir le profil de l'utilisateur
Messages : 2175
Coda'Points : 3877
Date d'inscription : 29/08/2013

Niveau en programmation
HTML/CSS:
3/3  (3/3)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Re eheh
Mais la pagination c'est tout pourri è_____é

Azy je suis prête à faire des maths, j'ai un bac S et tout !
Rheah
avatar
Codeur VeryActif
Voir le profil de l'utilisateur
Messages : 35
Coda'Points : 165
Date d'inscription : 10/12/2015

Niveau en programmation
HTML/CSS:
0/0  (0/0)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Ahah.
Ca restera basique en maths hein xD.

J'ai trouvé comment faire. Mais le code ne fonctionne pas. J'ai demandé de l'aide pour voir comment régler mon pb de portée de variable sur des forums spécialisés, j'espère avoir une réponse rapidement...
Eluknow
avatar
Administrateur
Voir le profil de l'utilisateur
Messages : 2175
Coda'Points : 3877
Date d'inscription : 29/08/2013

Niveau en programmation
HTML/CSS:
3/3  (3/3)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
D'accord
Pas de soucis j'attends, je suis censée réviser mes partiels de toute façon
Rheah
avatar
Codeur VeryActif
Voir le profil de l'utilisateur
Messages : 35
Coda'Points : 165
Date d'inscription : 10/12/2015

Niveau en programmation
HTML/CSS:
0/0  (0/0)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Oula, bon courage ahah !

Bon, j'ai une bonne et une mauvaise nouvelle...
La bonne nouvelle:
 

La mauvaise nouvelle:
 

Are you ready to retrieve the code and to be marveled ? Very Happy
Eluknow
avatar
Administrateur
Voir le profil de l'utilisateur
Messages : 2175
Coda'Points : 3877
Date d'inscription : 29/08/2013

Niveau en programmation
HTML/CSS:
3/3  (3/3)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Ecoute je suis quand même preneuse, on va voir si c'est à ma portée quand même
Si ça se trouve je suis plus intelligente que toi et que je vais tout comprendre
Rheah
avatar
Codeur VeryActif
Voir le profil de l'utilisateur
Messages : 35
Coda'Points : 165
Date d'inscription : 10/12/2015

Niveau en programmation
HTML/CSS:
0/0  (0/0)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Ok, si tu comprends n'hésite pas à me faire comprendre xD.

Bon, le code fonctionne, seulement j'essaie de l'adapter pour qu'il scanne tous les groupes (car là il n'en scanne qu'un seul :p)
Eluknow
avatar
Administrateur
Voir le profil de l'utilisateur
Messages : 2175
Coda'Points : 3877
Date d'inscription : 29/08/2013

Niveau en programmation
HTML/CSS:
3/3  (3/3)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Bon en vrai je pense que je vais finir par copier-coller bêtement mais on sait jamais xD La dernière fois j'avais compris, quand même What a Face

D'accord. Du coup je sais pas si c'est utile de le faire mais je reprécise pour pas que tu t'embêtes si jamais : il n'y a que les groupes Lémures, Zombies, Nécromanciens, Vampires et Chimères à prendre en compte (non parce qu'autrement j'ai jor une quinzaine d'autres groupes "invisibles" dont on se fout complètement niveau effectifs :'D)

En attendant j'suis en train de regarder si la pagination se fait sous les autres versions proposées par forumactif, vu que moi je suis sous Invision mais sasstrouve sous phpbb2 ou 3 le code sur lequel on était arrivés la dernière fois suffirait ('fin en soit je changerais pas de version perso donc j'ai quand même besoin d'adapter le code, mais on sait jamais pour rajouter dans le tuto étou )

EDIT : Ouais bon en fait ça pagine aussi sur phpbb2. J'avais jamais remarqué
Rheah
avatar
Codeur VeryActif
Voir le profil de l'utilisateur
Messages : 35
Coda'Points : 165
Date d'inscription : 10/12/2015

Niveau en programmation
HTML/CSS:
0/0  (0/0)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Coucou !

C'est bon, notre code fonctionne ! Le voici !

Code:
var url = 'http://www.peekaboo-rpg.com';
var sectionUrl = ['/g3-lemures', '/g6-chimeres', '/g4-necromanciens'];

$.each(sectionUrl, function(id, link){
    var keySearch = link+'?start=';
    $.get(url+link, function(datas)
    {
        var lastFind = new Array();
        lastFind[id] = 0;
 
        $('.pagination a', datas).each(function(index, value) {
            if ($(value).attr('href') != null && $(value).attr('href').indexOf(keySearch) != -1) {
                lastFind[id] = $(value).attr('href').substring(keySearch.length);
            }     
        });
 
        $.get(url+keySearch+lastFind[id], function(datas)
        {

            var totalElem = new Array();
            totalElem[id] = 0;   
            totalElem[id] = parseInt($('.grp_liste .grp_listememb', datas).length) + parseInt(lastFind[id]) - 1;
   
            console.log(totalElem[id]);
        });
    });
});

Magnifique non ?
Bon, si tu le mets, ça risque pas de fonctionner xD. Là, c'est juste le code en mode débogage.
Je te l'explique un peu :
En premier on définit deux variables :
url : l'url de l'index de ton forum
sectionUrl : un tableau qui contient les liens propres à chaque groupe dont tu veux récupérer le nombre de membres

Ensuite, on a une grosse fonction $.each() : elle sert à appliquer sur chaque groupes définis dans le tableau sectionUrl la fonction renseignée. Dans notre cas, on n'utilise pas de système de callback externe, donc elle applique les actions qui sont renseignées dans le $.each(function() {});

La première action qu'on réalise est de récupérer le lien vers la dernière page de pagination, après avoir défini l'adresse complète jusqu'au groupe souhaité :
Code:
var keySearch = link+'?start=';
    $.get(url+link, function(datas)
    {
        var lastFind = new Array();
        lastFind[id] = 0;
 
        $('.pagination a', datas).each(function(index, value) {
            if ($(value).attr('href') != null && $(value).attr('href').indexOf(keySearch) != -1) {
                lastFind[id] = $(value).attr('href').substring(keySearch.length);
            }     
        });

Ensuite, on parse le code HTML de la dernière page en comptant le nombre de membres tout en tenant compte que c'est la Xième page (on peut donc en déduire le nombre de membres avant).
Code:
$.get(url+keySearch+lastFind[id], function(datas)
        {

            var totalElem = new Array();
            totalElem[id] = 0;   
            totalElem[id] = parseInt($('.grp_liste .grp_listememb', datas).length) + parseInt(lastFind[id]) - 1;
   
            console.log(totalElem[id]);
        });
    });
Voilà :p.

Là, le code affiche le nombre de membres dans la console. Nous on veut l'afficher dans les span qu'on avait créés, qui avaient pour ID :
#nb_vamp
#nb_necro
#nb_chim
#nb_zomb
#nb_lem

Chacun de ces id correspond à un groupe. On va donc un peu modifier notre code. D'abord on complète notre tableau des groupes :
Code:
var sectionUrl = ['/g3-lemures', '/g6-chimeres', '/g4-necromanciens', '/g7-vampires', '/g5-zombies'];
On peut faire correspondre chaque lien à un id, en modifiant notre tableau en objet :
Code:
var sectionUrl = {nb_lem:'/g3-lemures', nb_chim:'/g6-chimeres', nb_necro:'/g4-necromanciens', nb_vamp:'/g7-vampires', nb_zomb:'/g5-zombies'};

Et ensuite on met notre HTML :
Code:
Nb de vampires : <span id="nb_vamp"></span>
    Nb de lemures : <span id="nb_lem"></span>
    Nb de necromanciens : <span id="nb_necro"></span>
    Nb de zombies : <span id="nb_zomb"></span>
    Nb de chimères : <span id="nb_chim"></span>
Et ça fonctionneeeeeee !

Du coup, toi, tu dois juste mettre ce code :
Code:
var url = 'http://www.peekaboo-rpg.com';
var sectionUrl = {nb_lem:'/g3-lemures', nb_chim:'/g6-chimeres', nb_necro:'/g4-necromanciens', nb_vamp:'/g7-vampires', nb_zomb:'/g5-zombies'};

$.each(sectionUrl, function(id, link){
    var keySearch = link+'?start=';
    $.get(url+link, function(datas)
    {
        var lastFind = new Array();
        lastFind[id] = 0;
 
        $('.pagination a', datas).each(function(index, value) {
            if ($(value).attr('href') != null && $(value).attr('href').indexOf(keySearch) != -1) {
                lastFind[id] = $(value).attr('href').substring(keySearch.length);
            }     
        });
 
        $.get(url+keySearch+lastFind[id], function(datas)
        {

            var totalElem = new Array();
            totalElem[id] = 0;   
            totalElem[id] = parseInt($('.grp_liste .grp_listememb', datas).length) + parseInt(lastFind[id]) - 1;
   
            $('#'+id).html(totalElem[id]);
        });
    });
});
A la place de l'ancien ! Et ne rien toucher au HTML Wink. Et voilà Very Happy
Eluknow
avatar
Administrateur
Voir le profil de l'utilisateur
Messages : 2175
Coda'Points : 3877
Date d'inscription : 29/08/2013

Niveau en programmation
HTML/CSS:
3/3  (3/3)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
C'est magique
En plus c'est nettement plus court que l'ancien code Je pense que j'ai compris le fonctionnement global même si on est d'accord la réalisation était clairement pas à ma portée  

J'ai juste enlevé le -1 parce que j'ai enlevé le modo' du template donc il n'y a pas besoin de retirer 1 normalement :think:
Code:
totalElem[id] = parseInt($('.grp_liste .grp_listememb', datas).length) + parseInt(lastFind[id]) - 1;
Je l'ai juste enlevé dans cette ligne et ça fonctionne mais je sais pas si c'est correct comme il y a un autre -1 dans le code

En tous cas merci beaucoup omg
Rheah
avatar
Codeur VeryActif
Voir le profil de l'utilisateur
Messages : 35
Coda'Points : 165
Date d'inscription : 10/12/2015

Niveau en programmation
HTML/CSS:
0/0  (0/0)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Oui ! C'est plus optimisé aussi !

Oui, c'est bien ce 1 qu'il fallait enlever Wink.
Tu as vite compris le code !

Du coup c'est tout bon ?
Eluknow
avatar
Administrateur
Voir le profil de l'utilisateur
Messages : 2175
Coda'Points : 3877
Date d'inscription : 29/08/2013

Niveau en programmation
HTML/CSS:
3/3  (3/3)

Re: Petit complétage pour mon script qui compte les membres d'un groupe ♥  posté le :
Super ♥
Ouip c'est tout bon Very Happy
Rheah
avatar
Codeur VeryActif
Voir le profil de l'utilisateur
Messages : 35
Coda'Points : 165
Date d'inscription : 10/12/2015

Niveau en programmation
HTML/CSS:
0/0  (0/0)

Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
A Toi de Coder - Forum de codage :: L'entraide dans cet univers :: Besoin d'aide ? :: SOS - code-
Sauter vers: