📄 admin_class_menu.asp
字号:
response.write "</select>"
response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&">"
response.write "<input type=hidden name=cRootID value="&rsClass("RootID")&"> <input type=submit name=Submit value=修改>"
response.write "</td></form>"
else
response.write "<td width='150'> </td>"
end if
if iCount>j then
response.write "<form action='Admin_Class_Menu.asp?Action=DownOrder' method='post'><td width='150'>"
response.write "<select name=MoveNum size=1><option value=0>向下移动</option>"
for i=1 to iCount-j
response.write "<option value="&i&">"&i&"</option>"
next
response.write "</select>"
response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&">"
response.write "<input type=hidden name=cRootID value="&rsClass("RootID")&"> <input type=submit name=Submit value=修改>"
response.write "</td></form>"
else
response.write "<td width='150'> </td>"
end if
%>
<td> </td>
</tr>
<%
j=j+1
rsClass.movenext
loop
%>
</table>
<%
rsClass.close
set rsClass=nothing
end sub
sub OrderN()
dim sqlClass,rsClass,i,iCount,trs,UpMoveNum,DownMoveNum
sqlClass="select * From MenuClass order by RootID,OrderID"
set rsClass=server.CreateObject("adodb.recordset")
rsClass.open sqlClass,conn,1,1
%>
<br>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="table_southidc">
<tr class="title">
<td height="22" colspan="4" align="center"><strong>N 级 栏 目 排 序</strong></td>
</tr>
<%
do while not rsClass.eof
%>
<tr class="td_southidc" onMouseOut="this.style.backgroundColor=''" onMouseOver="this.style.backgroundColor='#BFDFFF'">
<td width="300">
<%
for i=1 to rsClass("Depth")
response.write " "
next
if rsClass("Child")>0 then
response.write "<img src='Image/tree_folder4.gif' width='15' height='15' valign='abvmiddle'>"
else
response.write "<img src='Image/tree_folder3.gif' width='15' height='15' valign='abvmiddle'>"
end if
if rsClass("ParentID")=0 then
response.write "<b>"
end if
response.write rsClass("ClassName")
if rsClass("Child")>0 then
response.write "(" & rsClass("Child") & ")"
end if
%></td>
<%
if rsClass("ParentID")>0 then '如果不是一级栏目,则算出相同深度的栏目数目,得到该栏目在相同深度的栏目中所处位置(之上或者之下的栏目数)
'所能提升最大幅度应为For i=1 to 该版之上的版面数
set trs=conn.execute("select count(ClassID) From MenuClass where ParentID="&rsClass("ParentID")&" and OrderID<"&rsClass("OrderID")&"")
UpMoveNum=trs(0)
if isnull(UpMoveNum) then UpMoveNum=0
if UpMoveNum>0 then
response.write "<form action='Admin_Class_Menu.asp?Action=UpOrderN' method='post'><td width='150'>"
response.write "<select name=MoveNum size=1><option value=0>向上移动</option>"
for i=1 to UpMoveNum
response.write "<option value="&i&">"&i&"</option>"
next
response.write "</select>"
response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&"> <input type=submit name=Submit value=修改>"
response.write "</td></form>"
else
response.write "<td width='150'> </td>"
end if
trs.close
'所能降低最大幅度应为For i=1 to 该版之下的版面数
set trs=conn.execute("select count(ClassID) From MenuClass where ParentID="&rsClass("ParentID")&" and orderID>"&rsClass("orderID")&"")
DownMoveNum=trs(0)
if isnull(DownMoveNum) then DownMoveNum=0
if DownMoveNum>0 then
response.write "<form action='Admin_Class_Menu.asp?Action=DownOrderN' method='post'><td width='150'>"
response.write "<select name=MoveNum size=1><option value=0>向下移动</option>"
for i=1 to DownMoveNum
response.write "<option value="&i&">"&i&"</option>"
next
response.write "</select>"
response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&"> <input type=submit name=Submit value=修改>"
response.write "</td></form>"
else
response.write "<td width='150'> </td>"
end if
trs.close
else
response.write "<td colspan=2> </td>"
end if
%>
<td> </td>
</tr>
<%
UpMoveNum=0
DownMoveNum=0
rsClass.movenext
loop
%>
</table>
<%
rsClass.close
set rsClass=nothing
end sub
sub Reset()
%>
<br>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="table_southidc">
<tr class="title">
<td height="22" colspan="3" align="center"><strong>复 位 所 有 菜 单 栏 目</strong></td>
</tr>
<tr class="td_southidc">
<td align="center">
<form name="form1" method="post" action="Admin_Class_Menu.asp?Action=SaveReset">
<table width="80%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="150"><font color="#FF0000"><strong>注意:</strong></font><br>
如果选择复位所有菜单,则所有菜单都将作为一级菜单,这时您需要重新对各个菜单进行归属的基本设置。不要轻易使用该功能,仅在做出了错误的设置而无法复原菜单之间的关系和排序的时候使用。
</td>
</tr>
</table>
<input type="submit" name="Submit" value="复位所有菜单">
<input name="Cancel" type="button" id="Cancel" value=" 取 消 " onClick="window.location.href='Admin_Class_Menu.asp'" style="cursor:hand;">
</form></td>
</tr>
</table>
<%
end sub
sub Unite()
%>
<br>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="table_southidc">
<tr class="title">
<td height="22" colspan="3" align="center"><strong>菜 单 栏 目 合 并</strong></td>
</tr>
<tr class="td_southidc">
<td height="100"><form name="myform" method="post" action="Admin_Class_Menu.asp" onSubmit="return ConfirmUnite();">
将菜单
<select name="ClassID" id="ClassID">
<%call Admin_ShowClass_Option(1,0,0)%>
</select>
合并到
<select name="TargetClassID" id="TargetClassID">
<%call Admin_ShowClass_Option(1,0,0)%>
</select>
<br> <br>
<input name="Action" type="hidden" id="Action" value="SaveUnite">
<input type="submit" name="Submit" value=" 合并菜单 " style="cursor:hand;">
<input name="Cancel" type="button" id="Cancel" value=" 取 消 " onClick="window.location.href='Admin_Class_Menu.asp'" style="cursor:hand;">
</form>
</td>
</tr>
<tr class="td_southidc">
<td height="60"><strong>注意事项:</strong><br>
所有操作不可逆,请慎重操作!!!<br>
不能在同一个菜单内进行操作,不能将一个菜单合并到其下属菜单中。目标菜单中不能含有子菜单。<br>
合并后您所指定的菜单(或者包括其下属菜单)将被删除,所有菜单将转移到目标菜单中。</td>
</tr>
</table>
<script language="JavaScript" type="text/JavaScript">
function ConfirmUnite()
{
if (document.myform.ClassID.value==document.myform.TargetClassID.value)
{
alert("请不要在相同栏目内进行操作!");
document.myform.TargetClassID.focus();
return false;
}
if (document.myform.TargetClassID.value=="")
{
alert("目标栏目不能指定为含有子栏目的栏目!");
document.myform.TargetClassID.focus();
return false;
}
}
</script>
<%
end sub
%>
</body>
</html>
<%
sub SaveAdd()
dim ClassID,ClassName,ShowOnTop,Readme,LinkUrl,PrevOrderID
dim sql,rs,trs
dim RootID,ParentDepth,ParentPath,ParentStr,ParentName,MaxClassID,MaxRootID
dim PrevID,NextID,Child
ClassName=trim(request("ClassName"))
ShowOnTop=trim(request("ShowOnTop"))
Readme=trim(request("Readme"))
LinkUrl=trim(request("LinkUrl"))
if ClassName="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>栏目名称不能为空!</li>"
end if
if ShowOnTop="Yes" then
ShowOnTop=True
else
ShowOnTop=False
end if
if FoundErr=True then
exit sub
end if
set rs = conn.execute("select Max(ClassID) From MenuClass")
MaxClassID=rs(0)
if isnull(MaxClassID) then
MaxClassID=0
end if
rs.close
ClassID=MaxClassID+1
set rs=conn.execute("select max(rootid) From MenuClass")
MaxRootID=rs(0)
if isnull(MaxRootID) then
MaxRootID=0
end if
rs.close
RootID=MaxRootID+1
if ParentID>0 then
sql="select * From MenuClass where ClassID=" & ParentID & ""
rs.open sql,conn,1,1
if rs.bof and rs.eof then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>所属栏目已经被删除!</li>"
end if
if FoundErr=True then
rs.close
set rs=nothing
exit sub
else
RootID=rs("RootID")
ParentName=rs("ClassName")
ParentDepth=rs("Depth")
ParentPath=rs("ParentPath")
Child=rs("Child")
ParentPath=ParentPath & "," & ParentID '得到此栏目的父级栏目路径
PrevOrderID=rs("OrderID")
if Child>0 then
dim rsPrevOrderID
'得到与本栏目同级的最后一个栏目的OrderID
set rsPrevOrderID=conn.execute("select Max(OrderID) From MenuClass where ParentID=" & ParentID)
PrevOrderID=rsPrevOrderID(0)
set trs=conn.execute("select ClassID from MenuClass where ParentID=" & ParentID & " and OrderID=" & PrevOrderID)
PrevID=trs(0)
'得到同一父栏目但比本栏目级数大的子栏目的最大OrderID,如果比前一个值大,则改用这个值。
set rsPrevOrderID=conn.execute("select Max(OrderID) From MenuClass where ParentPath like '" & ParentPath & ",%'")
if (not(rsPrevOrderID.bof and rsPrevOrderID.eof)) then
if not IsNull(rsPrevOrderID(0)) then
if rsPrevOrderID(0)>PrevOrderID then
PrevOrderID=rsPrevOrderID(0)
end if
end if
end if
else
PrevID=0
end if
end if
rs.close
else
if MaxRootID>0 then
set trs=conn.execute("select ClassID from MenuClass where RootID=" & MaxRootID & " and Depth=0")
PrevID=trs(0)
trs.close
else
PrevID=0
end if
PrevOrderID=0
ParentPath="0"
end if
sql="Select * From MenuClass Where ParentID=" & ParentID & " AND ClassName='" & ClassName & "'"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
if not(rs.bof and rs.eof) then
FoundErr=True
if ParentID=0 then
ErrMsg=ErrMsg & "<br><li>已经存在一级栏目:" & ClassName & "</li>"
else
ErrMsg=ErrMsg & "<br><li>“" & ParentName & "”中已经存在子栏目“" & ClassName & "”!</li>"
end if
rs.close
set rs=nothing
exit sub
end if
rs.close
sql="Select top 1 * From MenuClass"
rs.open sql,conn,1,3
rs.addnew
rs("ClassID")=ClassID
rs("ClassName")=ClassName
rs("ShowOnTop")=ShowOnTop
rs("RootID")=RootID
rs("ParentID")=ParentID
if ParentID>0 then
rs("Depth")=ParentDepth+1
else
rs("Depth")=0
end if
rs("ParentPath")=ParentPath
rs("OrderID")=PrevOrderID
rs("Child")=0
rs("Readme")=Readme
rs("LinkUrl")=LinkUrl
rs("PrevID")=PrevID
rs("NextID")=0
rs.update
rs.Close
set rs=Nothing
'更新与本栏目同一父栏目的上一个栏目的“NextID”字段值
if PrevID>0 then
conn.execute("update MenuClass set NextID=" & ClassID & " where ClassID=" & PrevID)
end if
if ParentID>0 then
'更新其父类的子栏目数
conn.execute("update MenuClass set child=child+1 where ClassID="&ParentID)
'更新该栏目排序以及大于本需要和同在本分类下的栏目排序序号
conn.execute("update MenuClass set OrderID=OrderID+1 where rootid=" & rootid & " and OrderID>" & PrevOrderID)
conn.execute("update MenuClass set OrderID=" & PrevOrderID & "+1 where ClassID=" & ClassID)
end if
call CloseConn()
Response.Redirect "Admin_Class_Menu.asp"
end sub
sub SaveModify()
dim ClassName,Readme,ShowOnTop,LinkUrl
dim trs,rs
dim ClassID,sql,rsClass,i
dim SkinCount,LayoutCount
ClassID=trim(request("ClassID"))
if ClassID="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>参数不足!</li>"
else
ClassID=CLng(ClassID)
end if
ClassName=trim(request("ClassName"))
ShowOnTop=trim(request("ShowOnTop"))
Readme=trim(request("Readme"))
LinkUrl=trim(request("LinkUrl"))
if ClassName="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>栏目名称不能为空!</li>"
end if
if FoundErr=True then
exit sub
end if
sql="select * From MenuClass where ClassID=" & ClassID
set rsClass=server.CreateObject ("Adodb.recordset")
rsClass.open sql,conn,1,3
if rsClass.bof and rsClass.eof then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>找不到指定的栏目!</li>"
rsClass.close
set rsClass=nothing
exit sub
end if
if ShowOnTop="Yes" then
ShowOnTop=True
else
ShowOnTop=False
end if
if FoundErr=True then
rsClass.close
set rsClass=nothing
exit sub
end if
rsClass("ClassName")=ClassName
rsClass("ShowOnTop")=ShowOnTop
rsClass("Readme")=Readme
rsClass("LinkUrl")=LinkUrl
rsClass.update
rsClass.close
set rsClass=nothing
set rs=nothing
set trs=nothing
call CloseConn()
Response.Redirect "Admin_Class_Menu.asp"
end sub
sub DeleteClass()
dim sql,rs,PrevID,NextID,ClassID
ClassID=trim(Request("ClassID"))
if ClassID="" then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>参数不足!</li>"
exit sub
else
ClassID=CLng(ClassID)
end if
sql="select ClassID,RootID,Depth,ParentID,Child,PrevID,NextID From MenuClass where ClassID="&ClassID
set rs=server.CreateObject ("Adodb.recordset")
rs.open sql,conn,1,3
if rs.bof and rs.eof then
FoundErr=True
ErrMsg=ErrMsg & "<br><li>栏目不存在,或者已经被删除</li>"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -