Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/08/2008, 11h17   #1
Nouveau Membre du Club
 
Homme Karim
Développeur informatique
Inscription : mai 2004
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Karim
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 56
Points : 26
Points : 26
Envoyer un message via MSN à lepotier
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,
lepotier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 11h29   #2
Membre régulier
 
Avatar de Rizzen
 
Bertrand Merlier
Inscription : janvier 2008
Messages : 112
Détails du profil
Informations personnelles :
Nom : Bertrand Merlier
Âge : 26

Informations forums :
Inscription : janvier 2008
Messages : 112
Points : 88
Points : 88
Envoyer un message via MSN à Rizzen
Je dirais une table liens avec une liaison réflexive (est fils de) ce qui donne, pour l'exemple suivant.

Citation:
- 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
Rizzen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 11h47   #3
Nouveau Membre du Club
 
Homme Karim
Développeur informatique
Inscription : mai 2004
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Karim
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 56
Points : 26
Points : 26
Envoyer un message via MSN à lepotier
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 :
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 :
1
2
 
<li><a href="#formulaire" title="Envoyer">Envoyer</a></li>
lepotier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 12h07   #4
Membre régulier
 
Avatar de Rizzen
 
Bertrand Merlier
Inscription : janvier 2008
Messages : 112
Détails du profil
Informations personnelles :
Nom : Bertrand Merlier
Âge : 26

Informations forums :
Inscription : janvier 2008
Messages : 112
Points : 88
Points : 88
Envoyer un message via MSN à Rizzen
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.
__________________
Java'ldire à tout le monde
Rizzen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h12.


 
 
 
 
Partenaires

Hébergement Web