Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
No menu do site tenho a estrutura:
-Cadastro
-Ficha de Informação
Com o Zend Navigation, através do XML, montei um breadcump com os links do site.
Início -> Cadastro -> Ficha de informação
A Ficha de Informação é a minha action index. E dentro da minha index eu adiciono uma nova ficha, e o breadcump deveria ficar assim:
Início -> Cadastro -> Ficha de informação -> Incluir ficha de informação
O xml que monta o breadcump:
<page0>
<label>Cadastro</label>
<uri>#</uri>
<pages>
<page0_novo>
<label>Ficha de informação</label>
<module>reator</module>
<controller>manter-ficha-de-informacao</controller>
<action>index</action>
</page0_novo>
<page1_novo>
<visible>0</visible>
<label>Incluir ficha de informação</label>
<module>reator</module>
<controller>manter-ficha-de-informacao</controller>
<action>form-incluir</action>
</page1_novo>
</pages>
</page0>
Como ele está setado invisível, porque não pode aparecer no mapa, ele não monta o bread de Incluir.
Há como tratar isso no Zend?
Obrigada.
É o 1.2.
No arquivo breadcumps, monto assim:
<!-- Content wrapper -->
<div class="wrapper">
<!-- Breadcrumbs line -->
<div class="crumbs">
<ul id="breadcrumbs" class="breadcrumb">
<li><a href="<?php echo $this->baseUrl() ?>">Início</a></li>
<?php
if (null === $this->container)
$this->container = $this->breadcrumbs()->getContainer();
// find deepest active
if (($active = $this->breadcrumbs()->findActive($this->container, 0))) {
$html = '';
$active = @$active['page'];
if ($this->baseUrl() . '/' != $active->getHref()) {
//var_dump($active->getHref(),$this->baseUrl());
$item = $active->setLabel(strip_tags($active->getLabel())); // remove tags html
$html = ' <li class="active">' . $this->breadcrumbs()->htmlify($item) . '</li>' . PHP_EOL;
}
// walk back to root
while (($parent = $active->getParent()) != null) {
// prepend crumb to html
if ($parent instanceof Zend_Navigation_Page){
$item = $parent->setLabel(strip_tags($parent->getLabel())); // remove tags html
$html = ' <li>' . $this->breadcrumbs()->htmlify($item) . '</li>' . PHP_EOL . $html;
}
if ($parent === $this->container) {
// at the root of the given container
break;
}
$active = $parent;
}
echo $html;
}
?>
</ul>
</div>
<!-- /breadcrumbs line -->
</div>Faz tempinho que eu não trabalho com a versão 1 do ZF, mas se eu não me engano o helper "breadcrumbs" estende o "navigation", e no "navigation" tem um método chamado setRenderInvisible para renderizar as páginas que estão invisíveis.
Tente fazer o seguinte:
$this->breadcrumbs()->setRenderInvisible(true);
Funcionou perfeitamente. Adicionei a linha no meu arquivo breadcrumbs, e deu tudo certo.
Valeu man.
Você está trabalhando com o ZF1 né?
Como você está fazendo para exibir o breadcrumb?