Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Mar 6 Oct 2015 - 13:05

Bonjour à toutes et à tous^^

Alors voilà, je vous expose mon besoin.

Je suis fondateur d'un forum de jeu de rôle. Sur ce forum, il y a différentes factions.
L'idée de base, ce serait que les effectifs de chaque faction s'affichent automatiquement sur l'image d'accueil, à des endroits que j'aurais "mappé" (ça, je gère).

Là où je bloque, c'est pour trouver le code pour que ça se fasse. D'après vous, serait ce possible? Et si oui, comment?

A savoir: je suis en phpBB2, et l'image d'accueil possède des liens créés par "mappage" en HTML.

Voici le lien de mon forum:
http://rpgssmondedestenebre.forumsgratuits.fr/


Merci par avance.

Cordialement,

Dnumroj

EDIT: Sinon, je pensai à une solution de contournement, que je ne saurai pas faire non plus:(
Ce serait un script qui indique le nombre de sujet créé dans un sujet en particulier sur l'image (dans mon forum, on a un forum caché aux membres qui ne font pas parti du staff, et dans lequel on répertorie tous les membres en fonction de leur faction).

EDIT 2:
Pour le formulaire, j'ai farfouillé un peu partout, et j'ai pu créer ceci:

Code:
<HTML>
   <style>
   form {
       margin: 0 auto;
       width: 455px;
       padding: 1em;
       border: 1px solid #CCC;
       border-radius: 1em;    
   }
    form div + div {
       margin-top: 1em;
   }
    label {
       display: inline-block;
       width: 450px;     
       height: 20px;     
       text-align: left; 
       font-family: Arial;
       color: #4f4f4f;   
       font-size: 12pt;    
   }
    input, textarea {
         font: 1em arial;
         font-size: 12pt;
       width: 250px;
       height: 20px;
       -moz-box-sizing: border-box;
       box-sizing: border-box;
       border: 1px solid #CCC;
   }
   input:focus, textarea:focus {
       border-color: #000;
   }
    textarea {
       vertical-align: top;
       height: 150px;
   }
   </style>
   <form class="form" method="post" action="/post" name="formulaire" enctype="multipart/form-data" onsubmit="envoiMessage(this);">
       <input type="hidden" name="lt" value="0" />
       <input type="hidden" name="mode" value="newtopic" />
       <input type="hidden" name="auth[]" value="" />
       <input type="hidden" name="topictype" value="0" />
       <input type="hidden" name="message" value="" />
       <input type="hidden" name="f" value="196" />
       <p>   <blockquote><label for="Titre">Titre :</label><input type="text" name="subject" id="titre" value="[Rang]Pseudo du armure"/></p>
   <H1><center><B><U>Nouveau Membre</U></B></center></H1>
       <p><blockquote>
           <label for="Nom">Nom :</label><input tabindex=”1” id="Nom" name="Nom" />
       </p>
       <p><blockquote>
           <label for="Prenom">Prénom :</label><input tabindex=”2” id="Prenom" name="Prenom" />
       </p>   
       <p><blockquote>
           <label for="Pseudo">Pseudo :</label><input tabindex=”4” id="Pseudo" name="Pseudo" />
       </p>
   <p><blockquote>
           <label for="Faction">Faction:</label> <select name="Faction"><option value="Athena">Athéna</option>
           <option>Poséidon</option>
           <option>Odin</option>
           <option>Hadès</option>
           <option>Eris</option>
           <option>Loki</option>
           <option selected>Neutre</option>
           <option>PNJ</option>
   </select>
       </p>
       <p><blockquote>
           <label for="Armure">Armure :</label><input tabindex=”5” id="Armure" name="Armure" />
       </p>
       <p><blockquote>
           <label for="Rang">Rang:</label> <select name="rang"><option value="Gold">Gold</option>
           <option>Silver</option>
           <option>Bronze</option>
           <option selected>Apprenti</option>
           <option>Renégat</option>
           <option>PNJ</option>
   </select>
       </p>
       <p><blockquote>
         <label for="Obtention">Obtention:</label> <select name="Obtention"><option> Oui</option>
           <option selected>Non</option>
   </select>
       </p>
       <p><hr>
       </p>
           <p>
<center><input tabindex=”6” value="Envoyer" type="submit" /></center>
 </p>
           <p>
           <center><INPUT tabindex=”7” type="reset"></center>
       </p>
   </form>
   </HTML>

Maintenant, ce qu'il me reste à faire, c'est de:

•Trouver où insérer ce formulaire pour qu'on puisse le remplir seulement dans le forum caché réservé au staff du forum.
•Trouver comment faire en sorte que les informations transmises par ce formulaire se répercutent sur l'image d'accueil (la zone mappée), et dans un autre sujet.=> Utilisation de if et else
•M'assurer qu'on puisse modifier le formulaire par la suite (en cas de départ d'un membre, ou de sa migration).




Dernière édition par Dnumroj le Lun 2 Nov 2015 - 8:33, édité 3 fois
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Mer 7 Oct 2015 - 13:05

Un petit up, svp^^
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Jeu 8 Oct 2015 - 10:46

Salut Dnumroj,


Je ne vais pas avoir le temps de t'aider pas à pas mais je vais te donner des pistes pour te permettre de faire ce que tu veux :

1) La fonction .load() de jquery : http://api.jquery.com/load/
avec lancement d'une fonction à l'issue du load

2) Utilisation d'un .length sur les a.gen de la liste des membres dans un groupe après avoir récupéré la page

