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
Messages : 37
Coda'Points : 169
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
Messages : 2185
Coda'Points : 3896
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
Messages : 37
Coda'Points : 169
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
Messages : 2185
Coda'Points : 3896
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
Messages : 37
Coda'Points : 169
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
Messages : 2185
Coda'Points : 3896
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
Messages : 37
Coda'Points : 169
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
Messages : 2185
Coda'Points : 3896
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
Messages : 37
Coda'Points : 169
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
Messages : 2185
Coda'Points : 3896
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
Messages : 37
Coda'Points : 169
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
Messages : 2185
Coda'Points : 3896
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
Messages : 37
Coda'Points : 169
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 :
C'est re-moi ! Désolée du double-post, mais j'ai un nouveau souci avec le script

Apparemment il ne compte pas au-delà de 20 membres :< J'ai le groupe "Nécromanciens" qui vient de passer à 21 membres (donc y'a un membre tout seul en page 3), cf ici : http://www.peekaboo-rpg.com/g4-necromanciens
et y'a pas moyen de le faire prendre en compte la page 3 alors qu'elle a un ?start= comme la page 2

Pour rappel on était arrivés à ça :
Code:
     <script>
        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;
  
        $('.paginasuj 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]);
    
            $('#'+id).html(totalElem[id]);
        });
    });
});</script>

<div class="groupe_info">
        <a class="grp glem" href="/g3-lemures"></a>
        <div>
            <div class="grbul">
              Lémures
              <strong id="nb_lem">00</strong>
            </div>
        </div>
      </div>
      <div class="groupe_info">
        <a class="grp gnec" href="/g4-necromanciens"></a>
        <div>
            <div class="grbul">
              Nécromanciens
              <strong id="nb_necro">00</strong>
            </div>
        </div>
      </div>
      <div class="groupe_info">
        <a class="grp gchim" href="/g6-chimeres"></a>
        <div>
            <div class="grbul">
              Chimère
              <strong id="nb_chim">00</strong>
            </div>
        </div>
      </div>
      <div class="groupe_info">
        <a class="grp gvamp" href="/g7-vampires"></a>
        <div>
            <div class="grbul">
              Vampires
              <strong id="nb_vamp">00</strong>
            </div>
        </div>
      </div>
      <div class="groupe_info">
        <a class="grp gzomb" href="/g5-zombies"></a>
        <div>
            <div class="grbul">
              Zombies
              <strong id="nb_zomb">00</strong>
            </div>
        </div>
      </div>
      <div class="groupe_info">
        <a class="grp gpnj"></a>
        <div>
            <div class="grbul">
              PNJ
              <strong>La Faucheuse</strong>
            </div>
        </div>
      </div>
      <div class="groupe_info">
        <a class="grp gnval"></a>
        <div>
            <div class="grbul">
              Non-validés
            </div>
        </div>
      </div>
      <div class="groupe_info">
        <a class="grp gfiche"></a>
        <div>
            <div class="grbul">
              Les nuls qui font traîner leur fiche
            </div>
        </div>
      </div>

Et ça fonctionnait bien donc je pensais avoir bien compris le code, mais là j'arrive pas à comprendre pourquoi la page 3 n'est pas prise en compte de la même façon que la page 2
Rheah
avatar
Codeur VeryActif
Messages : 37
Coda'Points : 169
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 :
Salut Wink

Bon, déjà, très beau fofo, j'adore le design ahah.

Concernant l'aide, tout passe désormais sur le site d'A-toi-de-coder : http://www.a-toi-de-coder.com (je ferai un message groupé en septembre).

Mais là en regardant vite fait, je ne vois pas pourquoi et vu que je suis en vacs, j'ai un peu de mal à regarder vraiment xD.

Eluknow
avatar
Administrateur
Messages : 2185
Coda'Points : 3896
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.

Je ne compte pas m'inscrire sur le site, donc... tant pis, i guess
Rheah
avatar
Codeur VeryActif
Messages : 37
Coda'Points : 169
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 :
Contenu sponsorisé


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: