これはなぜ機能していないのかわかりません。 item要素は常に表示されたままです。私は、最新のリリースを使用していますし、私のメニューは次のようになります。レイアウトでZend Framework:ナビゲーション項目は引き続き表示されます
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 />";
?>
もちろん、私の一部でした。可視性をレンダリングする際にデフォルトを使用していないので、私は推測しません。そこで、欠落したメソッド呼び出しを含めるように部分を変更しました。 ($ページとしてなZend_Registry ::( 'メイン' を取得)) 'code' foreachの \t { \t \t \t \t $チェック= $ PAGE->のisActive(); \t \t IF($チェック) \t \t { \t \t \t $マーカー= "アクティブ"。他 \t \t} \t \t \t \t { \t \t \t $マーカー= "非アクティブ"。 \t \t} \t \t IF($ PAGE->のisVisible()) \t \t { \t \t \t $ HTML [] = '