PHPとSQLiteによるdTree

. dTreeによって右のようなイメージのページを作成する。
dTreeのパラメータは8つ位あるらしい。
まず、「var treeObj=new dTree("treeObj");」のようにしてオブジェクトを作成する。
次に、「treeObj.add(id, 親ノード番号, 自ノード名, URL, マウスオーバー時の表題, ?, 画像名, ?);」のようにしてどんどん追加していく。

id : ツリーの中でユニークな番号であり重複することはできない。
親ノード番号 : 属する親のid。ルートは-1である。0にするとルートノードに属する。つまりすべて閉じた状態で表示される。
自ノード名 : 右の図で言うと「特異な形の胃腫瘍」がこれに当たる。
URL : リンクするURL。
マウスオーバー時の表題 : dTreeが表示された時、自ノード名の上にマウスオーバーすると文字が表示される。
画像名 : 自ノード名の左側の画像をここで設定する。

これを手動でおこなうのは難しくないが、PHPとSQLite3を使って動的に作成した。

以下のコードは、単純なdTree表示に加えて図の「NEW」画像を表示するためにいろいろなことをやっていてやや複雑かもしれない。

<?PHP
function TimeDiff($finalUpTime){
	date_default_timezone_set('Asia/Tokyo');
	$thisTime = time();
	$upStamp = strtotime($finalUpTime);
	$DiffHour = ($thisTime - $upStamp)/3600;
	return $DiffHour ;
}
	print('
  <div class="dtree" style="margin:30px;display:block;border:solid 1px;border-color:#D6CECE;padding:10px;">
    <div style="margin-bottom:20px;">
      <a href="javascript: treeObj.openAll();">すべて開く</a> | 
      <a href="javascript: treeObj.closeAll();">すべて閉じる</a>
    </div>
    <script type="text/javascript"><!--
      var treeObj=new dTree("treeObj");
      treeObj.add(0,-1,"Top");
	');	
	print("\n\t<!--   PHPで動的に作成 (ここから)   -->");	
	$db = new SQLite3('hoge.db');
	$results = $db->query('SELECT * FROM boo');
	while ($row = $results->fetchArray()) {
		print("\n\t");
		$finalUpTime = $row['finalwrite'];
		$diffTime = TimeDiff($finalUpTime);
		if ($diffTime < 72){			//-------------------------------- 72時間(つまり3日間)は『new』画像が表示される
			$image = 'dtree/img/new.gif';
		}else{
			$image = null;
		}
		print('treeObj.add('.$row['id'].','.$row['parentnode'].',"'.$row['title'].'","'.$row['url'].'","'.$diffTime.'","","'.$image.'",""); ');	
	}
	$db->close();
	print("\n\t<!--   PHPで動的に作成 (ここまで)   -->");		
	print('
	document.write(treeObj);
    --></script>
  </div>
	');	
?>