中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > PHP > PHP综合
xzn_html_tree(1.0)可折叠大纲
作者:佚名 时间:2004-11-07 10:55 出处:互连网 责编:chinaitpower
              摘要:xzn_html_tree(1.0)可折叠大纲
<?
/** 可折叠大纲
* 类名 Tree
* 存放位置 xzn/html/tree.php
*/

/** 节点类
* 用于在树中保存相关参数
*
* @param $id    节点号
* @param $text  节点标题
* @param $value 节点参数,一般为url
* @param $image 节点图片
*/
class TreeNode {
  var $id;
  var $text;
  var $value;
  var $image;
  function TreeNode($id,$text,$value,$image) {
    $this->id = $id;
    $this->text = $text;
    $this->value = $value;
    $this->image = $image;
  }
}

/** 树类
* 用于保存和输出可折叠大纲
* 可折叠大纲使用FrontPage 2000的JavaScript脚本
*
* 方法
* set()
* 设置节点,节点编号采用1.2.3.4或1-2-3-4的形式。
* 无层次限制。输入次序不限。
* @param $id    节点号
* @param $text  节点标题
* @param $value 节点参数,一般为url
* @param $image 节点图片
*
* display()
* 向页面输出可折叠大纲
*
* 属性
* @public $node 数组,用于保存节点
* @public $jspath 脚本outline.js存放位置
*/
class Tree {
  var $node;
  var $jspath;
  function set($id,$text,$value="",$image="plus.gif") {
    $d = split("[.-]",$id);
    $e = "";
    for($i=0;$i<count($d);$i++)
      $e .= "[".$d][$i]."]";
    $n = new TreeNode($id,$text,$value,$image);
    eval("\$p=&\$this->node$e;");
    $p[node] = $n;
  }
  function display() {
    echo '<script language="JavaScript" fptype="dynamicoutline">'."\n";
    echo '<!--'."\n";
    echo 'function dynOutline() {}'."\n";
    echo '//-->'."\n";
    echo '</script>'."\n";
    echo '<script language="JavaScript1.2" fptype="dynamicoutline" src="'.$jspath.'outline.js">'."\n";
    echo '</script>'."\n";
    echo '<script language="JavaScript1.2" fptype="dynamicoutline" for="document" event="onreadystatechange()">'."\n";
    echo '<!--'."\n";
    echo 'initOutline()'."\n";
    echo '//-->'."\n";
    echo '</script>'."\n";
    echo '<table dynamicoutline initcollapsed border="0" cellpadding="0" cellspacing="0"  onclick="dynOutline()">'."\n";
    ksort($this->node);
    reset($this->node);
    while(list($key,$value) = each($this->node)) {
      $this->next($value,0);
    }
    echo "</table>\n";
  }
  function next($node,$level) {
    if(! is_array($node))
      return;
    if(isset($node[node])) {
//      echo $level.",".$node[node]->id.",".$node[node]->text.",".$node[node]->value.",".$node[node]->image."\n";
      echo '<tr>'."\n";
      echo '<td valign="baseline" width="42"><img src="'.$node[node]->image.'"></td>'."\n";
      echo '<td valign="top" width="100%">';
      if(empty($node[node]->value))
        echo $node[node]->text."\n";
      else
        echo '<a href="'.$node[node]->value.'">'.$node[node]->text."</a>\n";
      echo '<table border="0" cellpadding="0" cellspacing="0" width="100%">'."\n";
    }
    if(count($node) == 1) {
      echo "</td></tr>\n</table>\n";
      return;
    }
    ksort($node);
    reset($node);
    while(list($key,$value) = each($node)) {
      $this->next($value,$level+1);
    }
    echo "</td></tr>\n</table>\n";
  }
}
?>
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有