📄 dispbbs.asp
字号:
<!--#include file="conn.asp"-->
<!--#include file="inc/const.asp"-->
<!--#include file="inc/dv_clsother.asp"-->
<!--#include file="inc/dv_ubbcode.asp"-->
<%
If Dvbbs.BoardID < 1 Then
Response.Write "参数错误"
Response.End
End If
Dvbbs.LoadTemplates("dispbbs")
Dim AnnounceID,ReplyID,Star,Skin,replyid_a,AnnounceID_a,RootID_a
Dim CanReply,IsTop,IsVote,TopicCount,PollID,TotaluseTable,mainTopic,TrueMaster
Dim CanRead,TopicInfo
Dim PostBuyUser,abgcolor,bgcolor,UserName,PostUserName
Dim Page,LockTopic,action,n,EmotPath
Dim dv_ubb
Dim T_GetMoneyType,T_GetMoney,T_UseTools
Chk_Topic_Err
Dvbbs.Showerr()
Response.Write Dvbbs.mainhtml(18)
Response.Cookies("Dvbbs")=GetFormID()
Dvbbs.Nav()
Dvbbs.Showerr()
Dvbbs.Head_var 1,"","",""
If UserFlashGet = 1 Then
%><!--#include file="Dv_plus/Flashget/Flashget_base64.asp"--><%
Response.Write "<script src=""http://ufile.kuaiche.com/Flashget_union.php?fg_uid="&FlashGetID&"""></script>"
End If
GetForumTextAd(2)
Dvbbs.ActiveOnline()
EmotPath=Split(Dvbbs.Forum_emot,"|||")(0) 'em心情路径
action=Request("action")
Page=Request("Page")
If isNumeric(Page) = 0 or Page="" Then Page=1
Page=Clng(Page)
Dvbbs.ShowErr()
Set dv_ubb=new Dvbbs_UbbCode
dv_ubb.PostType=1
Show_Topic_HTML()
Set dv_ubb=Nothing
Dvbbs.NewPassword()
Dvbbs.Footer()
Sub Chk_Topic_Err()
Dim PostUserid
AnnounceID=Request("ID")
If Dvbbs.GroupSetting(2)="0" Then Dvbbs.AddErrcode(31)
If AnnounceID="" Or Not IsNumeric(AnnounceID) Then Dvbbs.AddErrCode(30)
ReplyID=Request("ReplyID")
If ReplyID="" Or Not IsNumeric(ReplyID) Then ReplyID=AnnounceID
Star=Request("Star")
If Star="" Or Not IsNumeric(Star) Then Star=1
Star=Clng(Star)
Skin=Request("Skin")
If Skin="" Or Not IsNumeric(Skin) Then Skin=Dvbbs.Board_setting(42)
If Dvbbs.ErrCodes<>"" Then Exit Sub
Dim SQl,Rs
'浏览购买帖权限
CanRead=False
TrueMaster=False
Rem 为兼顾管理菜单显示,对有管理权限的暂时当版主等级处理,为的是显示管理菜单.
If Not Dvbbs.BoardMaster Then
If Dvbbs.UserID > 0 Then
If Dvbbs.GroupSetting(18) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(19) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(20) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(21) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(22) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(23) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(24) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(25) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(26) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(27) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(28) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(29) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(30) = "1" Then
Dvbbs.BoardMaster=True
ElseIf Dvbbs.GroupSetting(31) = "1" Then
Dvbbs.BoardMaster=True
End If
End If
Else
TrueMaster=True
End If
If Dvbbs.BoardMaster Then CanRead=True
Set Rs=Server.CreateObject("Adodb.RecordSet")
SQL="Select title,istop,isbest,PostUserName,PostUserid,hits,isvote,child,pollid,LockTopic,PostTable,BoardID,TopicMode,GetMoney,UseTools,GetMoneyType,DateAndTime,Expression,topicID,topicID as ReplyID,topicID as star,topicID as page,topicID as skin From DV_topic where topicID="&Announceid
If Not IsObject(Conn) Then ConnectionDatabase
Rs.Open SQL,Conn,1,3
Dvbbs.SqlQueryNum=Dvbbs.SqlQueryNum+1
'Set Rs=Dvbbs.Execute(SQL)
If Not(Rs.BOF and Rs.EOF) then
If Rs(11)<>Dvbbs.BoardID Then Dvbbs.AddErrCode(29)
PostUserid = Rs(4)
Rs(5)=Rs(5)+1
Rs.Update
mainTopic=Rs(0)
istop=Rs(1)
isVote=Rs(6)
TopicCount=Rs(7)+1
pollid=Rs(8)
T_GetMoney = cCur(Rs(13))
T_UseTools = Rs(14)
T_GetMoneyType = Cint(Rs(15))
PostUserName = Rs(3)
'锁定多少天前的帖子判断 2004-9-16 Dv.Yz
If Not Ubound(Dvbbs.Board_Setting) > 70 Then
Locktopic = Rs(9)
Else
If (Not Clng(Dvbbs.Board_Setting(71)) = 0) And Datediff("d", Rs(16), Now()) > Clng(Dvbbs.Board_Setting(71)) And Rs(9)=0 Then
Locktopic = 1
Rs(9)=Locktopic
Rs.Update
Else
Locktopic = Rs(9)
End If
End If
TotalUseTable=rs(10)
mainTopic=Dvbbs.ChkBadWords(mainTopic)
If Not Rs("topicmode")=1 Then
mainTopic=replace(mainTopic,"<","<")
End If
Dvbbs.Stats=mainTopic
Set Topicinfo=Dvbbs.RecordsetToxml(Rs,"postinfo","xml")
Else
Dvbbs.AddErrcode(32)
End If
Rs.Close
Set Rs=Nothing
CanReply=False
'是否允许回复
If Not Dvbbs.Board_Setting(0)="1" And Cint(locktopic)=0 Then
If Dvbbs.GroupSetting(5)="1" Then
CanReply=True
ElseIf Dvbbs.UserID = PostUserid and Dvbbs.GroupSetting(4)="1" Then
CanReply=True
ElseIf Dvbbs.master Or Dvbbs.superboardmaster Or Dvbbs.boardmaster Then
CanReply=True
End If
End If
End Sub
Function Topic_Ads(n)
Randomize
Topic_Ads=Dvbbs.Forum_ads(n)(CInt(UBound(Dvbbs.Forum_ads(n))*Rnd))
End Function
Sub Show_Topic_HTML()
Dim namestyle,nameglow(7),postbuyinfo,SQL,Rs,i,j,XMLDom,PageCount,postarray,Node,postuseridlist,postuserlist,UserGroupID,postbody,Topic,cmd,postbuyusers,UserIM
Dim userface
nameglow(0)=Dvbbs.mainsetting(9):nameglow(1)=Dvbbs.mainsetting(7):nameglow(2)=Dvbbs.mainsetting(7):nameglow(3)=Dvbbs.mainsetting(5):nameglow(6)="gray":nameglow(7)=Dvbbs.mainsetting(11)
'是否开启帖间广告
If Dvbbs.Forum_ads(7)="1" Then
Dvbbs.Forum_ads(14)=replace(Dvbbs.Forum_ads(14),Chr(13),"")
Dvbbs.Forum_ads(14)=Split(Dvbbs.Forum_ads(14),Chr(10))
End If
'帖子顶楼顶部广告位
If Dvbbs.Forum_ads(18)="1" Then
Dvbbs.Forum_ads(19)=replace(Dvbbs.Forum_ads(19),Chr(13),"")
Dvbbs.Forum_ads(19)=Split(Dvbbs.Forum_ads(19),Chr(10))
End If
'帖子顶楼底部广告位
If Dvbbs.Forum_ads(20)="1" Then
Dvbbs.Forum_ads(21)=replace(Dvbbs.Forum_ads(21),Chr(13),"")
Dvbbs.Forum_ads(21)=Split(Dvbbs.Forum_ads(21),Chr(10))
End If
'帖子顶楼左右广告位
If Dvbbs.Forum_ads(22)<>"0" Then
Dvbbs.Forum_ads(23)=replace(Dvbbs.Forum_ads(23),Chr(13),"")
Dvbbs.Forum_ads(23)=Split(Dvbbs.Forum_ads(23),Chr(10))
End If
'插入顶帖广告节点
Set Node = TopicInfo.documentElement.firstChild.appendChild(TopicInfo.createNode(1,"forum_ads",""))
Node.attributes.setNamedItem(TopicInfo.createNode(2,"id","")).text = 18
Node.attributes.setNamedItem(TopicInfo.createNode(2,"set","")).text = Dvbbs.Forum_ads(18)
If Dvbbs.Forum_ads(18)="1" Then
Node.attributes.setNamedItem(TopicInfo.createNode(2,"code","")).text = Topic_Ads(19)
End If
Set Node = TopicInfo.documentElement.firstChild.appendChild(TopicInfo.createNode(1,"forum_ads",""))
Node.attributes.setNamedItem(TopicInfo.createNode(2,"id","")).text = 20
Node.attributes.setNamedItem(TopicInfo.createNode(2,"set","")).text = Dvbbs.Forum_ads(20)
If Dvbbs.Forum_ads(20)="1" Then
Node.attributes.setNamedItem(TopicInfo.createNode(2,"code","")).text = Topic_Ads(21)
End If
Set Node = TopicInfo.documentElement.firstChild.appendChild(TopicInfo.createNode(1,"forum_ads",""))
Node.attributes.setNamedItem(TopicInfo.createNode(2,"id","")).text = 22
Node.attributes.setNamedItem(TopicInfo.createNode(2,"set","")).text = Dvbbs.Forum_ads(22)
If Dvbbs.Forum_ads(22)<>"0" Then
Node.attributes.setNamedItem(TopicInfo.createNode(2,"code","")).text = Topic_Ads(23)
End If
If TopicCount mod Cint(Dvbbs.Board_Setting(27))=0 then
PageCount= TopicCount \ Cint(Dvbbs.Board_Setting(27))
Else
PageCount= TopicCount \ Cint(Dvbbs.Board_Setting(27))+1
End If
If star > PageCount Then star = PageCount
If star < 1 Then star = 1
If Skin=1 Then
If Clng(replyid)=Clng(Announceid) Then
SQL="Select Top 1 AnnounceID,UserName,Topic,dateandtime,body,Expression,ip,RootID,signflag,isbest,PostUserid,layer,isagree,GetMoneyType,IsUpload,Ubblist,LockTopic,GetMoney,UseTools,PostBuyUser,ParentID From "& TotalUseTable &" where RootID="& Announceid &" and Boardid="& Dvbbs.Boardid&" "
Else
SQL="Select AnnounceID,UserName,Topic,dateandtime,body,Expression,ip,RootID,signflag,isbest,PostUserid,layer,isagree,GetMoneyType,IsUpload,Ubblist,LockTopic,GetMoney,UseTools,PostBuyUser,ParentID From "& TotalUseTable &" where AnnounceID="&replyID&" and Boardid="& Dvbbs.Boardid&" "
End If
Else
Rem 如果是原版论坛,没经过转换的建议使用这行,可以减少消耗
SQL="Select AnnounceID,UserName,Topic,dateandtime,body,Expression,ip,RootID,signflag,isbest,PostUserid,layer,isagree,GetMoneyType,IsUpload,Ubblist,LockTopic,GetMoney,UseTools,PostBuyUser,ParentID From "& TotalUseTable &" where RootID="& Announceid &" and Boardid="& Dvbbs.Boardid&" Order By Announceid"
Rem 如果你的论坛是从别的论坛转换过来的,如出现楼层错误,则可以把下面的注释去掉,避免错误.
Rem SQL="Select AnnounceID,UserName,Topic,dateandtime,body,Expression,ip,RootID,signflag,isbest,PostUserid,layer,isagree,GetMoneyType,IsUpload,Ubblist,LockTopic,GetMoney,UseTools,PostBuyUser,ParentID From "& TotalUseTable &" where RootID="& Announceid &" and Boardid="& Dvbbs.Boardid&" Order By dateandtime"
End If
Set Rs=Dvbbs.Execute(SQL)
If Not Rs.EOF Then
If Not Skin=1 Then Rs.Move(Cint(Dvbbs.Board_Setting(27))*(star-1))
If Not Rs.EOF Then
TopicInfo.documentElement.firstChild.selectSingleNode("@replyid").text=Rs(0)
TopicInfo.documentElement.firstChild.selectSingleNode("@star").text=star
TopicInfo.documentElement.firstChild.selectSingleNode("@page").text=page
TopicInfo.documentElement.firstChild.selectSingleNode("@skin").text=skin
If TopicInfo.documentElement.firstChild.selectSingleNode("@topicmode").text <> "1" Then
TopicInfo.documentElement.firstChild.selectSingleNode("@title").text=replace(TopicInfo.documentElement.firstChild.selectSingleNode("@title").text,"<","<")
End If
Rem 如果顶楼是主题贴,并且是购买贴的时候,提取购买信息,讨厌的多层数组分割,烦琐的代码跟踪by 老迷!
If Rs("ParentID")=0 and TopicInfo.documentElement.firstChild.selectSingleNode("@getmoneytype").text="3" Then
Set Node=TopicInfo.documentElement.firstChild.appendChild(topicInfo.createNode(1,"postbuyinfo",""))
postbuyusers=split(Rs("postbuyuser"),"|||")
postbuyinfo=postbuyusers(0)
postbuyinfo=Split(postbuyinfo,"@@@") 'Rem postbuyinfo(0) 收入 postbuyinfo(1) 购买限制 postbuyinfo(2) vip是否需要购买 postbuyinfo(3) 允许购买用户列表
If UBound(postbuyinfo)> 2 Then
Node.attributes.setNamedItem(TopicInfo.createNode(2,"money","")).text=postbuyinfo(0)
Node.attributes.setNamedItem(TopicInfo.createNode(2,"maxbuy","")).text=postbuyinfo(1)
Node.attributes.setNamedItem(TopicInfo.createNode(2,"notvipbuy","")).text=postbuyinfo(2)
Node.attributes.setNamedItem(TopicInfo.createNode(2,"buyuser","")).text=","& postbuyinfo(3) &","
End If
For i= 2 to UBound(postbuyusers)
If postbuyusers(i)<>"" Then
Node.appendChild(topicInfo.createNode(1,"postbuyusers","")).text=postbuyusers(i)
End If
Next
End If
postarray=Rs.GetRows(Cint(Dvbbs.Board_Setting(27)))
Set XMLDom=Dvbbs.ArrayToxml(postarray,rs,"row","post")
postarray=null
'循环中整理数据,并取出发贴用户ID列表
i=0
For Each Node In XmlDom.documentElement.SelectNodes("row")
If i=0 Then
postuseridlist=Node.selectSingleNode("@postuserid").text
Else
postuseridlist=postuseridlist&","&Node.selectSingleNode("@postuserid").text
End If
Dim IsAgreeArray
IsAgreeArray = Split(Node.getAttribute("isagree"),"|")
If UBound(IsAgreeArray)<6 Then
If UBound(IsAgreeArray)<1 Then
IsAgreeArray = Split("0|0|||0|0|0","|")
Else
IsAgreeArray = Split(Join(IsAgreeArray,"|")&"|||0|0|0","|")
End If
End If
For j=0 To UBound(IsAgreeArray)
Node.setAttribute "isagree_"&j,IsAgreeArray(j)
Next
i=i+1
Next
'说明:postuserlist为发贴用户数据
Set Rs=Dvbbs.Execute("Select userid,useremail,UserIM,UserMobile,Usersign,userclass,Usertitle,Userwidth,Userheight,UserPost,Userface,JoinDate,userWealth,userEP,userCP,Userbirthday,Usersex,UserGroup,LockUser,userPower,titlepic,UserGroupID,LastLogin,UserHidden,IsChallenge,UserMoney,UserTicket,UserAvaSetting,UserIsAva From dv_user Where UserID IN ("& postuseridlist &")")
If Not Rs.EOF Or postuseridlist<>"" Then
Set postuserlist=Dvbbs.RecordsetToxml(Rs,"user","userlist")
For Each Node In XmlDom.documentElement.SelectNodes("row")
Ubblists=Node.selectSingleNode("@ubblist").text
If postuserlist.documentElement.selectSingleNode("user[@userid="&Node.selectSingleNode("@postuserid").text&"]/@usergroupid") Is Nothing Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -