Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
Perso je fais comme ça :
- j'ai une feuille de style navigation.css
/* 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 :
<?php echo $this->navigation()->menu()->renderMenu(null, array('maxDepth' => 0, 'ulClass' => 'navbar')); ?>
Hors ligne
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
$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 :
$this->navigation()->menu()->renderMenu( array('maxDepth' => 0));
et celle pour pouvoir customiser les classe des ul li
<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
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 :
<?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
Pages: 1