以下为引用的内容:
.<b>Demo menu</b>|javascript: alert(This is the demo menu for TreeMenu 1.0); ..<b>目录1</b> ...<b>子目录 1.1</b> ....item 1.1.1|javascript: alert(Item 1.1.1); ....item 1.1.2|javascript: alert(Item 1.1.1); ...item 1.2|javascript: alert(Item 1.2); ...item 1.3|javascript: alert(Item 1.3); ..<b>子目录 2</b> ...item 2.1|javascript: alert(Item 2.1); ...item 2.2|javascript: alert(Item 2.2); ...<b>子目录 2.3</b> ....item 2.3.1|javascript: alert(Item 2.3.1); ....item 2.3.2|javascript: alert(Item 2.3.2); <?php // file:tremenu.inc // PHP TreeMenu ///////////////// // 初始化 // /////////////////
treefile = "demomenu.txt";//设置有菜单结构的文件
if(isset(PATH_INFO)) script = PATH_INFO; else script = SCRIPT_NAME;
//以下图片可截取windows资源管理器中的相应位置的图
img_expand = "tree_expand.gif";//形如资源管理器中可扩展节点+ img_collapse = "tree_collapse.gif";//形如资源管理器中已扩展节点- img_line = "tree_vertline.gif";//形如| img_split = "tree_split.gif";//形如|- img_end = "tree_end.gif";//形如L img_leaf = "tree_leaf.gif";//形如o img_spc = "tree_space.gif";//空白图 中国站长.站
//以下是菜单处理脚本 Chinaz.com
maxlevel=0; cnt=0;
fd = fopen(treefile, "r"); if (fd==0) die("treemenu.inc : Unable to open file ".treefile); while (buffer = fgets(fd, 4096)) { tree[cnt][0]=strspn(buffer,"."); tmp=rtrim(substr(buffer,tree[cnt][0])); node=explode("|",tmp); tree[cnt][1]=node[0]; tree[cnt][2]=node[1]; tree[cnt][3]=node[2]; tree[cnt][4]=0; if (tree[cnt][0] > maxlevel) maxlevel=tree[cnt][0]; cnt++; } fclose(fd); Chinaz
for (i=0; i<count(tree); i++) { expand[i]=0; visible[i]=0; levels[i]=0; }
if (p!="") explevels = explode("|",p); i=0; while(i<count(explevels)) { expand[explevels[i]]=1; i++; }
lastlevel=maxlevel; for (i=count(tree)-1; i>=0; i--) { if ( tree[i][0] < lastlevel ) for (j=tree[i][0]+1; j <= maxlevel; j++) levels[j]=0; if ( levels[tree[i][0]]==0 ) { levels[tree[i][0]]=1; tree[i][4]=1; } else tree[i][4]=0; lastlevel=tree[i][0]; }
for (i=0; i < count(tree); i++) if (tree[i][0]==1) visible[i]=1; for (i=0; i < count(explevels); i++) { n=explevels[i]; if ( (visible[n]==1) && (expand[n]==1) ) { j=n+1; while ( tree[j][0] > tree[n][0] ) { if (tree[j][0]==tree[n][0]+1) visible[j]=1; j++; } } }
for (i=0; i<maxlevel; i++) levels[i]=1; WwwChinazcom
maxlevel++;
echo "<table cellspacing=0 cellpadding=0 border=0 cols=".(maxlevel+3).">\n"; echo "<tr>"; for (i=0; i<maxlevel; i++) echo "<td width=16></td>"; echo "<td width=100%> </td></tr>\n"; cnt=0; while (cnt<count(tree)) { if (visible[cnt]) { echo "<tr>"; i=0; while (i<tree[cnt][0]-1) { if (levels[i]==1) echo "<td><a name=cnt></a><img src=\"".img_line."\"></td>"; else echo "<td><a name=cnt></a><img src=\"".img_spc."\"></td>"; i++; } if (tree[cnt][4]==1) { echo "<td><img src=\"".img_end."\"></td>"; levels[tree[cnt][0]-1]=0; } else { echo "<td><img src=\"".img_split."\"></td>"; levels[tree[cnt][0]-1]=1; }
if (tree[cnt+1][0]>tree[cnt][0]) {
i=0; params="?p="; while(i<count(expand)) { if ( (expand[i]==1) && (cnt!=i) || (expand[i]==0 && cnt==i)) { params=params.i; params=params."|"; } i++; }
if (expand[cnt]==0) echo "<td><a href=\"".script.params."#cnt\"><img src=\"".img_expand."\" border=no></a></td>"; else echo "<td><a href=\"".script.params."#cnt\"><img src=\"".img_collapse."\" border=no></a></td>"; } else echo "<td><img src=\"".img_leaf."\"></td>";
if (tree[cnt][2]=="") echo "<td colspan=".(maxlevel-tree[cnt][0]).">".tree[cnt][1]."</td>"; else echo "<td colspan=".(maxlevel-tree[cnt][0])."><a href=\"".tree[cnt][2]."\" target=\"".tree[cnt][3]."\">".tree[cnt][1]."</a></td>"; echo "</tr>\n"; } cnt++; } echo "</table>\n"; ?>
Chinazcom |