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 récursif


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut [POO] Menu dynamique récursif
    Bonjour,

    Je cherche à créer une classe me permettant de gérer des menus dynamiques (avec sous-catégories).

    Mon but, faire une classe du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $menu->AddItem('Cat1');
    $node = $menu->AddItem('Cat2');
    $node->AddItem('Sous-Cat1');
    $node->AddItem('Sous-Cat2');
    $node=$node->AddItem('Sous-Sous-Cat');
    $menu->AddItem('Cat3');
    Ce qui donnerait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Cat1
    Cat2
         Sous-Cat1
         Sous-Cat2
              Sous-Sous-Cat
    Cat3
    Mon problème, j'arrive très bien à faire une classe qui fasse ça sans sous-niveaux, ou avec les sous niveau si je passe un ID à la fonction... Mais justement j'aimerais éviter ça...

    SVP, avez-vous des infos pour ... comment réaliser cette classe ?
    Merci d'avance

    PS : Je stocke le menu dans un tableau, je n'affiche pas tout de suite...

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
    class Item {
     
       var $name;
     
       var $sub_items;
     
       function Item($name) {
          $this->name = $name;
          $this->sub_items = array();
       }
     
       function &addItem($name) {
          $item =& new Item($name);
          $this->sub_items[] =& $item;
          return $item;
       }
     
       function displayHtml() {
          echo '<div>'. $this->name .'</div>';
          if (count($this->sub_items) > 0) {
             echo '<ul>';
             foreach($this->sub_items as $key => $nop) {
                echo '<li>';
                $this->sub_items[$key]->displayHtml();
                echo '</li>';
            }
             echo '</ul>';
          }
       }
    }
     
    $menu =& new Item('Mon menu');
    $menu->AddItem('Cat1');
    $node =& $menu->AddItem('Cat2');
    $node->AddItem('Sous-Cat1');
    $node =& $node->AddItem('Sous-Cat2');
    $node->AddItem('Sous-Sous-Cat');
    $menu->AddItem('Cat3'); 
     
    $menu->displayHtml();
    ?>
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Mon menu
     
        * Cat1
        * Cat2
              o Sous-Cat1
              o Sous-Cat2
                    + Sous-Sous-Cat
        * Cat3

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut
    Merci bcp, je vais pouvoir adapter cet exemple à mes autres classes

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/08/2008, 12h07
  2. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04
  3. Créer un sous-menu dynamiquement
    Par PurL dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/09/2004, 10h31
  4. [JSP]menu dynamique en jsp
    Par laouedjahmed dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 22/03/2004, 10h50
  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