%
Dvbbs.Loadtemplates("show")
Dvbbs.stats=template.Strings(0)
Dvbbs.Nav
Dim BoardlistNode
Set BoardlistNode = Application(Dvbbs.CacheName&"_boardlist")
If Dvbbs.BoardID=0 then
Dvbbs.Head_var 2,0,"",""
Else
Dvbbs.Head_var 1,BoardlistNode.documentElement.selectSingleNode("board[@boardid='"&Dvbbs.BoardID&"']/@depth").text,"",""
End If
Dvbbs.ShowErr()
Dim TopStr
Main()
Dvbbs.ActiveOnline()
Dvbbs.NewPassword()
Dvbbs.Footer()
Sub Main()
Dim TopicCount
Dim Pcount,endpage,star
Dim toback,tonext,uploadpath
Dim rsearch
Dim maxpage
Dim Tab
Dim Rs,SQl,i
tab=Request.cookies("tab")
If Dvbbs.Forum_Setting(76)="" Or Dvbbs.Forum_Setting(76)="0" Then Dvbbs.Forum_Setting(76)="UploadFile/"
If right(Dvbbs.Forum_Setting(76),1)<>"/" Then Dvbbs.Forum_Setting(76)=Dvbbs.Forum_Setting(76)&"/"
uploadpath=Dvbbs.Forum_Setting(76)
Dim bbsurl
Dim TempStr
bbsurl=Dvbbs.Get_ScriptNameUrl()
If Request("star")="" or Not IsNumeric(Request("star")) then
star=1
Else
star=clng(Request("star"))
toback=star-1
tonext=star+1
End If
If tab="" or not isnumeric(tab) Then tab=4
If Request("tab")="" or not isnumeric(Request("tab")) or Request("tab")="0" Then
Tab=tab
Else
Tab=clng(Request("tab"))
Response.Cookies("tab").Expires=Date+365
response.cookies("tab")=tab
End If
maxpage=clng(tab*3) '每页显示文件的个数
If Request("username")="" or Request("filetype")="" or Request("boardid")="" then rsearch=""
If Request("boardid")<>"" and isnumeric(Request("boardid")) Then
If clng(Request("boardid"))<>0 Then rsearch=rsearch&"and F_BoardID="&clng(Request("boardid"))&" "
End If
If Request("filetype")<>"" And IsNumeric(Request("filetype")) Then rsearch=rsearch&"and F_Type="&cint(Request("filetype"))&" "
If Request("username")<>"" Then rsearch=rsearch&"and F_Username='"&Dvbbs.checkStr(Request("username"))&"'"
If Cint(Dvbbs.GroupSetting(49))=0 then Dvbbs.AddErrCode(54)
Dvbbs.ShowErr()
TempStr = Template.html(0)
TempStr = Replace(TempStr,"{$stats}",Dvbbs.Stats)
Dim filetype,username
Dim TempStr1,TempStr2,TempStr3,TempArray,TempArray1,FileArray
TempArray = Split(template.html(4),"||")
TempArray1 = Split(template.html(6),"||")
FileArray = Split(Dvbbs.lanstr(5),"||")
TempStr1 = template.html(1)
filetype=Request("filetype")
username=Request("username")
'If filetype="" or Not IsNumeric(filetype) Then filetype = 0
'取出总数
'定义变量
Dim t
Dim F_ID,F_AnnounceID,F_BoardID,F_Filename,F_FileType,F_Type,F_Readme,F_DownNum,F_ViewNum,F_Flag
Dim F_typename,showfile,golist
Dim Edit
Edit=False
t=0
Dim LockinBid
LockinBid = "0,444,777"
If Not Dvbbs.master or Dvbbs.GroupSetting(37)="0" Then
If HiddenBID<>"" Then
LockinBid = LockinBid & "," & HiddenBID
End If
End If
Set Rs=Dvbbs.Execute("select count(F_id) from DV_Upfile where not F_BoardID in("&LockinBid&") and F_Flag<>4 "&rsearch&" ")
TopicCount=rs(0)
Sql = "select F_ID,F_BoardID,F_AnnounceID,F_Filename,F_Readme,F_Type,F_Flag,F_Viewname,F_Username,F_DownNum,F_ViewNum,F_FileType from [DV_Upfile] where not F_BoardID in("&LockinBid&") and F_Flag<>4 "&rsearch&" order by F_ID desc "
Set rs=Dvbbs.Execute(sql)
If Not (rs.eof and rs.bof) Then
'TopicCount = Rs.RecordCount
If TopicCount Mod Cint(maxpage)=0 Then
Pcount= TopicCount \ Cint(maxpage)
Else
Pcount= TopicCount \ Cint(maxpage)+1
End If
RS.MoveFirst
If star > Pcount Then star = Pcount
If star < 1 Then star = 1
If star >1 Then
RS.Move (star-1) * maxpage
End If
SQL=Rs.GetRows(maxpage)
Else
TempStr = Replace(TempStr,"{$showloop}",template.html(3))
End If
Rs.Close
Set Rs=Nothing
If IsArray(Sql) Then
For i=0 To Ubound(SQL,2)
TempStr2 = TempStr1
F_AnnounceID=Sql(2,i)
F_Type=Sql(5,i)
F_Readme=Sql(4,i)
F_Flag=Sql(6,i)
F_Filename=Sql(7,i)
If F_Filename="" or Isnull(F_Filename) Then
F_Filename=Sql(3,i)
'判断文件是否本论坛,若不是则采用表中的记录 2004-9-12 Dv.Yz.
If InStr(F_Filename,":") = 0 Or InStr(F_Filename,"//") = 0 Then
If Dvbbs.Forum_Setting(75)="0" Then
F_Filename = Bbsurl & "UploadFile/" & F_Filename
Else
F_Filename = "showimg.asp?Boardid=" & Sql(1,i) & "&filename=" & F_Filename
End If
End If
End If
If F_Flag<>1 Then
If isshow(Sql(1,i))=0 Then
F_Filename=Dvbbs.Forum_Info(6)
End If
End If
If Instr(F_AnnounceID,"|") Then
F_AnnounceID=split(F_AnnounceID,"|")
TempStr2 = Replace(TempStr2,"{$golist}",TempArray(2))
TempStr2 = Replace(TempStr2,"{$announceid}",F_AnnounceID(0))
TempStr2 = Replace(TempStr2,"{$replyid}",F_AnnounceID(1))
Else
TempStr2 = Replace(TempStr2,"{$golist}",template.Strings(26))
End If
Select case F_Type
Case 1
F_typename=FileArray(1)
showfile=TempArray(3)
showfile=Replace(showfile,"{$imgurl}",Dvbbs.HTMLEncode(Dv_FilterJS(F_Filename)))
Case 2
F_typename=FileArray(2)
showfile=TempArray(4)
showfile=Replace(showfile,"{$fileurl}",Dvbbs.HTMLEncode(F_Filename))
Case 3
F_typename=FileArray(3)
showfile=TempArray(4)
showfile=Replace(showfile,"{$fileurl}",Dvbbs.HTMLEncode(F_Filename))
Case 4
F_typename=FileArray(4)
showfile=TempArray(4)
showfile=Replace(showfile,"{$fileurl}",Dvbbs.HTMLEncode(F_Filename))
Case Else
F_typename=FileArray(0)
showfile=TempArray(5)
End Select
If Dvbbs.GroupSetting(48)=1 Then
If Dvbbs.master or Dvbbs.superboardmaster or Dvbbs.boardmaster Then
edit=True
ElseIf Sql(8,i)=Dvbbs.membername Then
edit=True
Else
edit=False
End If
End If
If Dvbbs.UserID > 0 Then
TempStr2 = Replace(TempStr2,"{$useraction}",TempArray1(0))
If edit Then TempStr2 = Replace(TempStr2,"{$usereditinfo}",TempArray1(1))
TempStr2 = Replace(TempStr2,"{$usereditinfo}","")
End If
TempStr2 = Replace(TempStr2,"{$useraction}","")
If F_Type = 0 Then
TempStr2 = Replace(TempStr2,"{$typenum}",Sql(9,i))
Else
TempStr2 = Replace(TempStr2,"{$typenum}",Sql(10,i))
End If
If Trim(F_Readme) <> "" Then
If Len(F_Readme)>26 Then
F_Readme = Dvbbs.HtmlEncode(Left(F_Readme,26)) & "..."
Else
F_Readme = Dvbbs.HtmlEncode(F_Readme)
End If
Else
F_Readme = template.Strings(1)
End If
TempStr2 = Replace(TempStr2,"{$filereadme}",F_Readme)
TempStr2 = Replace(TempStr2,"{$showfile}",showfile)
TempStr2 = Replace(TempStr2,"{$filetype}",F_Type)
TempStr2 = Replace(TempStr2,"{$refiletype}",Sql(11,i))
TempStr2 = Replace(TempStr2,"{$typename}",F_typename)
TempStr2 = Replace(TempStr2,"{$username}",Dvbbs.HtmlEncode(Sql(8,i)))
TempStr2 = Replace(TempStr2,"{$fid}",Sql(0,i))
TempStr2 = Replace(TempStr2,"{$boardid}",Sql(1,i))
If t = (tab-1) Then
t = 0
TempStr2 = Replace(TempStr2,"{$tableinfo}",TempArray(1))
Else
TempStr2 = Replace(TempStr2,"{$tableinfo}","")
t = t + 1
End If
TempStr3 = TempStr3 & TempStr2
Next
TempStr2 = template.html(5)
TempStr2 = Replace(TempStr2,"{$Pcount}",Pcount)
TempStr2 = Replace(TempStr2,"{$boardid}",Dvbbs.boardid)
TempStr2 = Replace(TempStr2,"{$star}",star)
TempStr2 = Replace(TempStr2,"{$pagelistnum}",TopicCount)
TempStr2 = Replace(TempStr2,"{$limitednum}",maxpage)
End If
TempStr = Replace(TempStr,"{$pagelist}",TempStr2)
TempStr = Replace(TempStr,"{$showloop}",TempStr3)
top 10,"F_ViewNum"
TempStr = Replace(TempStr,"{$toplist1}",TopStr)
top 10,"F_ID"
TempStr = Replace(TempStr,"{$toplist2}",TopStr)
If UserName<>"" Then TempStr = Replace(TempStr,"{$userinfo}",TempArray(0))
Dim FileJump
For t = 0 To Ubound(FileArray)
FileJump = FileJump & ""
Next
TempStr = Replace(TempStr,"{$filetypejump}",FileJump)
TempStr = Replace(TempStr,"{$filetype}",filetype)
TempStr = Replace(TempStr,"{$tab}",tab)
TempStr = Replace(TempStr,"{$username}",UserName)
TempStr = Replace(TempStr,"{$userinfo}","")
TempStr = Replace(TempStr,"{$boardid}",Dvbbs.boardid)
TempStr = Replace(TempStr,"{$alertcolor}",Dvbbs.mainsetting(1))
Response.Write TempStr
End sub
'top 排行调用
Sub top(num,Str)
Dim Rs
TopStr = ""
Dim TempStr1,TempStr2,TempStr3,tmptitle
Dim k
k=0
TempStr1 = template.html(2)
Set Rs=Dvbbs.Execute("select top "&num&" F_ID,F_BoardID,F_Filename,F_Readme from Dv_Upfile Where F_BoardID<>0 and F_BoardID<>444 and F_BoardID<>777 order by "&str&" desc,F_addTime desc")
Do While Not Rs.Eof
TempStr2 = TempStr1
TempStr2 = Replace(TempStr2,"{$fid}",Rs(0))
TempStr2 = Replace(TempStr2,"{$boardid}",Rs(1))
If isshow(Rs("F_BoardID"))=1 Then
If Rs(3)<>"" Then
tmptitle=Rs(3)
Else
tmptitle=Rs(2)
End If
tmptitle=cutStr(tmptitle,16)
Else
tmptitle="==隐藏或认证版内容=="
End If
TempStr2 = Replace(TempStr2,"{$title}",tmptitle)
TempStr3 = TempStr3 & TempStr2
K=K+1
Rs.MoveNext
Loop
Set Rs=Nothing
TopStr = TempStr3
TempStr3 = ""
TempStr2 = ""
TempStr1 = ""
End Sub
Function reUBBCode(strContent)
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
strContent=replace(strContent," "," ")
re.Pattern="(\[QUOTE\])(.*)(\[\/QUOTE\])"
strContent=re.Replace(strContent,"$2")
re.Pattern="(\[point=*([0-9]*)\])(.*)(\[\/point\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[post=*([0-9]*)\])(.*)(\[\/post\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[power=*([0-9]*)\])(.*)(\[\/power\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[usercp=*([0-9]*)\])(.*)(\[\/usercp\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[money=*([0-9]*)\])(.*)(\[\/money\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[replyview\])(.*)(\[\/replyview\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[usemoney=*([0-9]*)\])(.*)(\[\/usemoney\])"
strContent=re.Replace(strContent," ")
re.Pattern="\[username=(.[^\[]*)\](.[^\[]*)\[\/username\]"
strContent=re.Replace(strContent," ")
strContent=replace(strContent,"","")
set re=Nothing
reUBBCode=Dvbbs.ChkBadWords(strContent)
End Function
'截取指定字符
Function cutStr(str,strlen)
Str=reUBBCode(Str)
'去掉所有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
End Function
Function Dv_FilterJS(v)
If Not Isnull(V) Then
Dim t
Dim re
Dim reContent
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="()"
t=re.Replace(v,"")
re.Pattern="(script)"
t=re.Replace(t,"script")
re.Pattern="(js:)"
t=re.Replace(t,"js:")
re.Pattern="(value)"
t=re.Replace(t,"value")
re.Pattern="(about:)"
t=re.Replace(t,"about:")
re.Pattern="(file:)"
t=re.Replace(t,"file:")
re.Pattern="(Document.cookie)"
t=re.Replace(t,"Documents.cookie")
re.Pattern="(vbs:)"
t=re.Replace(t,"vbs:")
re.Pattern="(on(mouse|Exit|error|click|key))"
t=re.Replace(t,"on$2")
Dv_FilterJS=t
Set Re=Nothing
End If
End Function
Function isshow(BID)
Dim node
isshow=0
If Not BoardlistNode.documentElement.selectSingleNode("board[@boardid='"&Bid&"']") Is Nothing Then
If not BoardlistNode.documentElement.selectSingleNode("board[@boardid='"&Bid&"']/@checkout").text="1" or Dvbbs.GroupSetting(37)="1" Then
isshow=1
End If
End If
End Function
'/所以有隐藏版面ID,以逗号分隔
Function HiddenBID()
Dim Nodes,Node,Boardids,i
i = 0
Set Nodes = BoardlistNode.documentElement.selectNodes("board[@hidden=1]/@boardid")
For Each Node in Nodes
Boardids = Boardids & Node.text
i = i+1
If i<>Nodes.length Then Boardids = Boardids & ","
Next
HiddenBID = Boardids
End Function
'/所以有认证版面ID,以逗号分隔
Function CheckoutBID()
Dim Nodes,Node,Boardids,i
i = 0
Set Nodes = BoardlistNode.documentElement.selectNodes("board[@checkout=1]/@boardid")
For Each Node in Nodes
Boardids = Boardids & Node.text
i = i+1
If i<>Nodes.length Then Boardids = Boardids & ","
Next
CheckoutBID = Boardids
End Function
'/所以有锁定版面ID,以逗号分隔
Function ChecklockBID()
Dim Nodes,Node,Boardids,i
i = 0
Set Nodes = BoardlistNode.documentElement.selectNodes("board[@checklock=1]/@boardid")
For Each Node in Nodes
Boardids = Boardids & Node.text
i = i+1
If i<>Nodes.length Then Boardids = Boardids & ","
Next
ChecklockBID = Boardids
End Function
%>