1

データベース レコードから XML を生成し、それを Zend_Navigation に渡してツリービューとしてレンダリングします。レンダリングする前に、TOC 番号付けのようなレベル番号を追加したいと思います。

私は持っている:

$partial = array('partials/menu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial);
echo $this->navigation()->menu()->setUlClass('treeview')->render();

出力はul/liで飾られています(ツリービューにはulが必要です):

My First Web Page
     Nice Page
           Main Help
     Works

しかし、私は必要です:

1.My First Web Page
     1.1 Nice Page
           1.1.1 Main Help
     1.2 Works

各レベルに番号を付けるにはどうすればよいですか?

$navarray=$this->navigation()->menu()->toArray();
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($navarray[0]), RecursiveIteratorIterator::SELF_FIRST);
foreach ($it as $row) {       
/// ????
}

ありがとうアルマン。

4

1 に答える 1

0

おそらく、パーシャルを変更して のol代わりにをレンダリングしulCSS マジックを使用して番号付けを適切にレンダリングすることができます。

Menu Helper ドキュメントの例 #48 を参照して、インスピレーションを得ることができます。

編集:

タグを使用する必要がある場合はul、おそらくメニュー項目の「現在の深さ」を手動で追加する必要があります。ここで回答された非常によく似た質問があります: PHP RecursiveIteratorIterator: Determining first and last item at each branch level

それが役立つことを願って、

于 2011-09-06T11:57:53.617 に答える