Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-05-2009 16:09:54

Nikko
Membre
Lieu: Rueil (Haut-de-Seine)
Date d'inscription: 19-12-2008
Messages: 95

[Zend 1.6]Récupération d'une instance de vue

Bonjour,

Suite à l'un de mes posts sur les menus, je me suis lancé dans la création d'une classe modèle Menu (/app/models).

Lorsque mon utilisateur navigue sur le site, l'onglet du menu dans lequel il se trouve est mis en surbrillance grâce à de la CSS. Pour savoir dans quel onglet l'utilisateur se trouve, j'envoie à mon layout, depuis mon controller, le code suivant :

Code:

$view = Zend_Registry::get('view');
$this->view->menu = 'mon onglet'

Mon problème est donc de savoir comment je peux récupérer dans ma classe modèle la valeur de $this->view->menu.

Voici le code de ma classe :

Code:

class Menu
{
    public $href;

public function __construct($href)
    {
        $this->href = $href;
}

public function createSubMenu()
    {
        $view = Zend_Registry::get('view');
        print "<ul>";
        foreach($this->href as $link => $label)
        {
            if($view->submenu == $link)
                print "<li id='active'><a id='current' href='";
            else
                print "<li><a href='";
                    
            print ROOT_URL . "/" . $link . "'>" . $label . "</a>";
        }
        print "</ul>";
    }
}

Voici le code d'un de mes menus (/app/layouts/monMenu) :

Code:

<?php 

        $lien = array ('themes' => 'Thèmes',
                        'institutions' => 'Institutions',
                        'directions'   => 'Directions',
                        'rubriques'       => 'Rubriques',
                        'section-budgetaires' => 'Section budgétaires',
                        'sections-gestion' => 'Sections gestions',
                        'departements' => 'Départements',
                        'personnel' => 'Personnel',
                        'activites' => 'Activités'
                );
                
        $subMenu = new Menu($lien);
        $subMenu->createSubMenu();

Et dans mon layout, j'appelle mon menu.

J'espère avoir été suffisamment clair pour que vous puissiez m'éclairer en retour.


Nikko

Etudiant en école d'ingénieur à l'INSIA

Hors ligne

 

#2 06-05-2009 16:30:01

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend 1.6]Récupération d'une instance de vue

le modèle ne doit rien avoir à faire avec la vue
c'est avec le contrôleur qu'il doit discuter

c'est au contrôleur de récupérer la valeur de l'onglet de la vue et la donner au modèle

A+JYT

Hors ligne

 

#3 07-05-2009 08:46:04

Nikko
Membre
Lieu: Rueil (Haut-de-Seine)
Date d'inscription: 19-12-2008
Messages: 95

Re: [Zend 1.6]Récupération d'une instance de vue

Merci pour ta réponse sekaijin,

Cela signifie que je dois créer un controller qui fait appel à ma classe modèle. Mais comment est-ce que j'affiche mon menu dans ma vue ? Parce que mon controller ne servirait qu'a afficher le menu et non pas à faire le traitement de ma page... A moins que l'on puisse appeler 2 controller en même temps, ce qui m'étonnerait ?


Nikko

Etudiant en école d'ingénieur à l'INSIA

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages