PEAR::HTML_TreeMenuでディレクトリツリーを生成
Wikiの一覧ってカテゴリー別に分けれたらいいよねみたいな話があったのと,
それをWindowsのエクスプローラみたいに操作できたらいいよねなんて思ったので書いてみた。
WebブラウザでWidowsのエクスプローラみたいなことをしようと思ったら
それなりにJavaScriptの知識がないといけないんだけど, HTML_TreeMenuを使うとそのへんを
うまくカバーしてくれるのでかなり便利。というかJavaScript勉強しないとなあ。
function printTree($root_path){ $root = new HTML_TreeMenu(); $root = createHtmlTree($root_path, $root); $tree = new HTML_TreeMenu_DHTML($root); print($tree->toHTML()); } function createHtmlTree($dir, $root){ $i = 0; if($handle = opendir($dir)){ while(false !== $file = readdir($handle)){ if($file != "." && $file != ".."){ if(is_dir($dir."/".$file)){ $top_nodes[$i] = createNodes($dir."/".$file); $root->addItem($top_nodes[$i++]); } else{ $root->addItem(new HTML_TreeNode(array('text' => $dir."/".$file, 'link' => $dir."/".$file))); } } } closedir($handle); } return $root; } function createNodes($dir){ $node = new HTML_TreeNode(new HTML_TreeNode(array('text' => $dir, 'link' => ''))); if($handle = opendir($dir)){ while(false !== $file = readdir($handle)){ if($file != "." && $file != ".."){ if(is_dir($dir."/".$file)){ $node->addItem(createNodes($dir."/".$file)); } else{ $node->addItem(new HTML_TreeNode(array('text' => $dir."/".$file, 'link' => $dir."/".$file))); } } } closedir($handle); } return $node; }