0

私は zend を初めて使用し、サイトの一部にナビゲーション メニューを作成したいと考えています。たとえば、20 ページあるとしますが、5 項目のメニューを作成し、4 ページのみ表示したいとします。これはばかげた質問かもしれませんが、ブートストラップではなくコントローラーで作成する方法はありますか? 私は本当にこれの例を見つけることができません:(

4

1 に答える 1

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);

ビュー ヘルパーでは、必要なページのみを選択するように fetch all を変更する必要があります。ビュー スクリプトでは、エコーを if ステートメントでラップして、表示したいページにのみ表示する必要があります。

これが役に立つことを願っています。

于 2012-04-24T10:16:36.440 に答える