древовидное меню PEAR:HTML_TreeMenu

t3[0one]

Новичок
древовидное меню PEAR:HTML_TreeMenu

пользуюсь http://dev.e-taller.net/dbtree/
этим кассом .
взял меню PEAR:HTML_TreeMenu
не получается создать конечный результат со всеми развитвлениями и вложениями(((
где можно почитать про эту комбинацию
(( не хватает мозгов чё то создать типа алгоритма сборки меню (((

-~{}~ 13.04.05 22:56:

полсле долгих раздумываний, вычислений ходов при возможных комбиначиях пришел к простому выводу.
PHP:
require_once('class/cdbree/treemenu.php');
		$menu  = new HTML_TreeMenu();
		$icon         = 'folder.gif';
		$expandedIcon = 'folder-expanded.gif';
		$query="SELECT * FROM categoriescontent ORDER BY cleft ASC";
		$result=$dbh->query($query);
		while($row = $dbh->fetch_array($result))
		{
			if ($row['clevel']=='0'){
				$name="nobe".$row['clevel'];
				$$name   = new HTML_TreeNode(array('text' => $row['title'], 'link' => "bublik", 'icon' => $icon, 'expandedIcon' => $expandedIcon, 'expanded' => true), array('onclick' => "alert('foo'); return false", 'onexpand' => "alert('Expanded')"));
				$level=0;
			}else{
				$name="nobe".$row['clevel'];
				$name_new="nobe".($row['clevel']-1);
				$$name = &$$name_new->addItem(new HTML_TreeNode(array('text' => $row['title'], 'link' => "test.php", 'icon' => $icon, 'expandedIcon' => $expandedIcon)));
				$level=$row['clevel'];
			}
					}
		$menu->addItem($nobe0);
		$treeMenu = &new HTML_TreeMenu_DHTML($menu, array('images' => '../images', 'defaultClass' => 'treeMenuDefault'));
$out=$treeMenu->printMenu();//опять же для работы в smarty пришлось немного поправить
вся беда к экземплах. Пишут лишнее.... итог ужасный.
 

encyclop

Guest
Сам массив для передачи меню тоже должен быть древовидным.

К примеру...

$data=array(
1 => array(
'title' => 'Modules',
'url' => $_SERVER['PHP_SELF'].'?action=modules',
'sub' => array(
11 => array('title' => 'Menu item 1.1', 'url' => '/item1.1.php'),
12 => array(
'title' => 'Menu item 1.2',
'url' => '/item1.2.php',
'sub' => array(
121 => array('title' => 'Menu item 1.2.1', 'url' => '/item1.2.1.php'),
122 => array('title' => 'Menu item 1.2.2', 'url' => '/item1.2.2.php')
)
)
)
),
2 => array(
'title' => 'Menu item 2',
'url' => '/item2.php',
'sub' => array(
21 => array('title' => 'Menu item 2.1', 'url' => '/item2.1.php'),
22 => array('title' => 'Menu item 2.2', 'url' => '/item2.2.php')
)
),
3 => array(
'title' => 'Logout',
'url' => $_SERVER['PHP_SELF'].'?action=logout',
)
);

require_once 'HTML/Menu.php';

// Instantiate the menu object, we presume that $data contains menu structure
$menu =& new HTML_Menu($data, 'tree');

И надо не забыть задать текущий уровень меню, иначе будет выдана ошибка...

$url = $_SERVER['PHP_SELF'].'?action=modules';

$menu->forceCurrentUrl($url);
 

t3[0one]

Новичок
нее ... нафига стока много ....
$out ( только в функции printMenu надо исправить print на return)
это и есть всё меню... (просто делаешь echo $out) или я передаю в его в smarty а там вставляю
{$out}..и всё....
js от меню само собой разумеющееся!
всё... простятски +)
не надо не чего больше делать )

-~{}~ 20.04.05 18:33:

а урл и тп ... соберается всё в цыкле...я сделал еще типа type (dir,html и тп и присвоил свой иконки... а там уже делаю как надо с type) ...всё это в цикле при сборки меню!
 

encyclop

Guest
Стока много - пример массива (думаешь, у меня все не собиралось в цикле?).

Что же касается меню, то, насколько я понял, идеология тут такая: отображать уровни вложения веток только относительно текущего урла. Вот так.
 

t3[0one]

Новичок
Код:
пользуюсь [url]http://dev.e-taller.net/dbtree/[/url]
взял меню PEAR:HTML_TreeMenu
где можно почитать про эту комбинацию
.... код каторый я выше привел и всё комбинация
на конце ($out) конечный результат ... урлы и тп подобной собераются в цыкле
while($row = $dbh->fetch_array($result))
{


сдесь собераются меню
$$name = &$$name_new->addItem(new HTML_TreeNode(array('text' => $row['title'], 'link' => "view.php?id=$row['cid']", 'icon' => $icon, 'expandedIcon' => $expandedIcon))); //типа того
}
..
не надо масивы соберать при такой комбинации... всё собрано в $out
 

t3[0one]

Новичок
вобщем зачем делать сложно есле можно сделать просто ? +)))
 

t3[0one]

Новичок
какие разводы ?
20 строчек кода все меню...

-~{}~ 20.04.05 20:27:

возьми и попробуй =)

-~{}~ 20.04.05 20:29:

статья по http://dev.e-taller.net/dbtree/
тут на этом сайте
 

encyclop

Guest
Обязательно попробую, но не прямо сейчас (уже есть чем заняться).
 
Сверху