CodeThatTree - Tree Generation from the Database Example

CodeThatTree - Tree Generation from the Database Example

var TreeDef = {"style" : {"css" : "test1tree", "size":[100, 25], "bgcolor":"#ffffff", "color":"#000000", "fixwidth":"200", "imgitem":"tree/img/new.gif", "imgdir":"tree/img/open.gif", "imgdiropen":"tree/img/up.gif"}, "itemover": { "css" : "test1tree", "bgcolor":"#D3E5FA", "color":"#00008B"} , "position": { "absolute": false, "pos":[30,20] } , "items" : [ {"text":"Item 1","menu":{"items":[{"text":"Item 1:1"},{"text":"Item 1:2"},{"text":"Item 1:2"}]}},{"text":"Item 2","menu":{"items":[{"text":"Item 2:1"},{"text":"Item 2:2"}]}} ] };

 

<php
function create_level($parent_id)
{
	$items = '';
	$StrQuery = "select item_id, item_name from script_items where script_id=2 and item_parent_id=" . $parent_id;
	$result = mysql_query($StrQuery);
	$Error = @mysql_error($db);
	if ($Error != "")
	{
		echo "$Error";
		exit();
	}
	$first = 1;
	while (list($item_id, $item_name) = mysql_fetch_row($result))
	{
		if ($first == 1)
		$first = 0;
		else
		$items .= ",";
		$next_level = create_level($item_id);
		if ($next_level == "")
		{
			$items .= ("{\"text\":\"".$item_name."\"");
			$items .= $next_level;
			$items .= "}";
		}
		else
		{
			$items .= ("{\"text\":\"".$item_name."\",\"menu\":{\"items\":[");
			$items .= $next_level;
			$items .= "]}}";
		}
	}
	return ($items);
}

function create_definition()
{
	global $db;
	$definition = "";
	$StrQuery = "select distinct css, size, bgcolor, color, bgimg, shadow, border, imgitem, imgdir, " .
	" fixwidth, imgdiropen" .
	" from script_styles, script_items where script_styles.style_id = script_items.style_id " .
	" and script_items.item_parent_id=0 and script_id=2";
	$result = db_query($StrQuery);
	$res_num = db_numrows($result);
	$Error = mysql_error($db);
	if ($Error != "")
	{
		echo "$Error";
		exit();
	}
	if ($res_num != 0)
	{
		$definition = $definition . 'var TreeDef = {"style"	: {"css" : "' .
		db_result($result, 0, "css") . '", ' .
		'"size":' . db_result($result, 0, "size") . ', ' .
		'"bgcolor":"' . db_result($result, 0, "bgcolor") . '", ' .
		'"color":"' . db_result($result, 0, "color") . '", ' .
		'"fixwidth":"' . db_result($result, 0, "fixwidth") . '", ' .
		'"imgitem":' . db_result($result, 0, "imgitem") . ', ' .
		'"imgdir":' . db_result($result, 0, "imgdir") . ', ' .
		'"imgdiropen":' . db_result($result, 0, "imgdiropen") . '}';
	}
	$StrQuery = "select distinct css, bgcolor, color, bgimg, shadow, border, imgitem, imgdir " .
	" from script_styles, script_items where script_styles.style_id = script_items.style_over_id " .
	" and script_items.item_parent_id=0 and script_id=2";
	$result = db_query($StrQuery);
	$res_num = db_numrows($result);
	$Error = mysql_error($db);
	if ($Error != "")
	{
		echo "$Error";
		exit();
	}
	if ($res_num != 0)
	{
		$definition = $definition . ', "itemover": { "css" : "' .
		db_result($result, 0, 'css') . '", ' .
		'"bgcolor":"' . db_result($result, 0, 'bgcolor') . '", ' .
		'"color":"' . db_result($result, 0, 'color') . '"} ';
	}
	$definition = $definition . ', "position": { "absolute": false, "pos":[30,20] } ';
	$items = ', "items" : [ ';
	$items = $items . create_level(0);
	$items = $items . ' ] ';
	$definition = $definition . $items . " };";
	return $definition;
}

echo
	"<script language='javascript1.2'><!--\n" .
	create_definition() .
	"</script>";
?>