Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-07-2010 14:15:28

Sishare
Membre
Date d'inscription: 09-02-2010
Messages: 89

[résolu][ZF1.10][Zend_Navigation_Page_Mvc] ISactive?

Bon voilà j'ai un menu que j'affiche dans le layout et j'aimerais avoir une balise différente selon si c'est isactive ou non. Quand je test directement dans le layout tout est ok, cela fonctionne. Mais comme nous sommes en MVC et que c'est du traitement de données, je l'ai donc mis dans le bootstrap afin de ne pas a avoir a le mettre dans chaque controller (ce que je n'ai pas essayé). Mais la problème, lorsque je récupère mon objet Zend_nav.... je ne peut pas tester isactive, une erreur survient avec un getParam incorrect de la methode. Or si on fait un var_dump j'ai bien un objet Zend_nav......

Dernière modification par Sishare (23-07-2010 10:16:25)

Hors ligne

 

#2 22-07-2010 15:53:26

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [résolu][ZF1.10][Zend_Navigation_Page_Mvc] ISactive?

Perso je fais comme ça :

- j'ai une feuille de style navigation.css

Code:

/* Navigation navbar */
.navbar {
    list-style: none;
    text-align: center;
    padding-left: 100px;
    padding-top: 180px;
    font-size: 10px;
    margin: 0px;
}
.navbar a, .navbar a:link {
    color: #0D627E;
    display: block;
    font-family: verdana;
    font-size: 9px;
    font-weight: bold;
    text-decoration: none;
}
.navbar a:hover, .navbar a:focus {
    font-family: verdana;
    font-size: 10px;
    font-weight: bold;
    color: #0D627E;
}
.navbar li {
    display: block;
    float: left;
    width: 100px;

}
.navbar li.active {
    background-position: bottom right;
}
.navbar li.active a {
    background-position: bottom left;
    color: #000;
}

- J'apelle mon menu comme ceci :

Code:

<?php echo $this->navigation()->menu()->renderMenu(null, array('maxDepth' => 0, 'ulClass' => 'navbar')); ?>

Hors ligne

 

#3 23-07-2010 09:58:24

Sishare
Membre
Date d'inscription: 09-02-2010
Messages: 89

Re: [résolu][ZF1.10][Zend_Navigation_Page_Mvc] ISactive?

merci pour ta réponse même si tu ne ma pas mis comment tu construisait NavBar j'ai réussi a m'ensortir.
Pour ceux que ca intéresse
Dans bootstrap.php

Code:

    $acceuil = new Zend_Navigation_Page_Mvc(array(
        'action'     => 'Index',
        'controller' => 'Index',
        'label' => 'Carnet d\'adresses',
        'id' => 'Acceuil',
    ));
$defis = new Zend_Navigation_Page_Mvc(array(
    'action'     => 'defis',
    'controller' => 'defis',
 'label' => 'Carnet d\'adresses',
        'id' => 'Defis',
));

$joueur = new Zend_Navigation_Page_Mvc(array(
    'action'     => 'joueur',
    'controller' => 'joueur',
 'label' => 'Carnet d\'adresses',
        'id' => 'Joueur',
));
$Insc = new Zend_Navigation_Page_Mvc(array(
    'action'     => 'inscription',
    'controller' => 'inscription',
 'label' => 'Carnet d\'adresses',
        'id' => 'Inscription',
));
$aide = new Zend_Navigation_Page_Mvc(array(
    'action'     => 'aide',
    'controller' => 'aide',
 'label' => 'Carnet d\'adresses',
        'id' => 'Aide',
));        
$view->menu= new Zend_Navigation(array($acceuil,$defis,$joueur,$Insc,$aide));

Plusieurs solutions dans la vue pour apeler j'en ai retenue deux :

Code:

$this->navigation()->menu()->renderMenu( array('maxDepth' => 0));

et celle pour pouvoir customiser les classe des ul li

Code:

<ul id="menu">
<?php
 
foreach ($this->menu as $page) 
{
   echo '<li id="' .$page->getId() .'">' .$this->navigation()->menu()->htmlify($page) .'</li>' .PHP_EOL;
    
}
?>
</ul>

Hors ligne

 

#4 23-07-2010 10:02:54

Sishare
Membre
Date d'inscription: 09-02-2010
Messages: 89

Re: [résolu][ZF1.10][Zend_Navigation_Page_Mvc] ISactive?

Bon j'ai parlé un peut vite en fait le active ne fonctionne toujours pas je ne comprend pas pourquoi. Est il possible de faire un css pour les boutons actifs un par un et non généralement en apelant leurs balises?
Je m'en suis finalement sortie :
vue :

Code:

<?php
 //print_r($this->menu );
foreach ($this->menu as $page) 
{
    if($page->isactive())
       echo '<li id="' .$page->getId() .'Active">' .$this->navigation()->menu()->htmlify($page) .'</li>' .PHP_EOL;
       else
   echo '<li id="' .$page->getId() .'">' .$this->navigation()->menu()->htmlify($page) .'</li>' .PHP_EOL;
    
}
?>

Dernière modification par Sishare (23-07-2010 10:16:08)

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