Cibler un groupe d'utilisateurs pour l'affichage d'un élément

3 participants

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

Résolu Cibler un groupe d'utilisateurs pour l'affichage d'un élément

Message par IzumiRK Lun 27 Mar 2017 - 23:06

Détails techniques


Version du forum : phpBB2
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://indare-division.forumactif.com/

Description du problème

Bonjour, c'est encore moi *la fille qui savait pas faire du javascript*

Sachez tout d'abord que j'ai lu ce sujet : https://forum.forumactif.com/t366873- et que j'ai essayé d'utiliser l'un des codes plus "généraux" présents. Sur mon forum j'essaye d'autoriser uniquement un certain groupe (le numéro 13) à afficher les posts contenus dans des div de class "prof".

Le soucis c'est que le code qui a permis à la personne en question de résoudre son problèmes ne fonctionnera pas chez moi car cela affiche des choses spécifiques alors que je cherche en quelque sorte à créer une balise hide plus "étendue", dans laquelle on pourrait écrire tout et n'importe quoi et pas juste une portion de texte spécifique.

J'ai testé ça :
Code:
//ON SUPPRIME L  AFFICHAGE POUR LES MEMBRES ET LES INVITES
$(function(){if( _userdata["user_level"] == 0)
$(function(){
$(".prof").remove();
})});

//ON DONNE LES DROITS AUX MEMBRES DES GROUPES SUIVANTS
$(function(){if( _userdata["user_level"] == 13)
$(function(){
$(".prof").append();
})});

Mais peu importe le chiffre que je mets, en étant connecté comme simple membre, le texte apparaît bien mais disparaît au bout de quelques secondes. J'ai essayé de mettre un "important" dans la deuxième partie du code mais dans ce cas-là, ça le rend visible à tous mêmes aux invités.

Du coup j'imagine que la solution serait dans ce code :
Code:
$(function(){
  $('body').append('<div class="g" style="display:none;"></div>');
  $('.g').load('/g14-les-aventuriers form[action="/g14-les-aventuriers"]', function(){
      $('form[action="/g14-les-aventuriers"] a.gen').each(function(){
        var id = $(this).attr('href').match(/[0-9]{1,}$/);
        if(_userdata.user_id == id){
            $('#t_bord a[href="http://fictions.forumgratuit.eu/t205-bibliotheque-des-fanfictions-par-fandom#2705"]').after('<div class="afficherrp"><hr /><span style="font-size:14px;">Aventuriers</span><br /><a href="http://fictions.forumgratuit.eu/t153-les-exiles-faq#2023">FAQ des Exilés</a><br /><a href="http://fictions.forumgratuit.eu/h14-mise-a-jour-feuille-de-personnage">Mise à jour feuille de personnage</a></div>');
        }
      });
  });
});
Mais je n'ai pas du tout le niveau en javascript pour savoir comment l'adapter pour qu'il affiche le contenu d'une balise quel qu'il soit, et pas des termes précis.


Dernière édition par IzumiRK le Ven 31 Mar 2017 - 23:37, édité 3 fois
IzumiRK

IzumiRK
****

Messages : 208
Inscrit(e) le : 25/02/2015

http://indare.forumactif.com/
IzumiRK a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Cibler un groupe d'utilisateurs pour l'affichage d'un élément

Message par IzumiRK Mer 29 Mar 2017 - 16:52

Je viens faire un petit up ~
IzumiRK

IzumiRK
****

Messages : 208
Inscrit(e) le : 25/02/2015

http://indare.forumactif.com/
IzumiRK a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Cibler un groupe d'utilisateurs pour l'affichage d'un élément

Message par IzumiRK Ven 31 Mar 2017 - 1:35

Un petit up de plus ~
IzumiRK

IzumiRK
****

Messages : 208
Inscrit(e) le : 25/02/2015

http://indare.forumactif.com/
IzumiRK a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Cibler un groupe d'utilisateurs pour l'affichage d'un élément

Message par @stra Ven 31 Mar 2017 - 9:28

