2012-04-24 5 views
0

私は非常に新しいzendで、私は自分のサイトの一部でナビゲーションメニューを作成したいと思います - 私は20ページありますが、 5つのアイテムのメニューを作成し、4ページだけ表示する。これは愚かな質問かもしれませんが、ブートストラップではなく私のコントローラ上でそれを作る方法はありますか?私は本当にこのために例を見つける傾ける:(サイトの一部でZend_Navigationを作成する方法 - ZF 1.11.11

答えて

3

おそらくビューヘルパー、それはあなたがそれを上に表示したい4ページのビュースクリプトから呼び出すことができますこの方法:?

<?php 
class Default_View_Helper_ShortNav extends Zend_View_Helper_Abstract 
{ 
    /** 
    * Generate a Zend_Navigation object 
    * @return Zend_Navigation 
    */ 
    public function shortNav() 
    { 
    //psudo code 
    $pages = array(); 
    $model = new Default_Model_Pages(); 
    $rows = $model->fetchAll(); 
    foreach($rows as $page) 
    { 
     $pages[] = array(
      'label' => $page->title, 
      'module' => 'default', 
      'controller' => 'index', 
      'action' => 'page', 
      'params' => array('page' => $page->slug), 
      'containerClass' => 'page', 
     ); 
    } 
    $nav =new Zend_Navigation(); 
    $nav->addPage(
     array(
      'label' => 'Pages', 
      'route' => 'index', //route name 
      'params' => array(), //route parameters 
      'pages' => $pages 
     ) 
    ); 
    return $nav; 
    } 
} 

ビュースクリプトでは:

<?php 
$nav = $this->shortNav(); 
echo $this->navigation($nav); 

ビューヘルパーでは、あなたがしたいページだけを選択するために、すべてを取得し、ビュースクリプトにあなたが表示するようにif文でエコーをラップする必要があります変更する必要があります表示したいページでのみ表示されます。

これは役に立ちます。

+0

こんにちはリチャード、サンプルコードありがとうございます。私はちょうどそれをテストし、それは本当に岩です! –

関連する問題