3) L'utilisation d'un tableau javascript : http://www.w3schools.com/js/js_arrays.asp
Voir en particulier la partie Looping Array Elements

4) Utile à savoir : La function sera appelée dans la boucle "for" mais écrite en dehors de cette boucle en utilisant les variables correspondantes.
C'est un piège auquel je me suis faite avoir, si tu l'écris dans la boucle for comme on est tenté de le faire la boucle continue même si la partie de la page voulue n'est pas entièrement chargée et tu peux te retrouver avec toutes tes valeurs voulues à la fin.
Exemple :

Code:
var index;
var fruits = ["Banana", "Orange", "Apple", "Mango"];
for   (index = 0; index < fruits.length; index++) {
  function truc(index, fruits[index]);
}

function truc(index, fruits[index]){

les trucs à faire dans la fonction

}


On va se servir de tout ça pour :
1) appeler une page d'un groupe
2) Calculer combien il y a de membres dans le groupe
3) Automatiser la fonction pour ne pas réécrire le code pour chaque groupe, ce qui serait fastidieux si tu en as beaucoup.

L'étape d'automatisation est optionnelle si tu as du mal avec elle, tu peux écrire la fonction pour chaque groupe même si ce sera laborieux (en clair : tu peux te passer d'utiliser un array et une boucle for, mais ça te fera beaucoup de code presque identique à écrire !)


Voilà, ça devrait t'aider quand même Smile

ps : Bien sûr le mieux est que tu commences pour juste un groupe avant de te préoccuper d'automatiser la fonction Smile
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Jeu 8 Oct 2015 - 11:23

Super^^
Je te remercie infiniment pour ces astuces, Evaliah, car je ne voyait pas trop comment m'y prendre^^

Je m'y met de suite Smile

EDIT:
Bon, alors, pour la fonction load, je pense avoir bien saisi, mais je suis complètement largué pour la fonction length et a.gen. (j'ai lu et relu les cours openclassroom, mais ça reste très obscur pour moi^^

Par contre, en cherchant de nouveaux tutos sur l'ajax, je suis tombé là dessus:

http://www.jmdoudoux.fr/java/dej/chap-ajax.htm#ajax-1

On y parle de DWR, et les exemples donnés semblent aller dans le sens de ce que je recherche, en fait, mais qu'en pensez vous, svp?

EDIT 2: Hier j'avais pas les yeux en face des trous, je pense que je commence à mieux comprendre^^
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Ven 9 Oct 2015 - 15:28

Voilà, j'ai tenté un petit truc, grâce au lien que tu m'as donné^^

Voici le code qui irait donc dans la partie mappé de la page d'accueil:

Code:
[...]
<p id=athena></p>
<SCRIPT>
$("#eathena").load("formulaire.html#Faction");
if(eathena="Athena"){
var efAthena=undefined
function efAthena(athena){
return athena ++
}
onchange="function efAthena(athena){
return athena-1
}
document.getElementById("athena).innerHTML=efAthena
}else{
var efAthena=athena
document.getElementById("athena).innerHTML=efAthena
}
</SCRIPT>
[...]

Et le formulaire HTML donnerait ceci:

Code:
<HTML>
   <style>
   form {
       margin: 0 auto;
       width: 455px;
       padding: 1em;
       border: 1px solid #CCC;
       border-radius: 1em;    
   }
    form div + div {
       margin-top: 1em;
   }
    label {
       display: inline-block;
       width: 450px;     
       height: 20px;     
       text-align: left; 
       font-family: Arial;
       color: #4f4f4f;   
       font-size: 12pt;    
   }
    input, textarea {
         font: 1em arial;
         font-size: 12pt;
       width: 250px;
       height: 20px;
       -moz-box-sizing: border-box;
       box-sizing: border-box;
       border: 1px solid #CCC;
   }
   input:focus, textarea:focus {
       border-color: #000;
   }
    textarea {
       vertical-align: top;
       height: 150px;
   }
   </style>
   <form class="form" method="post" action="/post" name="formulaire" enctype="multipart/form-data" onsubmit="envoiMessage(this);">
       <input type="hidden" name="lt" value="0" />
       <input type="hidden" name="mode" value="newtopic" />
       <input type="hidden" name="auth[]" value="" />
       <input type="hidden" name="topictype" value="0" />
       <input type="hidden" name="message" value="" />
       <input type="hidden" name="f" value="196" />
       <p>   <blockquote><label for="Titre">Titre :</label><input type="text" name="subject" id="titre" value="[Rang]Pseudo du armure"/></p>
   <H1><center><B><U>Nouveau Membre</U></B></center></H1>
       <p><blockquote>
           <label for="Nom">Nom :</label><input tabindex=”1” id="Nom" name="Nom" />
       </p>
       <p><blockquote>
           <label for="Prenom">Prénom :</label><input tabindex=”2” id="Prenom" name="Prenom" />
       </p>   
       <p><blockquote>
           <label for="Pseudo">Pseudo :</label><input tabindex=”4” id="Pseudo" name="Pseudo" />
       </p>
   <p><blockquote>
           <label for="Faction">Faction:</label> <select name="Faction" id=”Faction” ><option>Athena</option>
           <option>Poseidon</option>
           <option>Odin</option>
           <option>Hades</option>
           <option>Eris</option>
           <option>Loki</option>
           <option selected>Apprenti</option>
           <option >Renegat</option>
           <option>PNJ</option>
           <option>Inactifs</option>
   </select>
       </p>
       <p><blockquote>
           <label for="Armure">Armure :</label><input tabindex=”5” id="Armure" name="Armure" />
       </p>
       <p><blockquote>
           <label for="Rang">Rang:</label> <select name="rang" id=”Rang” ><option >Gold</option>
           <option>Silver</option>
           <option>Bronze</option>
           <option selected>Apprenti</option>
           <option>Renégat</option>
           <option>PNJ</option>
   </select>
       </p>
       <p><blockquote>
         <label for="Obtention">Obtention:</label> <select name="Obtention" id=”Obtention”><option> Oui</option>
           <option selected>Non</option>
   </select>
       </p>
       <p><hr>
       </p>
           <p>
<center><input tabindex=”6” value="Envoyer" type="submit" /></center>
 </p>
           <p>
           <center><INPUT tabindex=”7” type="reset"></center>
       </p>
   </form>
   </HTML>

Suis je sur la bonne voie, svp?
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Ven 9 Oct 2015 - 15:48

Yop !

Je ne comprends pas bien l'intérêt de ton formulaire du coup, si le but est d'avoir les effectifs des membres de chaque groupe sur la page d'accueil pourquoi ne pas appeler la page correspondant aux effectifs d'un groupe ?
Comme l'information existe déjà sur la page de groupe pourquoi ne pas la prendre à la source ? En effet cette page (groupe) se modifie d'elle-même selon les entrées-sorties dans un groupe donc difficile d'être plus à jour !
A moins que je n'aie pas compris ce que tu voulais faire exactement ?
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Ven 9 Oct 2015 - 22:52

En fait, ce serait l'idée de base (et ça me simplifierait la vie)^^
Je suis parti sur le formulaire, car je ne sais pas où trouver les membres d'un groupe.
Mais du coup, la page à appeler, c'est quoi?

Je pense avoir trouvé "memberrow.GROUPS", dans "memberlist_body"... La page à appeler serait donc memberlist_body?
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Sam 10 Oct 2015 - 1:04

Eh bien la page d'un groupe ça va par exemple ici être :
https://forum.forumactif.com/g497-moderactifs-moderactives

Mais tu peux la simplifier en /g497- tant que tu utilises le js sur le même forum.

Par exemple ton petit bout de js appelant cette page serait :
Code:
$(".truc").load("/g497-", function(){
    ta fonction à exécuter une fois la page chargée
});

Sachant que tu n'as pas besoin de charger l'entièreté de la page, le tableau suffit, donc tu peux faire par exemple :
Code:
$(".truc").load('/g497- form[name="post"]', function(){
    ta fonction à exécuter une fois la page chargée
});

Il faut tout simplement que tu ailles dans les groupes de ton forum, tu trouveras les g + chiffre/nombre correspondant à tes groupes Smile
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Mer 14 Oct 2015 - 12:21

Yop, merci encore pour ton aide précieuse^^

Du coup, pour le chargement de la page, je vois, grâce à ton explication comment faire, no soucy^^

En revanche, je bloque sur 2 points, maintenant :/

Le premier, c'est comment passer d'une liste de membre à un nombre de membres.
Le second, c'est comment transformer chaque ligne du tableau en une seule et unique variable.

L'idée étant que seul l'effectif du groupe apparaisse (en gros, s'il y a un membre, il apparaisse 1. S'il y en a 20, apparaisse 20).

Je cogite pour le moment sur:

http://rpgssmondedestenebre.forumsgratuits.fr/g10-apprentis

Sur lequel on a deux tableaux. Le premier qui indique que j'en suis modérateur, et le second qui affiche les membres du groupe.

Il me faut donc trouver un moyen de ne prendre que le second tableau pour compter les membres.
C'est là où je bloque.

J'ai fini cependant par tomber là dessus dans "memberlist_body" (Pnx adm/affichage/template/Général)

Dans lequel on trouve le CSS suivant:

Code:
<form action="{S_MODE_ACTION}" method="get">
<table cellspacing="0" cellpadding="5" border="0" align="center" class="forumline" width="100%">
   <tr>
      <th class="thTop" nowrap="nowrap">{L_ORDER_OR_SELECT}</th>
   </tr>
   <tr>
      <td class="row1">
      <table cellspacing="2" cellpadding="0" border="0" align="center" class="genmed">
         <tr>
            <td width="100%">{L_USER_SELECT}&nbsp;<input type="text" class="post" name="username" maxlength="25" size="20" value="{L_USER_SELECT_VALUE}" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            {L_SELECT_SORT_METHOD}&nbsp;{S_MODE_SELECT}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            {L_ORDER}&nbsp;{S_ORDER_SELECT}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            {S_HIDDEN_SID}
            <input class="liteoption" type="submit" name="submit" value="{L_SUBMIT}" /></td>
         </tr>
      </table>
      </td>
   </tr>
</table>
</form>
<table class="forumline" width="100%" border="0" cellspacing="1" cellpadding="0">
   <tr>
      <th class="thCornerL" nowrap="nowrap" height="25">#</th>
      <th class="thTop" nowrap="nowrap">{L_AVATAR}</th>
      <th class="thTop" nowrap="nowrap">{L_USERNAME}</th>
      <!-- BEGIN switch_th_group -->
      <th class="thTop" nowrap="nowrap">{L_GROUPS}</th>
      <!-- END switch_th_group -->
      <th class="thTop" nowrap="nowrap">{L_INTERESTS}</th>
      <th class="thTop" nowrap="nowrap">{L_JOINED}</th>
      <th class="thTop" nowrap="nowrap">{L_VISITED}</th>
      <th class="thTop" nowrap="nowrap">{L_POSTS}</th>
      <th class="thTop" nowrap="nowrap">{L_PM}</th>
      <th class="thCornerR" nowrap="nowrap">{L_WEBSITE}</th>
   </tr>
   <!-- BEGIN memberrow -->
   <tr>
      <td class="{memberrow.ROW_CLASS}" align="center"><span class="gen">&nbsp;{memberrow.ROW_NUMBER}&nbsp;</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center"><div class="avatar mini"><a href="{memberrow.U_VIEWPROFILE}">{memberrow.AVATAR_IMG}</a></div></td>
      <td class="{memberrow.ROW_CLASS}" align="center"><span class="gen"><a class="gen" href="{memberrow.U_VIEWPROFILE}">{memberrow.USERNAME}</a></span></td>
      <!-- BEGIN switch_td_group -->
      <td class="{memberrow.ROW_CLASS}" align="center"><span class="gen">{memberrow.GROUPS}</span></td>
      <!-- END switch_td_group -->
      <td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.INTERESTS}</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gensmall">{memberrow.JOINED}</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gensmall">{memberrow.LASTVISIT}</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.POSTS}</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center">&nbsp;{memberrow.PM_IMG}&nbsp;</td>
      <td class="{memberrow.ROW_CLASS}" align="center">&nbsp;{memberrow.WWW_IMG}&nbsp;</td>
   </tr>
   <!-- END memberrow -->
   <!-- BEGIN switch_no_user -->
   <tr>
      <td class="catBottom" colspan="{switch_no_user.COLSPAN_NUMBER}" height="28" align="center"><span class="gensmall">{switch_no_user.L_NO_USER}</span></td>
   </tr>
   <!-- END switch_no_user -->
</table>
<!-- BEGIN switch_pagination -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
   <tr>
      <td><span class="nav">{PAGE_NUMBER}</span></td>
      <td align="right"><span class="nav">{PAGINATION}</span></td>
   </tr>
</table>
<br />
<!-- END switch_pagination -->

Pour ce qui est de mon souci, je pense que ce qui importe est cette partie là:

Code:
<!-- BEGIN memberrow -->
   <tr>
      <td class="{memberrow.ROW_CLASS}" align="center"><span class="gen">&nbsp;{memberrow.ROW_NUMBER}&nbsp;</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center"><div class="avatar mini"><a href="{memberrow.U_VIEWPROFILE}">{memberrow.AVATAR_IMG}</a></div></td>
      <td class="{memberrow.ROW_CLASS}" align="center"><span class="gen"><a class="gen" href="{memberrow.U_VIEWPROFILE}">{memberrow.USERNAME}</a></span></td>
      <!-- BEGIN switch_td_group -->
      <td class="{memberrow.ROW_CLASS}" align="center"><span class="gen">{memberrow.GROUPS}</span></td>
      <!-- END switch_td_group -->
      <td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.INTERESTS}</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gensmall">{memberrow.JOINED}</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gensmall">{memberrow.LASTVISIT}</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen">{memberrow.POSTS}</span></td>
      <td class="{memberrow.ROW_CLASS}" align="center">&nbsp;{memberrow.PM_IMG}&nbsp;</td>
      <td class="{memberrow.ROW_CLASS}" align="center">&nbsp;{memberrow.WWW_IMG}&nbsp;</td>
   </tr>
   <!-- END memberrow -->
   <!-- BEGIN switch_no_user -->
   <tr>
      <td class="catBottom" colspan="{switch_no_user.COLSPAN_NUMBER}" height="28" align="center"><span class="gensmall">{switch_no_user.L_NO_USER}</span></td>
   </tr>
   <!-- END switch_no_user -->

