Hello :)
Nous allons parler d'informations sur le membre qui regarde la page mises à disposition par Forumactif.
Vous connaissez peut-être déjà USERNAME et ses copines (vous pouvez voir la liste officielle ici → https://www.never-utopia.com/popup_help.forum?l=miscvars ). On écrit {USERNAME} et ceci est remplacé par le pseudo du membre qui lit (ou bien par "Invité").
Nous pourrons afficher des informations supplémentaires telles que :
- si la personnes est connectée
- son avatar
- son pseudo
- son nombre de MP
- le nombre de message sur le forum
- ses point de réputation
- d'autres à voir un peu plus bas
Ces informations peuvent être affichées sur le forum directement, par exemple avec l'avatar dans la barre de navigation :
Mais on peut aussi les utiliser pour élaborer d'autres codes, par exemple afficher certaines choses seulement si le membre est connecté / déconnecté, s'il a plus de X messages, etc ^^
Exemples possibles :
- Si on a un guide du nouveau, il sera mis en avant sur toutes les pages pour ceux qui ont peu de messages.
- Mettre en avant un message seulement pour les invités (message, ou bien le contexte "court"/"résumé", ou d'autres choses comme ça qui "prennent de la place" pour les membres)
- Faire une PA différente pour connecté / non connecté
Les données
Au moment où je commence ce tutoriel, voici les données que je peux récupérer :
- session_logged_in : si le membre connecté ou non
- username : pseudo du membre
- user_id : identifiant de membre
- user_level : si je suis membre simple (0) / admin (1) / droit de modération quelque part (2)
- user_lang : langue
- activate_toolbar : si la toolbar est activée (1) ou non (0)
- fix_toolbar : la toolbar fixée ou non
- notifications : notifications activées ou non
- avatar : html de l'image de l'avatar
- user_posts : nombre de messages du membre sur le forum
- user_nb_privmsg : nombre de MP
- point_reputation : nombre de points de réputation
Si la toolbar est activée, on peut également récupérer d'autres d'infos, dont le rang de la personne.
Comment trouver ces données ?
Ces données sont dans un objet javascript (ne partez paaaas !), si vous voulez connaitre leur valeur vous pouvez les trouver comme ceci :
- Avec la console du navigateur. Pour en savoir plus, lisez ce topic => Outils de débug par Valtena, surtout la section "la console".
On fait clic droit, inspecter l'élément. On va aller à l'onglet "Console" et écrire dedans _userdata (puis touche entrée ou cliquer sur Executer)
Cela vous donnera quelque chose comme ça :
- Code:
_userdata["session_logged_in"] = 1; // connecté ou non
_userdata["username"] = "Nihil Scar Winspeare"; // mon pseudo
_userdata["user_id"] = 7734; // mon identifiant de membre (pour accéder au profil par exemple)
_userdata["user_level"] = 0; // si je suis membre simple (0) / admin (1) / droit de modération quelque part (2)
_userdata["user_lang"] = "fr"; // ma langue
_userdata["activate_toolbar"] = 1; // si la toolbar est activée (1) ou non (0)
_userdata["fix_toolbar"] = 0; // si j'ai fixée la toolbar ou non
_userdata["notifications"] = 1; // si j'ai les notifications activées
_userdata["avatar"] = '<img src="http://nihil.alwaysdata.net" alt="avatar" />'; // le html de l'image de mon avatar
_userdata["user_posts"] = 1986; // le nombre de messages sur le forum
_userdata["user_nb_privmsg"] = 506; // le nombre de MP
_userdata["point_reputation"] = 236; // le nombre de points de réputation
- Sinon, on peut voir tout ça directement dans le code source. On fait un clic droit, "afficher le code source", et dedans on cherche "_userdata"
Si ces données n'apparaissent pas, il se peut qu'une modification de votre template overall_header soit la cause. Vérifiez que la variable {HOSTING_JS} est bien présente.
Détail & exemples d'utilisation
J'ai essayé de détailler les variables que j'utilise le plus souvent, ou bien où il y a des petites subtilités à connaitre.
Connecté ou non ?
- Code:
_userdata["session_logged_in"] = 1;
Exemples d'utilisation :
- masquer un élément si le membre est déconnecté / afficher une zone seulement s'il est connecté, etc...
- pour les générateurs de présentation / commandes sur une page HTML, re-diriger ailleurs si le membre est déconnecté
Pseudo
- Code:
_userdata["username"] = "Nihil Scar Winspeare";
Déconnecté : Anonymous
- Code:
_userdata["user_id"] = 7734;
Déconnecté : la valeur est -1
Autorisations
- Code:
_userdata["user_level"] = 0;
1 = admin
2 = droits de modération quelque part
/!\ Pour ce point là, on lit tout et son contraire, je vous conseille donc de faire quelques tests pour être absolument sûrs. Surtout qu'il existe d'autres façons de vérifier si une personne est modo / admin ^^
Avatar
- Code:
_userdata["avatar"] = '<img src="http://nihil.alwaysdata.net" alt="avatar" />';
Si connecté : avatar du membre
Si connecté et pas d'avatar : avatar par défaut dans le Panneau d'Admin
Si déconnecté : avatar par défaut dans le Panneau d'Admin
Exemple utilisation : - https://www.never-utopia.com/t56172-rajouter-l-avatar-de-l-utilisateur
Réputation
- Code:
_userdata["point_reputation"] = 236;
Rang
/!\ Il faut que la toolbar soit activée
- Code:
_lang["rank_title"] = "V.I.P.";
Si déconnecté : vide
Exemple :
- Beaucoup de forum de RP utilisent les rangs pour les groupes. On pourrait par exemple changer le thème (ou juste certains petits éléments), ou encore rajouter un lien rapide vers le quartier général d'un groupe, etc)
Comment les utiliser ?
Certaines variables peuvent s'utiliser telle quelle en mettant leurs valeurs, d'autres permettent de faire des tests afin de faire un code différent en fonction de leur valeur.
Par exemple :
- Code:
if (_userdata.session_logged_in == 1) {
/* code si connecté */
}
- Spoiler:
- Le code peut se simplifier comme ça car 1 = vrai :
- Code:
if (_userdata.session_logged_in) {
/* code si connecté */
}
Pouvoir les utiliser comme on utilise {USERNAME}
On peut rajouter ce javascript sur toutes les pages :
PA > Modules > HTML & JAVASCRIPT > Gestion des codes Javascript.
- Code:
$(function(){
$.each(_userdata, function(key, value){
$(".js-" + key).html(value);
});
});
Si je veux afficher seulement les MP, dans mon HTML je peux faire comme ceci par exemple :
- Code:
Mes MP : <span class="js-user_nb_privmsg"></span>
Le code va insérer la valeur à l'intérieur de la balise span, pour insérer la bonne valeur :
- Code:
Mes MP : <span class="js-user_nb_privmsg">155</span>
Voici un exemple avec plus de html :
- Code:
Utilisateur connecté ? <span class="js-session_logged_in"></span><br/>
Pseudo : <span class="js-username"></span><br/>
Id : <span class="js-user_id"></span><br/>
Image de l'avatar : <span class="js-avatar"></span><br/>
Nombre de messages : <span class="js-user_posts"></span><br/>
Nombre de messages privés <span class="js-user_nb_privmsg"></span><br/>
Nombre de points de réputation <span class="js-point_reputation"></span><br/>
Et grâce au javascript, le contenu des span sera changé comme ceci :
- Code:
Utilisateur connecté ? <span class="js-session_logged_in">1</span><br>
Pseudo : <span class="js-username">Nihil Scar Winspeare</span><br>
Image de l'avatar : <span class="js-avatar"><img src="http://img15.hostingpics.net/pics/602962nihiloffline.png" alt=""></span><br>
Nombre de messages : <span class="js-user_posts">1991</span><br>
Nombre de messages privés <span class="js-user_nb_privmsg">506</span><br>
Nombre de points de réputation <span class="js-point_reputation">237</span><br>
Un exemple avec toutes les variables :
Je précise que c'est Neva qui a fait mon avatar
Précicison → si vous utilisiez précédemment ce tuto, vous pouvez l'enlever. En effet, le code fourni ici est plus complet. :)
Merci
Dernière édition par Nihil Scar Winspeare le Ven 20 Nov 2020 - 20:04, édité 7 fois