Zend_Navigation:如何在菜单项中添加编号?

时间:2011-09-06 11:07:43

标签: zend-framework recursion treeview zend-navigation

我从数据库记录生成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 for treeview):

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) {       
/// ????
}

谢谢阿曼。

1 个答案:

答案 0 :(得分:0)

也许您可以修改部分以呈现ol而不是ul,然后使用一些CSS magic来正确呈现编号。

您可以在Menu Helper documentation中看到示例#48以获得灵感。

修改

如果您需要使用ul标签,那么您可能需要手动添加菜单项的“当前深度”。这里回答了一个非常类似的问题:PHP RecursiveIteratorIterator: Determining first and last item at each branch level

希望有所帮助,