Si je devais cibler, je dirais même:

Code:
<td class="{memberrow.ROW_CLASS}" align="center"><span class="gen">&nbsp;{memberrow.ROW_NUMBER}&nbsp;</span></td>

Mais je bloque.
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Mer 14 Oct 2015 - 12:30

Hello Smile

Alors déjà ne te soucie pas de ta ligne de modérateur, il te suffira de soustraire 1 à ton nombre de membres obtenus et ce sera très bien sans te compliquer la vie plus que ça Smile

Ensuite si tu n'as pas changé ton template il faut que tu te souviennes de ce que je t'avais dit en 2) :
Utilisation d'un .length sur les a.gen de la liste des membres dans un groupe après avoir récupéré la page

Si tu as eu la curiosité de regarder à quoi rimait le .length tu auras vu qu'il permet de compter le nombre d'éléments présents quelque part.
https://api.jquery.com/length/
Dans ton template tu remarques comme je te l'avais signalé que seuls les noms des membres peuvent être appelés par un a.gen , les autres données n'en sont pas.
Donc si tu les comptes tu auras bien ton nombre de membres et à moins d'avoir touché à ton template pour le modérateur il te suffira de retirer un à la variable obtenue Smile

Tu vas y arriver tu y es presque !
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Mer 14 Oct 2015 - 20:09

