1

メニューをレンダリングするために .ini ファイルを使用しています。

ブートストラップ

    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/menu.ini', 'nav');
    $nav = new Zend_Navigation($config);
    $view->navigation($nav);

レイアウト.phtml

<?php echo $this->navigation()->menu()->setMaxDepth(3) ?>

到達する私の目標:

<ul class="navigation" id="navigation">
    <li>

        <a id="menu-1" href="/">Home</a>
    </li>
</ul>

<ul>class="navigation" の代わりに最初の出現に id="navigation" を設定するには?

今、私は持っているだけ<ul class="navigation">で、私はしたい、<ul id="navigation">または<ul class="navigation" id="navigation">

4

4 に答える 4

1

You would need to setup a custom view helper, in your code library, not under Zend_.

Maybe something like GZ_View_Helper_Navigation_Menu2

And then depending on how you want to configure the addition of this new view helper path, something like this in your bootstraps initView:

$view->addHelperPath('GZ/View/Helper/', 'GZ_View_Helper'); 

Or, if using Application and Resources you can setup that via the ini too with:

resources.view.helperPath.GZ_View_Helper = "GZ/View/Helper"

Your lib GZ of course needs to be on PHP's include path.

When rendering you would change the call to:

<?= $this->navigation()->menu2()->setMaxDepth(3) ?>

Although I think you can also assign a default view helper (can't find it in docs right now) to Navigation and just call

<?=  $this->navigation ?>

Related: How do I extend the Zend Navigation Menu View Helper?

于 2013-02-01T20:10:22.570 に答える
0

これはjQueryで実行できます。

$('document').load(function(){
    $("body > ul:first-child").attr('id', 'navigation');
})

編集:

コメントを読んだ後、私はあなたがMootolsライブラリを使用していることに気づきました。そのためjQuery、次のような同等のことを行うことができます。

window.addEvent('domready', function() {                       
    var myMenu = new MenuMatic({ orientation:'vertical' });  
    myMenu.getElement('ul').set('id', 'navigation');              
});
于 2013-02-01T20:32:57.473 に答える
0

ZF 1.12 (どのバージョンからのものか正確にはわかりません) には、そのための方法が 1 つあります。

$this->navigation()->menu()->setUlId('navigation')->setMaxDepth(0);

于 2013-08-19T09:44:10.657 に答える
0

私はこの方法を自分でやろうと何度も考えました。Zend Framework プロジェクトで複数のナビゲーション オブジェクトを作成することがよくあります。

代わりに、別の回答を提出します。ビューで、ナビゲーション出力への呼び出しを HTML5 nav要素内に囲みます。これにより、意味が明確になり、各セクションに独自の ID を簡単に追加できるようになります。だから、これを試してください:

<nav id="navigation"><?php echo $this->navigation()->menu()->setMaxDepth(3) ?></nav>

興味深いことに、ページにナビゲーション要素が 1 つしかない場合は、ID も必要ありません。CSS で nav 要素を使用してターゲットにすることができます。

nav ul { margin: 0px }
于 2013-02-03T17:20:38.600 に答える