📄 board.asp
字号:
<!--#include file="Check.Asp"-->
<%
Const MaxDepth=3
Server.ScriptTimeout =999999
Response.Write("<table width='98%' border='0' align='center' cellpadding='4' cellspacing='1' bgcolor='#FFFFFF'><tr bgcolor='#CCCCCC'><td height='25' align='center'>论坛版面管理</td></tr><tr bgcolor=#DEDEDE><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>")
Response.flush
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 "OrdersBoard"
OrdersBoard
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="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr bgcolor="#CCCCCC"><td height="25" align="center">论坛版面</td>
<td align="center">相应操作</td>
</tr>
<%
Set Rs=YxBBs.execute("Select BoardID,BoardName,ParentID,Depth,Child,BoardType from [YX_board] order by Rootid,orders")
If Rs.eof or Rs.Bof Then
Call GoBack("","论坛没有分类!请先<a href=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'分类
Temp="<tr bgcolor=#CCCCCC>"&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'版面
Temp="<tr bgcolor=#DEDEDE>"&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> | <a href='?Action=OrdersBoard&BoardID="&BRs(0,i)&"'>置前</a>"
If Brs(5,i) Then
Install=Install & " | <a href='?Action=PassUser&BoardID="&BRs(0,i)&"'>认证用户</a>"
End If
End If
Response.Write(Temp&"</td><td>"&Install&"</td></tr>")
Next
%>
<tr bgcolor="#DEDEDE"><td colspan="2"> </td>
</tr></tbody></table>
<%
End Sub
Sub OrdersBoard
Dim BoardID,ParentID,RootID,Orders,ParentStr,I,BoardNum,P_Rs,BoardName
BoardID=YxBBs.BoardID
Set Rs=YxBBs.execute("Select Orders,ParentID,ParentStr,BoardName From[Yx_Board] where BoardID="&YxBBs.BoardID)
IF Rs.Eof or Rs.Bof Then
Call GoBack("系统出错!","该版面不存在,可能已经删除了!")
Exit Sub
End If
Orders=Rs(0)
ParentID=Rs(1)
ParentStr=Rs(2)
Rs.Close
'当版面为类时
If ParentID=0 then Call GoBack("系统出错!","版面ID出错。"):Exit Sub
'得到其下属版面数
ParentStr=ParentStr & ","
BoardNum=YxBBs.Execute("select count(*) from [Yx_Board] where ParentStr like '%"&ParentStr & BoardID&"%'")(0)
If Isnull(BoardNum) Then BoardNum=1
'获得父级信息
Set P_rs=YxBBs.Execute("select * from [Yx_board] where Boardid="&ParentID)
'在获得移动过来的版面数后更新排序在指定论坛之后的论坛排序数据
YxBBs.Execute("update [Yx_Board] set orders=Orders + "&BoardNum&"+1 where RootID="&P_rs("RootID")&" And orders>"&P_rs("orders")&"")
'更新当前版面数据
YxBBs.Execute("update [Yx_Board] set orders="&P_Rs("orders")&"+1 Where BoardID="&BoardID)
Dim TempParentStr
i=1
'更新下属,同时获得移动总数i
'如果有则更新下属版面数据
Set Rs=YxBBs.Execute("select * from [Yx_Board] where ParentStr like '%"&ParentStr & BoardID&"%' order by orders")
Do while not rs.eof
i=i+1
If P_rs("parentstr")="0" Then'如果其父级为类,那么其下属的版面数据
TempParentStr=P_rs("boardid") & "," & Replace(rs("parentstr"),ParentStr,"")
Else
TempParentStr=P_rs("parentstr") & "," & P_rs("boardID") & "," & replace(Rs("Parentstr"),ParentStr,"")
End If
YxBBs.Execute("update [Yx_Board] set orders="&P_rs("orders")&"+"&I&",ParentStr='"&TempParentStr&"' where BoardID="&Rs("BoardID"))
Rs.movenext
Loop
Rs.Close
P_Rs.Close
Set P_Rs=Nothing
UpdateBoardCache
Call Suc("","成功的将该版面置前!","?")
Response.End
End Sub
Sub AddClass
Dim NewBoardID
Set Rs=YxBBs.Execute("select Max(BoardID) from [YX_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="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr bgcolor="#CCCCCC">
<td height="25" colspan="2" >添加分类</td>
</tr>
<tr bgcolor="#DEDEDE"><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="#CCCCCC"><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=YxBBs.Fun.GetStr("BoardName")
NewBoardID=YxBBs.Fun.GetStr("NewBoardID")
IF BoardName="" Or Not isnumeric(NewBoardID) Then
Call GoBack("",""):Exit Sub
Else
Set Rs=YxBBs.Execute("select BoardID from [YX_Board] where BoardID="&NewBoardID)
If Not (rs.eof and rs.bof) then
Call GoBack("错误提示","不能指定和别的论坛一样的序号!")
Exit Sub
End if
Rs.Close
Set Rs=YxBBs.Execute("Select Max(RootID) From YX_Board")
MaxRootID=Rs(0)+1
If isnull(MaxRootID) then MaxRootID=1
Rs.Close
YxBBs.execute("Insert into [YX_Board](BoardName,BoardID,BoardSetting,RootID,Depth,ParentID,Orders,Child,ParentStr)Values('"&BoardName&"',"&NewBoardID&",'0,0,30,30720,10,0,0,0,0,0,0',"&MaxRootID&",0,0,0,0,'0')")
UpdateBoardCache
Call Suc("","成功的添加了论坛分类 <b>"&BoardName&"</b> !","?")
End If
End Sub
Sub EditClass
Dim BoardID
Set Rs=YxBBs.Execute("Select BoardName from[YX_Board] where BoardID="&YxBBs.BoardID&"")
If Rs.Eof Then
Call GoBack("系统出错","论坛找不到这个分类,可能已经删除了。"):Exit Sub
End If
%><form method=POST style="margin:0" action="?Action=SaveEditClass">
<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr bgcolor="#CCCCCC"><td height="25" colspan="2" >修改分类 </td>
</tr>
<tr bgcolor="#DEDEDE"><td height="40"><b>分类名称:</b><br>
修改论坛分类的名称</td><td><input name="BoardID" type="hidden" value="<%=YxBBs.BoardID%>"><input type=text name="BoardName" value="<%=Rs(0)%>" size=30></td></tr>
<tr bgcolor="#CCCCCC"><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=YxBBs.Fun.GetStr("BoardName")
BoardID=YxBBs.Fun.GetStr("BoardID")
IF BoardName="" Or Not isnumeric(BoardID) Then
Call GoBack("",""):Exit Sub
Else
If YxBBs.Execute("select BoardID from [YX_Board] where BoardID="&BoardID).eof then
Call GoBack("系统出错","论坛找不到这个分类,可能已经删除了。"):Exit Sub
End if
YxBBs.execute("Update [YX_Board] Set BoardName='"&BoardName&"' where BoardID="&BoardID)
UpdateBoardCache
Call Suc("","成功的把论坛分类名称改为 <b>"&BoardName&"</b> !","?")
End If
End Sub
Sub DelClass
IF YxBBs.Execute("Select Count(BoardID) From[YX_Board] where ParentID="&YxBBs.BoardID)(0)=0 Then
YxBBs.Execute("Delete From[YX_Board] where ParentID=0 And BoardID="&YxBBs.BoardID)
Call Suc("","成功的删除了分类!","?")
End If
End Sub
Sub AddBoard
If YxBBs.Execute("Select BoardID from [YX_Board] where Depth=0").Eof Then
Call GoBack("","没有分类不能添加论坛!请先<a href=Board.Asp?Action=AddClass> ·添加分类</a>")
Exit Sub
End if%>
<form method=POST style="margin:0" action="?Action=SaveBoard">
<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr bgcolor="#CCCCCC">
<td height="25" colspan="2" >论坛添加</td>
</tr>
<tr bgcolor="#DEDEDE"><td width="35%" height="40"><b>论坛名称:</b><br>
论坛版面的名称</td><td width="65%"><input type=text name="BoardName" size=30>*</td></tr>
<tr bgcolor="#DEDEDE"><td height="40"><b>标志图片:</b><br>
论坛版面Logo地址,可以不填</td><td><input type=text name="BoardImg" size=30></td></tr>
<tr bgcolor="#DEDEDE"><td height="40"><b>论坛版主:</b><br>
添加多版主请用@@分隔,如:Name@@Name</td><td><input type=text name="BoardAdmin" size=30></td></tr>
<tr bgcolor="#DEDEDE"><td height="40"><b>论坛介绍:</b><br>
论坛版面描述</td><td><textarea rows="3" name="Introduce"></textarea>*</td></tr>
<tr bgcolor="#DEDEDE"><td height="40"><b>属于分类或论坛:</b><br>
选择要属于那个分类或那个论坛</td><td><select size="1" name="ParentID"><%=YxBBs.BoardIDList(YxBBs.BoardID,20)%></select>*</td></tr>
<tr bgcolor="#DEDEDE"><td height="40"><b>限制用户等级:</b><br>
指定等级以上用户才可进入论坛</td><td>
<select size="1" name="BoardGrade">
<option value="0" selected>0级:游客</option>
<%
Dim UG
set UG=Conn.execute("Select GradeNum,GradeName from YX_UserGrade order by GradeNum asc")
while not UG.Eof
Response.Write "<option value="&UG(0)&">"&UG(0)&"级:"&UG(1)&"</option>"
UG.MoveNext
wend
set UG=nothing
%>
</select>*</td></tr>
<tr><td bgcolor=#d7d7d7><b>是否认证版面:</b><br>
认证版只有版主和人证会员</td><td bgcolor=#d7d7d7><input type="radio" value="1" name="BoardType">是 <input name="BoardType" type="radio" value="0" checked>
否</td></tr>
<tr><td bgcolor=#d7d7d7><b>锁定版面:</b><br>
锁定之后不可以发布帖子</td><td bgcolor=#d7d7d7><input type="radio" value="1" name="BoardLock">是 <input name="BoardLock" type="radio" value="0" checked>
否</td></tr>
<tr bgcolor="#CCCCCC"><td colspan="2" align="center"><input type="submit" value=" 提 交 "> <input type="reset" value=" 重 置 "></td></tr></table>
</form>
<%
End Sub
Sub SaveBoard
Dim BoardName,Introduce,BoardAdmin,BoardImg,BoardGrade,BoardLock,BoardType,ParentID,NewBoardID,RootID,Depth,Child,Orders,ParentStr,I
BoardName=YxBBs.Fun.GetStr("BoardName")
Introduce=YxBBs.Fun.GetStr("Introduce")
BoardAdmin=YxBBs.Fun.GetStr("BoardAdmin")
BoardGrade=YxBBs.Fun.GetStr("BoardGrade")
BoardLock=YxBBs.Fun.GetStr("BoardLock")
BoardType=YxBBs.Fun.GetStr("BoardType")
BoardImg=YxBBs.Fun.GetStr("BoardImg")
ParentID=YxBBs.Fun.GetStr("ParentID")
If Not isnumeric(ParentID) or BoardName="" Or Introduce="" Then
Call GoBack("",""):Exit Sub
End If
Set Rs=YxBBs.Execute("select Max(BoardID) from [YX_Board]")
IF Rs.Eof or Rs.Bof Then
Call GoBack("","没有分类不能添加论坛!请先<a href=Board.Asp?Action=AddClass> ·添加分类</a>")
Exit Sub
Else
NewBoardID=Rs(0)+1
End If
Rs.Close
Set Rs=YxBBs.execute("Select RootID,Depth,Child,Orders,ParentStr,ParentID From[YX_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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -