Masquer un bouton aux membres et invités

2 participants

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

Résolu Masquer un bouton aux membres et invités

Message par photoclic Ven 4 Mar - 0:43

Détails techniques


Version du forum : phpBB3
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Mozilla Firefox
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://photoclic.forum-pro.fr/

Description du problème

Bonsoir,

j'ai créé le code suivant pour ajouter 3 boutons dans la barre de notification.

Le bouton "Accueil", le bouton "Portail", et le bouton "on vote".

Code:
$(function(){ $(function(){
 $('<a href="http://photoclic.forum-pro.fr/"style="margin-right:60px;">
<img src="http://2img.net/i/fa/prosilver/icon_home.gif"/>Accueil</a>')

.insertBefore( '#fa_menu' );
})});


$(function(){ $(function(){

$('<a href="http://photoclic.forum-pro.fr/portal"style="margin-right:60px;">
<img src="http://2img.net/i/fa/icon_mini_portal.gif"/>Portail</a>')

.insertBefore( '#fa_menu' );
})});


$(function(){ $(function(){

$('<a href="http://photoclic.forum-pro.fr/f12-photovote"style="margin-right:380px;">
<img src="http://2img.net/i/fa/prosilver/icon_portal.png"/>On vote</a>')

.insertBefore( '#fa_menu' );
})});

Je souhaiterais donc masquer le 3ième bouton "On vote" aux invités et membres, pour qu'il ne soit vu que par les modérateurs et administrateurs.

Merci pour votre aide


Dernière édition par photoclic le Sam 5 Mar - 13:23, édité 1 fois
photoclic

photoclic
Membre habitué

Masculin
Messages : 1373
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Neptunia Ven 4 Mar - 7:14

Bonjour ^^


Tuto Exécuter un code javascript sous certaines conditions

On peut se servir de la variable _userdata["user_level"] pour coder la condition.

_userdata["user_level"] vaut 1 si le visiteur est administrateur
_userdata["user_level"] vaut 2 s'il est modérateur
_userdata["user_level"] vaut 0 dans les autres cas.
Neptunia

Neptunia
Membre actif

Féminin
Messages : 17853
Inscrit(e) le : 08/08/2010

https://www.galaxie-series.net/
Neptunia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par photoclic Sam 5 Mar - 0:33

Merci beaucoup Neptuna.

Je n'arrive pas à trouver la bonne syntaxe pour le IF. je ne sais pas programmer.

Si quelqu'un pouvait m'aider.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1373
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Invité Sam 5 Mar - 6:45

Salut photoclic,

j'ai compacté le script pour les deux premier boutons et ajouté la condition
pour l'affichage du bouton vote pour les admins et modos.

Édites le Java script et remplaces le contenu par celui-ci:

Code:

$(function(){
$(function(){
    $('<a href="http://photoclic.forum-pro.fr/"style="margin-right:60px;">
    <img src="http://2img.net/i/fa/prosilver/icon_home.gif"/>Accueil</a>
<a href="http://photoclic.forum-pro.fr/portal"style="margin-right:60px;">
    <img src="http://2img.net/i/fa/icon_mini_portal.gif"/>Portail</a>
').insertBefore( '#fa_menu' );
})});

$(function(){ if (_userdata.user_level == 1 || _userdata.user_level == 2  )   
$(function(){
$('<a href="http://photoclic.forum-pro.fr/f12-photovote"style="margin-right:380px;">
<img src="http://2img.net/i/fa/prosilver/icon_portal.png"/>On vote</a>').insertBefore( '#fa_menu' ); 
})});




Penses à cliquer sur le boutonMasquer un bouton aux membres et invités Boutonvalider
a++
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Neptunia Sam 5 Mar - 7:00

Milouze que je salue a été plus rapide, je laisse toutefois mon message pour ceux qui tomberaient ultérieurement sur le sujet.
Notons au passage que Milouze utilise justement la formulation que j'avais écartée d'entrée, en testant une double comparaison




On repart du tutoriel.

1/ Comment mettre une condition sur un code ?
Code:
    if(condition) {
   
      /* votre code javascript à exécuter si la condition est vrai */
   
    }
Le code à exécuter vous l'avez déjà ! Il faudra le placer en ne mettant ni /* devant, ni */ derrière (qui représentent des commentaires comme en CSS)
Reste plus que la condition.

2/ Comment faire une condition ?
Pour comparer 2 valeurs ( et que le résultat donne vrai ou faux ) il faut utiliser un opérateur de comparaison
Une comparaison s'écrit :
Code:
( expression1 oc expression2 )
oc = opérateur de comparaison

Reprenons votre bouton réservé au staff et raisonnons un peu en dehors de tout codage.

photoclic a écrit:Je n'arrive pas à trouver la bonne syntaxe pour le IF.
Peut-être parce qu'il n'y a pas une bonne syntaxe mais qu'il y en a plusieurs.

photoclic a écrit:Je souhaiterais donc masquer le 3ième bouton "On vote" aux invités et membres, pour qu'il ne soit vu que par les modérateurs et administrateurs.
Rien que l'énoncé de la question peut se résoudre de plusieurs manières.
a) On crée le bouton pour tous et ensuite on le masque aux membres, c'est ce qui correspond strictement à votre demande.
b) Pourquoi s'em*****r à masquer un élément s'il est possible de ne pas le créer ? C'est pourquoi on veut créer une condition.

Code:
( expression1 oc expression2 )
Neptunia- a écrit:On peut se servir de la variable _userdata["user_level"] pour coder la condition.

_userdata["user_level"] vaut 1 si le visiteur est administrateur
_userdata["user_level"] vaut 2 s'il est modérateur
_userdata["user_level"] vaut 0 dans les autres cas.

Expression1, on connaît : c'est _userdata["user_level"]
Expression2, on connait aussi : c'est l'une des 3 valeurs que _userdata["user_level"] peut renvoyer Right 0, 1 ou 2.
Nous reste plus que l'opérateur de comparaison et là on a l'embarras du choix.

A- Si visiteur est différent d' un membre lambda (ou visiteur)
B- Si visiteur est un membre disposant d'accès spéciaux (admin/modo)
C- Si visiteur est admin, ou si visiteur est modo


Voilà 3 exemples de comparaisons qui fourniront toutes le même résultat.
On va exclure la 3e qui repose sur deux conditions et non une seule.

La première s'écrirait
Code:
(_userdata["user_level"] != 0)
!= étant l'opérateur permettant de vérifier une différence, ou une non-égalité

La seconde s'écrira
Code:
(_userdata["user_level"] > 0)
> est l'opérateur vérifiant une supériorité stricte.

Et comme la valeur numérique attendue vaut 0 ou 1 ou 2, dans ce cas précis, différent de zéro ou supérieur à zéro c'est la même chose puisque la variable ne prend pas de valeurs négatives.

Au final la condition complète pourrait donner

Code:
    if(_userdata["user_level"] != 0) {
   
      code d'insertion du bouton Vote
   
    }

photoclic a écrit:je ne sais pas programmer.
Moi non plus, je sais juste recopier ce que je vois dans d'autres sujets ou tutoriels.
Avec ces conditions j'ai parfois des résultats inattendus et si une condition ne marche pas, et bien j'en essaie une autre puisqu'une même comparaison peut s'écrire de multiples manières.
Neptunia

Neptunia
Membre actif

Féminin
Messages : 17853
Inscrit(e) le : 08/08/2010

https://www.galaxie-series.net/
Neptunia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Invité Sam 5 Mar - 7:22

Salut Neptunia- Wink ,


Notons au passage que Milouze utilise justement la formulation que j'avais écartée d'entrée,
en testant une double comparaison

hum on se trouve confronté à la Toolbar Very Happy .

Le bouton peut être créé certes , mais il faudra utiliser le hack !important via la css pour la prise en compte dans la toolbar.

Et donc avec ce style il sera difficile de faire marche arrière Neptunia- Wink même si une condition est requise il me semble.

a++


Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Neptunia Sam 5 Mar - 8:02

Coucou Philippe

Je ne comprends pas ce que la toolbar vient faire la dedans.

Je disais que toi tu testais une double comparaison
Si visiteur = admin ou visiteur = modo, alors

Alors que moi j'utilisais une seule comparaison
Si visiteur n'est pas un membre (ou invité) alors.

Mais me semblait que les deux approches fonctionnaient ! Ce n'est pas le cas ?
Neptunia

Neptunia
Membre actif

Féminin
Messages : 17853
Inscrit(e) le : 08/08/2010

https://www.galaxie-series.net/
Neptunia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Invité Sam 5 Mar - 8:29

Re coucou chère amie Wink ,

hum
Code:
.insertBefore( '#fa_menu' );

On parle bien de la Toolbar Very Happy .

Ensuite je ne vois pas comment mettre ce bouton autrement qu'avec la demande du topic:

Je souhaiterais donc masquer le 3ième bouton "On vote" aux invités et membres, pour qu'il ne soit vu que par les modérateurs et administrateurs.
Si admin ou modo, alors

Mais comme tu le soulignes on peut aussi mettre ce script :
Code:

$(function(){if(_userdata["user_level"] != 0) 
$(function(){
$('<a href="http://photoclic.forum-pro.fr/f12-photovote"style="margin-right:380px;">
<img src="http://2img.net/i/fa/prosilver/icon_portal.png"/>On vote</a>').insertBefore( '#fa_menu' ); 
})});

Ne sachant pas réellement si cette condition est vraiment fiable, je me sers des user_level groupe admin et modo ( 1 et 2)

a++


Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par photoclic Sam 5 Mar - 8:45

Bonjour Milouze et Neptunia.

Un grand merci pour ce cours magistral bien expliqué et qui me fait comprendre les choses.

J'ai essayé tout ça, mais ça ne fonctionne pas, plus rien ne s'affiche dans la barre de notification.
J'ai mis le code de Milouze sans succès.
J'ai remplacé le If avec le "ou" de Milouze par le If de Neptuna avec le != 0, ça ne fonctionne pas non plus.
J'ai rajouté simplement le IF de Neptunia uniquement dans le code du vote sans compacté, rien n'y fait.

Est-ce la bonne variable en phpbb3?
photoclic

photoclic
Membre habitué

Masculin
Messages : 1373
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Invité Sam 5 Mar - 8:51

Re,
tu peux faire une capture d'écran des liens javascripts, cela doit ressembler à:
Masquer un bouton aux membres et invités 0113

Et par la même occasion le script en lui même.

a++
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par photoclic Sam 5 Mar - 8:56

Nos messages se croisent désolé.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1373
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Invité Sam 5 Mar - 9:04

Re,

pas grave,
tu peux donner les renseignement ci-dessous :

Milouze14 a écrit:Re,
tu peux faire une capture d'écran des liens javascripts, cela doit ressembler à:
Masquer un bouton aux membres et invités 0113

Et par la même occasion le script en lui même.

a++

a++
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par photoclic Sam 5 Mar - 9:08

Comme dit plus haut, ça fonctionne avec le dernier script. Merci encore.

Le code qui fonctionne avec votre dernier script

Spoiler:

Reste plus que l'affichage décalé.

Je reviens vers midi.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1373
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Invité Sam 5 Mar - 9:47

Re,

Reste plus que l'affichage décalé.

Le soucis est qu'on place les boutons avant
Code:
.insertBefore( '#fa_menu' );

essayes de modifier ton script ainsi:
Code:

$(function(){
$(function(){
    $('
<span class="M14_navTol">
<a href="http://photoclic.forum-pro.fr/"style="margin-left:30px;">
    <img src="http://2img.net/i/fa/prosilver/icon_home.gif"/>Accueil</a>
<a href="/portal"style="margin-left:30px;">
    <img src="http://2img.net/i/fa/icon_mini_portal.gif"/>Portail</a>
</span>
').insertAfter( '#fa_share' );
})});



$(function(){if(_userdata["user_level"] != 0) 
$(function(){
$('<a href="http://photoclic.forum-pro.fr/f12-photovote"style="margin-left:30px;">
<img src="http://2img.net/i/fa/prosilver/icon_portal.png"/>On vote</a>').insertAfter( ' .M14_navTol a:last' );
})});




a++
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par Neptunia Sam 5 Mar - 12:07

Milouze,

Suis rassurée, oui je focalisais uniquement sur la condition et ma remarque comme quoi tu utilisais une approche que j'avais écartée (considérant que photoclic n'est pas assez à l'aise avec une condition simple pour l'embrouiller avec la vérification consécutive de deux conditions) n'était qu'une remarque visant à démontrer à photoclic que l'on pouvait écrire cette condition de plusieurs manières.

Nous sommes au moins deux à penser que nos deux conditions faisaient la même chose et pourtant une seule fonctionne sans que l'on soit capables de dire pourquoi, ce qui corrobore mes dires :
Neptunia- a écrit:Avec ces conditions j'ai parfois des résultats inattendus et si une condition ne marche pas, et bien j'en essaie une autre puisqu'une même comparaison peut s'écrire de multiples manières.
ainsi que les tiens :
Milouze14 a écrit:Ne sachant pas réellement si cette condition est vraiment fiable, je me sers des user_level groupe admin et modo ( 1 et 2)




photoclic,

1/ Les si de Milouze et les ou de Neptunia- ne sont là que pour expliquer le raisonnement, autant raisonner en français.
Mais pour ce qui concerne le javascript, il faut uniquement considérer ce qu'on place entre balises code if pour si, || pour ou, etc etc.

2/ toujours tester extensivement ce qu'on propose avec tout type de compte (admin, modo, membre, déconnecté) parce que
- de notre côté on ne pensera pas toujours à explorer tous les cas de figure
- de ton côté, tu ne pensera pas toujours aux conséquences de ta demande.

Exemple, tu ouvres une galerie à un membre et lui permet de verrouiller ses sujets dans sa galerie. Pour toi c'est un membre avec une galerie personnelle, pour nous c'est un modérateur qui peut potentiellement voir les ip, bannir les membres et accessoirement voter là où tu pensais qu'il ne pourrait pas.
Neptunia

Neptunia
Membre actif

Féminin
Messages : 17853
Inscrit(e) le : 08/08/2010

https://www.galaxie-series.net/
Neptunia a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Masquer un bouton aux membres et invités

Message par photoclic Sam 5 Mar - 13:23

Un grand merci à vous 2 pour ce cours magistral et ludique qui je pense va en intéresser plus d'un..
Sujet résolu.

j'ai tout compris.
C'est en place et ça fonctionne au poil.

J'ai un autre problème tout aussi intéressant à vous soumettre, et malgré le cours de Neptunia je n'y arrive pas

Je le poste tout à l'heure.
photoclic

photoclic
Membre habitué

Masculin
Messages : 1373
Inscrit(e) le : 20/11/2015

http://photoclic.forum-pro.fr/
photoclic 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