IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Menu dynamique en fonction de la personne connecté


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Points : 88
    Points
    88
    Par défaut [POO] Menu dynamique en fonction de la personne connecté
    Bonjour à tous,

    Voilà, j'ai besoin de suggestion pour créer un menu dynamique en fonction de la personne connecter.

    Je vais tenter de vous expliquer...

    J'ai un menu de base que tous les utilisateurs ont accès.
    Et donc j'aimerais générer des sous-liens dans mon menu (<li></li>) en plus en fonction de l'utilisateur. Le sous-lien ajouter peut être mis dans n'importe quel rubrique

    Je travaille en php5 (POO) et mysql

    Ma question est comment vous voyez les choses (une table, un array ou autre...)


    Merci d'avance,

  2. #2
    Membre habitué Avatar de Rizzen
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 115
    Points : 157
    Points
    157
    Par défaut
    Je dirais une table liens avec une liaison réflexive (est fils de) ce qui donne, pour l'exemple suivant.

    - Menu P
    |--Menu F1
    |--Menu F2

    -Menu P2
    |--Menu F3
    |--Menu F4
    On a Menu P et P2 avec le champs père à null ou -1 et pour F1, F2, F3, F4 le champs père possédant l'identifiant respectivement de P et P2

    Avec ça tu as ton menu dynamique, tu rajoute en plus un champs obligatoire pour forcer l'affichage. A tous les utilisateurs. (En plus ton menu la tu peux définir autant de niveau que tu le souhaite)

    Ensuite tu as une table de liaison menu - User, pour dire à quel menu l'utilisateur à accès.

    Pour l'affichage tu fais une requête qui récupère tous les menus obligatoires et les menus qui sont autorisé pour l'user.

    Cela te donne une bonne piste, j'utilise généralement ce système mais plutôt que user l'autorisation d'accès se fait sur le niveau d'habilitation

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Citation Envoyé par Rizzen Voir le message
    Je dirais une table liens avec une liaison réflexive (est fils de) ce qui donne, pour l'exemple suivant.



    On a Menu P et P2 avec le champs père à null ou -1 et pour F1, F2, F3, F4 le champs père possédant l'identifiant respectivement de P et P2

    Avec ça tu as ton menu dynamique, tu rajoute en plus un champs obligatoire pour forcer l'affichage. A tous les utilisateurs. (En plus ton menu la tu peux définir autant de niveau que tu le souhaite)

    Ensuite tu as une table de liaison menu - User, pour dire à quel menu l'utilisateur à accès.

    Pour l'affichage tu fais une requête qui récupère tous les menus obligatoires et les menus qui sont autorisé pour l'user.

    Cela te donne une bonne piste, j'utilise généralement ce système mais plutôt que user l'autorisation d'accès se fait sur le niveau d'habilitation
    Merci pour ta réponse!

    Que penses tu de ça ?

    une table avec les différents sous liens et un id (utilisateur).
    Dans cette table par exemple un champ formulaire qui a comme valeur 1 ou 0
    Et je test si formulaire est à 1 pour cet utilisateur alors j'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <li><a href="#">Menu 1</a>
          <ul class="sousMenu">
             <li><a href="#search" title="Chercher ">Chercher</a></li>
             <li><a href="#new" title="Créer">Nouveau</a></li>
            if($row['formulaire'] == 1) $class->formulaire
          </ul>
       </li>
    Et donc la fonction formulaire affichera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <li><a href="#formulaire" title="Envoyer">Envoyer</a></li>

  4. #4
    Membre habitué Avatar de Rizzen
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 115
    Points : 157
    Points
    157
    Par défaut
    Si je comprends bien ton exemple, ta table aura trois colonnes : le sous liens, l'id utilisateur et active 0 ou 1. Et tu récupère tous les liens de l'utilisateur et tu affiche ceux qui sont à 1 ?

    Si non pour l'exemple de ton code c'est une solution viable, mais tu va devoir faire beaucoup de teste dans ton code et l'ajout d'un lien entraine une modification de ton menu.

    Dans mon exemple (je dis pas qu'il est parfais au contraire ^^) tu limite
    l'affichage au final à une requête sql (serte plus casse chiante car tu as des jointure) et tu n'as plus qu'a afficher.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Menu dynamique cliquable avec fonction récursive
    Par naunau dans le forum Langage
    Réponses: 4
    Dernier message: 22/03/2013, 22h36
  2. Menu dynamique en fonction de la route
    Par norky dans le forum MVC
    Réponses: 1
    Dernier message: 10/03/2008, 13h00
  3. Réponses: 4
    Dernier message: 18/01/2007, 05h46
  4. [POO] Menu dynamique récursif
    Par The Dark Lewis dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2006, 10h02
  5. Menu dynamique sous Flash MX
    Par dens63 dans le forum Flash
    Réponses: 7
    Dernier message: 29/10/2003, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo