<%@language=vbscript codepage=936 %> <% option explicit response.buffer=true Const PurviewLevel=2 Const CheckChannelID=0 Const PurviewLevel_Others="Channel" 'response.write "此功能被WEBBOY暂时禁止了!" 'response.end %> <% dim Action,FoundErr,ErrMsg dim rs, sql,iCount,i,j Action=trim(request("Action")) %> 频道管理
频 道 管 理
管理导航: 频道管理首页 | 添加新频道
<% 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 %>
<%do while not rs.EOF %> <% j=j+1 rs.MoveNext loop %>
频道名称 频道说明 链接地址 频道类型 常规操作 排序操作
<%=rs("ChannelName")%> <% 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 %>
<% if j>1 then response.write "" response.write "" response.write " " else response.write " " end if %>
<% if iCount>j then response.write "" response.write "" response.write " " else response.write " " end if %>
<% rs.Close set rs=Nothing end sub sub AddChannel() %>
添 加 新 频 道
频道名称:  
频道说明
链接地址:
请输入相对于网站根目录的绝对路径,如根目录为“/”,本系统目录为“/article”。
频道目录:
只能是英文,不能带空格或“\”、“/”等符号。
样例:News、Article、Soft。
生成HTML方式:
服务器支持FSO才能启用“生成HTML”功能
每一次更改生成方式后,你需要先删除所有以前的文件,再重新生成所有文件。
    当频道中的信息量比较少(≤1000)时,可以选用此种方式,此方式最耗费系统资源。
    此方式在生成后将最节省系统资源,但当信息量大时,生成过程将比较长。
 
<% 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 %>
    修 改 频 道 信 息
    频道名称: " size="49" maxlength="30">
    频道说明
    链接地址:
    请输入相对于网站根目录的绝对路径,如根目录为“/”,本系统目录为“/article”。
    " size="49" maxlength="200">
    频道目录:
    只能是英文,不能带空格或“\”、“/”等符号。
    样例:News、Article、Soft。
    " size="49" maxlength="200" disabled="disabled">
    生成HTML方式:
    服务器支持FSO才能启用“生成HTML”功能
    每一次更改生成方式后,你需要先删除所有以前的文件,再重新生成所有文件。
        当频道中的信息量比较少(≤1000)时,可以选用此种方式,此方式最耗费系统资源。
        此方式在生成后将最节省系统资源,但当信息量大时,生成过程将比较长。
    ">
       频道首页的扩展名:" size="47" maxlength="30" <%if not (rs("UseCreateHTML") mod 2=1) then response.Write "disabled"%>>

       栏目页、专题页的扩展名:" size="41" maxlength="30" <%if not (rs("UseCreateHTML")=2 or rs("UseCreateHTML")=3 or rs("UseCreateHTML")=6 or rs("UseCreateHTML")=7) then response.Write "disabled"%>>
    (推荐)
       内容页的扩展名:" size="49" maxlength="30" <%if not (rs("UseCreateHTML")>=4 and rs("UseCreateHTML")<=7) then response.Write "disabled"%>>
    ">  
    <% 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 %>