 | Sujet: [Xooit] Bloc visible suivant le pseudo du membre Mar 15 Nov - 9:48 | |
| Bonjour à tous Autant que les solutions données dans les aides spécifiques servent à tous non ?  Dans ce tutoriel, je vous propose d'afficher des blocs sur votre forum en fonction du pseudo du membre. Par exemple : -> Pseudo1 peut voir des liens particuliers -> Pseudo2 peut voir un mot laissé par l'admin .... Pré-requis :- Avoir accès aux templates du forum
- Avoir quelques connaissances en HTML & CSS
C'est par ici que ça se passeIci, on va supposer que les blocs apparaissent sur toutes les pages  Pour cela, on va ouvrir le template "overall_header" (tout se passera ici) La partie htmlOn va commencer par faire un bloc vide qui contiendra le texte désiré dans le cas où l'utilisateur est autorisé à voir le contenu. On va donc repérer dans le template
et juste après on va mettre
| Code: | <div id="bloc_gp1"> </div> |
(sans le *)
Le test (Javascript)
a) on va commencer par "préparer le terrain". Juste après le code html qu'on vient d'écrire, on va mettre
| Code: | <!-- On test si le membre est autorisé à voir le contenu --> <script type="text/javascript" ><!-- le test sera ici
//--> </script> <!-- Fin du test --> |
b) On va maintenant commencer par récupérer le texte "Deconnexion [ Pseudo ]" pour connaitre le pseudo du membre
| Code: | var username = "{L_LOGIN_LOGOUT}"; |
c) On va tester si, dans le texte qu'on a récupéré on a le pseudo du membre qui peut voir notre bloc (ici, je prend mon pseudo comme exemple)
| Code: | var user1=new RegExp("Miettes", "gi"); |
nb : le gi signifie qu'on va regarder dans toute la chaine de caractère (g) et que ça ne doit pas forcément respecter la casse (c'est à dire majuscule et minuscule) (i)
Dans le cas où vous veulez le vérifier pour plusieurs membres, il suffit de changer le nom de la variable et le pseudo
| Code: | var user2=new RegExp("essai", "gi"); var user3=new RegExp("visiteur", "gi"); |
d) Maintenant, on va dire au code : "si tu as trouvé le pseudo"
| Code: | if (username.match(user1)){ |
~~> dans le cas où il y a plusieurs pseudos, on va devoir lui dire user1 ou user2 ou user3... dans ce cas, ça s'écrit
| Code: | if ((username.match(user1)) || (username.match(user2)) || (username.match(user3))) { |
"Tu peux afficher le contenu du bloc gp1"
| Code: | document.getElementById('bloc_gp1').innerHTML = "<p>Mon contenu est ici</p>"; |
"Sinon"
"tu dis au membre qu'il n'est pas autorisé à voir le contenu"
| Code: | document.getElementById('bloc_gp1').innerHTML = "<p>Vous n'êtes pas autorisé à voir ce qu'il y a ici</p>"; |
Et on oublie pas de fermer le test
nb : Comme c'est du javascript et qu'on commence à le lire avec des "..." on ne va pas pouvoir mettre des guillemets comme dans le code. Il faut les "masquer". Pour cela, on va juste ajouter un \ avant chaque " de notre code. Par exemple
| Code: | document.getElementById('bloc_gp1').innerHTML = "<p style=\"color:blue; font-weight:bold; font-size:12px;\">Mon contenu est ici</p>"; |
Zioup ! C'est fini !
Rapide hein ^^
Bah oui c'est déjà fini ^^ Au final, vous avez donc ce code javascript
| Code: | <!-- On test si le membre est autorisé à voir le contenu --> <script type="text/javascript" ><!-- var username = "{L_LOGIN_LOGOUT}"; /* On récupére le texte "Deconnexion [ Pseudo ]"*/ var user1=new RegExp("Miettes", "gi"); /* On regarde dans la variable username si le pseudo apparait*/ var user2=new RegExp("essai", "gi"); if ((username.match(user1)) || (username.match(user2))) { /* Si le pseudo est ok, on affiche ce qu'on veut que le membre voit */ document.getElementById('bloc_gp1').innerHTML = "<p style=\"color:blue; font-weight:bold; font-size:12px;\">Mon contenu est ici</p>"; }else{ /* Sinon, on dit au membre qu'il n'est pas autorisé à voir le contenu du bloc */ document.getElementById('bloc_gp1').innerHTML = "<p>Vous n'êtes pas autorisé à voir ce qu'il y a ici</p>"; }
//--> </script> <!-- Fin du test --> |
Des questions ? C'est [ici] |
|