Effectivement, je comprends mieux^^
J'avais mal compris le lenght. Je pensais qu'il compterait que les caractères, donc je voyais pas trop comment l'utiliser^^

Du coup, je me replonge la dedans Wink

Merci beaucoup^^
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Jeu 22 Oct 2015 - 10:47

Yop^^
Je me suis donc re penché sur mon souci.
Mais il apparait que g10 est la page pour toutes mes factions. Donc, logiqueement, si je fais un load("/g10-"), j'aurai tout les membres du forum qui s'afficheront, non?

Me basant là dessus, j'ai eu l'idée de ce script:

Code:
<p id=apprenti></p>
<SCRIPT>
$("a.gen").load("g10-apprenti form [name='post']", function(document.getElementById("apprenti").innerHTML=a.gen.lenght-1);
</SCRIPT>

Et pour ma faction:

Code:
<p id=loki></p>
<SCRIPT>
$("a.gen").load("g10-arcanes form [name='post']", function(document.getElementById("loki").innerHTML=a.gen.lenght);
</SCRIPT>

J'ai bon (pour la fonction for, je pense qu'elle est inutile, puisque les factions se mettent automatiquement à jour)?


Dernière édition par Dnumroj le Mer 28 Oct 2015 - 11:37, édité 2 fois
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Lun 26 Oct 2015 - 22:56

Petit up, svp^^
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Mer 28 Oct 2015 - 11:23

Petit up^^
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Mer 28 Oct 2015 - 13:49

Me revoilà !

Mais pourquoi ne fais-tu pas un groupe par faction ? FA permet de faire plein de groupes donc c'est ce qui serait le plus rationnel non ?
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Mer 28 Oct 2015 - 19:54

Comment ça?
C'est pas ce que je fais? confused

Code:
<p id=apprenti></p>

Ca, c'est une des faction.

Code:
<p id=loki></p>

Et ça une seconde.

Je suis perdu Sad

Que me manque t il? Le code actuel, quel est son effet, svp?

A mon sens, il va chercher dans la page des différents groupe (apprenti, arcanes, ...) la liste des membre, et les additionner pour afficher le tout dans le html.
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Jeu 29 Oct 2015 - 8:21

Yop,

Dans ton message précédent tu as marqué ceci :
Mais il apparait que g10 est la page pour toutes mes factions. Donc, logiqueement, si je fais un load("/g10-"), j'aurai tout les membres du forum qui s'afficheront, non?

Ce qui veut donc dire que tu n'as pas une page différente par groupe, si ?
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Jeu 29 Oct 2015 - 10:06

Au moment où j'avais posté, je voyais tous mes groupes en g10. Aujourd'hui, ils sont tous différents ><

Pas assez de caféine ou de sommeil... Ou bien un bug passager, je sais pas :$

Du coup, je dois changer:

Code:
$("a.gen").load("g10-arcanes form [name='post']", function(document.getElementById("loki").innerHTML=a.gen.lenght);

Par

Code:
$("a.gen").load("g8 form [name='post']", function(document.getElementById("loki").innerHTML=a.gen.lenght);
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Jeu 29 Oct 2015 - 14:24

Alors ce n'est pas tout à fait ça en fait.

Tu peux reprendre le bout de code que je t'avais montré :

Code:
$(".truc").load('/g497- form[name="post"]', function(){
    ta fonction à exécuter une fois la page chargée
});

Attention au début. Mon .truc c'est l'endroit où va se charger la page /g497- dans la page sur laquelle on se trouve (page d'accueil dans ton cas).
Autrement dit le formulaire ayant pour nom "post" dans la page /g497- va se charger dans mon élément de class "truc" de ma page d'accueil.

Si tu fais comme tu l'as mis tu vas charger ta page dans tous les a.gen que la fonction va trouver sur ta page d'accueil... Et ce n'est pas du tout ce que tu veux !

Du coup tu dois remplacer mon ".truc" par ce qui va correspondre à l'endroit où tu veux charger la page.
(donc par un élément qui sera uniquement utilisé pour le groupe ciblé, ici le groupe g497)

Attention également à la dénomination de la page de groupe. Il ne faut pas oublier le - qui suit le nombre car sinon ça ne marchera généralement pas.

Est-ce que ça te semble plus clair avec ces explications ? Smile
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Jeu 29 Oct 2015 - 14:38

Mmmh... Je suis pas sûr, donc je préfère vérifier^^

Si on reprend mon premier code, on aurait donc:

Code:
    <p id=apprenti></p>
        <SCRIPT>
        $("apprenti").load("g10- form [name='post']", function(document.getElementById("apprenti").innerHTML=a.gen.lenght-1));
        </SCRIPT>

C'est bien ça?

En gros, on chargerait la partie du formulaire posté de la page g10 dans la balise portant l'id apprenti de la page actuelle, en additionnant les valeurs, et en soustrayant 1 au résultat affiché?

Par contre, la fonction getElementById est bien nécessaire dans ce cas?
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Ven 30 Oct 2015 - 8:22

Alors toi tu vas charger ta page dans un paragraphe dont l'id est apprenti. Un id est noté en js avec un # devant comme dans une css, donc n'oublie pas le # avant ton nom d'id dans ton js Smile

Ensuite attention à la façon dont tu charges ta fonction, encore une fois regarde bien le code que je t'ai mis en exemple :
Code:
$(".truc").load('/g497- form[name="post"]', function(){
    ta fonction à exécuter une fois la page chargée
});

une fonction c'est :
Code:
function() {}

Concernant le
Code:
document.getElementById("apprenti").innerHTML=a.gen.lenght-1

Comme tu ne précises pas quels a.gen tu veux précisément il va te prendre ceux de toute la page.
Or toi tu ne veux que ceux qui seront chargés dans ton paragraphe #apprenti.

Il faut aussi savoir que jquery permet une syntaxe plus simple pour définir le contenu html d'un élément :
Code:
$("#apprenti").html(valeur);

Ici ta valeur ça va donc être le nombre de a.gen que tu auras chargés dans ton #apprenti.
C'est à dire :
Code:
$("#apprenti a.gen").length-1

Attention également à l'endroit où tu mets ton nombre obtenu.
En faisant comme tu l'as fait tu ne pourras pas vérifier directement que ta page s'est bien chargée, puisque le contenu du paragraphe où tu as chargé la page sera remplacé par le compte.
Il peut donc être préférable de charger par exemple la page dans une div d'id #apprenti_groupe et de mettre la valeur obtenue dans ton #apprenti de départ.
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Ven 30 Oct 2015 - 11:34

J'avoue que je me sens un peu largué là Razz

Si j'ai bien compris, le code serait:

Code:
<div id=apprenti_group>
<p id=apprenti></p>
</div>
<SCRIPT>
$("#apprenti_group").load("g10- form [name='post']", function(){
$("#apprenti a.gen").lenght-1
};
</SCRIPT>

Car:

• La balise div est préférable pour le chargement de pages.
• Toutes les id sont précédées du "#" en js
• Ne pas oublier les "{}" d'une fonction js
• Le mieux est de séparer l'endroit où la page est chargée de l'endroit où s'affiche notre valeur
• Afficher un élément peut se simplifier par
Code:
$(id).html (valeur)
=> Ici, je suis un peu perdu, je pense que j'aurais mis
Code:
$(#"apprenti").(a.gen.lenght-1)

En tout cas, je te remercie mille fois, car je débute avec js que depuis le 5 octobre, et grâce à toi, j'appréhende mieux, je pense ce codage^^
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Evaliah Ven 30 Oct 2015 - 21:43

Courage tu vas bientôt saisir toutes les clefs de ce code !

Donc :

1) Tu ne dois pas inclure ton paragraphe #apprenti dans ta div #apprenti_group car quand tu auras réussi à faire ce que tu veux tu mettras un display none pour ta div afin que les utilisateurs ne voient que le chiffre que tu auras récupéré Smile
(Donc tu peux tout simplement mettre ton paragraphe après ta div par exemple, mais pas dedans)

2) Comme je l'ai expliqué ceci :
Code:
$("#apprenti a.gen").lenght-1
C'est la valeur que tu veux récupérer. Ça va te retourner un chiffre/nombre, qui sera le nombre de membres dans ton groupe en soustrayant 1 pour le modérateur du groupe.
Mais attention, tu dois récupérer les a.gen qui sont dans ta div et non dans ton paragraphe, puisque tu auras chargé ta portion de page dans la div.
Ta div ayant pour id apprenti_group il faut donc que tu comptes le nombre de a.gen dans #apprenti_group et non dans #apprenti.

Il faut ensuite que tu places cette valeur dans ton paragraphe #apprenti.

Si c'est plus simple pour toi tu peux te servir d'une variable :
Code:
var n_apprenti = $("#apprenti_group a.gen").lenght-1;

Et ensuite il ne te restera plus qu'à mettre cette variable dans le code que je t'ai donné :
Code:
$("#apprenti").html(n_apprenti);


Si tu as bien tout suivi le code final sera donc :
(je te le mets en spoiler pour que tu ne regardes que si tu ne comprends pas quelque chose)
Code apprentis:

Tu peux tester tu devrais voir un résultat probant Smile


ps : Attention tu avais oublié de refermer la parenthèse du .load() !
Attention également quand tu attribues un id à un élément, c'est id="truc" avec les guillemets, ne les oublie pas Smile
Evaliah

Evaliah
****

Féminin
Messages : 315
Inscrit(e) le : 14/01/2013

http://lestroisiles.forumactif.org/
Evaliah a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Afficher les effectifs d'un groupe automatiquement sur une image d'accueil.

Message par Dnumroj Lun 2 Nov 2015 - 8:31

Super, je comprends beaucoup mieux^^
En essayant de refaire le code sans regarder le spoiler, j'avais presque tout bon^^

Pour la variable, je pensais que je devais la mettre en dehors de la fonction^^

En tout cas, je te remercie beaucoup: sans ta précieuse aide, j'aurais probablement pas trouvé comment faire^^
avatar

Dnumroj
*

Messages : 47
Inscrit(e) le : 06/10/2015

http://rpgssmondedestenebre.forumsgratuits.fr/
Dnumroj a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum