It is currently Tue 27 Sep 2016 - 03:52 - créer un forum

Faire apparaître bouton en fonction groupe ou variable

Skip to content

Post new topic Reply to topic Goto page: 1, 2, 3  >

Faire apparaître bouton en fonction groupe ou variable
Author Message
cuisto
Membre


Offline
Membre

Joined: 26 Jan 2008
Posts: 157
Point(s): 135
Moyenne: 0.86
Windows XP (ou plus ancien) Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Fri 18 Mar 2016 - 11:12    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

PublicitéSupprimer les publicités ?
Bonjour


je souhaiterais que certains elements apparaissent (ou pas) en fonction de l'appartenance à un groupe
ou en fonction d'une variable du  profil personnalisé.


Est ce possible ? 


Merci


Last edited by cuisto on Wed 30 Mar 2016 - 18:26; edited 1 time in total
Forum
Author Message
cuisto
Membre


Offline
Membre

Joined: 26 Jan 2008
Posts: 157
Point(s): 135
Moyenne: 0.86
Windows XP (ou plus ancien) Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Mon 21 Mar 2016 - 12:38    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

j'ai beau chercher partout je ne trouve pas moyen de tester l'appartenance à un groupe ?

Forum
Author Message
Kyosuke
Contributeurs


Offline
Contributeurs

