Masquer un bouton aux membres et invités

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 le Ven 4 Mar 2016 - 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://illiweb.com/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://illiweb.com/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://illiweb.com/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 2016 - 13:23, édité 1 fois

photoclic
*****

Masculin
Messages : 561
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 le Ven 4 Mar 2016 - 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
+ Hyperactif +

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

http://www.planet-series.com/
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 le Sam 5 Mar 2016 - 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
*****

Masculin
Messages : 561
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 Milouze14 le Sam 5 Mar 2016 - 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://illiweb.com/fa/prosilver/icon_home.gif"/>Accueil</a>
<a href="http://photoclic.forum-pro.fr/portal"style="margin-right:60px;">
    <img src="http://illiweb.com/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://illiweb.com/fa/prosilver/icon_portal.png"/>On vote</a>').insertBefore( '#fa_menu' ); 
})});




Penses à cliquer sur le bouton
a++

Milouze14
+ Hyperactif +

Masculin
Messages : 4628
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

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

Message par Neptunia le Sam 5 Mar 2016 - 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
+ Hyperactif +

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

http://www.planet-series.com/
Neptunia a été remercié(e) par l'auteur de ce sujet.

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

Message par Milouze14 le Sam 5 Mar 2016 - 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++



Milouze14
+ Hyperactif +

Masculin
Messages : 4628
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

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

Message par Neptunia le Sam 5 Mar 2016 - 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
+ Hyperactif +

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

http://www.planet-series.com/
Neptunia a été remercié(e) par l'auteur de ce sujet.

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

Message par Milouze14 le Sam 5 Mar 2016 - 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://illiweb.com/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++



Milouze14
+ Hyperactif +

Masculin
Messages : 4628
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

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

Message par photoclic le Sam 5 Mar 2016 - 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
*****

Masculin
Messages : 561
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 Milouze14 le Sam 5 Mar 2016 - 8:51

Re,
tu peux faire une capture d'écran des liens javascripts, cela doit ressembler à:


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

a++

Milouze14
+ Hyperactif +

Masculin
Messages : 4628
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

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

Message par photoclic le Sam 5 Mar 2016 - 8:56

Nos messages se croisent désolé.

photoclic
*****

Masculin
Messages : 561
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 Milouze14 le Sam 5 Mar 2016 - 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 à:


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

a++

a++

Milouze14
+ Hyperactif +

Masculin
Messages : 4628
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

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

Message par photoclic le Sam 5 Mar 2016 - 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
*****

Masculin
Messages : 561
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 Milouze14 le Sam 5 Mar 2016 - 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://illiweb.com/fa/prosilver/icon_home.gif"/>Accueil</a>
<a href="/portal"style="margin-left:30px;">
    <img src="http://illiweb.com/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://illiweb.com/fa/prosilver/icon_portal.png"/>On vote</a>').insertAfter( ' .M14_navTol a:last' );
})});




a++

Milouze14
+ Hyperactif +

Masculin
Messages : 4628
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

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

Message par Neptunia le Sam 5 Mar 2016 - 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
+ Hyperactif +

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

http://www.planet-series.com/
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 le Sam 5 Mar 2016 - 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
*****

Masculin
Messages : 561
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


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