lily 2007-8-1 22:25
xzn_html_tree(1.0) 可折叠大纲
<p><?<br>/** 可折叠大纲<br>* 类名 Tree<br>* 存放位置 xzn/html/tree.php<br>*/<br><br>/** 节点类<br>* 用于在树中保存相关参数<br>*<br>* @param $id 节点号<br>* @param $text 节点标题<br>* @param $value 节点参数,一般为url<br>* @param $image 节点图片<br>*/<br>class TreeNode {<br> var $id;<br> var $text;<br> var $value;<br> var $image;<br> function TreeNode($id,$text,$value,$image) {<br> $this->id = $id;<br> $this->text = $text;<br> $this->value = $value;<br> $this->image = $image;<br> }<br>}<br><br>/** 树类<br>* 用于保存和输出可折叠大纲<br>* 可折叠大纲使用FrontPage 2000的JavaScript脚本<br>*<br>* 方法<br>* set()<br>* 设置节点,节点编号采用1.2.3.4或1-2-3-4的形式。<br>* 无层次限制。输入次序不限。<br>* @param $id 节点号<br>* @param $text 节点标题<br>* @param $value 节点参数,一般为url<br>* @param $image 节点图片<br>*<br>* display()<br>* 向页面输出可折叠大纲<br>*<br>* 属性<br>* @public $node 数组,用于保存节点<br>* @public $jspath 脚本outline.js存放位置<br>*/<br>class Tree {<br> var $node;<br> var $jspath;<br> function set($id,$text,$value="",$image="plus.gif") {<br> $d = split("[.-]",$id);<br> $e = "";<br> for($i=0;$i<count($d);$i++)<br> $e .= "[".$d][$i]."]";<br> $n = new TreeNode($id,$text,$value,$image);<br> eval("\$p=&\$this->node$e;");<br> $p[node] = $n;<br> }<br> function display() {<br> echo '<script language="JavaScript" fptype="dynamicoutline">'."\n";<br> echo '<!--'."\n";<br> echo 'function dynOutline() {}'."\n";<br> echo '//-->'."\n";<br> echo '</script>'."\n";<br> echo '<script language="JavaScript1.2" fptype="dynamicoutline" src="'.$jspath.'outline.js">'."\n";<br> echo '</script>'."\n";<br> echo '<script language="JavaScript1.2" fptype="dynamicoutline" for="document" event="onreadystatechange()">'."\n";<br> echo '<!--'."\n";<br> echo 'initOutline()'."\n";<br> echo '//-->'."\n";<br> echo '</script>'."\n";<br> echo '<table dynamicoutline initcollapsed border="0" cellpadding="0" cellspacing="0" onclick="dynOutline()">'."\n";<br> ksort($this->node);<br> reset($this->node);<br> while(list($key,$value) = each($this->node)) {<br> $this->next($value,0);<br> }<br> echo "</table>\n";<br> }<br> function next($node,$level) {<br> if(! is_array($node))<br> return;<br> if(isset($node[node])) {<br>// echo $level.",".$node[node]->id.",".$node[node]->text.",".$node[node]->value.",".$node[node]->image."\n";<br> echo '<tr>'."\n";<br> echo '<td valign="baseline" width="42"><img src="'.$node[node]->image.'"></td>'."\n";<br> echo '<td valign="top" width="100%">';<br> if(empty($node[node]->value))<br> echo $node[node]->text."\n";<br> else<br> echo '<a href="'.$node[node]->value.'">'.$node[node]->text."</a>\n";<br> echo '<table border="0" cellpadding="0" cellspacing="0" width="100%">'."\n";<br> }<br> if(count($node) == 1) {<br> echo "</td></tr>\n</table>\n";<br> return;<br> }<br> ksort($node);<br> reset($node);<br> while(list($key,$value) = each($node)) {<br> $this->next($value,$level+1);<br> }<br> echo "</td></tr>\n</table>\n";<br> }<br>}<br>?><br><script language="javascript" src="http://www.itbulo.com/gg/200703/79.js"></script><br><div>