0

メニューに問題があることに気づきました。私はZendFrameworkを使用してphpアプリケーションに取り組んでいます。メニューに空のテキスト行が挿入されているようですが、その理由がわかりません。例えば ​​... 空きスペースのあるメニュー

ご覧のとおり、手動で追加した要素とmenu.phtmlで生成された要素の間に空のスペースがあります。これが私のコードです...

まず、3つの異なるメニューがあるため、それらをブートストラップのZend_Registerに保存しましたが、匿名メニューのコードを示します。

        protected function _initNavigation()
    {
        $this->bootstrap('layout');
        $layout = $this->getResource('layout');
        $view = $layout->getView();

        //Init du menu anonyme
        $config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'menuNotLogged');    
        $container = new Zend_Navigation($config);
        Zend_Registry::set('main',$container);
        $view->navigation($container);}

次に、レイアウトにメニューを表示します...

<div id="navigation">
<ul id="primary-links">
<li id="overview"><a href="#">Overview test</a></li>
<li><a href="#">Manual test</a></li>
<?php
$partial = array('menu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial);          

    echo $this->navigation()->menu()->render(Zend_Registry::get('main'));
?>
</ul>
</div>

今私のmenu.phtml..。

foreach ($this->container as $page) {
    if ($page->isVisible()) {
        if ($page->isActive(true)) {
        //... not active so it doesn't enter here
        } else {
               echo '<li>'.$this->navigation()->menu()->htmlify($page). '</li>' ;
        }
    }
}

Firebug(FF)とDeveloper Tools(IE8)でメニューをデバッグしようとしましたが、メニューにそのような空のテキストが表示されます(最初の画像はIE、2番目はFirefoxです)
空のテキストの頌歌 ここに画像の説明を入力してください

空のアイテムがあり、どこから来たのかわかりません!アプリケーションのテンプレートを変更する必要があるので気づきました。古いメニューでも同じことをしましたが、表示されませんでした。今では実際に表示されています。

メニューをレンダリングするときは本当に問題があるようです。手動で要素を追加すれば問題はないからです。私のコードを見て、何がそれを引き起こす可能性があるかについて何か考えがありますか?誰かが同じ問題を抱えたことはありますか?私のコードの他の部分や他の詳細が必要ですか?

すでにありがとう!

アップデート

これは私のnavigation.xmlのmenuNotLoggedです

   <menuNotLogged>
     <home>
        <label>Home</label>
        <uri>/index</uri>
     </home>
     <login>
        <label>Login</label>
        <uri>/index/login</uri>
     </login>
</menuNotLogged>

これが質問されたhtml出力です

<!-- NAVIGATION_BEGIN -->
<div id="ibm-navigation">
    <ul id="ibm-primary-links">
    <li id="ibm-overview"><a href="http://w3">Overview test</a></li> 
    <li><a href="http://w3">Manual test</a></li> 

<li><a href="/index">Accueil</a></li><li><a href="/index/login">Authentification</a></li>
</ul></div>

空の行は、ZendStudioからのデバッグ出力ビューとFirebugにもあります。空のアイテムが追加されたのはおそらくこの行のせいですが、どこから来たのかわかりません。

4

2 に答える 2

1

構成menuNotLoggedにラベルのない要素がありますか?そして、なぜあなたはメニューをレンダリングするためにパーシャルを使用し、好きではないのecho $this->navigation()->menu(Zend_Registry::get('main'))->render();ですか?投稿した画像が実際に取得できないという問題がある正確な出力HTMLを投稿してください。

于 2011-11-18T10:00:05.897 に答える
0

生成された出力で、いくつかのエラーが発生しました。

4つliの要素を開きますが、閉じているのは1つだけです。それで、不要なスペースは壊れたhtmlマークアップから来たのでしょうか?

于 2011-11-15T15:22:12.947 に答える