Zend_Navigation: Как добавить нумерацию в пунктах меню? - PullRequest
1 голос
/ 06 сентября 2011

Я генерирую XML из записей базы данных, затем передаю его в Zend_Navigation, чтобы отобразить его как древовидную структуру, и перед отображением я хотел бы добавить номера уровней, например нумерацию оглавления:

У меня есть:

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

Спасибо, Арман.

1 Ответ

0 голосов
/ 06 сентября 2011

Возможно, вы могли бы изменить частичное, чтобы отобразить ol вместо ul, а затем использовать некоторую магию CSS для правильного отображения нумерации.

Вы можете увидеть пример # 48 в документации Помощник по меню , чтобы получить вдохновение.

EDIT:

Если вам нужно использовать тег ul, то, вероятно, вам нужно будет вручную добавить «текущую глубину» пунктов меню. Здесь есть очень похожий вопрос: PHP RecursiveIteratorIterator: Определение первого и последнего элемента на каждом уровне ветви .

Надеюсь, это поможет,

...