je vais peut être répondre à côté de ton besoin, mais pourquoi n'utilises tu pas la gestion des groupes pour faire ça ?


A  - tu crée un groupe d'utilisateur PA>utilisateurs et groupes>groupes>administration des groupes>bouton vert - créer un nouveau groupe
B - tu mets dans ce groupe les membres à qui tu souhaites donner l'accès a tes messages réservés
C - tu crées un forum >PA >général> catégories et forums et dans les permissions, tu décoches tout, sauf pour le groupes que tu as créé.

du coup, seuls les membres de ce groupe pourront voir (et toute autre action que tu auras cochée) ce que tu posteras dans ce forum, et il te suffira d'ajouter ou d'ôter un membre de ce groupe pour lui donner ou retirer la possibilité de lire ces fameux sujets.
@stra

@stra
****

Masculin
Messages : 363
Inscrit(e) le : 29/01/2011

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

Résolu Re: Cibler un groupe d'utilisateurs pour l'affichage d'un élément

Message par IzumiRK Ven 31 Mar 2017 - 10:53

Parce que ce n'est pas un forum précis qui est concerné. C'est certains messages qui peuvent être postés n'importe où. C'est bien pour ça que je veux que le groupe puisse lire une balise précise et pas un sous-forum.

IzumiRK

IzumiRK
****

Messages : 208
Inscrit(e) le : 25/02/2015

http://indare.forumactif.com/
IzumiRK a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Cibler un groupe d'utilisateurs pour l'affichage d'un élément

Message par @stra Ven 31 Mar 2017 - 12:01

@stra a écrit:je vais peut être répondre à côté de ton besoin,
 finalement, j'avais raison Very Happy
@stra

@stra
****

Masculin
Messages : 363
Inscrit(e) le : 29/01/2011

http://quadra-motards.forum-pro.fr/
@stra a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Cibler un groupe d'utilisateurs pour l'affichage d'un élément

Message par MasDan Ven 31 Mar 2017 - 23:17

Bonjour IzumiRK,

J'ai inversé le mode d'affichage.

Pour éviter que le texte apparaisse à tous si erreur de javascript, par défaut le texte n'est pas affiché. Le javascript évalue si le membre est un admin, un modo ou un membre du groupe 13, dans l'affirmative le texte est affiché.

Remplacer votre code par ceci

Ajouter à votre CSS
Code:
.prof.masquer, div.grp {display:none; }

Ajouter ce javascript
Code:
$(function(){
  if( _userdata["user_level"] != 0) {
    $(".prof").removeClass("masquer");  // affichage pour admin & modo
    return
  }

  var trouver = false;
  if (_userdata["user_id"] < 0) {  // invité
    $(".prof").remove();
  } else {  // membre
    $('body').append('<div class="grp"></div>');
    $('div.grp').load('/g13- form[action^="/g13-"]', function(){
      var nb = $('form[action^="/g13-"] a.gen').length;
      var i = 0;
      $('form[action^="/g13-"] a.gen').each(function(){
        var id = $(this).attr('href').match(/[0-9]{1,}$/);
        if(_userdata["user_id"] == id){
          trouver = true;
        }
        if (nb == ++i) {
          if (trouver) {
            $(".prof").removeClass("masquer");
          } else {
            $(".prof").remove();
          }
          $('.grp').remove();
        }
      });
    });
  }
});
MasDan

MasDan
Membre habitué

Masculin
Messages : 1538
Inscrit(e) le : 24/05/2011

http://projetAumMdn.forumactif.com
MasDan a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Cibler un groupe d'utilisateurs pour l'affichage d'un élément

Message par IzumiRK Ven 31 Mar 2017 - 23:37

Merci beaucoup c'est nickel. Et je comprends mieux pourquoi j'y arrivais pas moi même du coup ^^

*Un jour j'arrêterais de poster ici pour demander de l'aide avec le javascript*
IzumiRK

IzumiRK
****

Messages : 208
Inscrit(e) le : 25/02/2015

http://indare.forumactif.com/
IzumiRK 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