Fork me on GitHub




(1) 2 »


Menu utilisateur, différent suivant le groupe logué
Aspirant
Inscrit: 01/09/2007 08:40
De Île de la Réunion (974)
Messages: 79
Bonsoir,

Je voudrais avoir un menu utilisateur (pour le module que je développe actuellement) différent suivant le groupe logué.

Je peux facilement faire des blocs différents, ces blocs seraient alors affichés si tel ou tel groupe est logué ... Seulement si l'administrateur se logue alors ils seront tous affichés et c'est pas terrible ... Si j'ai 4 blocs, ça fait désordre de les voir tous affichés en même temps ...

Y a t-il un moyen pour faire cela proprement (mieux) ? Les items du menu apparaissants si l'utilisateur appartient à tel ou tel groupe ... Par exemple, je voudrais que le 3ème item apparaisse uniquement si c'est un utilisateur du groupe Webmestre ...

Merci pour vos contributions,
Bruno

Posté le : 13/05/2009 20:01
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Guest_
b'jour

C'est une solution de fortune mais pourquoi ne pas
- masquer au webmaster les 4 blocs assignés
- vérifier que le webmaster n'appartienne à aucun de ces 4 groupes
- ... et créer un 5è bloc contenant les infos que tu souhaites et accessible au seul webmaster ?

Il y a certainement d'autres façons de procéder. As-tu regardé sur xoops.org si la question n'a pas déjà été résolue ?

Posté le : 14/05/2009 10:41
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Aspirant
Inscrit: 01/09/2007 08:40
De Île de la Réunion (974)
Messages: 79
Bonsoir,

Je suis allez voir sur xoops.org, rien de plus ... Je trouve que ta solution est très fonctionnelle mais peu pratique.

En gros il faut faire des droits d'accès par groupe et pour des blocs menu différents, de faire un tas et tas de vérifications ... Et si qqc appartient à plusieurs groupe, alors il verra 2 menus voire plus ... C'est pas terrible pour moi ...

J'ai une piste du même ordre que ta proposition : faire un menu mini qui est valable pour tout le monde et créer des blocs pour chaque groupe. Après en fonction du groupe mes blocs seront plus ou moins enrichis ... Donc en gros se passer du menu qui a un sens ... et faire un truc bidon valable pour tous ... Je trouve cette solution un peu faible également !

Merci pour ton message,
Bruno

Posté le : 14/05/2009 19:05
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Semi pro
Inscrit: 13/12/2004 11:28
De Lyon
Messages: 1364
Salut,

Tu as la possibilié de mettre une option dans le bloc avec les groupe ayant le droit de le voir et ainsi lors de l'affichage tu connais le groupe du user, le groupe ayant droit de le voir et le tour est jouer
Si le bloc se lance et que tu ne veut pas qu'il s'affiche, il faut juste retourner une valeur vide
return '';

et ainsi le bloc n'apparait pas

Voila si ca peut t'aider

@+

Posté le : 14/05/2009 20:45
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Guest_
b'soir

... euh si j'ai saisi l'astuce il faut nécessairement un bloc au format .php ? et insérer son code html (liens par exemple) entre différentes conditions <if> ... <elseif> ... </if> ?

... où alors j'ai rien capito ?

Posté le : 15/05/2009 00:02
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Aspirant
Inscrit: 01/09/2007 08:40
De Île de la Réunion (974)
Messages: 79
Bonjour,

Bon en fait, j'ai peur de ne pas avoir été très clair dans ma question, je vais donc prendre un exemple sur un truc que tout le monde connait, l'item FAC de ce site (je déplie son menu utilisateur) :

=> je ne suis pas logué :
FAQ
 Questions Ouvertes


=> Je suis logué
FAQ
  Proposer une Q
&R
  Soumettre une Question
Question
  Questions Ouvertes

Bref, je vois donc "Proposer une Q&R" et "Soumettre une Question" en plus du menu non logué ! En fait, ici il y a ce qui m'interresse ! Moi, ce que je veux c'est que ce menu soit différent (comme ici) suivant le groupe (vu que ça fonctionne par groupe) qui s'est logué. En prennant l'exemple de ce module :

Imaginons le groupe ZZZ qui vient de se loguer, je souhaiterais avoir un truc dans le style :
FAQ
  Proposer une Q
&R
  Soumettre une Question
Question
  Questions Ouvertes
  Questions Fermées
  Questions liées au site Web

Imaginons le groupe YYY qui vient de se loguer, je souhaiterais avoir un truc dans le style :
FAQ
  Proposer une Q
&R
  Questions Fermées
  Questions liées à l
'audimate

Rmq : désolé si je manque d'imagination ... Mais voyez vous où je veux en venir ?

Cordialement,
Bruno

Posté le : 15/05/2009 07:43
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Régulier
Inscrit: 22/08/2006 11:44
Messages: 186
J'ai créé un module qui fait ca visible sur le site dans mon profil (menu avec listes déroulantes)

chaque item du menu peut être paramétré pour être affiché par un ou des groupes loggés.

à l'affichage , cela générer un liste ul li dans un bloc que l'on positionné où lon veut.

depuis je n'utilise plus les blocs menus de base.

