Coupler deux scripts qui comptent les liens d'une page ♥ |
|
Aller à la page : 1, 2 |
Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 7 Aoû - 9:30 | Coucou Je viens vers vous parce que j'ai un petit soucis avec un script pour mon forum Enfin, plutôt qu'un soucis, c'est plus une incompréhension ~ Je ne suis pas douée avec le javascript et j'avoue que je pense m'y pencher vraiment et apprendre les bases quand j'aurais un peu plus de temps devant moi, néanmoins là tout de suite c'est du javascript que j'ai besoin pour ce que je veux faire et j'arrive au bout de mes capacités de déduction Enfin bref. Ce que je veux faire c'est, sur mon forum hébergé par forumactif, afficher les effectifs des groupes de mon forum sur la page d'accueil au niveau du QEEL. J'ai donc cherché sur internet et trouvé deux scripts qui pourraient me permettre de faire ce que je veux ! D'abord, dans ce sujet j'ai trouvé un script que j'ai adapté pour mon forum test et qui fonctionne à moitié : - Code:
-
<div id="vamp"></div> <p id="vampnombre"></p> <script> $("#vamp").load("g7-vampires form [name='post']", function(){ var n_vamps = $("#vamp a.gen").lenght-1; $("#vampnombre").html(n_vamps); }); </script> De ce que j'y comprends, il "appelle" la page du groupe correspondant et affiche sur le qeel la liste des membres de ce groupe (que je cacherais ensuite avec un display : none). Ensuite, il compte le nombre de liens auquel il enlève 1 pour que le modérateur du groupe ne soit pas compté et affiche le nombre correspondant dans l'élément qui a la class "vampnombre". J'ai bon, jusque-là ? Je crois que tel quel celui-ci ne fonctionne pas tel quel sur ma version de forum. Il appelle bien la partie de page concernée. Mais quoi que je fasse, il affiche "NaN", donc Not A Number, comme résultat. (Même si j'attribue une class "membres" aux liens qui m'intéressent, et en modifiant le code « var n_vamps = $("#vamp a.gen").lenght-1; » en « var n_vamps = $("#vamp .membres").lenght-1; », toujours ce NaN alors qu'il devrait être affiché 0 en théorie.) MAIS... ... Ensuite, sur ce sujet j'ai trouvé celui-ci (que j'ai encore une fois, adapté à mon forum test) : - Code:
-
<p>Nombre de vampires : <span id="vampnombre"></span></p> <iframe id="vamp" src="/g7-vampires"></iframe> <script> var iframe = document.getElementById('vamp'); iframe.onload = function compterLiens(){ var liens = iframe.contentWindow.document.body.getElementsByClassName("membres"); document.getElementById("vampnombre").textContent = liens.length; } </script> Et celui-ci fonctionne. Je le trouve plus simple, car celui-ci compte les occurrences de l'élément que je veux dans l'iframe donnée. En mettant une class "membres" aux liens que je veux compter, je n'ai pas besoin de retirer 1 pour enlever le modérateur, ce qui est chouette. En revanche (et c'est là qu'est le soucis principal o/) le deuxième code fonctionne avec les iframes et ça me gêne beaucoup parce que ça rajoute du chargement à la page. Je voudrais donc les "coupler" car le fonctionnement du deuxième me paraît plus simple mais le premier n'appelle que la partie de la page concernée et il y a donc moins de chargement. (Je crois ?) Seulement voilà, dans la théorie je comprends comment faire, mais dans la pratique, pas moyen de comprendre comment on construit un code javascript et le fait que le deuxième code ait "iframe" marqué partout m'embête tout le temps J'ai beau trifouiller des trucs, ça ne donne pas grand chose. Je me sens bête parce que je suis persuadée qu'il doit être aux simples pour des yeux aguerris au javascript, ahah. Help - p.s, la question bonus:
J'ai remarqué aussi qu'avec le deuxième code, lorsque j'essaie de continuer en affichant les effectifs d'un second groupe en utilisant le même code, comme ceci : - Code:
-
<p>Nombre de vampires : <span id="vampnombre"></span></p> <iframe id="vamp" style="display : none" src="/g7-vampires"></iframe> <script> var iframe = document.getElementById('vamp'); iframe.onload = function compterLiens(){ var liens = iframe.contentWindow.document.body.getElementsByClassName("membres"); document.getElementById("vampnombre").textContent = liens.length; } </script> <p>Nombre de lémures : <span id="lemnombre"></span></p> <iframe id="lem" style="display : none" src="/g3-lemures"></iframe> <script> var iframe = document.getElementById('lem'); iframe.onload = function compterLiens(){ var liens = iframe.contentWindow.document.body.getElementsByClassName("membres"); document.getElementById("lemnombre").textContent = liens.length; } </script> Les deux codes affichent un résultat, mais celui-ci est "0" pour les deux, l'effectif du groupe "Lémures", alors qu'il y a un membre dans l'autre groupe.
|
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 7 Aoû - 11:12 | Coucou Rheah ! C'est exactement le fonctionnement du système de quêtes du forum ! Alors je peux t'aider . Et le premier code est presque bon ! Bon etant en vacances sans internet fixe (partage de co') ca va être un peu compliqué mais je vais pouvoir t'aider ! Si tu veux, pour commencer, j'aimerais que tu lises un tuto' que j'ai rédigé qui concerne une partie du code qu'on utilisera : http://a-toi-de-coder.com/tutorials/3/33Tu me dis si tu as des questions ou un pb (peut être qu'il te faut un code exclusif pour le lire je ne sais plus. Si c'est le cas je t'en donnerai un ) |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 7 Aoû - 12:09 | Wow, réponse rapide ! Merci de prendre du temps pour moi pendant tes vacances Oh bah, justement j'étais arrivée sur ce tuto par hasard mais je ne m'y étais pas attardée parce que je ne savais pas que c'était sur le même principe Du coup après lecture et grâce à mes talents en anglais et à mes souvenirs de mes cours de maths sur les algorithmes je pense que j'ai à peu près compris le tuto. Je vois en quoi il rejoint ma demande sur le principe mais je t'avoue que je suis toujours perdue pour l'appliquer à ma situation, du coup :< |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 7 Aoû - 22:17 | Okay okay ! Alors, étant en vacs je vais essayer d'aller assez vite pour pas bouffer ma connexion internet de mon portable. Mais pourr ça j'ai besoin du lien de ton forum et du lien vers les groupes où sont affichés leurs effectifs . Je ferai le code après du coup . |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Lun 8 Aoû - 12:28 | le problème et que le premier script fait appel à Jquery (enfin je croit) alors que le deuxième et en JS pur. Donc serte les iframe ralentisse légèrement mais l'importation Jquery (si tu ne l'utilise que pour ça) aussi. |
| loulou123546 Codeur VeryActif |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Lun 8 Aoû - 12:36 | Ca n'a rien à voir : Fa importe de lui même jQuery . |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Lun 8 Aoû - 12:47 | |
| loulou123546 Codeur VeryActif |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Lun 8 Aoû - 12:56 | J'ai testé sur Atdc et ce que je pensais fonctionne donc ça va être cool on a la solution . Dès que tu m'as donné tes liens je m'occupe du reste en t'expliquant le code . |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Lun 8 Aoû - 15:05 | |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Lun 8 Aoû - 19:34 | Sympa la chatbox ouverte aux invités avec i-tchat.com ! Alors, on utilise le script du tuto : - Code:
-
$(document).ready(function(){ $.get('http://a-toi-de-coder.forumactif.org/search?domains=a-toi-de-coder.forumactif.org&sitesearch=a-toi-de-coder.forumactif.org&ie=utf-8&oe=utf-8&hl=fr&search_author=Eluknow&search_where=f1&sort_dir=DESC', function(pageDatas) { var topics = $('.topictitle', pageDatas); if(topics.length){ // C'est ok, le membre a posté dans ce sous forum ! } }); }); On modifie avec nos infos : On va chercher le lien du groupe qu'on veut : - Code:
-
$(document).ready(function(){ $.get('http://test-pab.creer-forum.com/g7-vampires', function(pageDatas) { var topics = $('.topictitle', pageDatas); if(topics.length){ // C'est ok, le membre a posté dans ce sous forum ! } }); }); On modifie les variables pour que ce soit plus explicite et on remplit nos conditions ! - Code:
-
$(document).ready(function(){ $.get('http://test-pab.creer-forum.com/g7-vampires', function(pageDatas) { var members= $('a.gen strong', pageDatas); if(members.length-1 >= 1){ alert(members.length-1); } else{ alert('Il n'y a aucun membre dans le groupe'); } }); }); Mais là y'a des bugs alors on met ce code : - Code:
-
$(document).ready(function(){ $.get('http://test-pab.creer-forum.com/g7-vampires', function(pageDatas) { var members= $('a.gen strong', pageDatas); if(members.length-1 >= 1){ alert(members.length-1); } else{ alert('Il n\'y a aucun membre dans le groupe'); } }); }); Là, tu mets ce code dans une page HTML (modules) de ton forum, entre balises script (code en dessous), en cochant "utiliser l'entête du forum" et tu auras dans une popup le nombre de membres du groupe . On voit la suite après ! code : - Code:
-
<script>$(document).ready(function(){ $.get('http://test-pab.creer-forum.com/g7-vampires', function(pageDatas) { var members= $('a.gen strong', pageDatas); if(members.length-1 >= 1){ alert(members.length-1); } else{ alert('Il n\'y a aucun membre dans le groupe'); } }); });</script> Si t'as des questions sur le code tu me le dis mais je fais rapide de manière à ne pas bouffer ma connexion internet ! |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Mar 9 Aoû - 16:38 | Je teste ça ce week-end et je reviens vers toi o/ En ce moment quand je rentre du taf je m'écroule et j'ai tout sauf l'envie de coder Et je t'ai dis, prend pas tout ton crédit internet pour ça, ça peut attendre que tu rentres o/ En revanche j'avoue que l'idée de la pop-up me plaît pas trop, je voulais vraiment intégrer les effectifs au sein de mon qeel en fait |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Mar 9 Aoû - 17:38 | D'accord . Je rentre le 22 . Oui oui t'en fais pas ! On va pas garder ça . Ca c'est un test pour voir si ça fonctionne sur ton forum . Si la popup s'affiche c'esr que ce sera bon ! |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Sam 13 Aoû - 11:48 | |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Sam 13 Aoû - 11:50 | Problème d'id alors. Là je suis sur la route pour rentrer chez moi. Je regarde ce soir, j'espère avoir le temps . |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Sam 13 Aoû - 19:31 | Ok pas de problème uhuh o/ |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Sam 13 Aoû - 23:49 | Essaie avec ça : (j'ai modifié le sélecteur) - Code:
-
<script>$(document).ready(function(){ $.get('http://test-pab.creer-forum.com/g7-vampires', function(pageDatas) { var members= $('.row2 a span strong', pageDatas); if(members.length-1 >= 1){ alert(members.length-1); } else{ alert('Il n\'y a aucun membre dans le groupe'); } }); });</script> |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 14 Aoû - 9:17 | |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 14 Aoû - 9:36 | D'accord !
Peux-tu me passer le code ton Qeel maintenant ? |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 14 Aoû - 12:29 | Je te mets la partie du qeel où je voulais afficher ça en hide, du coup : Comme tu peux le voir j'ai prévu un endroit pour les effectifs avec "00" à chaque fois Par contre j'sais pas si ça restera sous cette forme avec les infobulles et tout, j'ai pas forcément trop fini de coder le qeel |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 21 Aoû - 16:01 | Coucou Je suis de retour ! Toujours prêt pour reprendre la commande ? ; |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Lun 22 Aoû - 20:31 | Bon retour :B Je serais prête samedi eheh |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Sam 27 Aoû - 15:09 | *met sa casquette* Chef oui chef, je suis prête |
| Invité Invité |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Sam 27 Aoû - 16:38 | Parfait ! Alors on commence ça demain ou lundi ! . |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Dim 28 Aoû - 22:39 | On voit ca demain du coup, là je suis très fatigué et j'ai mal au bide... Désolé ! |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : Lun 29 Aoû - 11:07 | Coucou Alors, on va d'abord nommer (avec un id) chaque strong dans lequel il y a le fameux nombre. Par exemple, pour les vampires, on a : J'ai donc mis l'id "nb_vampires" à la balise strong. Tu dois faire ça avec tous les groupes. De la même manière. Par exemple, avec les nécromanciens : Ensuite, à la fin de ton template index_body où il y'a le qeel, tu vas mettre le script qu'on va construire ensemble maintenant. Déjà, on n'oublie pas les balises - Code:
-
<script></script> Ensuite, on va reprendre notre code : - Code:
-
<script>$(document).ready(function(){ $.get('http://test-pab.creer-forum.com/g7-vampires', function(pageDatas) { var members= $('.row2 a span strong', pageDatas); if(members.length-1 >= 1){ alert(members.length-1); } else{ alert('Il n\'y a aucun membre dans le groupe'); } }); });</script> Sauf qu'on va remplacer les fonctions alert par du jQuery qui permet de sélectionner le contenu d'une balise et qui le remplace. On va donc sélectionner notre strong : - Code:
-
$('#nb_vampires') Puis remplacer son contenu par le nombre de personnes dans le groupe : - Code:
-
$('#nb_vampires').html(members.length-1); Et on fait pareil quand il n'y a pas de membres dans le groupe : - Code:
-
<script>$(document).ready(function(){ $.get('http://test-pab.creer-forum.com/g7-vampires', function(pageDatas) { var members= $('.row2 a span strong', pageDatas); if(members.length-1 >= 1){ $('#nb_vampires').html(members.length-1); } else{ $('#nb_vampires').html('00'); } }); });</script> Et on doit faire ça avec tous les groupes. Par exemple, si on le fait avec le groupe nécromanciens : - Code:
-
<script>$(document).ready(function(){ $.get('http://test-pab.creer-forum.com/g7-vampires', function(pageDatas) { var members= $('.row2 a span strong', pageDatas); if(members.length-1 >= 1){ $('#nb_vampires').html(members.length-1); } else{ $('#nb_vampires').html('00'); } }); $.get('http://test-pab.creer-forum.com/g4-necromanciens', function(pageDatas) { var members= $('.row2 a span strong', pageDatas); if(members.length-1 >= 1){ $('#nb_necromanciens').html(members.length-1); } else{ $('#nb_necromanciens').html('00'); } }); });</script> As-tu compris ? Tu fais ça avec chaque groupe ? |
| Eluknow Administrateur |
|
Re: Coupler deux scripts qui comptent les liens d'une page ♥ posté le : | |
| |
|