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

Autres composants PHP Discussion :

Zend_Navigation : vider et supprimer des branches


Sujet :

Autres composants PHP

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 94
    Points : 120
    Points
    120
    Par défaut Zend_Navigation : vider et supprimer des branches
    Bonjour à tous.

    Je suis en train de faire un site dans lequel je ne dois afficher des items de menu que si l'utilisateur y a accès. Le menu a (actuellement) 3 niveaux.

    J'ai donc créé un View_Helper_NavMenu à qui je passe le $this->container depuis le template du menu.

    J'ai une fonction (récursive) de parcours du menu dans laquelle je peux supprimer les items auxquels l'utilisateur n'a pas droit, jusqu'ici tout va bien.
    Mon souci est que ces items sont ceux de plus bas niveau (les feuilles de l'arborescence), mais je n'arrive pas à trouver un moyen de supprimer les branches "vides" (qui elles n'ont pas d'infos sur les droits utilisateur).

    Pour donner un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Administration
      +- Utilisateurs
      |   +- Comptes
      |   `- Droits d'accès
      +- Modules
          +- Module 1
          +- Module 2
          `- Module 3
    Si un utilisateur n'a pas accès à "Comptes" et "Droits d'accès", je veux aussi supprimer du container "Utilisateurs".

    Quelqu'un aurait une idée du principe que je pourrais utiliser ? Parce qu'à force de faire mes fonctions dans un sens puis dans l'autre, je ne sais plus où j'en suis.

    Merci d'avance !

  2. #2
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Bonsoir,
    Comment procèdes tu pour ta navigation ?
    Car normalement tu ne devrais avoir aucun soucis à ce niveau avec Zend_Navigation, il suffit d'y ajouter tes ACLs et de définir les rôles ayant accès.

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 94
    Points : 120
    Points
    120
    Par défaut
    Bonjour,

    J'utilise bien les ACL, mais comme je le disais, certains éléments dans le XML de navigation sont "virtuels", c'est à dire qu'ils n'ont qu'un label, pas de module/controller/action. Ils ne servent qu'à faire des entrées de sous-menu.

    Je ne peux donc pas les gérer simplement.

    Il faut aussi savoir que les rôles ne sont pas fixés, ils peuvent êtres étendus à l'infini (précision au niveau de l'action de chaque controller).

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par CrazyCat Voir le message
    J'utilise bien les ACL, mais comme je le disais, certains éléments dans le XML de navigation sont "virtuels", c'est à dire qu'ils n'ont qu'un label, pas de module/controller/action. Ils ne servent qu'à faire des entrées de sous-menu.
    Oui, ce sont des instances de Zend_Navigation_Page_Uri, les autres (celles définissant des variables de routage) étant des instances de Zend_Navigation_Page_Mvc. Il n'empêche que ces deux classes ont en commun de pouvoir déclarer une option « resource » qui permet d'autoriser ou non leur affichage selon l'objet Zend_Acl passé en paramètre à l'aide de vue Zend_Navigation. Donc non, tu n'as pas de traitement particulier à faire les concernant.

    Pour les rôles qui varient, c'est au niveau de ta classe dérivant Zend_Acl qu'il faut gérer cela.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/07/2004, 17h44
  2. HELP!Comment supprimer des enregistrements de tables jointes
    Par ROOTPARIS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/06/2004, 16h41
  3. vider le journal des transactions
    Par coucoucmoi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/05/2004, 09h21
  4. Réponses: 14
    Dernier message: 15/01/2004, 01h15
  5. Réponses: 2
    Dernier message: 12/01/2004, 13h56

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