Posté le : 15/05/2009 09:20
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Aspirant
Inscrit: 01/09/2007 08:40
De Île de la Réunion (974)
Messages: 79
Bonjour nicripteur,

Très heureux de savoir que tu as une solution ... J'ai regardé http://www.raiscreations.com/modules/spect, et ce serait 'spectacles' ? ou 'association' ?

Et si oui, pourrais-je récupérer qqc pour voir ?

Merci par avance,
Bruno

Posté le : 15/05/2009 10:53
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Guest_
@bruno
> regarde le module iMenu 3RC disponible sur cette page :
http://www.freeformsolutions.ca/en/formulize-downloads

Posté le : 15/05/2009 13:43
Partager Twitter Partagez cette article sur GG+
Re: Menu utilisateur, différent suivant le groupe logué
Aspirant
Inscrit: 01/09/2007 08:40
De Île de la Réunion (974)
Messages: 79
@burning
Merci beaucoup pour le module, il est très intéressant et permet de résoudre le problème. Mais, ça reste un peu compliqué quand on développe son module. De plus dès que l'on veut faire beaucoup de menu il faut cloner le module à l'aide du script perl ... Mais, ce module me plait pour d'autres utilités que de faire ce que je veux faire ! Alors j'ai cherché et fini par trouver une solution qui me semble satisfaisante.

Un petite remarque avant de commencer, tous mes groupes sont créés au moment de l'installation du module via un script :
$modversion['onInstall'] = 'include/install.php';


Dans mon fichier xoops_config.php :
// Les groupes prédéfinis ...
$modversion['groupe_1']="WSFadministrateurs";
$modversion['groupe_2']="WSFenseignants";
$modversion['groupe_3']="WSFetudiants";
$modversion['groupe_4']="WSFentreprises";


Après les autorisations :
$modversion['hasMain'] = 1;
if(isset(
$GLOBALS['xoopsModule']) && $GLOBALS['xoopsModule']->getVar('dirname') === $modversion['dirname']) 
{
    include_once 
XOOPS_ROOT_PATH.'/modules/'.$modversion['dirname'].'/class/publicPerm.php';
    
$permHandler WSformationPublicPermHandler::getHandler();
    
// ENS
    
if ($permHandler->isUserInGroup($modversion['groupe_2']))
    {
        
$modversion['sub'][1]['name'] = _MI_WSFORMATION_USERMENU_ENS1;
        
$modversion['sub'][1]['url'] = "enseignants.php";
        
$modversion['sub'][2]['name'] = _MI_WSFORMATION_USERMENU_ENS2;
        
$modversion['sub'][2]['url'] = "enseignants.php";
        
$modversion['sub'][3]['name'] = _MI_WSFORMATION_USERMENU_ENS3;
        
$modversion['sub'][3]['url'] = "enseignants.php";
        
$modversion['sub'][4]['name'] = _MI_WSFORMATION_USERMENU_ENS4;
        
$modversion['sub'][4]['url'] = "enseignants.php";
    } 
// ETUD    
    
elseif ($permHandler->isUserInGroup($modversion['groupe_3']))
    {
        
$modversion['sub'][1]['name'] = _MI_WSFORMATION_USERMENU_ETUD1;
        
$modversion['sub'][1]['url'] = "etudiants.php";
        
$modversion['sub'][2]['name'] = _MI_WSFORMATION_USERMENU_ETUD2;
        
$modversion['sub'][2]['url'] = "etudiants.php";
        
$modversion['sub'][3]['name'] = _MI_WSFORMATION_USERMENU_ETUD3;
        
$modversion['sub'][3]['url'] = "etudiants.php";

...
}


La classe ? publicPerm.php :
if (!defined("XOOPS_ROOT_PATH")) {
    die(
"XOOPS root path not defined");
}

class 
WSformationPublicPermHandler {

    function &
getHandler()
    {
        static 
$permHandler;
        if(!isset(
$permHandler)) {
            
$permHandler = new WSformationPublicPermHandler();
        }
        return 
$permHandler;
    }
    
    
/**
    * retourne un booléen indiquant l'appartenance ou non d'un utilsateur à un groupe
    * si ANONYMOUS retourne false
    * @param chaine $group 
    * @return array() users of group
    */
    
function isUserInGroup($group) {
        
$userLogue $GLOBALS['xoopsUser'];
        
$member_handler =& xoops_gethandler('member');
        
$groups $member_handler->getGroups();
        
$count count($groups);

        
// Groupe anonymous !    
        
if (!is_object($GLOBALS['xoopsUser']))
            return 
false;

        for (
$i 0$i $count$i++) {
            
$g_id $groups[$i]->getVar('groupid');
        
            if (
$groups[$i]->getVar('name') === $group) {
                
$members $member_handler->getUsersByGroup($g_idfalse);

                foreach (
$members as $cle) {
                    
$user =& $member_handler->getUser($cle);

                    if (
$user->getVar("uname""E") === $userLogue->getVar('uname'))
                        return 
true;
                }
            }
        }    
        return 
false;
    }

}


Et tout va bien, un menu pour chaque groupe et différent !

Cordialement,
Bruno

Posté le : 17/05/2009 08:19
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

113 Personne(s) en ligne (83 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 113 | Plus ...