Вывод Меню Категорий

Здравствуйте. Тут вопрос для знатоков, ибо достаточно непростой.

Итак, по делу: работаю над собственным виджетом категорий. Запросом из бд получаю все записи в массив $categ. Рекурсивно строю с помощью функции дерево, все правильно выводит. Но не могу разобраться как мне сделать чтобы сами категории выводились в <li>категория1</li> а вложенные в во внутри него так: <ul><li>подкатегория</li></ul> ?


//рекурсивная функция вывода категорий

function tree($categ, $id_kat=NULL)

{

    foreach($categ as $item)

    {

    if($id_kat!=$item->id_parent) 

        continue;

    

 if(isset($item->naz_kat))

 

    echo CHtml::label($item->naz_kat,null);

    

    $return= tree($categ, $item->id_kat);//вывод вложенных записей

    }

 

return $return;

} 

Для наглядности что должно получиться в конце прилагаю рисунок ниже. Возможно ли такое?

Советую вам посмотреть в сторону nested sets (вроженные множества). Для ващих целей подходит идеально.

Обойдетесь без рекурсивных запросов к БД и проблем с выводом меню.

Так же в дальнейшем избавите себя от ряда проблем по определению самого верхнего раздела и активного пункта меню.

http://yiiext.github.io/extensions/nested-set-behavior/readme.ru.html

Artur Zhdanov, спасибо посмотрим. А как в моем коде перед еcho сделать проверку что я вывожу в текущий момент: категорию или подкатегорию?


/*!!!Вот здесь эхом у меня вы водиться и категории и подкатегории. Как    различить что я вывожу из этих двух в данный момент?*/ 

    echo CHtml::label($item->naz_kat,null);