Я не могу понять, почему это не работает.Элемент item всегда остается видимым.Я использую последнюю версию, и мое меню выглядит так:
public function hook_menu()
{
$menu['menuPageController'] = array(
array(
'label' => 'Start',
'controller' => 'page',
'action' => 'index'
),
array(
'label' => 'Produkter',
'controller' => 'page',
'action' => 'products',
'class' => 'beyond',
'pages' => array(
array(
'label' => 'default list a',
'controller' => 'page',
'action' => 'products',
'class' => 'beyond',
'params' => array(
'lista' => 'a')
),
array(
'label' => 'list b',
'controller' => 'page',
'action' => 'products',
'class' => 'beyond',
'params' => array(
'listb' => 'b')
),
array(
'label' => 'list c',
'controller' => 'page',
'action' => 'products',
'class' => 'beyond',
'params' => array(
'listc' => 'c')
),
)
),
array(
'label' => 'item',
'controller' => 'page',
'action' => 'product',
'visible' => false,
'params' => array(
'id' => null)
),
array(
'label' => 'Filhanteraren',
'controller' => 'page',
'action' => 'filemanager'
)
);
return $menu;
}
В макете:
<div id="navigation-bar">
<?php
// menu.phtml is partial, cms is module
$partial = 'partials/main-menu.phtml';
$this->navigation()->menu()->setPartial($partial);
$this->navigation()->menu()->setRenderInvisible(false);
echo $this->navigation()->menu()->render(); ?>
</div>
Не думаю, что это проблема, но в любом случае вот частичное
<?php
// -- main-menu.phtml
$html = array();
$html[] = '<ul class="navigation">';
foreach (Zend_Registry::get('main') as $page)
{
$check = $page->isActive();
if($check)
{
$marker = "active";
}
else
{
$marker = "inactive";
}
$html[] = '<li class="' . $marker . '">';
$html[] = $this->menu()->htmlify($page) . PHP_EOL;
$html[] = "</li>";
}
$html[] = "</ul>";
print ('<div id="main-menu">' . join(PHP_EOL, $html) . '</div>');
// get the page asked for
$uri = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();
$con = Zend_Controller_Front::getInstance()->getRequest()->getControllerName();
$act = Zend_Controller_Front::getInstance()->getRequest()->getActionName();
// check for child pages
$list = Zend_Registry::get('main');
$menuItems = $list->toArray();
$function = new AppFiles_Functions_FunctionsHooks();
$current = $list->findOneBy('action', $act);
$isChildof = $function->find_parent($menuItems, $act);
print($isChildof);
$subhtml = '<ul class="navigation">';
foreach ($current->pages as $subpage)
{
$check = $subpage->isActive();
if($check)
{
$submarker = "active";
}
else
{
$submarker = "inactive";
}
$subhtml .= '<li class="' . $submarker . '">';
if ($href = $subpage->getHref()) $subhtml .= "<a href=\"{$href}\">";
else $subhtml .= "<span>";
$subhtml .= $subpage->getLabel();
if ($href) $subhtml .= "</a>";
else $subhtml .= "</span>";
$subhtml .= "</li>";
$subitem[$subpage->getHref()] = '';
}
$subhtml .= "</ul>";
// print a container for the child pages
?>
<div id="sub-menu" class="">
<?php echo $subhtml; ?>
</div>
<?php
print($uri);
print "\n<br />";
print($con);
print "\n<br />";
print($act);
print "\n<br />";
?>