パーシャルを使用して、必要に応じてナビゲーションを生成できます。テンプレート内のあなたのナビゲーションを表示するには
:
アプリケーション/ナビゲーション/ topnav.phtml
<ul class="nav">
<?php $count = 0 ?>
<?php foreach ($this->container as $page): ?>
<?php /* @var $page Zend\Navigation\Page\Mvc */ ?>
<?php // when using partials we need to manually check for ACL conditions ?>
<?php if(! $page->isVisible() || !$this->navigation()->accept($page)) continue; ?>
<?php $hasChildren = $page->hasPages() ?>
<?php if(! $hasChildren): ?>
<li <?php if($page->isActive()) echo 'class="active"'?>>
<a class="nav-header" href="<?php echo $page->getHref() ?>">
<?php echo $this->translate($page->getLabel()) ?>
</a>
</li>
<?php else: ?>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<span><?php echo $this->translate($page->getLabel()) ?></span>
</a>
<ul class="dropdown-menu" id="page_<?php echo $count ?>">
<?php foreach($page->getPages() as $child): ?>
<?php // when using partials we need to manually check for ACL conditions ?>
<?php if(! $child->isVisible() || !$this->navigation()->accept($child)) continue; ?>
<li>
<a href="<?php echo $child->getHref() ?>">
<?php echo $this->translate($child->getLabel()) ?>
</a>
</li>
<?php endforeach ?>
</ul>
</li>
<?php endif ?>
<?php $count++ ?>
<?php endforeach ?>
</ul>
明らかにそれは簡単です:
<?php $partial = array('application/navigation/topnav.phtml', 'default') ?>
<?php $this->navigation('navigation')->menu()->setPartial($partial) ?>
<?php echo $this->navigation('navigation')->menu()->render() ?>
あなたのナビゲーションは、部分的にはこのようなものでなければなりません例では、ナビゲーションのレベルの任意の数の世話をしませんし、いくつかの余分なクラス名などを追加する必要がありますそれは動作するようにperfecブートストラップと一緒だが、あなたはそのアイデアを得る。
はそんなにアンドリューありがとうございます!私は今これを試してみましょう!私は部分的な部分を使い始めました。私は、起こっていたことの概念を完全に理解することができなかったことを認めます。説明してくれてありがとう:-)! – rgarrison3
下記のブートストラップ3のバージョンを追加しました。 –