Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un problème au niveau de la génération du breadcrumbs avec ce composant.
J'ai un fichier navigation.xml :
<?xml version="1.0" encoding="UTF-8"?> <configdata> <nav> <home> <label>home</label> <uri>/</uri> <pages> <actualite> <label>actualité</label> <uri>/index/actualite</uri> </actualite> <reportages> <label>reportages</label> <uri>/index/reportages</uri> </reportages> </pages> </home> </nav> </configdata>
Dans mon bootstrap :
protected function _initNavigation() { $this->bootstrap('layout'); $layout = $this->getResource('layout'); $view = $layout->getView(); $config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav'); $navigation = new Zend_Navigation($config); $view->navigation($navigation); }
et pour finir dans mon layout :
<div id="mainMenu"> <?php echo $this->navigation()->menu(); ?> </div> <div id="breadcrumbs"> <?php echo $this->navigation()->breadcrumbs(); ?> </div>
Le menu fonctionne très bien mais le breadcrumbs ne s'affiche pas du toutet je ne vois pas pourquoi ?!
Si quelqu'un peut m'aider, ce serait avec plaisir.
J.
Hors ligne
A priori je ne vois pas d'erreur. Essaye ceci éventuellement:
echo $this->navigation()
->breadcrumbs()
->setMinDepth(0)
->setLinkLast(true);
Hors ligne
Et avec ça ?
$activeNav = $this->navigation()->findByUri('/index/reportages");
Hors ligne
J'ai déjà testé en faisant ça dans le init() de mon controller :
// Traitement Zend_Navigation $uri = $this->_request->getPathInfo(); $activeNav = $this->view->navigation()->findByUri("/".$uri); $activeNav->active = true;
Mais rien à faire ca ne fonctionne pas.
Je n'ai que le menu qui fonctionne...
J.
Hors ligne
Pourquoi rajouter un slash avant ?
Hors ligne
Je mets un slash car $this->_request->getPathInfo(); ne m'en mets pas...
Même en enlevant le slash, ca ne fonctionne pas.
Je viens de changer ma configuration en rajoutant les modules (en espérant que le problème vienne de là) mais ca ne fonctionne toujours pas.
<?xml version="1.0" encoding="UTF-8"?> <configdata> <nav> <home> <label>home</label> <uri>/</uri> <pages> <actualite> <label>actualité</label> <uri>/frontend/index/actualite</uri> </actualite> <reportages> <label>reportages</label> <uri>/frontend/index/reportages</uri> </reportages> </pages> </home> </nav> </configdata>
Hors ligne
tu as essayé avec ->setPartial(array('breadcrumbs.phtml', 'default')) ?
Hors ligne
Non toujours rien.
J'ai peut être fait une erreur...
Dans mon layout :
<div id="breadcrumbs"> Vous êtes ici : <?php $partial = ""; echo $this->navigation()->breadcrumbs() ->setPartial(array('breadcrumbs.phtml', 'frontend')); ?>
Dans ma vue breadcrumbs.phtml
<?php $l = count($this->pages); for($i = 0; $i < $l; $i++) : ?> <?php if($i > 0) : ?> <?php echo $this->navigation()->breadcrumbs()->getSeparator() ?> <?php endif; ?> <?php if($i < $l-1) : ?> <a href="<?php echo $this->pages[$i]->getHref() ?>"><?php echo $this->pages[$i]->label ?></a> <?php else : ?> <?php echo $this->pages[$i]->label ?> <?php endif; ?> <?php endfor; ?>
Mais ca ne fonctionne toujours pas.
Je comprends car je n'ai pas d'erreurs non plus et le menu lui s'affiche correctement.
Hors ligne