HTML_TreeMenu

kSalex

Новичок
HTML_TreeMenu

Всем привет
Задача такая: построить дхтмл-дерево используя алгоритм nested sets
Написал ф-ии для работы с бд (добавление, перемещение, etc) - для моей задачи их хватает. Для того чтоб вывести дерево использую PEAR::HTML_TreeMenu
Проблема в методе HTML_TreeMenu::createFromStructure.
Написал ф-ию:
PHP:
function createStructure(&$dbh, $icon, $expandedIcon)
{
	$tree = getAllNodes($dbh, array('id' , 'title'));
	$nodeOptions = array(
	'text'          => '',
	'link'          => '',
	'icon'          => $icon,
	'expandedIcon'  => $expandedIcon,
	'class'         => '',
	'expanded'      => false,
	'linkTarget'    => '_self',
	'isDynamic'     => 'true',
	'ensureVisible' => ''
	);
	$options = array('structure' => $tree,'type' => 'heyes','nodeOptions' => $nodeOptions);
	$menu = &HTML_TreeMenu::createFromStructure($options);
	$treeMenu = &new HTML_TreeMenu_DHTML($menu, array('images' => '/images/treemenu/images/'));
	return $treeMenu->toHTML();
}
Она выдаёт ошибку: Warning: Invalid argument supplied for foreach() - из этого понятно что не правильно сформирован массив и я не могу разобраться как он должен быть сфорирован?
ф-ия getAllNodes:
PHP:
function getAllNodes(&$dbh, $fields)
{
    $sfields = implode(',', $fields);
	$res =& $dbh->getAssoc("select ".$sfields." from mod_manual_ru order by lft asc");
	if (PEAR::isError($res)) {
		print $res->getMessage();
		return false;
	}
	return $res;
}
ps. по форуму искал - но что-то поиск зависает, а когда останавливаю - выдаёт 3 подобные темы - но суть вопроса там другая
 

ZN

Новичок
попробуйте вывести запрос, который исполняет функция getAllNodes и исполните его руками в консоли
 

kSalex

Новичок
массив должен иметь вид:
Array ( [5] => Array ( [id] => 5 [rootid] => 5 [l] => 1 [r] => 10 [norder] => 1 [level] => 1 [name] => Root A [link] => http://example.com/foo.php?5 )
но это по таблице которую предлагает PEAR::NestedSets
у меня в таблице нет поля parent_id - оно мне там и не нужно - а без этого значения меню не формируется
 

ZN

Новичок
kSalex
ну вы определитесь, или используйте готовое решение как положено, или пишите своё
раз PEAR::NestedSets работает с parent_id - то наверное это поле нужно
 
Сверху