Joined: 30 Mar 2009
Posts: 436
Niveau:
Point(s): 532
Moyenne: 1.22
Windows 8 ou 10 Chrome (ou l'un de ses dérivés : Chromium/Iron/...) Masculin

PostPosted: Mon 21 Mar 2016 - 13:24    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

Hello,

Tu veux faire apparaître le bouton sur quelle page de ton forum ?
_______________________


Forum
Author Message
cuisto
Membre


Offline
Membre

Joined: 26 Jan 2008
Posts: 157
Point(s): 135
Moyenne: 0.86
Windows XP (ou plus ancien) Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Mon 21 Mar 2016 - 13:50    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

merci Wink

l'un des besoins :
faire disparaitre les boutons répondre et envoyer( réponse)


Forum
Author Message
Kyosuke
Contributeurs


Offline
Contributeurs

Joined: 30 Mar 2009
Posts: 436
Niveau:
Point(s): 532
Moyenne: 1.22
Windows 8 ou 10 Chrome (ou l'un de ses dérivés : Chromium/Iron/...) Masculin

PostPosted: Mon 21 Mar 2016 - 14:26    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

Pourquoi ne pas utiliser le module de contrôle des permissions pour autoriser ou non certains groupes à poster/répondre ?
_______________________


Forum
Author Message
cuisto
Membre


Offline
Membre

Joined: 26 Jan 2008
Posts: 157
Point(s): 135
Moyenne: 0.86
Windows XP (ou plus ancien) Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Mon 21 Mar 2016 - 14:32    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

je veux pouvoir interdire à un membre de poster temporairement juste en l'ajoutant à un groupe. (une "évolution" de la tutelle)

j'ai pensé à ce que tu dit, ça fait refaire toutes les permissions du forum, mais surtout, je ne suis pas sur que cela soit vraiment possible puisqu'il y a certains droits qui sont donnés automatiquement (nbre de post par ex) ou appartenance à un groupe.

les droits se cumulent si je ne m'abuse, je n'ai pas moyen d'avoir une permission et une interdiction concurrente ?

sinon, si tu m'indique juste comment tester groupe ou variable du profil, je dois pouvoir me débrouiller pour la suite en cherchant un peu

c'est postrow.POSTER_RANK ? non ca c'est au niveau du message Sad


Forum
Author Message
Kyosuke
Contributeurs


Offline
Contributeurs

Joined: 30 Mar 2009
Posts: 436
Niveau:
Point(s): 532
Moyenne: 1.22
Windows 8 ou 10 Chrome (ou l'un de ses dérivés : Chromium/Iron/...) Masculin

PostPosted: Mon 21 Mar 2016 - 18:53    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

Il n'y a pas de variable de template dispo pour connaitre le/les groupe(s) de l'utilisateur connecté.

Normalement, les permissions du groupe principal sont prioritaires sur celles des autres groupes, mais ce n'est apparemment pas le cas chez Xooit, ou alors je m'y prends mal, j'en sais rien, cela fait longtemps que je n'ai pas touché au module de contrôle des permissions.

Tu veux aussi cacher la réponse rapide ou uniquement les boutons?
_______________________


Forum
Author Message
cuisto
Membre


Offline
Membre

Joined: 26 Jan 2008
Posts: 157
Point(s): 135
Moyenne: 0.86
Windows XP (ou plus ancien) Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Mon 21 Mar 2016 - 19:25    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

merci Wink

je veux l'impossibilité de répondre ou faire un nouveau message, quelque soit le moyen
je pensais a cacher les boutons, mais si il y a autre chose ?

innep eut pas connaitre de variables pour un membre ou savoir si la tutelle est active par ex ?


Forum
Author Message
Kyosuke
Contributeurs


Offline
Contributeurs

Joined: 30 Mar 2009
Posts: 436
Niveau:
Point(s): 532
Moyenne: 1.22
Windows 8 ou 10 Chrome (ou l'un de ses dérivés : Chromium/Iron/...) Masculin

PostPosted: Mon 21 Mar 2016 - 23:01    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

Sans condition dans le template et sans le système de contrôle des permissions la seule alternative possible est de passer par un peu de JS.

Tu peux tester ça, sans garantie que cela fonctionne sur ton forum, j'ai testé rapidement sur le thème subsilver.

A coller à la fin du template VIEWTOPIC_BODY.TPL.

Code: Sélectionner - Agrandir
<!-- IF S_USER_LOGGED_IN -->
<script>
(function () {
   var checkPermissions = {
      /**
       * @type {Array} unauthorizedGroup Groupes non autorisés à répondre ou créer un nouveau sujet
       */
      unauthorizedGroups: ['Groupe non autorisé n°1', 'Groupe non autorisé n°2'],
      /**
       * Initialisation du script
       */
      init: function () {
         var url = document.location.protocol + '//' + document.location.hostname + '/groupcp.php?ajax=1';
         if (this.isViewTopic())
            this.sendRequest(url, this.getGroups.bind(this));
      },
      /**
       * Récupère la liste des groupes du membre connecté
       * @param  {Object} response réponse de la requête AJAX
       */
      getGroups: function (response) {
         try {
            var temp       = document.createElement('div'), select;
            temp.innerHTML    = response.responseText;
            select          = temp.querySelector('select[name="g"]');
            if (select) {
               var groups    = select.options, regex, matches;
               if (groups) {
                  groups    = [].slice.call(groups);
                  regex    = /<([a-z][a-z0-9]*)\b[^>]*>(.*?)<\/\1>/;
                  groups.forEach(function (option, i) {
                     matches = option.outerHTML.match(regex);
                     if (matches) groups[i] = matches[2];
                     else groups.splice(i, 1);
                  });
                  this.groups = groups;
                  this.checkGroups();
               }
            }
         } catch (ex) {
            console && console.errror(ex);
         }
      },
      /**
       * Vérifie si le(s) groupe(s) du membre connecté fait partie des groupes non autorisés
       */
      checkGroups: function () {
         try {
            this.groups.forEach(function (group) {
               this.unauthorizedGroups.forEach(function (unauthorizedGroup) {
                  if (group === unauthorizedGroup) this.hideReply();
               }.bind(this));
            }.bind(this));
         } catch (ex) {
            console && console.errror(ex);
         }
      },
      /**
       * Envoie une requête AJAX
       * @param  {String}   url      URL de la page de destination
       * @param  {Function} callback callback à lancer en cas de succès de la requête AJAX
       */
      sendRequest: function (url, callback) {
         new Ajax.Request(url, {
            method: 'get',
            onSuccess: function (response) {
               callback(response);
            },
            onFailure: function (error) {
               console && console.error(error);
            }
         });
      },
      /**
       * Cache les boutons "Nouveau" et "Répondre" ainsi que la réponse rapide
       */
      hideReply: function () {
         var buttons = document.querySelectorAll('a[href*="?mode=newtopic"], a[href*="?mode=reply"]'),
            quickReply = document.querySelector('div#quickreply');
         for (var i = 0; i < buttons.length; i++) {
            if (buttons[i].style !== 'none')
               buttons[i].style.display = 'none';
         }
         if (quickReply) {
            while ((quickReply.parentNode)) {
               quickReply = quickReply.parentNode;
               if (quickReply.tagName === 'TABLE') {
                  quickReply = quickReply.parentNode.parentNode;
                  if (quickReply.tagName === 'TR') {
                     quickReply.nextSiblings('tr')[0] && quickReply.nextSiblings('tr')[0].remove();
                     quickReply.nextSiblings('tr')[0] && quickReply.nextSiblings('tr')[0].remove();
                     quickReply.remove();
                  }
                  break;
               }
            }
         }
      },
      /**
       * Vérifie si nous sommes sur la page de visualisation d'un sujet
       * @return {Boolean} vrai ou faux
       */
      isViewTopic: function () {
         var location    = document.location.href,
            regex       = /t[\d]+/
            viewTopic    = false;
         if (location.match(regex)) viewTopic = true;
         return viewTopic;
      }
   };
   checkPermissions.init();
})();
</script>
<!-- ENDIF -->


Modifie ensuite cette ligne :

Code: Sélectionner - Agrandir
unauthorizedGroups: ['Groupe non autorisé n°1', 'Groupe non autorisé n°2']


Ajoute le ou les groupes qui ne sont pas autorisés à répondre ou poster un nouveau sujet.
Dans l'exemple il y a deux groupes non autorisés, mais tu peux en mettre autant que tu veux ; il suffit de les séparer par des virgules et d'entourer le nom exact du groupe par des apostrophes ou des guillemets.

Un utilisateur averti saura rapidement comment contourner ça.
_______________________
Following members like this message:
cuisto (22/03/16)


Forum
Author Message
Guig Esprit du Sage
Membre


Offline
Membre

Joined: 06 Feb 2015
Posts: 35
Niveau:
Point(s): 35
Moyenne: 1.00
Windows Vista ou 7 Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Tue 22 Mar 2016 - 06:41    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

Bonjour,
A mon avis, tu t'y prends à l'envers. S'il y a un truc qui fonctionne bien chez xxoit, c'est la gestion ds droits, surtout si tu es en mode avancé.
Il te faut tout simplement créer plus de groupes mais qui donnent des autorisations plus réduites.

Tu veux que certaines personnes aient des droits intermédiaires?
-->Tu crée un groupe avec des droits intermédiaire!

Tu veux interdire quelque-chose à un utilisateur en le rajoutant dans un groupe?
--> NON!!
--> Il faut l'enlever du groupe qui lui donne ce droit.

Je te garantit, que tu peux tout interdire, faire que certains utilisateurs ne voient rien du tout sur le forum.
Il te suffit pour cela d'aller dans les droits des catégories et sous-forums, tu active le mode avancé et tu règle tout les droits de tout tes forums et sous-forums à "privé/caché", de cette manière seul les droits des groupes donnent l'accès à tes forums.

Si tu as des utilisateurs qui ont accès à des sections sensible de ton forum rien qu'en s'inscrivant, c'est que la gestion de tes droits est trop permissive.

Tu peux créer des groupes qui donnent des droits sur tout le forum, d'autre sur des sections spécifiques et dans les deux cas, tu crée plusieurs échelons de droits.
Par exemple des groupes qui ne permettent que de poster dans la cuisine, d'autre dans la section garage, un autre dans la section jeu-vidéo etc (nous on fait ça pour les droits de modération des coordinateurs de section).
Plus tu veux faire quelque-chose de précis et compliqué plus tu crée de groupes.
Une fois que tu as créé des groupes adéquat, tu donne à tes utilisateurs l’appartenance à plusieurs groupes, sachant que les autorisations s'additionnent.

Un nouvel utilisateur part de droits 0, puis tu le fait monter les échelons au fur et à mesure que ta confiance en lui augmente, puis tu le rétrograde si il se comporte mal.

A partir du moment où tu as créé les groupes qui vont bien, tu n'a plus à changer les droits (sauf à la création de nouveau sous-forum), il te suffit de changer les groupes auxquels appartiennent tes utilisateurs.


A mon avis, trafiquer les templates pour ça, c'est pas une bonne idée. D'autant plus que tu ne va faire que cacher les boutons, mais le lien vers le sous-forum ou poster un message existera toujours, lui et l'utilisateur pourra éventuellement y accéder manuellement puisque dans la base de donnée, il a toujours le droit.

Cordialement.
Following members like this message:
cuisto (22/03/16)


Forum
Author Message
cuisto
Membre


Offline
Membre

Joined: 26 Jan 2008
Posts: 157
Point(s): 135
Moyenne: 0.86
Windows XP (ou plus ancien) Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Tue 22 Mar 2016 - 10:23    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

@Kyosuke merci, je teste ça dans la journée

@Guig Esprit du Sage
je suis en partie d'accord avec toi, mais sur n'importe quel autre forum j'aurais pu faire ça en standard en 2 click.
idem sur xooit, si le groupe principal était mieux pris en compte.
mais nous n'avons que des droits "simplifiés" et dés qu'on veut faire quelque chose de complexe il faut faire "une usine a gaz".

le principe de base sur mon forum, c'est le minimum d’administration, les admins et modos n'y connaissent rien tout simplement.
et on ne peut pas passer son temps a ajouter des personnes dans des groupes pour leur donner des droits car c'est source d'erreur.
100% des présents sont des personnes avec des pb de santé qui impliquent des pb de raisonnement et de mémoire fréquents.
les endroits sensibles sont protégés par des groupes, et l'accès se fait à la demande.
il y a juste un sous forum accessible a partir de 10 messages.
on peut difficilement faire plus simple et c'est déjà assez compliqué pour les membres et les modos.
le but du forum est quand même que les nouveaux inscrits aient accès à la majorité du forum de suite ce qui interdit ce que tu propose, sauf loupé de ma part, car ça implique de faire des ajouts manuels dans les groupes.

si on faisait selon la bonne logique : il faudrait retirer le membre qui ne doit pas poster de ses groupes, et l'ajouter dans le bon groupe.
puis faire l'opération inverse après coup. Il faudrait aussi passer le forum entier en "privé", c'est tout simplement ingérable.d ns notre cas.
ca serait plus simple aussi si on pouvait virer quelqu'un des groupes a adhésion automatique.


Forum
Author Message
cuisto
Membre


Offline
Membre

Joined: 26 Jan 2008
Posts: 157
Point(s): 135
Moyenne: 0.86
Windows XP (ou plus ancien) Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Tue 22 Mar 2016 - 14:07    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

Kyosuke wrote:
Sans condition dans le template et sans le système de contrôle des permissions la seule alternative possible est de passer par un peu de JS.

Tu peux tester ça, sans garantie que cela fonctionne sur ton forum, j'ai testé rapidement sur le thème subsilver..


j'ai pu tester et ça marche, merci Wink

par contre, je n'arrive pas à l’intégrer dans aux moins posting_body.tpl et posting_preview.tpl (je n'en ai pas détecté d'autres pour l'instant)
c'est possible de le faire ?

et pour des raisons de facilité avec le topic de test (le tien Wink,
je peux tout simplement interdire l'utilisation de ce thème en testant les groupes de la même façon, ?


Forum
Author Message
Guig Esprit du Sage
Membre


Offline
Membre

Joined: 06 Feb 2015
Posts: 35
Niveau:
Point(s): 35
Moyenne: 1.00
Windows Vista ou 7 Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Tue 22 Mar 2016 - 14:12    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

Si vous avez des groupes à adhésion automatique, c'est que vous les avez créé et donc vous pouvez les modifier.
Si le problème ne conserve qu'une seule sous-section, pour que vous préfériez avoir un groupe qui interdit ce dernier plutôt qu'un seul groupe qui lui donne l'accès, c'est que vous devez avoir une rotation énorme des membres.

Je ne savais pas qu'il y avait des forums xooit qui n'autorisent pas les permissions avancées, je croyais que tout les forums xooit avaient un panneau de configuration identique. C’est peut-être en rapport avec le thème?
Actuellement, quand vous cliquez dans messages --> permissions --> nom du sous-forum, vous n'avez ni ça:

ni ça?


Forum
Author Message
Kyosuke
Contributeurs


Offline
Contributeurs

Joined: 30 Mar 2009
Posts: 436
Niveau:
Point(s): 532
Moyenne: 1.22
Windows 8 ou 10 Chrome (ou l'un de ses dérivés : Chromium/Iron/...) Masculin

PostPosted: Tue 22 Mar 2016 - 14:24    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

cuisto wrote:
et pour des raisons de facilité avec le topic de test (le tien Wink,
je peux tout simplement interdire l'utilisation de ce thème en testant les groupes de la même façon, ?


Tu parles du thème mobile ?
_______________________


Forum
Author Message
cuisto
Membre


Offline
Membre

Joined: 26 Jan 2008
Posts: 157
Point(s): 135
Moyenne: 0.86
Windows XP (ou plus ancien) Firefox (ou l'un de ses dérivés : Minefield/Pale Moon/...) Masculin

PostPosted: Tue 22 Mar 2016 - 14:25    Post subject: Faire apparaître bouton en fonction groupe ou variable Reply with quote

Guig Esprit du Sage wrote:
Si vous avez des groupes à adhésion automatique, c'est que vous les avez créé et donc vous pouvez les modifier.
Si le problème ne conserve qu'une seule sous-section, pour que vous préfériez avoir un groupe qui interdit ce dernier plutôt qu'un seul groupe qui lui donne l'accès, c'est que vous devez avoir une rotation énorme des membres.

Je ne savais pas qu'il y avait des forums xooit qui n'autorisent pas les permissions avancées, je croyais que tout les forums xooit avaient un panneau de configuration identique. C’est peut-être en rapport avec le thème?



j'ai bien sur accès aux permissions avancées, mais je vais réduire le problème plus simplement:

nous sommes dans un forum ouvert, tu t'inscris, tu peux poster, sauf dans certains sous forums ou l'accès se fait à la demande.
comment interdire a quelqu'un de poster dans ce cas la ? en gardant le forum ouvert ?
comme je le disais dans mon message précédent, ça implique de tout passer en mode privé ! et donc de donner des droits manuellement aux nouveaux.


Last edited by cuisto on Tue 22 Mar 2016 - 14:43; edited 3 times in total
Forum
Author Message
Contenu Sponsorisé





PostPosted: Today at 03:52    Post subject: Faire apparaître bouton en fonction groupe ou variable

Display posts from previous:   
Reply to topic Page 1 of 3 Goto page: 1, 2, 3  >




Portal | Index | Administration Panel | Create a forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation
Propulsé par p h p B B © 2016 p h p B B Group |
 
© 2003-2013 Xooit.com - Contact - Mentions légales - CGU - Charte - CNIL : 1381401