Astuces Forumactif
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Membres connectés récemment
Voir tous les membres

[AwesomeBB] Afficher le bouton nouveau selon les permissions


3 participants

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

MathisB
MathisB
http://www.dixily.fr

MessageMathisB Lun 2 Sep 2019 - 21:41

  • Version du forum :
    AwesomeBB
  • Templates modifiés :
    oui
  • Navigateur :
    Autre
Bonsoir,

Je voudrais savoir s'il y aurait moyen que ce script pour supprimer le bouton nouveau pouvait agir seulement pour les membres et non pas pour les membres d'un groupe.

Code:
$(function(){
if (_userdata["user_level"] !=1)
$(function(){
if($('a.nav[href^="/f13-"]').length)
{
$('a[href$="mode=newtopic"]').remove();
};

})});

Merci d'avance ^^


Dernière édition par MathisB le Mer 11 Sep 2019 - 21:02, édité 2 fois
Neptunia
Neptunia
https://www.galaxie-series.net/

MessageNeptunia Lun 2 Sep 2019 - 22:27

Coucou Mathis


Présentement le script devrait fonctionner pour les membres et pour les modérateurs.

Que veux tu faire exactement ?
Qui doit voir le bouton (combien de personnes) , qui ne doit pas le voir ? Là aussi ça fait en gros combien de personnes ?
MathisB
MathisB
http://www.dixily.fr

MessageMathisB Mar 3 Sep 2019 - 15:33

Salut Neptunia,

Il n'y a que les membres qui doivent voir le bouton nouveau. L'admin, les modérateurs et les membres de tout autre groupe en dehors des membres doivent voir le bouton.
Neptunia
Neptunia
https://www.galaxie-series.net/

MessageNeptunia Mar 3 Sep 2019 - 15:46

Alors je vais poser la question autrement.

Tu as combien de membres dans l'ensemble de tes groupes ?

Parce que gérer une condition en fonction du groupe c'est quasiment mission impossible, du coup faut plutôt passer par les id utilisateurs (à condition qu'ils soient pas trop nombreux.
MathisB
MathisB
http://www.dixily.fr

MessageMathisB Mar 3 Sep 2019 - 18:41

Ah ok, je n'avais pas compris où tu voulais en venir.
En tout avec tous les groupes on est 4 ^^
Donc oui, je veux bien passer par l'identifiant.
Neptunia
Neptunia
https://www.galaxie-series.net/

MessageNeptunia Mar 3 Sep 2019 - 19:51

En supposant que le code que tu as fourni fonctionne, celui-ci devrait faire l'affaire

Code:
   $(function(){
    if($.inArray(_userdata["user_id"], [1, 2, 3, 5, 7, 11, 13])==-1)
    $(function(){
    if($('a.nav[href^="/f13-"]').length)
    {
    $('a[href$="mode=newtopic"]').remove();
    };

    })});

   if($.inArray(_userdata["user_id"], [1, 2, 3, 5, 7, 11, 13])==-1)

On crée un tableau (Array) avec l'id de tous les membres devant voir le bouton. Ici j'ai mis le fondateur donc 1, puis 2, 3, 5, 7, 11, et 13. Ce qui doit rappeler des souvenirs aux plus jeunes si on enlève le 1.

Ensuite on recherche la présence de l'id du membre en cours dans le tableau et le résultat sera la position de l'id dans le tableau

Position 0 pour le fondateur
Position 1 pour /u2
Position 2 pour /u3
Position 3 pour /u5
Position 4 pour /u7
Position 5 pour /u11
Position 6 pour /u13

Et -1 si le membre n'y figure pas.

Si la condition est remplie, on exécute le script et on vire le bouton.
Sinon, le bouton reste.




Edité : Comme je n'ai pas de fofo awesomeBB, je viens de tester sur une autre version et c'est fonctionnel. Et au vu du code utilisé, ça marchera sur n'importe quelle version tant que le fil d'Ariane n'est pas trop modifié.
MathisB
MathisB
http://www.dixily.fr

MessageMathisB Mar 3 Sep 2019 - 21:56

Merci, ça fonctionne et pour enchaîner ce code plusieurs fois de suite avec des catégories différentes et des membres différents je peux faire comment ?

