【问题标题】:Zend_Navigation: How to add numberings in the menu items?Zend_Navigation:如何在菜单项中添加编号?
【发布时间】:2011-09-06 11:07:42
【问题描述】:

我正在从数据库记录生成 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) {       
/// ????
}

谢谢阿曼。

【问题讨论】:

    标签: zend-framework recursion treeview zend-navigation


    【解决方案1】:

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

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

    编辑:

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

    希望对你有帮助,

    【讨论】:

    • 感谢提示,但 OL 不适用于 jquery treeview 插件,它需要 ul 列表。
    • @Arman:是的,抱歉我在你的问题中忽略了它。我刚刚在上面编辑了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 2012-02-02
    • 1970-01-01
    • 2014-07-25
    • 2013-12-27
    • 2013-08-20
    • 1970-01-01
    相关资源
    最近更新 更多