我从数据库记录生成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) {
/// ????
}
谢谢阿曼。
答案 0 :(得分:0)
也许您可以修改部分以呈现ol
而不是ul
,然后使用一些CSS magic来正确呈现编号。
您可以在Menu Helper documentation中看到示例#48以获得灵感。
修改强>
如果您需要使用ul
标签,那么您可能需要手动添加菜单项的“当前深度”。这里回答了一个非常类似的问题:PHP RecursiveIteratorIterator: Determining first and last item at each branch level。
希望有所帮助,