Code:
$(function(){
    if($.inArray(_userdata["user_id"], [1])==-1)
    $(function(){
    if($('a.nav[href^="/f13-"]').length)
    {
    $('a[href$="mode=newtopic"]').remove();
    };

    })});

  $(function(){
    if($.inArray(_userdata["user_id"], [1])==-1)
    $(function(){
    if($('a.nav[href^="/24-"]').length)
    {
    $('a[href$="mode=newtopic"]').remove();
    };

    })});

  $(function(){
    if($.inArray(_userdata["user_id"], [1, 14)==-1)
    $(function(){
    if($('a.nav[href^="/f17-"]').length)
    {
    $('a[href$="mode=newtopic"]').remove();
    };

    })});

  $(function(){
    if($.inArray(_userdata["user_id"], [1, 26])==-1)
    $(function(){
    if($('a.nav[href^="/f14-"]').length)
    {
    $('a[href$="mode=newtopic"]').remove();
    };

    })});
Neptunia
Neptunia
https://www.galaxie-series.net/

MessageNeptunia Mar 3 Sep 2019 - 22:41

Bah il me semble que comme tu as fait ça devrait fonctionner ? Ce n'est pas le cas ?

Après c'est certain qu'on pourrait supprimer un appel à function() sur chaque portion donc au moins deux lignes gagnées mais n'étant pas très douée en fusions de scripts je préfères m'abstenir sinon suis plutôt du genre à partir de deux scripts fonctionnels pour aboutir à un script bon pour la poubelle.

Peut-être que @Milouze14 pourra te proposer plus propre, mais moi je passe mon tour.




Edité :

Je viens de voir que pour tes deux premiers fofos, la condition est la même, là aussi ya de la place à gagner et surtout comme le tableau ne compte qu'un membre, l'ancienne formule est plus pertinente même si on peut effectivement comparer l'id avec un tableau à une seule entrée.
MathisB
MathisB
http://www.dixily.fr

MessageMathisB Jeu 5 Sep 2019 - 7:38

Bonjour,

Les codes ne fonctionne pas, je ne sais pas pourquoi ont-ils fonctionné la première fois :/
Je vais aller faire des tests sur un forum AwesomeBB test "neuf"
Neptunia
Neptunia
https://www.galaxie-series.net/

MessageNeptunia Jeu 5 Sep 2019 - 17:03

Ah bah mince alors !

Ici on garantit que ça fonctionne quand le demandeur confirme le fonctionnement et dit merci

Les extensions de garantie, c'est optionnel.

Bon courage ...
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Jeu 5 Sep 2019 - 18:50

Hello Hélène et Mathis,

alors pour être plus simple mais le script est un peu plus lourd mais plus explicite.

Voici un exemple:
Rappel, le fondateur a toujours l'id 1.

On va créer une variable pour chaque forum :
Code:
 

var fofo13=$('a.nav[href^="/f13-"]').length;
var fofo14=$('a.nav[href^="/f14-"]').length;
var fofo17=$('a.nav[href^="/f17-"]').length;
var fofo24=$('a.nav[href^="/f24-"]').length;

On va créer des variables pour les membres
Code:
 
//MEMBRE AYANT L ID 14
var pseudo14=_userdata["user_id"] ==14;

Code:
 
//MEMBRE AYANT L ID 26
var pseudo26=_userdata["user_id"] ==26;


Ensuite in faut comprendre le fonctionnement des conditions:

Admettons que tu veuilles que le membre ayant l'id 14 (variable:pseudo14)" ne puisse
pas voir le bouton nouveau sur le forum 24 (variable:fofo24).

La condition sera alors pour ce forum:
Code:

if(pseudo14&&fofo24)
{
$('a[href$="mode=newtopic"]').remove();
}

Admettons que tu ne veuilles pas que ce même membre ne puisse pas voir le forum 17(variable:fofo17)

La condition ne sera plus:
Code:

if(pseudo14&&fofo24)
{
$('a[href$="mode=newtopic"]').remove();
}
Mais:
Code:

if(pseudo14&&fofo24&&fofo17)
{
$('a[href$="mode=newtopic"]').remove();
}
Cela évite d'avoir trente six conditions inutiles.

Si le membre ayant l'id 26 (variable:pseudo26) ne doit pas voir le forum 24
Cette condition:
Code:

if(pseudo14&&fofo24)
{
$('a[href$="mode=newtopic"]').remove();
}

Deviendra alors:
Code:

if(pseudo14&&pseudo26&&fofo24)
{
$('a[href$="mode=newtopic"]').remove();
}


J'ai simplifié le script avec d’abréger ceci:
Code:
$('a[href$="mode=newtopic"]').remove();

En créant une variable:
Code:
var nouveau=$('a[href$="mode=newtopic"]');


Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript
Mets un titre explicite.

Coches sur les sous-forums et sur les sujets.

Déposes ceci:
Code:

$(function(){
var nouveau=$('a[href$="mode=newtopic"]');
//MEMBRE AYANT L ID 14
var pseudo14=_userdata["user_id"] ==14;
//MEMBRE AYANT L ID 26
var pseudo26=_userdata["user_id"] ==26;
var fofo13=$('a.nav[href^="/f13-"]').length;
var fofo14=$('a.nav[href^="/f14-"]').length;
var fofo17=$('a.nav[href^="/f17-"]').length;
var fofo24=$('a.nav[href^="/f24-"]').length;

if(pseudo14&&fofo24){nouveau.remove();}
 

});

Penses a cliquer sur le bouton Valid

Avec cette base de script,le membre portant l'id 14 ne pourra voir le bouton "Nouveau"
sur le forum 24.

Si tu désires mettre d'autres conditions, il n'y a de soucis mais il faut quelles soient cohérentes.
Si tu as des difficultés pour les mettre en œuvre, merci de donner les pseudos qui ne doivent pas avoir de droit sur tels et tels forums.









MathisB
MathisB
http://www.dixily.fr

MessageMathisB Jeu 5 Sep 2019 - 19:32

Merci Milouze c'est vraiment super gentil mais dans ton message tu dis ceci :
Code:
Admettons que tu veuilles que le membre ayant l'id 14 (variable:pseudo14)" ne puisse 
pas voir le bouton nouveau sur le forum 24 (variable:fofo24).
Mais je ne veux pas qu'un membre ne puisse pas voir le bouton nouveau mais bien que tous les membres ne puissent pas le voir sauf exception pour certains membres.

Je pense que tu as pris ma demande à l'envers ou alors c'est moi qui ne comrpend pas le script :/
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Jeu 5 Sep 2019 - 19:40

Hum effectivement,
je vais me sauver pour ce soir,
merci de me donner les ids qui ne sont pas autoriser ainsi que les forums respectifs et je te donne le script demain matin.
MathisB
MathisB
http://www.dixily.fr

MessageMathisB Jeu 5 Sep 2019 - 22:07

D'accord voici :

Catégorie : f13-
Membres autorisés = U1 et U5

Catégorie : f24-
Membres autorisés = U1 et U5

Sous-catégorie : f17-
Membres autorisés = U1, U5 et U14

Sous-catégorie : f17-
Membres autorisés = U1, U5 et U26

Voilà merci à toi Phil hinhin
Neptunia
Neptunia
https://www.galaxie-series.net/

MessageNeptunia Ven 6 Sep 2019 - 0:02

C'est ce qu'on appelle dans le jargon moderne "Nous la faire à l'envers"
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Ven 6 Sep 2019 - 4:18

Neptunia a écrit:C'est ce qu'on appelle dans le jargon moderne "Nous la faire à l'envers"

C'est pas faux MDR .

Hello Mathis,


hum,il n'y a pas d'erreur ici:

Sous-catégorie : f17-
Membres autorisés = U1, U5 et U14

Sous-catégorie : f17-
Membres autorisés = U1, U5 et U26


Ce qui revient a dire:
forum f17 on autorise U1 U5 U14 et U26

alors ce script devrait fonctionner:

Code:
$(function(){
    var nouveau=$('a[href$="mode=newtopic"]');
    //MEMBRE AYANT L ID 1
    var un=_userdata["user_id"] ==1;
    //MEMBRE AYANT L ID 5
    var deux=_userdata["user_id"] ==5;
    //MEMBRE AYANT L ID 14
    var trois=_userdata["user_id"] ==14;
    //MEMBRE AYANT L ID 26
    var quatre=_userdata["user_id"] ==26;
    var fofo13=$('a.nav[href^="/f13-"]').length;
    var fofo14=$('a.nav[href^="/f14-"]').length;
    var fofo17=$('a.nav[href^="/f17-"]').length;
    var fofo24=$('a.nav[href^="/f24-"]').length;

    if(!un&&!deux&&fofo13&&fofo24){nouveau.remove();}
    if(!un&&!deux&&!trois&&!quatre&&fofo17){nouveau.remove();}

    });
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 10 Sep 2019 - 20:10


Hello

Si ton sujet est résolu, merci de suivre la procédure suivante:
Un tag précédent ton premier message et un autre au dessus de la réponse rapide est présent.

Il te suffira de cliquer sur l'un d'entre eux.



Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Jeu 12 Sep 2019 - 3:54


Hello


Sujet résolu et déplacé dans le forum adéquate

A bientôt pour une prochaine demande clin oeil

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

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

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