2012-04-20 8 views
0

zend frameworkを使用する方法1つのレベルメニューを作成するにはどうすればよいですか?zendナビゲーションxmlファイルを使用した単一レベルメニュー

私はチュートリアルに続き、2レベルのドロップダウンメニューを作成しました。私は家を出るだけです。 navigation.xmlファイルを数回修正したため、致命的なエラーが発生しました。

親レベルのメニューとして自宅の子供を宣伝するために必要なxmlマークアップは何ですか?私はホームボタンは一切必要ありません。

望ましい結果:

  • なぜ
  • スピーカー
  • リソース

現在の結果:

  • ホーム

    •何

    •なぜ

現在navigation.xmlファイル:

<?xml version="1.0" encoding="UTF-8" ?> 
<configdata> 
    <nav> 
    <home> 
     <label>Home</label> 
     <controller>page</controller> 
     <action>index</action> 
     <module>default</module> 
     <pages> 
     <why> 
      <label>why</label> 
      <controller>page</controller> 
      <action>why</action> 
      <module>default</module> 
     </why> 
     <who> 
      <label>who</label> 
      <controller>page</controller> 
      <action>who</action> 
     </who> 
     <resources> 
      <label>resources</label> 
      <controller>page</controller> 
      <action>resources</action> 
     </resources> 
     <signin> 
      <label>sign in</label> 
      <controller>account</controller> 
      <action>login</action> 
      <module>default</module> 
     </signin> 
     </pages> 
    </home> 
    </nav> 

...

アプリケーション/ bootstrap.phpの:

<?php function _initViewHelpers() { 
    $this->bootstrap('layout); 
    // ... Skipping to relevant part 
    $navContainerConfig = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav'); 
    $navContainer = new Zend_Navigation($navContainerConfig); 
    $view->navigation($navContainer); 
} ?> 

レイアウト/ default.phtml

<div class="navigation"><?php print $this->navigation(); ?></div> 
+0

ナビゲーションのレンダリングに関するコードを教えていただけますか? – Liyali

+0

ああもちろんです。私の間違い。 – chrisjlee

答えて

1
<?xml version="1.0" encoding="UTF-8" ?> 
<configdata> 
    <nav> 
    <why> 
     <label>why</label> 
     <controller>page</controller> 
     <action>why</action> 
     <module>default</module> 
    </why> 
    <who> 
     <label>who</label> 
     <controller>page</controller> 
     <action>who</action> 
    </who> 
    <resources> 
     <label>resources</label> 
     <controller>page</controller> 
     <action>resources</action> 
    </resources> 
    <signin> 
     <label>sign in</label> 
     <controller>account</controller> 
     <action>login</action> 
     <module>default</module> 
    </signin> 
</nav> 
1

setMaxDepth()setMinDepth()は?

<?= $this->navigation()->menu() 
         ->setMinDepth(1) 
         ->setMaxDepth(2) 
         ->render() . PHP_EOL; ?> 

また、あなたがnavigation view helper in the official manualに関する詳細な情報を見つけることができます:あなたは、あなたのメニューをレンダリングすることにしたい方法を深く設定することができます。これらの情報は、チュートリアルで見つけることができる情報よりもしばしば関連性があります。

1

表示するリンクのみを表示するようにコンテナを調整するだけでよいはずです。この場合、xmlファイルからHome要素を削除するだけです。

<?xml version="1.0" encoding="UTF-8" ?> 
<configdata> 
    <nav> 
     <pages> 
     <why> 
      <label>why</label> 
      <controller>page</controller> 
      <action>why</action> 
      <module>default</module> 
     </why> 
     <who> 
      <label>who</label> 
      <controller>page</controller> 
      <action>who</action> 
     </who> 
     <resources> 
      <label>resources</label> 
      <controller>page</controller> 
      <action>resources</action> 
     </resources> 
     <signin> 
      <label>sign in</label> 
      <controller>account</controller> 
      <action>login</action> 
      <module>default</module> 
     </signin> 
     </pages> 
    </nav> 
0

あなたはXMLファイルからホームメニューを削除すると、あなたが例外を取得

Zend_Navigation_Exception:無効な引数:Cでインスタンス化するクラスを決定することができません:WWWの\プロジェクト\ \ライブラリ\ Zend \ Navigation \ Page.php on line 235

+0

+0

私はZend framework 1.12を使用しています。 – Seif

関連する問題