📄 admin_board.asp
字号:
<!--#include file="Admin_Check.asp"-->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
Const MaxDepth=3 '可以自由设置最大论坛等级深度,默认为3级论坛
AdminHead()
Server.ScriptTimeout =999999
Response.Write("<table width='98%' border='2' align='center' cellpadding='3' cellspacing='0' bordercolor='#999999' bordercolordark='#FFFFFF' bgcolor='#DEF0FE'><tr bgcolor='#4D65A4'><td height='25' align='center'><b><font color='#FFFFFF'>论坛版面管理</font></b></td></tr><tr><td align='center'><a href='?'>论坛管理</a> | <a href='?Action=AddClass'>增加分类</a> | <a href='?Action=AddBoard'>增加论坛</a> | <a href='?Action=ClassOrders'>分类排序</a> | <a href='?Action=BoardUpdate'>论坛整理</a> | <a href='?Action=BoardUnite'>论坛合并</a></td></tr></table><br>")
Select Case Request("Action")
Case "AddClass"
AddClass
Case "SaveClass"
SaveClass
Case "EditClass"
EditClass
Case "SaveEditClass"
SaveEditClass
Case "DelClass"
DelClass
Case "AddBoard"
AddBoard
Case "SaveBoard"
SaveBoard
Case "EditBoard"
EditBoard
Case "SaveEditBoard"
SaveEditBoard
Case "DelBoard"
DelBoard
Case "ClassOrders"
ClassOrders
Case "SaveClassOrders"
SaveClassOrders
Case "BoardUnite"
BoardUnite
Case "SaveBoardUnite"
SaveBoardUnite
Case "ClearData"
ClearData
Case "StartClearData"
StartClearData
Case "PassUser"
PassUser
Case "SavePassUser"
SavePassUser
Case "BoardUpdate"
BoardUpdate
Case "OrdersTopBoard"
OrdersTopBoard
Case else
BoardInfo()
end select
AdminFooter()
Sub updateBoardCache
Cache.Name="BoardInfo"
Cache.clean()
Cache.Name="BoardList1"
Cache.clean()
Cache.Name="BoardList2"
Cache.clean()
End Sub
Sub BoardInfo
Dim Rs,Brs,i,Install,Temp,II,Po,BoardType
%><table width="98%" border="2" align="center" cellpadding="3" cellspacing="0" bordercolor="#999999" bordercolordark="#FFFFFF" bgcolor="#DEF0FE"><tbody>
<tr bgcolor="#4D65A4"><td height="25" align="center"><b><font color="#FFFFFF">论坛版面</font></b></td><td align="center"><b><font color="#FFFFFF">类别</font></b></td><td align="center"><b><font color="#FFFFFF">相应操作</font></b></td></tr>
<%
Set Rs=BBS94KK.execute("Select BoardID,BoardName,ParentID,Depth,Child,BoardType from [KK_board] order by Rootid,orders")
If Rs.eof or Rs.Bof Then
Call GoBack("","论坛没有分类!请先<a href=Admin_Board.asp?Action=AddClass> 添加分类</a>")
Exit Sub
End If
Brs=Rs.GetRows(-1)
Rs.close
For I=0 To Ubound(Brs,2)
Temp="<td height=25>"
Install=" <a href='?Action=AddBoard&BoardID="&BRs(0,i)&"'>添加论坛</a>"
If Brs(3,i)=0 Then'分类
BoardType="分类"
Temp="<tr bgcolor=#E8F4EF>"&Temp
If Brs(4,i)>0 Then'如果有子论坛
Temp=Temp&Brs(1,i)&" ("&Brs(4,i)&")"
Else
Temp=Temp&Brs(1,i)
End If
Install=Install & " | <a href='?Action=EditClass&BoardID="&Brs(0,i)&"'>分类改名</a>"
If Brs(4,i)>0 Then
Install=Install & " | <a href=javascript:alert('不能删除!该分类含有论坛!\n\n要删除本类,必须先把属下的论坛删除或移走。')>删除分类</a>"
Else
Install=Install & " | <a onclick=checkclick('删除后将不能恢复!您确定要删除吗?') href='?Action=DelClass&BoardID="&Brs(0,i)&"'>删除分类</a>"
End If
Else'版面
Select case Brs(5,i)
Case 0
BoardType="普通"
Case 1
BoardType="会员"
Case 2
BoardType="只读"
Case 3
BoardType="认证"
Case 4
BoardType="VIP"
End Select
Temp="<tr>"&Temp
Po=""
For II=1 To Brs(3,i)
Po=Po&" <font color=red>∣</Font> "
Next
If Brs(4,i)>0 Then'如果有子论坛
Temp=Temp&Po&Brs(1,i)&" ("&Brs(4,i)&")"
Else
Temp=Temp&Po&Brs(1,i)
End If
Install=Install & " | <a href='?Action=EditBoard&BoardID="&Brs(0,i)&"'>版面设置</a>"
If Brs(4,i)>0 Then
Install=Install & " | <a href='javascript:' onclick=alert('不能删除!该版面含有子论坛!\n\n要删除本版,必须先把属下的子论坛删除或移走。')>删除版面</a>"
Else
Install=Install & " | <a onclick=checkclick('删除后将不能恢复!您确定要删除吗?') href='?Action=DelBoard&BoardID="&Brs(0,i)&"'>删除论坛</a>"
End If
Install=Install & " | <a href='?Action=ClearData&BoardID="&BRs(0,i)&"'>清理数据</a>"
Install=Install & " | <a href='?Action=OrdersTopBoard&BoardID="&BRs(0,i)&"'>排序置上</a>"
If Brs(5,i)=3 Then
Install=Install & " | <a href='?Action=PassUser&BoardID="&BRs(0,i)&"'>认证用户</a>"
End If
End If
Response.Write(Temp&"</td><td align='center'><font color=#888888>"&BoardType&"</font></td><td>"&Install&"</td></tr>")
Next
%>
<tr bgcolor="#4D65A4"><td colspan="5" > </td></tr></tbody></table>
<%End Sub
Sub AddClass
Dim NewBoardID
Set Rs=BBS94KK.Execute("select Max(BoardID) from [KK_Board]")
IF Rs.Eof or Rs.Bof Then
NewBoardID=1
Else
NewBoardID=Rs(0)+1
End If
If Not isnumeric(NewBoardID) Then NewBoardID=1
Rs.Close
%><form method=POST style="margin:0" action="?Action=SaveClass">
<table width="98%" border="2" align="center" cellpadding="3" cellspacing="0" bordercolor="#999999" bgcolor='#DEF0FE' bordercolordark="#FFFFFF"><tr bgcolor="#4D65A4"><td height="25" colspan="2" ><b><font color="#FFFFFF">添加分类 </font></b></td></tr>
<tr><td height="40"><b>分类名称:</b><br>论坛的分类名称</td><td><input name="NewBoardID" type="hidden" value="<%=NewBoardID%>"><input type=text name="BoardName" size=30></td></tr>
<tr bgcolor="#4D65A4"><td colspan="2" align="center"><input type="submit" value=" 提 交 "> <input type="reset" value=" 重 置 "></td></tr></table></form>
<%
End Sub
Sub SaveClass
Dim BoardName,NewBoardID,MaxRootID
BoardName=BBS94KK.Fun.GetStr("BoardName")
NewBoardID=BBS94KK.Fun.GetStr("NewBoardID")
IF BoardName="" Or Not isnumeric(NewBoardID) Then
Call GoBack("",""):Exit Sub
Else
Set Rs=BBS94KK.Execute("select BoardID from [KK_Board] where BoardID="&NewBoardID)
If Not (rs.eof and rs.bof) then
Call GoBock("内部系统出错","不能指定和别的论坛一样的序号,如果不能解决此问题,请到官方论坛www.94kk.com寻求帮助!")
Exit Sub
End if
Rs.Close
Set Rs=BBS94KK.Execute("Select Max(RootID) From KK_Board")
MaxRootID=Rs(0)+1
If isnull(MaxRootID) then MaxRootID=1
Rs.Close
BBS94KK.execute("Insert into [KK_Board](BoardName,BoardID,RootID,Depth,ParentID,Orders,Child,ParentStr)Values('"&BoardName&"',"&NewBoardID&","&MaxRootID&",0,0,0,0,'0')")
UpdateBoardCache
Call Suc("","成功的添加了论坛分类 <b>"&BoardName&"</b> !","?")
End If
End Sub
Sub EditClass
Dim BoardID
Set Rs=BBS94KK.Execute("Select BoardName from[KK_Board] where BoardID="&BBS94KK.BoardID&"")
If Rs.Eof Then
Call GoBock("系统出错","论坛找不到这个分类,可能已经删除了。"):Exit Sub
End If
%><form method=POST style="margin:0" action="?Action=SaveEditClass">
<table width="98%" border="2" align="center" cellpadding="3" cellspacing="0" bordercolor="#999999" bgcolor='#DEF0FE' bordercolordark="#FFFFFF"><tr bgcolor="#4D65A4"><td height="25" colspan="2" ><b><font color="#FFFFFF">修改分类 </font></b></td></tr>
<tr><td height="40"><b>分类名称:</b><br>修改论坛分类的名称</td><td><input name="BoardID" type="hidden" value="<%=BBS94KK.BoardID%>"><input type=text name="BoardName" value="<%=Rs(0)%>" size=30></td></tr>
<tr bgcolor="#4D65A4"><td colspan="2" align="center"><input type="submit" value=" 修 改 "> <input type="reset" value=" 重 置 "></td></tr></table></form>
<%Rs.Close
End Sub
Sub SaveEditClass
Dim BoardName,BoardID
BoardName=BBS94KK.Fun.GetStr("BoardName")
BoardID=BBS94KK.Fun.GetStr("BoardID")
IF BoardName="" Or Not isnumeric(BoardID) Then
Call GoBack("",""):Exit Sub
Else
If BBS94KK.Execute("select BoardID from [KK_Board] where BoardID="&BoardID).eof then
Call GoBock("系统出错","论坛找不到这个分类,可能已经删除了。"):Exit Sub
End if
BBS94KK.execute("Update [KK_Board] Set BoardName='"&BoardName&"' where BoardID="&BoardID)
UpdateBoardCache
Call Suc("","成功的把论坛分类名称改为 <b>"&BoardName&"</b> !","?")
End If
End Sub
Sub DelClass
IF BBS94KK.Execute("Select Count(BoardID) From[KK_Board] where ParentID="&BBS94KK.BoardID)(0)=0 Then
BBS94KK.Execute("Delete From[KK_Board] where ParentID=0 And BoardID="&BBS94KK.BoardID)
Call Suc("","成功的删除了分类!","?")
End If
End Sub
Sub AddBoard
If BBS94KK.execute("Select BoardID from [KK_Board] where Depth=0").Eof Then
Call GoBock("","没有分类不能添加论坛!请先<a href=Admin_Board.asp?Action=AddClass> ·添加分类</a>")
Exit Sub
End if%>
<form method=POST style="margin:0" action="?Action=SaveBoard">
<table width="98%" border="2" align="center" cellpadding="3" cellspacing="0" bordercolor="#999999" bordercolordark="#FFFFFF" bgcolor='#DEF0FE'><tr bgcolor="#4D65A4"><td height="25" colspan="2" ><b><font color="#FFFFFF">论坛添加 </font></b></td></tr>
<tr><td height="40" width="35%"><b>论坛名称:</b><br>论坛版面的名称</td><td width="65%"><input type=text name="BoardName" size=30>*</td></tr>
<tr><td height="40"><b>标志图片:</b><br>论坛版面Logo地址,可以不填</td><td><input type=text name="BoardImg" size=30></td></tr>
<tr><td height="40"><b>论坛介绍:</b><br>论坛版面描述</td><td><textarea rows="3" name="Introduce"></textarea>*</td></tr>
<tr><td height="40"><b>属于分类或论坛:</b><br>选择要属于那个分类或那个论坛</td><td><select size="1" name="ParentID"><%=BBS94KK.BoardIDList(BBS94KK.BoardID,20)%></select>*</td></tr>
<tr><td height="40"><b>论坛类型:</b><br>请选择论坛版面类型</td><td>
<input type="radio" value="0" name="BoardType" checked>普通论坛(用户和游客可以自由的进入)<br>
<input type="radio" value="1" name="BoardType">会员论坛(只有注册用户才能浏览帖子)<br>
<input type="radio" value="2" name="BoardType">只读论坛(可以浏览帖子,但只有管理员和版主能操作)<br>
<input type="radio" value="3" name="BoardType">认证论坛(只有版主认证的用户和管理员才能进入)<br>
<input type="radio" value="4" name="BoardType">VIP论坛(只有vip用户和管理员才能进入)</tr>
<tr bgcolor="#4D65A4"><td colspan="2" align="center"><input type="submit" value=" 提 交 "> <input type="reset" value=" 重 置 "></td></tr></table>
</form>
<%
End Sub
Sub SaveBoard
Dim BoardName,Introduce,BoardType,BoardImg,ParentID,NewBoardID,RootID,Depth,Child,Orders,ParentStr,I
BoardName=BBS94KK.Fun.GetStr("BoardName")
Introduce=BBS94KK.Fun.GetStr("Introduce")
BoardType=BBS94KK.Fun.GetStr("BoardType")
BoardImg=BBS94KK.Fun.GetStr("BoardImg")
ParentID=BBS94KK.Fun.GetStr("ParentID")
If Not isnumeric(ParentID) or Not isnumeric(BoardType) or BoardName="" Or Introduce="" Then
Call GoBack("",""):Exit Sub
End If
Set Rs=BBS94KK.Execute("select Max(BoardID) from [KK_Board]")
IF Rs.Eof or Rs.Bof Then
Call GoBock("","没有分类不能添加论坛!请先<a href=Admin_Board.asp?Action=AddClass> ·添加分类</a>")
Exit Sub
Else
NewBoardID=Rs(0)+1
End If
Rs.Close
Set Rs=BBS94KK.execute("Select RootID,Depth,Child,Orders,ParentStr,ParentID From[KK_Board] where BoardID="&ParentID&"")
IF Rs.Eof or Rs.Bof Then
Call GoBack("系统程式出错!","没有指定父类或父论坛!")
Exit Sub
End If
RootID=Rs(0)
Depth=Rs(1)
Child=Rs(2)
Orders=Rs(3)
ParentStr=Rs(4)
Rs.Close
If Depth+1>MaxDepth Then
Call GoBack("","考滤到论坛的实用易用,本论坛限制了最多只能有" & MaxDepth & "级论坛。^_^")
Exit Sub
End If
If ParentStr=0 Then
ParentStr=ParentID
Else
ParentStr=ParentStr & "," & ParentID
End If
BBS94KK.execute("Insert into [KK_Board](BoardID,BoardName,Introduce,BoardImg,BoardType,RootID,Depth,ParentID,ParentStr,Orders,Child)Values("&NewBoardID&",'"&BoardName&"','"&Introduce&"','"&BoardImg&"','"&BoardType&"',"&RootID&","&Depth+1&","&ParentID&",'"&ParentStr&"',"&Orders+1&",0)")
If ParentID<>0 then
If Depth>0 then
'当上级分类深度大于0的时候要更新其父类(或父类的父类)的版面数和相关排序
For i=1 to Depth
'更新其父类版面数
BBS94KK.Execute("update [KK_Board] set Child=Child+1 where BoardID="&parentID)
'得到其父类的父类的版面ID
Set rs=BBS94KK.Execute("select ParentID from [KK_Board] where BoardID="&parentID)
If not (rs.eof and rs.bof) then
ParentID=rs(0)
End if
Rs.Close
'当循环次数大于1并且运行到最后一次循环的时候直接进行更新
If i=depth then
BBS94KK.Execute("update [KK_Board] set Child=Child+1 where BoardID="&parentID)
End if
next
'更新该版面排序以及大于本需要和同在本分类下的版面排序序号
BBS94KK.Execute("update [KK_Board] set Orders=orders+1 where RootID="&RootID&" And orders>"&orders)
BBS94KK.Execute("update [KK_Board] set Orders="&Orders&"+1 where BoardID="&NewBoardID&"")
Else
'当上级分类深度为0的时候只要更新上级分类版面数
BBS94KK.Execute("update [KK_Board] set child=child+1 where Boardid="&ParentID)
Set rs=BBS94KK.Execute("select max(Orders) from [KK_Board]")
BBS94KK.Execute("update [KK_Board] set Orders="&rs(0)&"+1 where BoardID="&NewBoardID )
Rs.Close
End if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -