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 :

Help for Zend_Navigation [ZF 1.9]


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Développeur Java
    Inscrit en
    Février 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2009
    Messages : 52
    Par défaut Help for Zend_Navigation
    Bonjour à tous,
    Je débute avec Zend Framework et j'adore !!!
    Je teste en ce moment les composant et j'en suis arrivé à Zend_Navigation,
    j'essais de créer un menu horizontal et cela fonctionne très bien. Maintenant j'aimerai ajouter un sous menu. voici comment je m'y prends :
    d'abord j'utilise un fichier xml comme configuration du menu (navigation.xml)
    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
    43
    44
    45
    46
    47
    48
     
     
    <?xml version="1.0" encoding="UTF-8"?><configdata>
    <nav>
        <home>
            <label>Accueil</label>
            <controller>index</controller>
        </home>
        <reservation>
            <label> Reservation</label>
            <controller>reservation</controller>
            <action>index</action>
            <pages>
                <liste>
                    <class>first</class>
                    <label>Liste of reservation</label>
                    <controller>reservation</controller>
                    <action>listReservation</action>
                </liste>
                <creation>
                    <label>Create Reservation</label>
                    <controller>reservation</controller>
                    <action>createReservation</action>
     
                </creation>
            </pages>
        </reservation>
        <books>
            <label> Books</label>
            <controller>books</controller>
            <action>index</action>
            <pages>
                <liste>
                    <class>first</class>
                    <label>Liste of Book</label>
                    <controller>books</controller>
                    <action>listBooks</action>
                </liste>
                <creation>
                    <label>Create</label>
                    <controller>books</controller>
                    <action>createBooks</action>
     
                </creation>
            </pages>
        </books>
    </nav>
    </configdata>
    Ensuite dans mon bootestrap (/application/bootstrap.php) je crée une resource method _initNavigation() pour initialiser la navigation pour le layout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    protected function _initNavigation()	{
     
            $this->bootstrap('layout');
            $layout = $this->getResource('layout');
            $view = $layout->getView();
     
            $navContainerConfig = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml','nav');
            $navContainer = new Zend_Navigation($navContainerConfig);
     
            $view->navigation($navContainer);
    }
    Ensuite dans mon layout.phtml (application/layout/script/layout.phtml) je crée une balise <div> dans laquelle j'affiche mon menu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    echo $this->navigation()->menu();
    Sans sous menu ça fontionnel niquel ! mais avec sous menu c'est la C-A-T-A-S-T-R-O-P-H-E, il m'affiche tous les sous menu en dessous de chaque intitulé et en plus manière pas très propre ...
    j'ai testé aussi ça à la place du code dans mon layout.phtml :

    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
     
     
    echo $this->navigation()->menu()->renderMenu(null, array('maxDepth' => 0) );
     
     echo '<div class="sec-nav-wrap">';
     echo $this->navigation()->menu()->renderMenu(
        null,
        array(
            'ulClass'          => 'sec-navigation',
            'minDepth'         => 1,
            'onlyActiveBranch' => false,
            'renderParents'    => false
            )
        );
     echo '</div>';
    Ce qui m'affiche de manière correcte le menu et le sous menu mais il m'affiche tous les intitulés dans les sous menu et dans n'importe quel controller ...

    Est-ce que quelqu'un aurait une idée ?

    Merci beaucoup d'avance =)

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Quand tes collègues au boulot te donne la solution, soit sympa partage avec tous le monde

    Comme je lui ai expliqué entre quat'yeux', il faut contourner le problème en mentant à ZF, en effet il faut faire croire que chaque item du menu possède un sous-menu, même si celui-ci ne retourne rien.

    Son XML devient donc ceci :

    Code XML : 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <?xml version="1.0" encoding="UTF-8"?><configdata>
    <nav>
        <home>
            <label>Accueil</label>
            <controller>index</controller>
                <pages>
                <fauxmenu>
                    <class>first</class>
                    <label>''</label>
                    <controller>''</controller>
                    <action>''</action>
                </fauxmenu>           
            </pages>
        </home>
        <reservation>
            <label> Reservation</label>
            <controller>reservation</controller>
            <action>index</action>
            <pages>
                <liste>
                    <class>first</class>
                    <label>Liste of reservation</label>
                    <controller>reservation</controller>
                    <action>listReservation</action>
                </liste>
                <creation>
                    <label>Create Reservation</label>
                    <controller>reservation</controller>
                    <action>createReservation</action>
     
                </creation>
            </pages>
        </reservation>
        <books>
            <label> Books</label>
            <controller>books</controller>
            <action>index</action>
            <pages>
                <liste>
                    <class>first</class>
                    <label>Liste of Book</label>
                    <controller>books</controller>
                    <action>listBooks</action>
                </liste>
                <creation>
                    <label>Create</label>
                    <controller>books</controller>
                    <action>createBooks</action>
     
                </creation>
            </pages>
        </books>
    </nav>
    </configdata>

    On peut voir que pour la balise <home> on crée un sous-menu qui ne pointe vers....rien !

    En attendant de trouver mieux

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

Discussions similaires

  1. Help for microsoft encarta
    Par latifwa dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 24/08/2010, 01h37
  2. need for help
    Par arnoub dans le forum Cas d'utilisation
    Réponses: 1
    Dernier message: 10/05/2007, 19h38
  3. Fatal error RC1107 invalid usage use RC /? for help
    Par Gabrielly dans le forum Visual C++
    Réponses: 3
    Dernier message: 19/11/2006, 13h47
  4. help FOR tokens=1,2* et le caractére *
    Par koKoTis dans le forum Windows
    Réponses: 4
    Dernier message: 10/08/2006, 17h08

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