2013-12-03 2 views
0

Я использую kohana framework 3.1.2, и я хочу сделать вложенное меню ... Я использую класс ORM_MPTT для этого, все, что я делаю правильно ... in view Я получение массива, и в этом массиве все categoris и подпункты categoris находятся в одном ряду ... если я сделать Еогеасп() я получаю результат, как это:kohana framework 3.1.2 как сделать меню с помощью вложенных наборов

cat1 
    cat1_1 
    cat1_2 
    cat1_2_1 
    cat1_2_2 
    cat1_2_3 
    cat1_3 
    cat2 
    cat3 
    cat3_1 
    cat3_2 
    cat3_2_1 
    cat3_2_2 
    cat3_2_2_1 
    cat3_2_2_2 
    cat3_2_2_2_1 
    cat3_2_2_2_2 
    cat3_2_2_2_3 
    cat3_2_3 
    cat3_3 
    cat4 
    cat5 

надежда я описать все правильно ... Я хочу результат:

<nav> 
<ul> 
    <li>Parent 1 
     <ul> 
      <li>Child 1</li> 
       <li>Child 2 
        <ul> 
        <li>Child 2 1</li> 
        <li>Child 2 2</li> 
        <li>Child 2 3</li> 
        </ul> 
       </li> 
      <li>Child 3</li> 
     </ul> 
    </li> 
    <li>Parent 2 
     <ul> 
      <li>Child 4</li> 
      <li>Child 5</li> 
      <li>Child 6</li> 
     </ul> 
    </li> 
</ul> 

большое спасибо

ответ

0

Вы должны вызвать функцию рендеринга для каждого поддерева. Пока есть другое поддерево, он выведет другой -list.

main_view.php

<?php echo new View('view2',array('node'=>$root_node)) ?> 

view2.php

<ul> 
    <?php foreach ($node->children() as $child):?> 
     <li><?php echo $child->title?></li> 
     <?php if (! $child->is_leaf()): ?> 
      <?php echo new View('view2',array('node'=>$child)) ?> 
     <?php endif; ?> 
    <?php endforeach; ?> 
<ul> 

Если вы хотите, чтобы ваш HTML предназначен правильно, вы можете использовать функцию $ node-> уровня(). Но это действительно не нужно

Смежные вопросы