查看完整版本: xzn_html_tree(1.0) 可折叠大纲

lily 2007-8-1 22:25

xzn_html_tree(1.0) 可折叠大纲

             <p>&lt;?<br>/** 可折叠大纲<br>* 类名 Tree<br>* 存放位置 xzn/html/tree.php<br>*/<br><br>/** 节点类<br>* 用于在树中保存相关参数<br>*<br>* @param $id&nbsp;&nbsp;&nbsp;&nbsp;节点号<br>* @param $text&nbsp;&nbsp;节点标题<br>* @param $value 节点参数,一般为url<br>* @param $image 节点图片<br>*/<br>class TreeNode {<br>&nbsp;&nbsp;var $id;<br>&nbsp;&nbsp;var $text;<br>&nbsp;&nbsp;var $value;<br>&nbsp;&nbsp;var $image;<br>&nbsp;&nbsp;function TreeNode($id,$text,$value,$image) {<br>&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;id = $id;<br>&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;text = $text;<br>&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;value = $value;<br>&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;image = $image;<br>&nbsp;&nbsp;}<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&nbsp;&nbsp;&nbsp;&nbsp;节点号<br>* @param $text&nbsp;&nbsp;节点标题<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>&nbsp;&nbsp;var $node;<br>&nbsp;&nbsp;var $jspath;<br>&nbsp;&nbsp;function set($id,$text,$value="",$image="plus.gif") {<br>&nbsp;&nbsp;&nbsp;&nbsp;$d = split("[.-]",$id);<br>&nbsp;&nbsp;&nbsp;&nbsp;$e = "";<br>&nbsp;&nbsp;&nbsp;&nbsp;for($i=0;$i&lt;count($d);$i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$e .= "[".$d][$i]."]";<br>&nbsp;&nbsp;&nbsp;&nbsp;$n = new TreeNode($id,$text,$value,$image);<br>&nbsp;&nbsp;&nbsp;&nbsp;eval("\$p=&amp;\$this-&gt;node$e;");<br>&nbsp;&nbsp;&nbsp;&nbsp;$p[node] = $n;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;function display() {<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;script language="JavaScript" fptype="dynamicoutline"&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;!--'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo 'function dynOutline() {}'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '//--&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;/script&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;script language="JavaScript1.2" fptype="dynamicoutline" src="'.$jspath.'outline.js"&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;/script&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;script language="JavaScript1.2" fptype="dynamicoutline" for="document" event="onreadystatechange()"&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;!--'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo 'initOutline()'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '//--&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;/script&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;table dynamicoutline initcollapsed border="0" cellpadding="0" cellspacing="0"&nbsp;&nbsp;onclick="dynOutline()"&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;ksort($this-&gt;node);<br>&nbsp;&nbsp;&nbsp;&nbsp;reset($this-&gt;node);<br>&nbsp;&nbsp;&nbsp;&nbsp;while(list($key,$value) = each($this-&gt;node)) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;next($value,0);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;echo "&lt;/table&gt;\n";<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;function next($node,$level) {<br>&nbsp;&nbsp;&nbsp;&nbsp;if(! is_array($node))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br>&nbsp;&nbsp;&nbsp;&nbsp;if(isset($node[node])) {<br>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $level.",".$node[node]-&gt;id.",".$node[node]-&gt;text.",".$node[node]-&gt;value.",".$node[node]-&gt;image."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;tr&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;td valign="baseline" width="42"&gt;&lt;img src="'.$node[node]-&gt;image.'"&gt;&lt;/td&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;td valign="top" width="100%"&gt;';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(empty($node[node]-&gt;value))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $node[node]-&gt;text."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;a href="'.$node[node]-&gt;value.'"&gt;'.$node[node]-&gt;text."&lt;/a&gt;\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo '&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;'."\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;if(count($node) == 1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "&lt;/td&gt;&lt;/tr&gt;\n&lt;/table&gt;\n";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;ksort($node);<br>&nbsp;&nbsp;&nbsp;&nbsp;reset($node);<br>&nbsp;&nbsp;&nbsp;&nbsp;while(list($key,$value) = each($node)) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;next($value,$level+1);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;echo "&lt;/td&gt;&lt;/tr&gt;\n&lt;/table&gt;\n";<br>&nbsp;&nbsp;}<br>}<br>?&gt;<br><script language="javascript" src="http://www.itbulo.com/gg/200703/79.js"></script><br><div>
页: [1]
查看完整版本: xzn_html_tree(1.0) 可折叠大纲
PageRank