<%
if Action="Add" then
call AddChannel()
elseif Action="SaveAdd" then
call SaveAdd()
elseif Action="Modify" then
call Modify()
elseif Action="SaveModify" then
call SaveModify()
elseif Action="Del" then
call DelChannel()
elseif Action="UpOrder" then
call UpOrder()
elseif Action="DownOrder" then
call DownOrder()
else
call main()
end if
if FoundErr=True then
call WriteErrMsg()
end if
call CloseConn()
sub main()
Set rs=Server.CreateObject("Adodb.RecordSet")
sql="select * from Channel order by OrderID"
rs.Open sql,conn,1,1
iCount=rs.recordcount
j=1
%>
<%
if rs("Readme")<>"" then
response.write rs("Readme")
else
response.write " "
end if
%>
<%=rs("LinkUrl")%>
<%
if rs("ChannelType")=1 then
response.write "用户添加"
else
response.write "系统提供"
end if
%>
<%
response.write "修改 "
if rs("ChannelType")=1 then
response.write "删除"
else
response.write " "
end if
%>
<%
j=j+1
rs.MoveNext
loop
%>
<%
rs.Close
set rs=Nothing
end sub
sub AddChannel()
%>
<%
end sub
sub Modify()
dim ChannelID
ChannelID=trim(request("ChannelID"))
if ChannelID="" then
FoundErr=True
ErrMsg=ErrMsg & "
请指定要修改频道ID
"
exit sub
else
ChannelID=Clng(ChannelID)
end if
set rs=conn.execute("select * from Channel where ChannelID=" & ChannelID)
if rs.bof and rs.eof then
FoundErr=True
ErrMsg=ErrMsg & "
找不到指定的频道!
"
else
%>
<%
end if
rs.close
set rs=nothing
end sub
%>
<%
sub SaveAdd()
dim ChannelName,ReadMe,LinkUrl,mrs,MaxOrderID,ChannelDir,UseCreateHTML
ChannelName=trim(request.Form("ChannelName"))
ReadMe=trim(request("ReadMe"))
LinkUrl=trim(request("LinkUrl"))
ChannelDir=trim(request("ChannelDir"))
UseCreateHTML=trim(request("UseCreateHTML"))
if ChannelName="" then
FoundErr=True
ErrMsg=ErrMsg & "
频道名称不能为空!
"
end if
if LinkUrl="" then
FoundErr=True
ErrMsg=ErrMsg & "
链接地址不能为空!
"
end if
if ChannelDir="" then
FoundErr=True
ErrMsg=ErrMsg & "
频道目录不能为空!
"
end if
if FoundErr=True then
exit sub
end if
set mrs=conn.execute("select max(OrderID) from Channel")
MaxOrderID=mrs(0)
if isnull(MaxOrderID) then MaxOrderID=0
Set rs=Server.CreateObject("Adodb.RecordSet")
rs.open "Select * From Channel Where ChannelName='" & ChannelName & "'",conn,1,3
if not (rs.bof and rs.EOF) then
FoundErr=True
ErrMsg=ErrMsg & "
频道名称已经存在!
"
rs.close
set rs=Nothing
exit sub
end if
rs.addnew
rs("OrderID")=MaxOrderID+1
rs("ChannelName")=ChannelName
rs("ReadMe")=ReadMe
rs("LinkUrl")=LinkUrl
rs("ChannelDir")=ChannelDir
rs("UseCreateHTML")=UseCreateHTML
rs.update
rs.Close
set rs=Nothing
Response.Redirect "Admin_Channel.asp"
end sub
sub SaveModify()
dim ChannelID,ChannelName,ReadMe,LinkUrl,ChannelDir,UseCreateHTML
ChannelID=trim(request("ChannelID"))
ChannelName=trim(request.Form("ChannelName"))
ReadMe=trim(request("ReadMe"))
LinkUrl=trim(request("LinkUrl"))
ChannelDir=trim(request("ChannelDir"))
UseCreateHTML=trim(request("UseCreateHTML"))
if ChannelID="" then
FoundErr=True
ErrMsg=ErrMsg & "
请指定要修改的频道ID
"
else
ChannelID=Clng(ChannelID)
end if
if ChannelName="" then
FoundErr=True
ErrMsg=ErrMsg & "
频道名称不能为空!
"
end if
if LinkUrl="" then
FoundErr=True
ErrMsg=ErrMsg & "
链接地址不能为空!
"
end if
if ChannelDir="" then
FoundErr=True
ErrMsg=ErrMsg & "
频道目录不能为空!
"
end if
if FoundErr=True then
exit sub
end if
sql="Select * From Channel Where ChannelID=" & ChannelID
Set rs=Server.CreateObject("Adodb.RecordSet")
rs.open sql,conn,1,3
if rs.bof and rs.EOF then
FoundErr=True
ErrMsg=ErrMsg & "
找不到指定的频道!
"
rs.close
set rs=Nothing
else
rs("ChannelName")=ChannelName
rs("ReadMe")=ReadMe
rs("LinkUrl")=LinkUrl
rs("ChannelDir")=ChannelDir
rs("UseCreateHTML")=UseCreateHTML
rs.update
rs.Close
set rs=Nothing
Response.Redirect "Admin_Channel.asp"
end if
end sub
sub DelChannel()
dim ChannelID
ChannelID=trim(request("ChannelID"))
if ChannelID="" then
FoundErr=True
ErrMsg=ErrMsg & "
请指定要删除的频道ID
"
else
ChannelID=Clng(ChannelID)
end if
if FoundErr=True then
exit sub
end if
sql="Select * From Channel Where ChannelID=" & ChannelID
Set rs=Server.CreateObject("Adodb.RecordSet")
rs.open sql,conn,1,3
if rs.bof and rs.EOF then
FoundErr=True
ErrMsg=ErrMsg & "
找不到指定的频道!
"
else
if rs("ChannelType")=0 then
FoundErr=True
ErrMsg=ErrMsg & "
不能删除系统频道
"
end if
end if
if FoundErr=True then
rs.Close
set rs=Nothing
else
rs.delete
rs.update
rs.Close
set rs=Nothing
Response.Redirect "Admin_Channel.asp"
end if
end sub
sub UpOrder()
dim ChannelID,sqlOrder,rsOrder,MoveNum,cOrderID,tOrderID,i,rs
ChannelID=trim(request("ChannelID"))
cOrderID=Trim(request("cOrderID"))
MoveNum=trim(request("MoveNum"))
if ChannelID="" then
FoundErr=True
ErrMsg=ErrMsg & "
参数不足!
"
else
ChannelID=CLng(ChannelID)
end if
if cOrderID="" then
FoundErr=true
ErrMsg=ErrMsg & "
错误参数!
"
else
cOrderID=Cint(cOrderID)
end if
if MoveNum="" then
FoundErr=true
ErrMsg=ErrMsg & "
错误参数!
"
else
MoveNum=Cint(MoveNum)
if MoveNum=0 then
FoundErr=True
ErrMsg=ErrMsg & "
请选择要提升的数字!
"
end if
end if
if FoundErr=True then
exit sub
end if
dim mrs,MaxOrderID
set mrs=conn.execute("select max(OrderID) From Channel")
MaxOrderID=mrs(0)+1
'先将当前栏目移至最后,包括子栏目
conn.execute("update Channel set OrderID=" & MaxOrderID & " where ChannelID=" & ChannelID)
'然后将位于当前栏目以上的栏目的OrderID依次加一,范围为要提升的数字
sqlOrder="select * From Channel where OrderID<" & cOrderID & " order by OrderID desc"
set rsOrder=server.CreateObject("adodb.recordset")
rsOrder.open sqlOrder,conn,1,3
if rsOrder.bof and rsOrder.eof then
exit sub '如果当前栏目已经在最上面,则无需移动
end if
i=1
do while not rsOrder.eof
tOrderID=rsOrder("OrderID") '得到要提升位置的OrderID,包括子栏目
conn.execute("update Channel set OrderID=OrderID+1 where OrderID=" & tOrderID)
i=i+1
if i>MoveNum then
exit do
end if
rsOrder.movenext
loop
rsOrder.close
set rsOrder=nothing
'然后再将当前栏目从最后移到相应位置,包括子栏目
conn.execute("update Channel set OrderID=" & tOrderID & " where ChannelID=" & ChannelID)
call CloseConn()
response.redirect "Admin_Channel.asp"
end sub
sub DownOrder()
dim ChannelID,sqlOrder,rsOrder,MoveNum,cOrderID,tOrderID,i,rs,PrevID,NextID
ChannelID=trim(request("ChannelID"))
cOrderID=Trim(request("cOrderID"))
MoveNum=trim(request("MoveNum"))
if ChannelID="" then
FoundErr=True
ErrMsg=ErrMsg & "
参数不足!
"
else
ChannelID=CLng(ChannelID)
end if
if cOrderID="" then
FoundErr=true
ErrMsg=ErrMsg & "
错误参数!
"
else
cOrderID=Cint(cOrderID)
end if
if MoveNum="" then
FoundErr=true
ErrMsg=ErrMsg & "
错误参数!
"
else
MoveNum=Cint(MoveNum)
if MoveNum=0 then
FoundErr=True
ErrMsg=ErrMsg & "
请选择要提升的数字!
"
end if
end if
if FoundErr=True then
exit sub
end if
dim mrs,MaxOrderID
set mrs=conn.execute("select max(OrderID) From Channel")
MaxOrderID=mrs(0)+1
'先将当前栏目移至最后,包括子栏目
conn.execute("update Channel set OrderID=" & MaxOrderID & " where ChannelID=" & ChannelID)
'然后将位于当前栏目以下的栏目的OrderID依次减一,范围为要下降的数字
sqlOrder="select * From Channel where OrderID>" & cOrderID & " order by OrderID"
set rsOrder=server.CreateObject("adodb.recordset")
rsOrder.open sqlOrder,conn,1,3
if rsOrder.bof and rsOrder.eof then
exit sub '如果当前栏目已经在最下面,则无需移动
end if
i=1
do while not rsOrder.eof
tOrderID=rsOrder("OrderID") '得到要提升位置的OrderID,包括子栏目
conn.execute("update Channel set OrderID=OrderID-1 where OrderID=" & tOrderID)
i=i+1
if i>MoveNum then
exit do
end if
rsOrder.movenext
loop
rsOrder.close
set rsOrder=nothing
'然后再将当前栏目从最后移到相应位置,包括子栏目
conn.execute("update Channel set OrderID=" & tOrderID & " where ChannelID=" & ChannelID)
call CloseConn()
response.redirect "Admin_Channel.asp"
end sub
%>