📄 menu.xml.asp
字号:
<!--#include file="login.asp" -->
<style type="text/css">
<!--
.style4 {color: #FF0000}
-->
</style>
<%
function myfso(path)
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(server.MapPath(path))) Then
Set f = fso.GetFolder(server.MapPath(path))
Else
Set F = fso.CreateFolder(server.MapPath(path))
End If
If (fso.FileExists(server.MapPath(path&"index.xml"))) Then
Set MyFile = fso.GetFile(server.MapPath(path&"index.xml"))
Else
Set MyFile = fso.CreateTextFile(server.MapPath(path&"index.xml"), True)
MyFile.writeLine("<?xml version=""1.0"" encoding=""gb2312"" ?><index/>")
End If
end function
function myfind(path)
path=replace(replace(path,"\","/"),"//","/")
array_path=split(path,"/")
for i=0 to UBound(array_path)-1
subpath=subpath & array_path(i) & "/"
'response.Write(subpath&"<br>")
myfso(subpath)
next
end function
function myxiugai(path,newname)
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(server.MapPath(path))
f.Name=newname
end function
function init_path(objRootsite)
for each element in objRootsite.ChildNodes
path=objRootsite.getAttributeNode("path").nodevalue & element.getAttributeNode("label").nodevalue & "/"
element.setAttribute "path", path
init_path element
next
end function
function mymove(old_path,path)
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(server.MapPath(old_path))
'response.Write(server.MapPath(old_path) & "<br>")
'response.Write(server.MapPath(path) & "<br>")
fso.CopyFolder server.MapPath(old_path),server.MapPath(path)
end function
function mydel(path)
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(server.MapPath(path))) Then
fso.DeleteFolder(server.MapPath(path))
msg = " 存在"
end if
End function
function node_exists(objRootsite,label)
for each element in objRootsite.ChildNodes
if element.getAttributeNode("label").nodevalue=label then
response.Write("<script>alert('在同一目录下类名不能重复,此类名已存在!');history.back();</script>")
response.End()
end if
next
end function
function attribute_exists(objnode,attributes_name)
Set objnode_attributes=objnode.attributes
attribute_exists=0
for each objattribute in objnode_attributes
if objattribute.nodeName=attributes_name then
attribute_exists=1
end if
next
end function
mode=request("mode")
label=request("label")
item=request("item")
pitem=request("pitem")
old_pitem=request("old_pitem")
icon=request("icon")
bbs=request("bbs")
strSourceFile = Server.MapPath("../menu.xml")
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
'Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
objXML.load(strSourceFile)
If objXML.parseError.ErrorCode <> 0 Then
objXML.loadXML "<?xml version=""1.0"" encoding=""gb2312"" ?>"
End If
select case mode
case "add"
add
response.Write("<script>top.left.location.reload();</script>")
case "del"
del
response.Write("<script>top.left.location.reload();</script>")
case "edit"
edit
response.Write("<script>top.left.location.reload();</script>")
end select
sub add
if label="" then
response.Write("<script>alert('请填写类名!');history.back();</script>")
response.End()
end if
Set objRootsite = objXML.selectSingleNode(pitem)
'检查类名是否存在
node_exists objRootsite,label
set element=objRootsite.appendChild(objXML.createElement("item"))
path=objRootsite.getAttributeNode("path").nodevalue & label & "/"
element.setAttribute "label", label
element.setAttribute "path", path
element.setAttribute "icon", icon
element.setAttribute "bbs", bbs
objXML.save(strSourceFile)
myfind "../"&path '查找目录,不存在创建
end sub
sub edit
if label="" then
response.Write("<script>alert('请填写类名!');history.back();</script>")
response.End()
end if
Set objRootsite = objXML.selectSingleNode(pitem)
path=objRootsite.getAttributeNode("path").nodevalue & label & "/"
set element=objXML.SelectSingleNode(item)
old_path=element.getAttributeNode("path").nodevalue
old_label=element.getAttributeNode("label").nodevalue
'文件夹名称变了时
element.setAttribute "path", path
init_path element
'父目录改变时
if old_pitem<>pitem then
'检查类名是否存在
node_exists objRootsite,label
objRootsite.appendChild(element)
myfind "../"&path '查找目录,不存在创建
mymove "../"&old_path,"../"&path
mydel "../"&old_path
else
if old_label<>label then
'检查类名是否存在
node_exists objRootsite,label
myxiugai "../"&old_path,label
end if
end if
element.setAttribute "label", label
element.setAttribute "icon", icon
element.setAttribute "bbs", bbs
objXML.save(strSourceFile)
end sub
sub del
set objnode=objXML.SelectSingleNode(item) '要删除的节点
set objparentnode=objXML.SelectSingleNode(pitem) '要删除的节点的父节点
mydel "../"&objnode.getAttributeNode("path").nodevalue
objparentnode.removeChild objnode
objXML.save(strSourceFile)
end sub
%>
<link href="style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%if mode="xiugai" then
set objnode=objXML.SelectSingleNode(item)
%>
<table width="311" border="1" align="center" cellpadding="1" cellspacing="1">
<form name="form1" method="post" action="menu.xml.asp">
<input type="hidden" value="<%=item%>" name="item">
<input type="hidden" value="edit" name="mode">
<input type="hidden" value="<%=pitem%>" name="old_pitem">
<tr>
<td>类名</td>
<td><input name="label" type="text" id="label" value="<%=objnode.getAttributeNode("label").nodevalue%>" size="15">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td width="61">所属类别</td>
<td width="237"><select name="pitem" id="pitem">
<%
Set objRootsite = objXML.documentElement
response.Write "<option value=""//"&objRootsite.nodename&"[0]"" selected>根目录</option>"
show_item_xiugai "//" & objRootsite.nodename & "[0]",objRootsite," "
function show_item_xiugai(strparent,objRootsite,temp)
i=0
for each element in objRootsite.ChildNodes
if cstr(strparent&"/"&element.nodename&"["&i&"]")<>cstr(item) then
response.Write "<option value="""&strparent&"/"&element.nodename&"["&i&"]"" >"
if element.getAttributeNode("label").nodevalue<>"" then
response.Write temp & element.getAttributeNode("label").nodevalue
else
response.Write "item"
end if
response.Write "</option>"
show_item_xiugai strparent&"/"&element.nodename&"["&i&"]",element,temp & " "
end if
i=i+1
next
end function
%>
</select>
<script>document.form1.pitem.value='<%=pitem%>';</script></td>
</tr>
<tr>
<td height="21">图标</td>
<td>
<%
sub show_icon
response.Write("<select name=""icon"" id=""icon"">")
response.Write("<option value="""" selected>无图标</option>")
strSourceFile_icon = Server.MapPath("../skins/icon/icon.xml")
Set objXML_icon = Server.CreateObject("Microsoft.XMLDOM")
objXML_icon.load(strSourceFile_icon)
If objXML_icon.parseError.ErrorCode <> 0 Then
objXML_icon.loadXML "<?xml version=""1.0"" encoding=""gb2312"" ?>"
End If
Set objRootsite_icon =objXML_icon.documentElement
for each element_icon in objRootsite_icon.ChildNodes
response.Write("<option value="""&element_icon.getAttributeNode("path").nodevalue&""">"&element_icon.getAttributeNode("title").nodevalue&"</option>")
next
response.Write("</select>")
end sub
show_icon
%>
<%
if attribute_exists(objnode,"icon") then
response.Write "<script>document.form1.icon.value='" & objnode.getAttributeNode("icon").nodevalue & "'</script>"
end if
%> </td>
</tr>
<tr>
<td height="21">评论</td>
<td><select name="bbs" id="bbs">
<option value="no" selected>关闭</option>
<option value="yes">打开</option>
</select>
<%
if attribute_exists(objnode,"bbs") then
response.Write "<script>document.form1.bbs.value='" & objnode.getAttributeNode("bbs").nodevalue & "'</script>"
end if
%>
<span class="style4">(免费版不起作用)</span> </td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" name="Submit" value="修改">
</td>
</tr>
</form>
</table>
<%else%>
<table width="311" border="1" align="center" cellpadding="1" cellspacing="1">
<form name="form1" method="post" action="menu.xml.asp">
<input type="hidden" value="add" name="mode">
<tr>
<td>类名</td>
<td><input name="label" type="text" id="label" size="15">
<font color="#FF0000">*</font></td>
</tr>
<tr>
<td width="61">所属类别</td>
<td width="237"><select name="pitem" id="pitem">
<%
Set objRootsite = objXML.documentElement
response.Write "<option value=""//"&objRootsite.nodename&""" selected>根目录</option>"
show_item "//" & objRootsite.nodename & "[0]",objRootsite," "
function show_item(strparent,objRootsite,temp)
i=0
for each element in objRootsite.ChildNodes
response.Write "<option value="""&strparent&"/"&element.nodename&"["&i&"]"" >"
if element.getAttributeNode("label").nodevalue<>"" then
response.Write temp & element.getAttributeNode("label").nodevalue
else
response.Write "item"
end if
response.Write "</option>"
show_item strparent&"/"&element.nodename&"["&i&"]",element,temp & " "
i=i+1
next
end function
%>
</select></td>
</tr>
<tr>
<td height="21">图标</td>
<td><%show_icon%></td>
</tr>
<tr>
<td height="21">评论</td>
<td><select name="bbs" id="bbs">
<option value="no" selected>关闭</option>
<option value="yes">打开</option>
</select>
<span class="style4">(免费版不起作用)</span> </td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" name="Submit" value="添加">
</td>
</tr>
</form>
</table>
<%end if%><br>
<hr>
<%
Set objRootsite = objXML.documentElement
'Set objRootsite = objXML.selectSingleNode("menu")'
show_node "//" & objRootsite.nodename & "[0]",objRootsite
function show_node(strparent,objRootsite)
response.write("<table border=""0"" cellpadding=""0"" cellspacing=""1"">" & vbcrlf)
'遍历元素
i=0
for each element in objRootsite.ChildNodes
'初始化路径
myfind "../"&element.getAttributeNode("path").nodevalue
'response.write element.nodename
'response.write element.text
response.write(" <tr>" & vbcrlf)
response.write(" <td >◆</td>" & vbcrlf)
response.write(" <td ><a href=""menu.xml.asp?mode=xiugai&pitem="&strparent&"&item="&strparent&"/"&element.nodename&"["&i&"]"">"&element.getAttributeNode("label").nodevalue&"</a> " & vbcrlf)
response.write(" <a href=""menu.xml.asp?mode=del&pitem="&strparent&"&item="&strparent&"/"&element.nodename&"["&i&"]"" onClick=""javascript:if(confirm('确定删除吗?')){return true;}else{return false;}"">(删除)</a></td>" & vbcrlf)
response.write(" </tr>" & vbcrlf)
response.write(" <tr>" & vbcrlf)
response.write(" <td></td align=""left""><td>" & vbcrlf)
'显示子节点
show_node strparent&"/"&element.nodename&"["&i&"]",element
response.write(" </td>" & vbcrlf)
response.write(" </tr>" & vbcrlf)
' 遍历属性
' for each element_a in element.attributes
' response.write element_a.nodename
' response.write element_a.nodevalue
' next
i=i+1
next
response.write("</table>")
end function
response.write("<hr color=""#ffffff"">")
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -