%
If Dvbbs.BoardID < 1 Then
Response.Write "参数错误"
Response.End
End If
Dim totalusetable,AnnounceID,ReplyID
Dim MyPost,UserName
Dim postbuyuser,bgcolor,Dvbbs_Mode
Dim ReplyID_a,AnnounceID_a,RootID_a,T_GetMoneyType
Dim dv_ubb,abgcolor
Dim EmotPath
Dim PostStyle
PostStyle = Request("poststyle")
Dim IsThisBoardMaster '确定当前用户是否本版版主,防止下面的操作影响到 Dvbbs.BoardMaster导致出错
IsThisBoardMaster = Dvbbs.BoardMaster
Dvbbs.Loadtemplates("post")
Set MyPost = New Dvbbs_Post
Dvbbs.Stats = MyPost.ActionName
If PostStyle <> "1" Then
Dvbbs.Nav()
Dvbbs.Head_var 1,Application(Dvbbs.CacheName&"_boardlist").documentElement.selectSingleNode("board[@boardid='"&Dvbbs.BoardID&"']/@depth").text,"",""
Else
Dvbbs.Head()
Dvbbs.ErrType=1
Response.Write ""
End If
EmotPath=Split(Dvbbs.Forum_emot,"|||")(0) 'em心情路径
If UserFlashGet = 1 Then
%>
<%
Response.Write ""
End If
Set dv_ubb=new Dvbbs_UbbCode
dv_ubb.posttype=1
MyPost.Show_Post_Body
Set MyPost = Nothing
If PostStyle <> "1" Then
Dvbbs.ActiveOnline
Dvbbs.Footer
End If
Dvbbs.PageEnd()
Class Dvbbs_Post
Public Action,ActionName,Star,Page,IsAudit,ToAction
Private ParentID,RootID,Topic,Content,char_changed,signflag,mailflag,iLayer,iOrders
Private TopTopic,IsTop,LastPost,LastPost_1,UpLoadPic_n,ihaveupfile,smsuserlist,upfileinfo
Private UserPassWord,UserPost,GroupID,UserClass,DateAndTime,DateTimeStr,Expression,MyLastPostTime,LastPostTimes,Notanony
Private LockTopic,MyLockTopic,MyIsTop,MyIsTopAll,MyTopicMode
Private CanLockTopic,CanTopTopic,CanTopTopic_a,CanEditPost,Rs,SQL,i
Private vote,votetype,votenum,votetimeout,voteid,isvote
Private GetMoneyType
Private FoundUseMagic,iMagicFace,tMagicMoney,tMagicTicket
Private FlashId
Private Sub Class_Initialize()
'管理员及该版版主允许在锁定论坛发帖
If Dvbbs.Board_Setting(0)="1" And Not (Dvbbs.Master or Dvbbs.Boardmaster) Then
Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&action=lock&boardid="&dvbbs.boardID&""
End If
If Dvbbs.IsReadonly() And Not Dvbbs.Master Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&action=readonly&boardid="&dvbbs.boardID&""
Action = Request("Action")
TotalUseTable = Dvbbs.NowUseBBS
Select Case Action
Case "new"
Action = 1
ActionName = template.Strings(0)
ToAction = "SavePost.asp?Action=snew&boardid="&Dvbbs.BoardID
If Dvbbs.GroupSetting(3)="0" Then Dvbbs.AddErrCode(70)
Case "re"
Action = 2
ActionName = template.Strings(2)
ToAction = "SavePost.asp?Action=sre&method=Topic&boardid="&Dvbbs.BoardID
'If Dvbbs.GroupSetting(5)="0" then Dvbbs.AddErrCode(71)
Case "vote"
Action = 3
ActionName = template.Strings(4)
ToAction = "SavePost.asp?Action=svote&boardid="&Dvbbs.BoardID
If Dvbbs.GroupSetting(8)="0" then Dvbbs.AddErrCode(56)
Case "edit"
Action = 4
ActionName = template.Strings(6)
ToAction = "SavePost.asp?Action=sedit&boardid="&Dvbbs.BoardID
Case Else
Action = 1
ActionName = template.Strings(0)
ToAction = "SavePost.asp?Action=snew&boardid="&Dvbbs.BoardID
If Dvbbs.GroupSetting(3)="0" Then Dvbbs.AddErrCode(70)
End Select
Star = Request("star")
If Star = "" Or Not IsNumeric(Star) Then Star = 1
Star = Clng(Star)
Page = Request("page")
If Page = "" Or Not IsNumeric(Page) Then Page = 1
Page = Clng(Page)
IsAudit = Cint(Dvbbs.Board_Setting(3))
FoundUseMagic = 0
End Sub
'Action 1=发贴、2=回帖、3=投票、4=编辑 主体部分
Public Function Show_Post_Body()
Chk_Post()
Dvbbs.ShowErr()
Dim TempStr,TempArray,TempStr1,TempStr2,PostType
signflag=1
mailflag=0
MyTopicMode=0
TempStr = template.html(0)
TempArray = Split(template.html(6),"||")
If IsAudit = 1 Then TempStr = Replace(TempStr,"{$auditinfo}",template.Strings(9))
TempStr = Replace(TempStr,"{$auditinfo}","")
If Action=1 Then TempStr = Replace(TempStr,"{$topicmode}",TopicMode(TempArray(4)))
If Dvbbs.GroupSetting(51)="1" And (Action=1 Or Action=3) Then TempStr = Replace(TempStr,"{$useraction}",TempArray(3))
'话题
TempStr1 = Split(template.Strings(8),",")
For i = 0 To Ubound(TempStr1)
TempStr2 = TempStr2 & ""
Next
TempStr = Replace(TempStr,"{$topictype}",TempStr2)
'特殊标题
If Dvbbs.GroupSetting(51)="1" Then TempStr = Replace(TempStr,"{$topicstatsinfo}",TempArray(1))
TempStr = Replace(TempStr,"{$topicstatsinfo}","")
'验证码Board_Setting(4)
If Dvbbs.Board_Setting(4)="0" Then
TempStr = Replace(TempStr,"{$getcode}","")
Else
TempArray(5)= Replace(TempArray(5),"{$codestr}",Dvbbs.GetCode&"")
TempStr = Replace(TempStr,"{$getcode}",TempArray(5))
End If
'头像
TempStr = Replace(TempStr,"{$Forum_PostFace}",Dvbbs.Forum_PostFace)
'标签判断部分
TempStr = Replace(TempStr,"{$ihtml}",Dvbbs.Board_Setting(5))
TempStr = Replace(TempStr,"{$iubb}",Dvbbs.Board_Setting(6))
TempStr = Replace(TempStr,"{$iimg}",Dvbbs.Board_Setting(7))
TempStr = Replace(TempStr,"{$iflash}",Dvbbs.Board_Setting(44))
TempStr = Replace(TempStr,"{$imidea}",Dvbbs.Board_Setting(9))
TempStr = Replace(TempStr,"{$iemot}",Dvbbs.Board_Setting(8))
TempStr = Replace(TempStr,"{$iupload}",Dvbbs.GroupSetting(7))
TempStr = Replace(TempStr,"{$bodylimited}",Dvbbs.Board_Setting(16))
TempStr = Replace(TempStr,"{$imoney}",Dvbbs.Board_Setting(10))
TempStr = Replace(TempStr,"{$ipoint}",Dvbbs.Board_Setting(11))
TempStr = Replace(TempStr,"{$iusercp}",Dvbbs.Board_Setting(12))
TempStr = Replace(TempStr,"{$ipower}",Dvbbs.Board_Setting(13))
TempStr = Replace(TempStr,"{$iarticle}",Dvbbs.Board_Setting(14))
TempStr = Replace(TempStr,"{$ireplyview}",Dvbbs.Board_Setting(15))
TempStr = Replace(TempStr,"{$iusemoney}",Dvbbs.Board_Setting(23))
TempStr = Replace(TempStr,"{$iuseusername}",Dvbbs.Board_Setting(56))
'ubb部分
PostType = 1
TempStr = Replace(TempStr,"{$PostType}",PostType)
TempStr = Replace(TempStr,"{$getubb}",Temp_UBBHTML())
'发贴心情
TempStr = Replace(TempStr,"{$Forum_emot}",Dvbbs.Forum_emot)
TempStr = Replace(TempStr,"{$Forum_sn}",GetFormID())
TempStr = Replace(TempStr,"{$star}",Star)
TempStr = Replace(TempStr,"{$page}",Page)
TempStr = Replace(TempStr,"{$actionname}",ActionName)
TempStr = Replace(TempStr,"{$toaction}",ToAction)
TempStr = Replace(TempStr,"{$topiclimited}",Dvbbs.Board_Setting(45))
TempStr = Replace(TempStr,"{$width}",Dvbbs.mainsetting(0))
TempStr = Replace(TempStr,"{$alertcolor}",Dvbbs.mainsetting(1))
TempStr = Replace(TempStr,"{$Forum_Emot}",Replace(Dvbbs.Forum_Emot,"|||","<><><>"))
TempStr = Replace(TempStr,"{$htmltool}",template.html(12))
Dvbbs_Mode = Dvbbs.GroupSetting(67)
If Dvbbs.Board_Setting(5) = "0" Then Dvbbs_Mode = 2
TempStr = Replace(TempStr,"{$Dvbbs_Mode}",Dvbbs_Mode)
If Dvbbs.GroupSetting(62)="0" Then
TempStr = Replace(TempStr,"{$AffordPost}",template.Strings(30))
Else
TempStr = Replace(TempStr,"{$AffordPost}",Dvbbs.GroupSetting(62))
End If
If Dvbbs.UserID = 0 Then
TempStr = Replace(TempStr,"{$UserToday}","0")
Else
TempStr = Replace(TempStr,"{$UserToday}",Dvbbs.UserToday(0))
End If
If Dvbbs.GroupSetting(59)<>1 Then TempStr = Replace(TempStr,"{$MoneyPostInfo}","")
If Not Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@postdata") Is Nothing Then
Content=Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@postdata").text
End if
'Action 1=发贴、2=回帖、3=投票、4=编辑 主体部分
If 1=Dvbbs.Board_Setting(67) Then
TempStr = Replace(TempStr,"{$tenpay}","'tenpay',")
Else
TempStr = Replace(TempStr,"{$tenpay}","")
End If
Select Case Action
Case 1
TempStr = Replace(TempStr,"{$rehiddeninput}","")
TempStr = Replace(TempStr,"{$reinfo1}","")
TempStr = Replace(TempStr,"{$edithiddeninput}","")
TempStr = Replace(TempStr,"{$voteinfo}","")
TempStr = Replace(TempStr,"{$useraction}","")
TempStr = Replace(TempStr,"{$retopicloop}","")
If Dvbbs.UserID = 0 Then
TempStr = Replace(TempStr,"{$membername}","客人"" readonly=""readonly")
TempStr = Replace(TempStr,"{$memberword}","**********"" readonly=""readonly")
Else
TempStr = Replace(TempStr,"{$membername}",Dvbbs.MemberName)
TempStr = Replace(TempStr,"{$memberword}","**********")
End If
TempStr = Replace(TempStr,"{$content}",Server.htmlencode(Content))
TempStr = Replace(TempStr,"{$retitle}","")
TempStr = Replace(TempStr,"{$topic}","")
TempStr = Replace(TempStr,"{$TopModeSelect}",MyTopicMode)
TempStr = Replace(TempStr,"{$totalusetable}",TotalUseTable)
TempStr = Replace(TempStr,"{$MoneyPostInfo}",TempArray(6))
If Dvbbs.Forum_Setting(98)="1" And Dvbbs.Board_Setting(24)="1" And Dvbbs.GroupSetting(69)="1" Then
TempStr = Replace(TempStr,"{$tools_magicface}",template.html(14))
TempStr = Replace(TempStr,"{$MagicIframe}",TempArray(8))
Set Rs = Dvbbs.Plus_Execute("Select Top 1 MagicFace_s,tMoney,tTicket From Dv_Plus_Tools_MagicFace Order By ID")
If Not (Rs.Eof And Rs.Bof) Then
TempStr = Replace(TempStr,"{$firstmagicface}",Rs(0))
TempStr = Replace(TempStr,"{$magicmoney}",Rs(1))
TempStr = Replace(TempStr,"{$magicticket}",Rs(2))
Else
TempStr = Replace(TempStr,"{$firstmagicface}",0)
TempStr = Replace(TempStr,"{$magicmoney}",0)
TempStr = Replace(TempStr,"{$magicticket}",0)
End If
Rs.Close
Set Rs=Nothing
TempStr = Replace(TempStr,"{$isselect}","")
End If
Case 2
TempStr = Replace(TempStr,"{$voteinfo}","")
TempStr = Replace(TempStr,"{$edithiddeninput}","")
TempStr = Replace(TempStr,"{$topic}","")
Dim retopicloop
retopicloop = Get_Re_TopicInfo
retopicloop=Replace(retopicloop,"$","$")
If Dvbbs.UserID = 0 Then
TempStr = Replace(TempStr,"{$membername}","客人"" readonly=""readonly")
TempStr = Replace(TempStr,"{$memberword}","**********"" readonly=""readonly")
Else
TempStr = Replace(TempStr,"{$membername}",Dvbbs.MemberName)
TempStr = Replace(TempStr,"{$memberword}","**********")
End If
TempStr = Replace(TempStr,"{$useraction}","")
TempStr = Replace(TempStr,"{$retitle}",Topic)
TempStr = Replace(TempStr,"{$rehiddeninput}",Re_HiddenInput())
TempStr = Replace(TempStr,"{$reinfo1}",TempArray(0))
TempStr = Replace(TempStr,"{$topicmode}","")
TempStr = Replace(TempStr,"{$retopicloop}",retopicloop)
TempStr = Replace(TempStr,"{$TopModeSelect}",MyTopicMode)
TempStr = Replace(TempStr,"{$totalusetable}",TotalUseTable)
TempStr = Replace(TempStr,"{$content}",Content)
TempStr = Replace(TempStr,"$","$")
If GetMoneyType=2 Then
TempStr = Replace(TempStr,"{$MoneyPostInfo}",TempArray(7))
Else
TempStr = Replace(TempStr,"{$MoneyPostInfo}","")
End If
Case 3
TempStr1 = template.html(1)
TempStr1 = Replace(TempStr1,"{$votelimited}",Dvbbs.Board_Setting(32))
TempStr1 = Replace(TempStr1,"{$posttimesel}",TempArray(2))
If Dvbbs.UserID = 0 Then
TempStr = Replace(TempStr,"{$membername}","客人"" readonly=""readonly")
TempStr = Replace(TempStr,"{$memberword}","**********"" readonly=""readonly")
Else
TempStr = Replace(TempStr,"{$membername}",Dvbbs.MemberName)
TempStr = Replace(TempStr,"{$memberword}","**********")
End If
TempStr = Replace(TempStr,"{$voteinfo}",TempStr1)
TempStr = Replace(TempStr,"{$topicmode}",TopicMode(TempArray(4)))
TempStr = Replace(TempStr,"{$rehiddeninput}","")
TempStr = Replace(TempStr,"{$reinfo1}","")
TempStr = Replace(TempStr,"{$edithiddeninput}","")
TempStr = Replace(TempStr,"{$TopModeSelect}",MyTopicMode)
TempStr = Replace(TempStr,"{$useraction}","")
TempStr = Replace(TempStr,"{$retopicloop}","")
TempStr = Replace(TempStr,"{$totalusetable}",TotalUseTable)
TempStr = Replace(TempStr,"{$content}",Server.htmlencode(Content))
TempStr = Replace(TempStr,"{$retitle}","")
TempStr = Replace(TempStr,"{$topic}","")
TempStr = Replace(TempStr,"{$MoneyPostInfo}",TempArray(6))
Case 4
Get_Edit_TopicInfo()
TempStr = Replace(TempStr,"{$membername}",Dvbbs.MemberName)
TempStr = Replace(TempStr,"{$memberword}",Dvbbs.memberword)
TempStr = Replace(TempStr,"{$rehiddeninput}","")
TempStr = Replace(TempStr,"{$reinfo1}","")
TempStr = Replace(TempStr,"{$voteinfo}","")
TempStr = Replace(TempStr,"{$retopicloop}","")
TempStr = Replace(TempStr,"{$useraction}","")
TempStr = Replace(TempStr,"{$edithiddeninput}",Edit_HiddenInput())
TempStr = Replace(TempStr,"{$topicmode}","")
TempStr = Replace(TempStr,"{$totalusetable}",TotalUseTable)
TempStr = Replace(TempStr,"{$TopModeSelect}",MyTopicMode)
TempStr = Replace(TempStr,"{$topic}",Topic)
TempStr = Replace(TempStr,"{$content}",Content)
TempStr = Replace(TempStr,"{$MoneyPostInfo}","")
If Dvbbs.Forum_Setting(98)="1" And Dvbbs.Board_Setting(24)="1" And Dvbbs.GroupSetting(69)="1" Then
TempStr = Replace(TempStr,"{$tools_magicface}",template.html(14))
TempStr = Replace(TempStr,"{$MagicIframe}",TempArray(8))
If FoundUseMagic > 0 Then
TempStr = Replace(TempStr,"{$firstmagicface}",FoundUseMagic)
TempStr = Replace(TempStr,"{$magicmoney}",tMagicMoney)
TempStr = Replace(TempStr,"{$magicticket}",tMagicTicket)
TempStr = Replace(TempStr,"{$isselect}","checked")
Else
Set Rs = Dvbbs.Plus_Execute("Select Top 1 MagicFace_s,tMoney,tTicket From Dv_Plus_Tools_MagicFace Order By ID")
If Not (Rs.Eof And Rs.Bof) Then
TempStr = Replace(TempStr,"{$firstmagicface}",Rs(0))
TempStr = Replace(TempStr,"{$magicmoney}",Rs(1))
TempStr = Replace(TempStr,"{$magicticket}",Rs(2))
Else
TempStr = Replace(TempStr,"{$firstmagicface}",0)
TempStr = Replace(TempStr,"{$magicmoney}",0)
TempStr = Replace(TempStr,"{$magicticket}",0)
End If
Rs.Close
Set Rs=Nothing
TempStr = Replace(TempStr,"{$isselect}","")
End If
End If
End Select
If Dvbbs.UserID=0 Then
TempStr = Replace(TempStr,"{$checksign0}","checked=""checked""")
TempStr = Replace(TempStr,"{$checksign1}","disabled=""disabled""")
TempStr = Replace(TempStr,"{$checksign2}","disabled=""disabled""")
TempStr = Replace(TempStr,"{$checkbox2}","checked=""checked""")
TempStr = Replace(TempStr,"{$checkbox3}","disabled=""disabled""")
TempStr = Replace(TempStr,"{$checkbox4}","disabled=""disabled""")
TempStr = Replace(TempStr,"{$checkbox5}","disabled=""disabled""")
Else
If Dvbbs.Board_Setting(68)="0" or Notanony Then
TempStr = Replace(TempStr,"{$checksign2}","disabled=""disabled""")
If signflag=2 Then signflag=1
End If
TempStr = Replace(TempStr,"{$checksign"&signflag&"}","checked=""checked""")
TempStr = Replace(TempStr,"{$checksign0}","")
TempStr = Replace(TempStr,"{$checksign1}","")
TempStr = Replace(TempStr,"{$checksign2}","")
TempStr = Replace(TempStr,"{$checkbox"&mailflag+2&"}","checked=""checked""")
TempStr = Replace(TempStr,"{$checkbox2}","")
TempStr = Replace(TempStr,"{$checkbox3}","")
TempStr = Replace(TempStr,"{$checkbox4}","")
TempStr = Replace(TempStr,"{$checkbox5}","")
End If
'上传
If (Dvbbs.GroupSetting(7)="1" Or Dvbbs.GroupSetting(7)="2") and Dvbbs.Forum_setting(43)<>999 Then TempStr = Replace(TempStr,"{$uploadinfo}",Temp_FileUpload)
TempStr = Replace(TempStr,"{$uploadinfo}","")
'发帖心情
TempStr = Replace(TempStr,"{$SelectFace}",Expression)
TempStr = Replace(TempStr,"{$boardid}",Dvbbs.BoardID)
TempStr = Replace(TempStr,"{$tools_magicface}","")
TempStr = Replace(TempStr,"{$MagicIframe}","")
If Request("stype")="1" Then
TempStr = Replace(TempStr,"{$isalipay}",template.html(15))
If Dvbbs.UserID > 0 Then
TempStr = Replace(TempStr,"{$paytomail}",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@useremail").text)
Else
TempStr = Replace(TempStr,"{$paytomail}","")
End If
TempStr = Replace(TempStr,"{$picurl}",Dvbbs.Forum_PicUrl)
Else
TempStr = Replace(TempStr,"{$isalipay}","")
End If
TempStr = Replace(TempStr,"{$poststyle}",PostStyle)
'hxyman 新加一些标签
TempStr = Replace(TempStr,"{$maxtitlelength}",Dvbbs.Board_Setting(45))
If Action = 1 Or Action = 3 Then
TempStr = Replace(TempStr,"{$ispostnew}",1)
Else
TempStr = Replace(TempStr,"{$ispostnew}",0)
End If
TempStr = Replace(TempStr,"{$maxconlength}",Dvbbs.Board_Setting(16))
Response.Write TempStr
Response.Write ""
Response.Cookies("Dvbbs")=""
End Function
'专题下拉模式读取
Public Function TopicMode(SelectMode)
If Cint(Dvbbs.GroupSetting(65))=0 Then Exit Function
If Replace(Dvbbs.Board_Setting(48),"$$","")="" Then Exit Function
Dim BoardTopic,iii
BoardTopic=Split(Dvbbs.Board_Setting(48),"$$")
For iii=0 to Ubound(BoardTopic)-1
TopicMode=TopicMode+""
Next
TopicMode=Replace(SelectMode,"{$TopicMode}",TopicMode)
'加入必选专题判断隐含菜单。2005-3-11 Dv.Yz
TopicMode = TopicMode & ""
End Function
'通用判断
Public Function Chk_Post()
If Dvbbs.Board_Setting(43)="1" Then Dvbbs.AddErrCode(72) '本论坛作为分类论坛不允许发贴
If Dvbbs.Board_Setting(1)="1" and Dvbbs.GroupSetting(37)="0" Then Dvbbs.AddErrCode(26) '是否隐藏论坛
If Dvbbs.UserID>0 Then
If Clng(Dvbbs.GroupSetting(52))>0 And DateDiff("s",Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@joindate").text,Now)"&Replace(template.Strings(21),"{$timelimited}",Dvbbs.GroupSetting(52))&"&action=OtherErr"
If Dvbbs.GroupSetting(62)<>"0" And Not Action = 4 Then
If Clng(Dvbbs.GroupSetting(62))<=Clng(Dvbbs.UserToday(0)) Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=
"&Replace(template.Strings(27),"{$topiclimited}",Dvbbs.GroupSetting(62))&"&action=OtherErr"
End If
End If
'可以发布新主题
If Dvbbs.GroupSetting(3)="0" And (Action = 1 Or Action = 3) Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=
"&template.Strings(28)&"&action=OtherErr"
'可以回复其他人的主题
'If Dvbbs.GroupSetting(5)="0" And (Action = 2) Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=
"&template.Strings(29)&"&action=OtherErr"
End Function
'得到回复或引用帖子的判断和相关信息
Public Function Get_Re_TopicInfo()
Dim lockuser,postip
postip=""
Get_M_Request()
ReplyID = Request("replyid")
If ReplyID = "" Or Not IsNumeric(ReplyID) Then ReplyID = AnnounceID
Set Rs=Dvbbs.Execute("select PostTable,GetMoneyType From dv_topic where BoardID="&Dvbbs.BoardID&" And TopicID="&AnnounceID)
If Not (Rs.EOF And Rs.BOF) Then
TotalUseTable=rs(0)
GetMoneyType=rs(1)
Else
Dvbbs.AddErrCode(48)
End If
Set Rs=Nothing
Dvbbs.ShowErr()
If ReplyID = AnnounceID Then
Set Rs=Dvbbs.Execute("select top 1 AnnounceID from "&TotalUseTable&" where RootID="&AnnounceID&" order by AnnounceID")
If Not(Rs.BOF And Rs.EOF) Then
ReplyID=rs(0)
Else
Dvbbs.AddErrCode(48)
End If
Set Rs=Nothing
Dvbbs.ShowErr()
End If
Set Rs=Dvbbs.Execute("select b.body,b.topic,b.locktopic,b.username,b.dateandtime,b.isbest,u.lockuser,u.UserGroupID,b.UbbList,b.PostBuyUser,b.GetMoneyType,b.signflag,b.ip from "&TotalUseTable&" b inner join [dv_user] u on b.postuserid=u.userid Where b.AnnounceID="&ReplyID)
Dim isGuest
If Rs.EOF And Rs.BOF Then
Set Rs=Dvbbs.Execute("select body,topic,locktopic,username,dateandtime,isbest,UbbList,PostBuyUser,GetMoneyType,signflag,ip from "&TotalUseTable&" Where AnnounceID="&ReplyID&" and postuserid=0")
isGuest="true"
End If
If Rs.EOF And Rs.BOF Then
Dvbbs.AddErrCode(48)
Else
If isGuest="true" Then
postip="("&Split(rs("ip"),".")(0)&"."&Split(rs("ip"),".")(1)&".*.*)"
Else
lockuser=rs("lockuser")
End If
If lockuser=1 Or lockuser=2 Then
Content=""
ElseIf Rs("locktopic")=2 Or Rs("locktopic")=3 Then
Content=""
ElseIf (rs("isbest")=1 and Dvbbs.GroupSetting(41)="0")Then
Content=""
Else
Content=rs("body")
End If
PostBuyUser = Rs("PostBuyUser")
If Rs("GetMoneyType")=3 and Instr(PostBuyUser,"|||$PayMoney|||") Then
If Instr(PostBuyUser,"|||"&Dvbbs.MemberName&"|||")=0 Then
Content=""
End If
End If
Topic=Rs("topic")
UserName=rs("username")
DateAndTime=rs("dateandtime")
UbbLists=Rs("UbbList")
If UserName = Dvbbs.membername Then
If Cint(Dvbbs.GroupSetting(4))=0 Then Dvbbs.AddErrCode(73)
Else
If Dvbbs.GroupSetting(5)="0" Then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=
"&template.Strings(29)&"&action=OtherErr"
If Cint(Dvbbs.GroupSetting(2))=0 Then Dvbbs.AddErrCode(31)
End If
If Rs("signflag")=2 And Dvbbs.Board_Setting(68)="1" Then
UserName="匿名用户"
postip="("&Split(rs("ip"),".")(0)&Split(rs("ip"),".")(1)&")"
End If
UserName=UserName&postip
End If
Set Rs=Nothing
Dvbbs.ShowErr()
If Topic <> "" Then
Topic = Replace(template.Strings(31),"{$UserName}",UserName) & Topic
Else
Topic = Replace(template.Strings(31),"{$UserName}",UserName) & Content
End If
Topic=cutStr(Topic,50)
Topic=Replace(Replace(Replace(Replace(Topic,"\","\\"),"'","\'"),VbCrLf,"\n"),chr(13),"")
If Request("reply")="true" and Content<>"" Then
Content = reubbcode(Content)
Content = Ubb2Html(Content)
If Dvbbs_Mode=2 Then
Content = "[quote][B]以下是引用[I]"&UserName&"[/I]在"&DateAndTime&"的发言:[/B][BR]"& Content & "[/QUOTE]"
Else
Content = "
"
End If
Content = Server.HtmlEncode(Content)
Else
Content = ""
End If
If GetMoneyType<>3 Then '购买金币贴不显示回复
'主题跟贴部分信息
Dim PostUserGroup,TempStr1,TempStr2,TempStr3
TempStr1 = Replace(template.html(7),"{$width}",Dvbbs.mainsetting(0)) '
Set Rs=Dvbbs.Execute("Select top 10 b.UserName,b.Topic,b.dateandtime,b.body,b.AnnounceID,b.isbest,u.lockuser,u.UserGroupID,b.postbuyuser,b.ubblist,b.IsAudit,b.locktopic,b.signflag,b.ip,b.postuserid from "&TotalUseTable&" b left outer join [dv_user] u on b.postuserid=u.userid where b.boardid="&Dvbbs.boardid&" and b.RootID="&AnnounceID&" order by b.AnnounceID desc")
Do While Not Rs.EOF
If Rs("postuserid")=0 Then
postip="("&Split(rs("ip"),".")(0)&"."&Split(rs("ip"),".")(1)&".*.*)"
lockuser=0
PostUserGroup=7
Else
postip=""
lockuser=rs("lockuser")
PostUserGroup=rs("UserGroupID")
End If
TempStr2 = TempStr1
If Rs("signflag")=2 Then
If Dvbbs.Boardmaster Then
UserName = Rs("UserName")&" (匿名)"
Else
UserName = "匿名用户"
End If
Else
UserName = Rs("UserName")
End If
postbuyuser=rs("postbuyuser")
UbbLists=Rs("UbbList")
If bgcolor="tablebody1" Then
bgcolor="tablebody2"
abgcolor="tablebody1"
Else
bgcolor="tablebody1"
abgcolor="tablebody2"
End If
UserName=UserName&postip
TempStr2 = Replace(TempStr2,"{$tablebody}",bgcolor)
TempStr2 = Replace(TempStr2,"{$username}",Dvbbs.HtmlEncode(UserName))
TempStr2 = Replace(TempStr2,"{$dateandtime}",Rs("DateAndTime"))
If lockuser=2 or Rs("locktopic")=2 Then
TempStr2 = Replace(TempStr2,"{$body}",template.Strings(10))
ElseIf lockuser=1 Then
TempStr2 = Replace(TempStr2,"{$body}",template.Strings(11))
ElseIf Rs("isbest")=1 and Dvbbs.GroupSetting(41)="0" Then
TempStr2 = Replace(TempStr2,"{$body}",template.Strings(12))
Else
If InStr(Ubblists,",39,") > 0 Then
TempStr2 = Replace(TempStr2,"{$body}",dv_ubb.Dv_UbbCode(Rs("body"),PostUserGroup,1,0))
Else
TempStr2 = Replace(TempStr2,"{$body}",dv_ubb.Dv_UbbCode(Rs("body"),PostUserGroup,1,1))
End If
End If
TempStr2 = Replace(TempStr2,"{$topic}",Dvbbs.HtmlEncode(Rs("Topic")))
TempStr3 = TempStr3 & TempStr2
Rs.MoveNext
Loop
Rs.close
Set Rs=Nothing
End If
Get_Re_TopicInfo = TempStr3
End Function
'取得编辑贴页面信息
Public Function Get_Edit_TopicInfo()
Get_M_Request()
ReplyID = Request("replyid")
If ReplyID = "" Or Not IsNumeric(ReplyID) Then Dvbbs.AddErrCode(30)
Dvbbs.ShowErr()
ReplyID = Clng(ReplyID)
Set Rs=Dvbbs.Execute("select PostTable,TopicMode,Expression from dv_topic where TopicID="&AnnounceID)
If Rs.Eof And Rs.Bof Then
Dvbbs.AddErrCode(48)
Else
TotalUseTable = Rs(0)
MyTopicMode = Rs(1)
iMagicFace = Split(Rs(2),"|")
If Ubound(iMagicFace) = 1 Then FoundUseMagic = iMagicFace(0)
Rem 旧帖的主题模式值可能为空,则需要加入判断。2004-5-6 Dvbbs.YangZheng
If Isnull(MyTopicMode) Or MyTopicMode = "" Then MyTopicMode = 0
End If
Rs.close
If FoundUseMagic > 0 Then
Set Rs = Dvbbs.Plus_Execute("Select tMoney,tTicket From Dv_Plus_Tools_MagicFace Where MagicFace_s = " & FoundUseMagic)
If Rs.Eof And Rs.Bof Then
FoundUseMagic = 0
Else
tMagicMoney = Rs(0)
tMagicTicket = Rs(1)
End If
Rs.Close
End If
Get_Edit_PermissionInfo()
If Content<>"" then
Dim re
Set re=new RegExp
re.IgnoreCase =true
re.Global=True
re.Pattern=vbNewLine&"
(.|\n)*<\/font><\/div>"
Content=re.Replace(Content,"")
re.Pattern="\[align=right\]\[color=#000066\](.|\n)*\[\/color\]\[\/align\]"
Content=re.Replace(Content,"")
're.Pattern="\[i\](.*)\[\/i\]"
'Content=re.Replace(Content,"$1")
set re=Nothing
Content=Ubb2Html(Content)
Content=Server.htmlencode(Content)
End If
End Function
'判断用户是否有编辑权限且提取相关信息
Public Function Get_Edit_PermissionInfo()
Dim old_user
If Action = 4 Then
Set Rs=Dvbbs.Execute("select b.username,b.topic,b.body,b.dateandtime,u.UserGroupID,b.signflag,b.emailflag,b.UbbList,b.Expression,b.UseTools,b.FlashId from "&TotalUseTable&" b left outer join [dv_user] u on b.postuserid=u.userid where b.RootID="&AnnounceID&" and b.AnnounceID="&ReplyID)
Else
Set Rs=Dvbbs.Execute("select b.username,b.topic,b.body,b.dateandtime,u.UserGroupID,b.signflag,b.emailflag,b.UbbList,b.Expression,b.UseTools,b.FlashId from "&TotalUseTable&" b left outer join [dv_user] u on b.postuserid=u.userid where b.RootID="&RootID&" and b.AnnounceID="&AnnounceID)
End If
If Rs.Eof And Rs.Bof Then
Dvbbs.AddErrCode(48)
Else
Notanony=InStr(Rs("UseTools"),"17")
Expression=Rs("Expression")
FlashId = Rs("FlashId")
If Action = 4 Then
signflag=Rs("signflag")
mailflag=Rs("emailflag")
Topic=rs("topic")
If Topic<>"" Then Topic = Server.HtmlEncode(Topic)
topic=Replace(topic,"amp;","")
Content=rs("body")
old_user=rs("username")
UbbLists=rs("UbbList")
Else
If Clng(Dvbbs.forum_setting(50))>0 then
If Datediff("s",rs("dateandtime"),Now())>Clng(Dvbbs.forum_setting(50))*60 then
Content = Content+chr(13)+chr(10)+char_changed+chr(13)
Else
Content = Content
End If
Else
Content = Content+chr(13)+chr(10)+char_changed+chr(13)
End If
End If
If Clng(Dvbbs.forum_setting(51))>0 and not (Dvbbs.master or Dvbbs.boardmaster or Dvbbs.superboardmaster) Then
If DateDiff("s",rs("dateandtime"),Now())>Clng(Dvbbs.forum_setting(51))*60 then Response.redirect "showerr.asp?ShowErrType="&Dvbbs.ErrType&"&ErrCodes=
"&Replace(Replace(template.Strings(22),"{$posttime}",Datediff("s",rs("dateandtime"),Now())/60),"{$etlimited}",Dvbbs.forum_setting(51))&"&action=OtherErr"
End If
If Rs("username")=Dvbbs.membername Then
If Dvbbs.GroupSetting(10)="0" then
Dvbbs.AddErrCode(74)
CanEditPost=False
Else
CanEditPost=True
End If
Else
If (Dvbbs.master or Dvbbs.superboardmaster or Dvbbs.boardmaster) and Dvbbs.GroupSetting(23)="1" then
CanEditPost=True
Else
CanEditPost=False
End If
If Cint(Dvbbs.UserGroupID) > 3 And Dvbbs.GroupSetting(23)="1" Then CanEditPost=true
If Dvbbs.GroupSetting(23)="1" and Dvbbs.founduserPer Then
CanEditPost=True
ElseIf Dvbbs.GroupSetting(23)="0" And Dvbbs.founduserPer Then
CanEditPost=False
End If
If Cint(Dvbbs.UserGroupID) < 4 And Cint(Dvbbs.UserGroupID) = rs("UserGroupID") Then
Dvbbs.AddErrCode(75)
ElseIf Cint(Dvbbs.UserGroupID) < 4 and Cint(Dvbbs.UserGroupID) > rs("UserGroupID") Then
Dvbbs.AddErrCode(76)
End If
If Not CanEditPost Then Dvbbs.AddErrCode(77)
End If
End If
Set Rs=Nothing
Dvbbs.ShowErr()
If Action = 4 Then Dvbbs.MemberName=old_user
End Function
'返回判断和参数
Public Function Get_M_Request()
AnnounceID = Request("ID")
If AnnounceID = "" Or Not IsNumeric(AnnounceID) Then Dvbbs.AddErrCode(30)
Dvbbs.ShowErr()
AnnounceID = Clng(AnnounceID)
End Function
'只读,获得回复隐含Input模板
Public Property Get Re_HiddenInput()
Re_HiddenInput = template.html(4)
Re_HiddenInput = Replace(Re_HiddenInput,"{$announceid}",AnnounceID)
Re_HiddenInput = Replace(Re_HiddenInput,"{$replyid}",ReplyID)
End Property
'只读,获得编辑隐含Input模板
Public Property Get Edit_HiddenInput()
Edit_HiddenInput = template.html(5)
Edit_HiddenInput = Replace(Edit_HiddenInput,"{$announceid}",AnnounceID)
Edit_HiddenInput = Replace(Edit_HiddenInput,"{$replyid}",ReplyID)
End Property
'只读,获得上传表单模板
Public Property Get Temp_FileUpload()
Dim TempArray,TempStr1
Temp_FileUpload = template.html(2)
Rem Flash Upload begin
Dim Temp_FileUploadTotal, Qcomic_setting
Temp_FileUploadTotal = Split(Temp_FileUpload,"||||")
If Dvbbs.qcomic_plus Then
Qcomic_setting = Split(Dvbbs.qcomic_plus_setting(), "||||")
Temp_FileUpload = Temp_FileUploadTotal(0) &+ Temp_FileUploadTotal(1)
Dim code
If Action = 4 And Len(FlashId)>5 Then
code = "sid="& Qcomic_setting(1) &"&spassword="& Qcomic_setting(2) & "&phid="& FlashId
code = Server.UrlEncode(AuthCode(code, "ENCODE", Qcomic_setting(3)))
code = code & "&phid="& (FlashId)
Else
code = "spassword="& Qcomic_setting(2)
code = Server.UrlEncode(AuthCode(code, "ENCODE", Qcomic_setting(3)))
FlashId = 0
End If
Temp_FileUpload = Replace(Temp_FileUpload,"{$sid}",Qcomic_setting(1))
Temp_FileUpload = Replace(Temp_FileUpload,"{$code}",code)
Temp_FileUpload = Replace(Temp_FileUpload,"{$phid}",FlashId)
Temp_FileUpload = Replace(Temp_FileUpload,"{$iwidth}",Qcomic_setting(6))
Temp_FileUpload = Replace(Temp_FileUpload,"{$iheight}",Qcomic_setting(7))
Else
Temp_FileUpload = Temp_FileUploadTotal(0)
End If
Rem Flash Upload End
TempArray = Split(Dvbbs.Board_Setting(19),"|")
For i = 0 To Ubound(TempArray)
TempStr1 = TempStr1 & "
"
Next
Temp_FileUpload = Replace(Temp_FileUpload,"{$uploadlist}",TempStr1)
End Property
'只读,获得UBB模板
Public Property Get Temp_UBB()
Dim TempArray
Temp_UBB = template.html(3)
TempArray = Split(template.html(9),"|")
For i = 1 To Ubound(TempArray)
Temp_UBB = Replace(Temp_UBB,"{$ubb"&i&"}",TempArray(0) & TempArray(i))
Next
End Property
'只读,获得UBB——HTML编辑器模板
Public Property Get Temp_UBBHTML()
Dim TempArray
Temp_UBBHTML = template.html(11)
'DV_Custom_3080D20080114--start Cc视频插件上传按钮标签替换 -------------
Dim Xmldoc,Forum_api,Ccvideo_api
Set Forum_api = Server.Createobject("Msxml2.Freethreadeddomdocument"& Msxmlversion)
If IsNull(Dvbbs.Forum_apis) Or IsEmpty(Dvbbs.Forum_apis) Then
Temp_UBBHTML=Replace(Temp_UBBHTML,"{$Plus_CcVideo}","")
Else
If Not Forum_api.Loadxml(Dvbbs.Forum_apis) Then
Temp_UBBHTML=Replace(Temp_UBBHTML,"{$Plus_CcVideo}","")
Else
Set Ccvideo_api = Forum_api.Documentelement.Selectsinglenode("ccvideo")
If Ccvideo_api Is Nothing Then
Temp_UBBHTML=Replace(Temp_UBBHTML,"{$Plus_CcVideo}","")
Else
Dim testcc
testcc=Ccvideo_api.Getattribute("ccvideoid")
if Instr(Ccvideo_api.Getattribute("boardlist"),","&Dvbbs.BoardID&",")>0 Then
Temp_UBBHTML=Replace(Temp_UBBHTML,"{$Plus_CcVideo}","")
Temp_UBBHTML=Replace(Temp_UBBHTML,"{$Plus_CcUserid}",Ccvideo_api.Getattribute("ccvideoid"))
Temp_UBBHTML=Replace(Temp_UBBHTML,"{$Plus_CcPlugin}",Ccvideo_api.Getattribute("ccvideobtn"))
Temp_UBBHTML=Replace(Temp_UBBHTML,"{$Plus_CcType}",Ccvideo_api.Getattribute("ccvideotype"))
Else
Temp_UBBHTML=Replace(Temp_UBBHTML,"{$Plus_CcVideo}","")
End If
End If
End If
End If
Set Forum_api = Nothing
Set Ccvideo_api = Nothing
'DV_Custom_3080D20080114--END Cc视频插件上传按钮标签替换 -------------
End Property
End Class
'截取指定字符
Function cutStr(str,strlen)
'去掉所有HTML标记
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="<(.[^>]*)>"
str=re.Replace(str,"")
set re=Nothing
Dim l,t,c,i
l=Len(str)
t=0
For i=1 to l
c=Abs(Asc(Mid(str,i,1)))
If c>255 Then
t=t+2
Else
t=t+1
End If
If t>=strlen Then
cutStr=left(str,i)&"..."
Exit For
Else
cutStr=str
End If
Next
cutStr=Replace(cutStr,chr(10),"")
cutStr=Replace(cutStr,chr(13),"")
End Function
'过滤不必要UBB
Function reUBBCode(strContent)
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="<\/div>"
strContent=re.Replace(strContent,Chr(2))
re.Pattern="
([^\x01\x02]*)\x02"
Do While re.Test(strContent)
strContent=re.Replace(strContent,"[quote]$1[/quote]")
Loop
re.Pattern="\x01[^\x02]*\x02"
strContent=re.Replace(strContent,"")
re.Pattern="\[quote\]((?:.|\n)*?)\[\/quote\]"
Do While re.Test(strContent)
strContent=re.Replace(strContent,"
以下是引用(?:.|\n)*<\/div>"
Str=re.Replace(Str,"")
re.Pattern="\[quote\]以下是引用(?:.|\n)*\[\/quote\]"
Str=re.Replace(Str,"")
re.Pattern="\[quote\]\[b\]以下是引用(?:.|\n)*\[\/quote\]"
Str=re.Replace(Str,"")
End If
Set Re=Nothing
Ubb2Html = Str
Else
Ubb2Html = ""
End If
End Function
Function GetFormID()
Dim i,sessionid
sessionid = Session.SessionID
For i=1 to Len(sessionid)
GetFormID=GetFormID&Chr(Mid(sessionid,i,1)+97)
Next
End Function
%>