<!--#include FILE="conn.asp"-->
<!--#include file="inc/const.asp" -->
<!--#include file="inc/md5.asp"-->
<!--#include file="boke/config.asp"-->
<!--#include file="boke/PostCls.asp"-->
<!--#include file="boke/checkinput.asp"-->
<%
If DvBoke.BokeUserID = 0 or Not DvBoke.IsBokeOwner Then
DvBoke.ShowCode(14)
DvBoke.ShowMsg(0)
End If
If Is_Isapi_Rewrite = 0 Then DvBoke.ModHtmlLinked = "boke.asp?"
DvBoke.LoadPage("Manage.xslt")
If Session("BokeManage") = "" Then
If Request("Action")="Login" Then
DvBoke.Stats = "验证用户信息"
DvBoke.Top(0)
Page_ChkLogin()
Else
DvBoke.Stats = "博客管理登陆"
DvBoke.Nav(0)
Page_Login()
End If
Else
Dim s,t,m
Dim tStr,tStr_1,sTypeID
s = LCase(Request.QueryString("s"))
t = LCase(Request.QueryString("t"))
m = LCase(Request.QueryString("m"))
Select Case s
Case "1"
Select Case t
Case "1"
tStr = "文章"
tStr_1 = "?s=1&t=1"
sTypeID = 0
Case "2"
tStr = "收藏"
tStr_1 = "?s=1&t=2"
sTypeID = 1
Case "3"
tStr = "链接"
tStr_1 = "?s=1&t=3"
sTypeID = 2
Case "4"
tStr = "交易"
tStr_1 = "?s=1&t=4"
sTypeID = 3
Case "5"
tStr = "相册"
tStr_1 = "?s=1&t=5"
sTypeID = 4
Case Else
tStr = "文章"
tStr_1 = "?s=1&t=1"
sTypeID = 0
End Select
DvBoke.Stats = "博客管理 - " & tStr
DvBoke.Top(0)
Page_Nav_Left()
Page_UserInput()
Case "2"
tStr = "评论管理"
DvBoke.Stats = "博客管理 - " & tStr
DvBoke.Top(0)
Page_Nav_Left()
Page_UserPost()
Case "3"
tStr = "文件管理"
DvBoke.Stats = "博客管理 - " & tStr
DvBoke.Top(0)
Page_Nav_Left()
Page_UserFile()
Case "4"
tStr = "模板管理"
DvBoke.Stats = "博客管理 - " & tStr
DvBoke.Top(0)
Page_Nav_Left()
If Request.QueryString("action")="Saveskin" Then
Page_SaveSkins()
Else
Page_SkinSetting()
End If
Case "5"
Select Case t
Case "1"
tStr = "个人资料"
Case "2"
tStr = "博客密码"
Case "3"
tStr = "博客设置"
Case "4"
tStr = "关键字设置"
Case Else
tStr = "个人资料"
End Select
DvBoke.Stats = "博客管理 - 个人配置 - " & tStr
DvBoke.Top(0)
Page_Nav_Left()
Page_UserSetting()
Case "6"'数据更新
Select Case t
Case "1"
tStr = "频道更新"
End Select
DvBoke.Stats = "博客管理 - 数据更新 - " & tStr
DvBoke.Top(0)
Page_Nav_Left()
Page_Upate()
Case "7"'数据统计
DvBoke.Stats = "博客管理 - 数据更新 - " & tStr
DvBoke.Top(0)
Page_Nav_Left()
Page_Count()
Case Else
DvBoke.Stats = "博客管理"
DvBoke.Top(0)
Page_Nav_Left()
Page_Manage()
End Select
End If
DvBoke.Footer

Sub Page_Login()
Dim PageHtml
Dim Comeurl,tmpstr
If Request("f")<>"" Then
Comeurl=Request("f")
ElseIf Request.ServerVariables("QUERY_STRING")<>"" Then 
Comeurl = "BokeManage.asp?" & Request.ServerVariables("QUERY_STRING")
Else
Comeurl="BokeManage.asp"
End If
PageHtml = DvBoke.Page_Strings(0).text
PageHtml = Replace(PageHtml,"{$UserMsg}",DvBoke.Page_Strings(1).text)
PageHtml = Replace(PageHtml,"{$UserName}",DvBoke.UserName)
PageHtml = Replace(PageHtml,"{$ComeUrl}",Comeurl)
Response.Write PageHtml
End Sub

Sub Page_ChkLogin()
Dim PassWord,f
'数据验证
If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2):DvBoke.ShowMsg(0)
If Not Dvbbs.CodeIsTrue() Then
DvBoke.ShowCode(7)
DvBoke.ShowMsg(0)
End If
PassWord = Request.Form("PassWord")
If PassWord = "" Or IsNull(PassWord) Then
DvBoke.ShowCode(11)
Else
Password = Md5(Password,16)
End If 
DvBoke.ShowMsg(0)
f = Request("f")
If f = "" Or IsNull(f) Then f = "BokeManage.asp"
Dim Rs
Set Rs = DvBoke.Execute("Select PassWord From Dv_Boke_User Where UserID = " & DvBoke.UserID)
If Rs.Eof And Rs.Bof Then
DvBoke.ShowCode(4)
DvBoke.ShowMsg(0)
Else
If Rs(0)=PassWord Then
Session("BokeManage") = DvBoke.UserID
Session.Timeout = 40
Response.Redirect f
Else
DvBoke.ShowCode(15)
DvBoke.ShowMsg(0)
End If
End If
Rs.Close
Set Rs=Nothing
End Sub

Sub Page_Nav_Left()
Response.Write Replace(Replace(DvBoke.Page_Strings(2).text,"{$bokeurl}",DvBoke.ModHtmlLinked),"{$bokename}",DvBoke.BokeName)
Response.Write DvBoke.Page_Strings(3).text
End Sub

Sub Page_Manage()
Dim Html,Node,Tempstr
Html = DvBoke.Page_Strings(4).text
'------------------
Set Node = DvBoke.SystemDoc.documentElement.selectSingleNode("/bokesystem/managenews")
If Node Is Nothing Then
Tempstr = ""
Else
Tempstr = Node.text
End If
Html = Replace(Html,"{$sysmessage}",Tempstr)
'------------------
Response.Write Html
End Sub

Sub Page_UserInput()
Dim PageHtml,UserPageInput
PageHtml = DvBoke.Page_Strings(5).text
Select Case m
Case "1"'发表文章
Select Case LCase(Request("Action"))
Case "savepost"
Post_Save(0)
Case Else
UserPageInput = Post_News
End Select
Case "2"
If Request.QueryString("Action") = "Save" Then
Page_UserInput_Cat_Save()
ElseIf Request.QueryString("Action") = "Del" Then
Page_UserInput_Cat_Del()
Else
UserPageInput = Page_UserInput_Cat()
End If
Case "3"
If Request.QueryString("Action") = "Del" Then
UserPageInput = Page_UserInput_mTopic_Del()
Else
UserPageInput = Page_UserInput_mTopic()
End If
Case Else
UserPageInput = Page_UserInput_mTopic()
End Select
PageHtml = Replace(PageHtml,"{$UserInputInfo}",UserPageInput)
PageHtml = Replace(PageHtml,"{$UserAction}",tStr)
PageHtml = Replace(PageHtml,"{$UserAction_1}",tStr_1)
Response.Write PageHtml
End Sub

Sub Page_UserPost()
Dim UserPageInput
If Request.QueryString("Action") = "Del" Then
UserPageInput = Page_UserInput_mPost_Del()
Else
UserPageInput = Page_UserInput_mPost()
End If
Response.Write UserPageInput
End Sub

Sub Page_Upate()
Update_UserCatToXml()
DvBoke.ShowMsg(0)
End Sub


'添加文章
Function Post_News()
Dim PageHtml
Dim Stype
Dim Cat_Val
Dim DvBokePost
Dim Rs
Stype = t-1
Set Rs=DvBoke.Execute("Select uCatID From Dv_Boke_UserCat Where UserID = "&DvBoke.BokeUserID&" And uType = " & sType)
If Rs.Eof And Rs.Bof Then
Rs.Close:Set Rs=Nothing
DvBoke.ShowCode(54)
DvBoke.ShowMsg(2)
Post_News = Replace(DvBoke.InputShowMsg,"{$t}",sType + 1)
Exit Function
End If
Set DvBokePost = New Cls_DvBoke_Post
DvBokePost.Action = "?s="&s&"&t="&t&"&m="&m&"&action=savepost"
DvBokePost.EditMode = "Default"
DvBokePost.Show_Upload = 1'允许上传
DvBokePost.IsTopic = 1
DvBokePost.sType = Stype
DvBokePost.PostUserName = DvBoke.BokeUserName
DvBokePost.JoinTime = FormatDateTime(Now(),1)
DvBokePost.LoadForm()
PageHtml = DvBokePost.FormHtml
Set DvBokePost = Nothing
Post_News = PageHtml
End Function

'Act 0=保存新帖
Sub Post_Save(Act)
Dim P_Title,P_SearchKey,P_DDateTime,P_sType,P_sCatID,P_Catid,P_Lock,P_Best,P_PostContent,P_PostTitleNote,P_Weather,P_iWeather
Dim P_UpFileID,HaveUpFile
Dim PostID,RootID

'-----------------------------------------------------------------------------
'获取表单数据 ----------------------------------------------------------------
'-----------------------------------------------------------------------------
P_Title = DvBoke.Checkstr(Trim(Request.Form("Title")))
P_SearchKey = DvBoke.Checkstr(Trim(Request.Form("SearchKey")))
P_DDateTime = Trim(Request.Form("DDateTime"))
P_sType = DvBoke.CheckNumeric(Request.Form("sType"))
P_sCatID =  DvBoke.CheckNumeric(Request.Form("sCatID"))
P_Catid =  Request.Form("Catid")
P_Lock =  DvBoke.CheckNumeric(Request.Form("Lock"))
P_Best =  DvBoke.CheckNumeric(Request.Form("Best"))
P_PostContent = CheckAlipay()
If P_PostContent = "" Then P_PostContent = DvBoke.Checkstr(Request.Form("PostContent"))
P_PostTitleNote = DvBoke.Checkstr(Request.Form("PostTitleNote"))
PostID =  DvBoke.CheckNumeric(Request.Form("PostID"))
RootID =  DvBoke.CheckNumeric(Request.Form("RootID"))
P_Weather = Request.Form("Weather")

P_UpFileID = Request.Form("upfilerename")

If P_UpFileID <>"" Then
HaveUpFile = 1
P_UpFileID = Replace(P_UpFileID,"'","")
P_UpFileID=Replace(P_UpFileID,";","")
P_UpFileID=Replace(P_UpFileID,"--","")
P_UpFileID=Replace(P_UpFileID,")","")
Dim fixid
fixid=Replace(P_UpFileID," ","")
fixid=Replace(fixid,",","")
If Not IsNumeric(fixid) or fixid="" Then HaveUpFile=0
P_UpFileID=left(P_UpFileID,Len(P_UpFileID)-1)
Else
HaveUpFile=0
End If

'-----------------------------------------------------------------------------
'数据验证 --------------------------------------------------------------------
'-----------------------------------------------------------------------------
If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2):DvBoke.ShowMsg(0)
If StrLength(P_Title)>250 or StrLength(P_Title)="" Then
DvBoke.ShowCode(30)
End If
If StrLength(P_SearchKey)>250 Then
DvBoke.ShowCode(31)
End If

If P_DDateTime<>"" and IsDate(P_DDateTime) Then
P_DDateTime = Cdate(FormatDateTime(P_DDateTime,1)&FormatDateTime(Now(),3))
Else
P_DDateTime = Cdate(FormatDateTime(Now(),1)&FormatDateTime(Now(),3))
End If
If P_sType < 0 or P_sType > 4 Then
DvBoke.ShowCode(32)
End If
If P_sCatID = -1 Then
DvBoke.ShowCode(33)
End If
If P_Catid = "-1" or P_Catid ="" or not Isnumeric(P_Catid) Then
DvBoke.ShowCode(34)
Else
P_Catid = DvBoke.CheckNumeric(P_Catid)
End If
If StrLength(P_PostContent)="" Then
DvBoke.ShowCode(35)
Else
P_PostContent = Replace(P_PostContent,vbNewLine,"")
End If
If P_Weather <> "" Then
P_iWeather = Split(P_Weather,"|")
If Ubound(P_iWeather) = 1 Then
P_Weather = DvBoke.CheckNumeric(P_iWeather(1))
Else
P_Weather = 0
End If
Else
P_Weather = 0
End If

DvBoke.ShowMsg(0)
If (Not Dvbbs.CodeIsTrue()) And DvBoke.System_Setting(4) = "1" Then
DvBoke.ShowCode(7)
DvBoke.ShowMsg(0)
End If
'-------------------------------------
Dim DvCode
Set DvCode = New DvBoke_UbbCode
P_PostContent = DvCode.FormatCode(P_PostContent)
Set DvCode = Nothing
'-------------------------------------
Dim Num_T,Num_F,Num_L,Num_P
Num_T=0
Num_F=0
Num_L=0
Num_P=0
Select Case P_sType
Case 0
Num_T = 1
Case 1
Num_F=1
Case 2
Num_L=1
Case 4
Num_P=1
End Select
'-----------------------------------------------------------------------------
'数据处理 --------------------------------------------------------------------
'-----------------------------------------------------------------------------
'TopicID,CatID,sCatID,UserID,UserName,Title,TitleNote,PostTime,Child,Hits,IsView,IsLock,sType,LastPostTime,LastPoster,LastPostID,IsBest,S_Key,Weather

'数据表[Dv_Boke_Topic]：TopicID=0 ,CatID=1 ,sCatID=2 ,UserID=3 ,UserName=4 ,Title=5 ,TitleNote=6 ,PostTime=7 ,Child=8 ,Hits=9 ,IsView=10 ,IsLock=11 ,sType=12 ,LastPostTime=13 ,LastPoster=14 ,LastPostID=15 ,IsBest=16 ,S_Key=17

'PostID,CatID,sCatID,ParentID,RootID,UserID,UserName,Title,Content,JoinTime,IP,sType,Weather

'数据表[Dv_Boke_Post]：PostID=0 ,CatID=1 ,sCatID=2 ,ParentID=3 ,RootID=4 ,UserID=5 ,UserName=6 ,Title=7 ,Content=8 ,JoinTime=9 ,IP=10 ,sType=11
Dim Rs,Sql
If Act = 0 Then
SQL = "INSERT INTO [Dv_Boke_Topic] (CatID,sCatID,UserID,UserName,Title,TitleNote,PostTime,IsLock,sType,LastPostTime,IsBest,S_Key,Weather) Values (" & P_Catid & "," & P_sCatID & "," & DvBoke.BokeUserID & ",'" & DvBoke.BokeUserName & "','" & P_Title & "','" & P_PostTitleNote & "','"  & P_DDateTime & "',"& P_Lock &"," & P_sType & ",'"& P_DDateTime &"',"& P_Best &",'"& P_SearchKey &"',"& P_Weather &")"
DvBoke.Execute Sql
RootID = DvBoke.Execute("Select Top 1 TopicID From [Dv_Boke_Topic] order by TopicID desc")(0)


SQL = "INSERT INTO [Dv_Boke_Post] (CatID,sCatID,RootID,UserID,UserName,Title,Content,JoinTime,[IP],sType,IsUpfile,BokeUserID,IsLock) Values (" & P_Catid & "," & P_sCatID & ","& RootID &"," & DvBoke.BokeUserID & ",'" & DvBoke.BokeUserName & "','" & P_Title & "','" & P_PostContent & "','"  & P_DDateTime & "','"& DvBoke.UserIP &"'," & P_sType & "," & HaveUpFile & ","&DvBoke.BokeUserID&","&P_Lock&")"
DvBoke.Execute Sql
PostID = DvBoke.Execute("Select Top 1 PostID From [Dv_Boke_Post] order by PostID desc")(0)

Sql = "Update [Dv_Boke_User] Set TopicNum = TopicNum + "&Num_T&",FavNum=FavNum + "&Num_F&",PhotoNum=PhotoNum+"&Num_P&",TodayNum=TodayNum+1,LastUpTime="&bSqlNowString&" Where UserID="&DvBoke.BokeUserID
DvBoke.Execute Sql

Sql = "Update [Dv_Boke_SysCat] Set TopicNum = TopicNum + "&Num_T&",TodayNum=TodayNum+1,LastUpTime="&bSqlNowString&" Where sCatID in ("&P_sCatID&","&DvBoke.BokeNode.getAttribute("syscatid")&")"
DvBoke.Execute Sql

Sql = "Update [Dv_Boke_UserCat] Set TopicNum = TopicNum + 1,TodayNum=TodayNum+1,LastUpTime="&bSqlNowString&" Where uCatID="&P_Catid
DvBoke.Execute Sql

Sql = "Update [Dv_Boke_System] Set S_TopicNum=S_TopicNum+ "&Num_T&",S_PhotoNum=S_PhotoNum+"&Num_P&",S_FavNum=S_FavNum+ "&Num_F&",S_TodayNum=S_TodayNum+1,S_LastPostTime="&bSqlNowString
DvBoke.Execute Sql
''CatID,sType,TopicID,PostID,IsTopic,Title,FileNote,IsLock
If HaveUpFile = 1 THen
Sql = "Update Dv_Boke_Upfile Set CatID="&P_Catid&",sType="&P_sType&",TopicID="&RootID&",PostID="&PostID&",IsTopic=0,Title='"&P_Title&"',FileNote='"&P_PostTitleNote&"',IsLock="&P_Lock&" where id in ("&P_UpFileID&")"
DvBoke.Execute Sql
End If
Update_TopicToXml()
'更新系统XML数据------------
DvBoke.Update_SysCat P_Catid&","&DvBoke.BokeNode.getAttribute("syscatid"),0,1,Num_T,0,Now()
DvBoke.Update_System 0,1,Num_F,Num_P,Num_T,0,Now()
DvBoke.SaveSystemCache()
'更新系统XML数据------------

DvBoke.ShowCode(37)
DvBoke.ShowMsg(0)
End If

If Not (Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cachebokebody") Is Nothing) Then
Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cachebokebody").text = ""
End If
If Not (Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cacheboketopic") Is Nothing) Then
Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cacheboketopic").text = ""
End If

End Sub

'用户栏目设置
Function Page_UserInput_Cat()
Dim PageHtml,PageHtml_Str,Rs
PageHtml = DvBoke.Page_Strings(12).text
If Request("uCatID")<>"" And IsNumeric(Request("uCatID")) Then
Set Rs = DvBoke.Execute("Select * From Dv_Boke_UserCat Where uCatID = " & Request("uCatID") & " And uType = " & sTypeID & " And UserID = " & DvBoke.UserID)
If Not (Rs.Eof And Rs.Bof) Then
PageHtml = Replace(PageHtml,"{$uCatID}",Rs("uCatID"))
PageHtml = Replace(PageHtml,"{$uCatTitle}",Rs("uCatTitle"))
PageHtml = Replace(PageHtml,"{$uCatNote}",Rs("uCatNote"))
If Rs("IsView")=1 Then
PageHtml = Replace(PageHtml,"{$IsView}","checked")
Else
PageHtml = Replace(PageHtml,"{$IsView}","")
End If
PageHtml = Replace(PageHtml,"{$uType}",Rs("uType"))
End If
Rs.Close
Set Rs = Nothing
End If
PageHtml = Replace(PageHtml,"{$uCatID}","0")
PageHtml = Replace(PageHtml,"{$uCatTitle}","")
PageHtml = Replace(PageHtml,"{$uCatNote}","")
PageHtml = Replace(PageHtml,"{$IsView}","checked")
PageHtml = Replace(PageHtml,"{$uType}",sTypeID)
Set Rs = DvBoke.Execute("Select * From Dv_Boke_UserCat Where UserID = " & DvBoke.UserID & " And uType = " & sTypeID & " Order By uCatID")
If Not (Rs.Eof And Rs.Bof) Then
Do While Not Rs.Eof
PageHtml_Str = PageHtml_Str & "<ul>"
PageHtml_Str = PageHtml_Str & "<li class=""Set3"">"&Rs("uCatTitle")&"</li>"
'PageHtml_Str = PageHtml_Str & "<li class=""Set3"">"&DvBoke.Cat_Type(Rs("utype"))&"</li>"
PageHtml_Str = PageHtml_Str & "<li class=""Set5"">"&Left(Rs("uCatNote"),35)&"</li>"
PageHtml_Str = PageHtml_Str & "<li class=""Set3""><a href="""&tStr_1&"&m=2&uCatID="&Rs("uCatID")&""">编辑</a>&nbsp;&nbsp;<a href=""#"" onclick=""alertreadme('您确定删除栏目 "&Rs("uCatTitle")&" 吗?','"&tStr_1&"&m=2&Action=Del&uCatID="&Rs("uCatID")&"')"">删除</a></li>"
PageHtml_Str = PageHtml_Str & "</ul>"
Rs.MoveNext
Loop
End If
Rs.Close
Set Rs=Nothing
PageHtml = Replace(PageHtml,"{$InfoList}",PageHtml_Str)
Page_UserInput_Cat = PageHtml
End Function

'保存用户栏目设置
Sub Page_UserInput_Cat_Save()
Dim uCatID,uCatTitle,uCatNote,IsView,sType
uCatID = Request.Form("uCatID")
uCatTitle = DvBoke.CheckStr(Request.Form("uCatTitle"))
uCatNote = DvBoke.CheckStr(Request.Form("uCatNote"))
IsView = Request.Form("IsView")
sType = Request.Form("sType")

If uCatID = "" Or Not IsNumeric(uCatID) Then uCatID = 0
uCatID = cCur(uCatID)
If IsView = "" Or Not IsNumeric(IsView) Then IsView = 0
IsView = Cint(IsView)
If sType = "" Or Not IsNumeric(sType) Then sType = 0
sType = Cint(sType)
If uCatTitle = "" Then
DvBoke.ShowCode(25)
Else
uCatTitle = Server.HtmlEncode(uCatTitle)
End If
If uCatNote <> "" Then uCatNote = Server.HtmlEncode(uCatNote)
DvBoke.ShowMsg(0)
If uCatID > 0 Then
DvBoke.Execute("Update Dv_Boke_UserCat Set uCatTitle = '"&uCatTitle&"',uCatNote = '"&uCatNote&"',IsView = "&IsView&",uType = "&sType&" Where uCatID = " & uCatID & " And UserID = " & DvBoke.UserID)
Else
DvBoke.Execute("Insert Into Dv_Boke_UserCat (uCatTitle,uCatNote,IsView,UserID,uType) Values ('"&uCatTitle&"','"&uCatNote&"',"&IsView&","&DvBoke.UserID&","&sType&")")
End If
Update_UserCatToXml()
DvBoke.ShowCode(24)
DvBoke.ShowMsg(0)
End Sub

'更新用户栏目数据
Sub Update_UserCatToXml()
'uCatID=0 ,UserID=1 ,uCatTitle=2 ,uCatNote=3 ,OpenTime=4 ,uType=5 ,TopicNum=6 ,PostNum=7 ,TodayNum=8 ,IsView=9,LastUpTime=10
Dim Rs,Sql
Dim XmlDoc,NodeList,Node
Sql = "Select ucatid,userid,ucattitle,ucatnote,opentime,utype,topicnum,postnum,todaynum,isview,lastuptime From Dv_Boke_UserCat where UserID = " & DvBoke.UserID &" order by utype,uCatID"
Set Rs = DvBoke.Execute(LCase(Sql))
If Not (Rs.Eof And Rs.Bof) Then
Set XmlDoc=Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
Rs.Save XmlDoc,1
XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
Set NodeList=XmlDoc.documentElement.selectNodes("rs:data/z:row")
For Each Node in NodeList
Node.attributes.getNamedItem("opentime").text = Rs("opentime")
Node.attributes.getNamedItem("lastuptime").text = Rs("lastuptime")
Rs.MoveNext
Next
DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(XmlDoc.documentElement.xml,"'","''")&"' where UserID="&DvBoke.UserID)
Set DvBoke.BokeCat = XmlDoc
Set XmlDoc = Nothing
End If
Rs.Close
Set Rs=Nothing

Update_TopicToXml()
Update_LinkToXml()
Update_PhotoToXml()
Update_PostToXml()
Update_KeyWordToXml()
DvBoke.ShowCode(27)
End Sub
'更新首页主题数据
Sub Update_TopicToXml()
Dim Node,XmlDoc,NodeList,ChildNode,BokeBody
Dim DvCode
Set DvCode = New DvBoke_UbbCode
Set Node = DvBoke.BokeCat.selectNodes("xml/boketopic")
If Not (Node Is Nothing) Then
For Each NodeList in Node
DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
Next
End If
Set Node=DvBoke.BokeCat.createNode(1,"boketopic","")
Set XmlDoc=Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
If Not IsNumeric(DvBoke.BokeSetting(6)) Then DvBoke.BokeSetting(6) = "10"
Dim Rs,Sql
Sql = "Select Top "&DvBoke.BokeSetting(6)&" TopicID,CatID,sCatID,UserID,UserName,Title,TitleNote,PostTime,Child,Hits,IsView,IsLock,sType,LastPostTime,IsBest,S_Key,Weather From [Dv_Boke_Topic] Where UserID="&DvBoke.BokeUserID&" and sType <>2 order by PostTime desc"
Set Rs = DvBoke.Execute(LCase(Sql))
If Not Rs.Eof Then
Rs.Save XmlDoc,1
XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
Set ChildNode = XmlDoc.documentElement.selectNodes("rs:data/z:row")
For Each NodeList in ChildNode
If Rs("TitleNote")="" Or IsNull(Rs("TitleNote")) Then
BokeBody = DvBoke.Execute("Select Content From Dv_Boke_Post Where ParentID=0 and Rootid="&Rs(0))(0)
If Len(BokeBody) > 250 Then
BokeBody = SplitLines(BokeBody,DvBoke.BokeSetting(2))
End If
Else
BokeBody = Rs("TitleNote")
End If
BokeBody = DvCode.UbbCode(BokeBody) & "...<br/>[<a href=""boke.asp?"&DvBoke.BokeName&".showtopic."&Rs("TopicID")&".html"">阅读全文</a>]"
NodeList.attributes.getNamedItem("titlenote").text = BokeBody
NodeList.attributes.getNamedItem("posttime").text = Rs("PostTime")
NodeList.attributes.getNamedItem("lastposttime").text = Rs("LastPostTime")
Rs.MoveNext
Next
Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
Node.appendChild(ChildNode)
End If
Rs.Close
Set Rs = Nothing
DvBoke.BokeCat.documentElement.appendChild(Node)
DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.BokeUserID)
End Sub


'更新首页评论数据
Sub Update_PostToXml()
Dim Node,XmlDoc,NodeList,ChildNode
Set Node = DvBoke.BokeCat.selectNodes("xml/bokepost")
If Not (Node Is Nothing) Then
For Each NodeList in Node
DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
Next
End If
Set Node=DvBoke.BokeCat.createNode(1,"bokepost","")
Set XmlDoc=Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
If Not IsNumeric(DvBoke.BokeSetting(3)) Then DvBoke.BokeSetting(3) = "10"
Dim Rs,Sql
Sql = "Select Top "&DvBoke.BokeSetting(3)&" PostID,CatID,sCatID,ParentID,RootID,UserID,UserName,Title,Content,JoinTime,IP,sType From [Dv_Boke_Post] Where  BokeUserID="&DvBoke.BokeUserID&" and ParentID>0 and sType in (0,3,4) order by JoinTime desc"
Set Rs = DvBoke.Execute(LCase(Sql))
If Not Rs.Eof Then
Rs.Save XmlDoc,1
XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
Set ChildNode = XmlDoc.documentElement.selectNodes("rs:data/z:row")
For Each NodeList in ChildNode
NodeList.attributes.getNamedItem("jointime").text = Rs("JoinTime")
NodeList.attributes.getNamedItem("content").text = Left(Rs("content")&"",50)
Rs.MoveNext
Next
Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
Node.appendChild(ChildNode)
End If
Rs.Close
Set Rs = Nothing
DvBoke.BokeCat.documentElement.appendChild(Node)
DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.BokeUserID)
End Sub

'更新首页链接数据
Sub Update_LinkToXml()
Dim Nums
Dim Node,XmlDoc,NodeList,ChildNode
Set Node = DvBoke.BokeCat.selectNodes("xml/bokelink")
If Not (Node Is Nothing) Then
For Each NodeList in Node
DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
Next
End If
Set Node=DvBoke.BokeCat.createNode(1,"bokelink","")
Set XmlDoc=Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
'If Not IsNumeric(DvBoke.BokeSetting(6)) Then DvBoke.BokeSetting(6) = "10"
Nums = 5
Dim Rs,Sql
Sql = "Select Top "&Nums&" TopicID,CatID,sCatID,UserID,UserName,Title,TitleNote,PostTime,Child,Hits,IsView,IsLock,sType,LastPostTime,IsBest,S_Key,Weather,Title as Content From [Dv_Boke_Topic] Where UserID="&DvBoke.BokeUserID&" and sType = 2 and IsLock<3 order by LastPostTime desc"
Set Rs = DvBoke.Execute(LCase(Sql))
If Not Rs.Eof Then
Rs.Save XmlDoc,1
XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
Set ChildNode = XmlDoc.documentElement.selectNodes("rs:data/z:row")
For Each NodeList in ChildNode
NodeList.attributes.getNamedItem("content").text = DvBoke.Execute("Select Content From Dv_Boke_Post Where ParentID=0 and Rootid="&Rs(0))(0)
NodeList.attributes.getNamedItem("posttime").text = Rs("PostTime")
NodeList.attributes.getNamedItem("lastposttime").text = Rs("LastPostTime")
Rs.MoveNext
Next
Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
Node.appendChild(ChildNode)
End If
Rs.Close
Set Rs = Nothing
DvBoke.BokeCat.documentElement.appendChild(Node)
DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.UserID)
End Sub

'更新首页图片数据
Sub Update_PhotoToXml()
Dim Nums
Dim Node,XmlDoc,NodeList,ChildNode
Set Node = DvBoke.BokeCat.selectNodes("xml/bokephoto")
If Not (Node Is Nothing) Then
For Each NodeList in Node
DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
Next
End If
Set Node=DvBoke.BokeCat.createNode(1,"bokephoto","")
Set XmlDoc=Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
'If Not IsNumeric(DvBoke.BokeSetting(6)) Then DvBoke.BokeSetting(6) = "10"
Nums = 5
Dim Rs,Sql
Sql = "Select Top "&Nums&" ID,BokeUserID,UserName,CatID,sType,TopicID,PostID,IsTopic,Title,FileName,FileType,FileSize,FileNote,DownNum,ViewNum,DateAndTime,PreviewImage,IsLock From Dv_Boke_Upfile where sType=4 and IsTopic=0 and IsLock<3 and BokeUserID="&DvBoke.BokeUserID&" order by DateAndTime Desc "
Set Rs = DvBoke.Execute(LCase(Sql))
If Not Rs.Eof Then
Rs.Save XmlDoc,1
XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
Set ChildNode = XmlDoc.documentElement.selectNodes("rs:data/z:row")
For Each NodeList in ChildNode
NodeList.attributes.getNamedItem("dateandtime").text = Rs("DateAndTime")
Rs.MoveNext
Next
Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
Node.appendChild(ChildNode)
End If
Rs.Close
Set Rs = Nothing
DvBoke.BokeCat.documentElement.appendChild(Node)
DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.BokeUserID)
End Sub

'更新关键字转换数据
Sub Update_KeyWordToXml()
Dim Node,XmlDoc,NodeList,ChildNode
Set Node = DvBoke.BokeCat.selectNodes("xml/bokekeyword")
If Not (Node Is Nothing) Then
For Each NodeList in Node
DvBoke.BokeCat.DocumentElement.RemoveChild(NodeList)
Next
End If
Set Node=DvBoke.BokeCat.createNode(1,"bokekeyword","")
Set XmlDoc=Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
Dim Rs,Sql
Sql = "Select KeyID,KeyWord,nKeyWord,LinkUrl,LinkTitle,NewWindows From Dv_Boke_KeyWord where  UserID="&DvBoke.UserID
Set Rs = DvBoke.Execute(LCase(Sql))
If Not Rs.Eof Then
Rs.Save XmlDoc,1
XmlDoc.documentElement.RemoveChild(XmlDoc.documentElement.selectSingleNode("s:Schema"))
Set ChildNode=XmlDoc.documentElement.selectSingleNode("rs:data")
Node.appendChild(ChildNode)
End If
Rs.Close
Set Rs = Nothing
DvBoke.BokeCat.documentElement.appendChild(Node)
DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.UserID)
End Sub

Sub Page_UserInput_Cat_Del()
Dim uCatID
uCatID = Request("uCatID")
If uCatID = "" Or Not IsNumeric(uCatID) Then uCatID = 0
uCatID = cCur(uCatID)
DvBoke.Execute("Delete From Dv_Boke_UserCat Where uCatID = "&uCatID&" And UserID = " & DvBoke.BokeUserID)
DvBoke.ShowCode(26)
DvBoke.ShowMsg(0)
End Sub

Function Page_UserInput_mTopic()
Dim PageHtml,KeyWord,iKeyWord
PageHtml = DvBoke.Page_Strings(13).text
Dim Rs,Sql
Dim Page,MaxRows,Endpage,CountNum,PageSearch
CountNum = 0
Endpage = 0
MaxRows = DvBoke.System_Setting(7)
Page = Request("Page")
If IsNumeric(Page) = 0 or Page="" Then Page=1
Page = Clng(Page)
KeyWord = Request("KeyWord")
If KeyWord <> "" Then
KeyWord = DvBoke.CheckStr(KeyWord)
iKeyWord = " And (Title Like '%"&KeyWord&"%' Or Content Like '%"&KeyWord&"%')"
End If

'字段排序 TopicID=0 ,CatID=1 ,sCatID=2 ,UserID=3 ,UserName=4 ,Title=5 ,Content=6 ,JoinTime=7 ,sType=8

Sql = "Select RootID,CatID,sCatID,UserID,UserName,Title,Content,JoinTime,sType,PostID From Dv_Boke_Post Where UserID = "&DvBoke.UserID&" And sType = "&sTypeID&" And ParentID = 0 "&iKeyWord&" order by PostID Desc"
Set Rs = server.CreateObject ("adodb.recordset")
If Dv_Boke_InDvbbsData = 1 Then
Rs.Open Sql,Boke_Conn,1,1
Else
Rs.Open Sql,Conn,1,1
End If
DvBoke.SqlQueryNum = DvBoke.SqlQueryNum + 1
If Not Rs.eof Then
CountNum = Rs.RecordCount
If CountNum Mod MaxRows=0 Then
Endpage = CountNum \ MaxRows
Else
Endpage = CountNum \ MaxRows+1
End If
Rs.MoveFirst
If Page > Endpage Then Page = Endpage
If Page < 1 Then Page = 1
If Page >1 Then 
Rs.Move (Page-1) * MaxRows
End if
SQL=Rs.GetRows(MaxRows)
Else
DvBoke.ShowCode(48)
DvBoke.ShowMsg(2)
End If
Rs.close:Set Rs = Nothing
Dim i,Temp,Temp1
If DvBoke.InputShowMsg = "" Then
For i=0 To Ubound(SQL,2)
Temp1 = DvBoke.Page_Strings(21).text
Temp1 = Replace(Temp1,"{$EditID}",Sql(0,i))
Temp1 = Replace(Temp1,"{$topicid}",Sql(0,i))
Temp1 = Replace(Temp1,"{$postid}",Sql(9,i))
If strLength(Sql(5,i)) > 24 Then Sql(5,i) = CutStr(Sql(5,i),24) & "..."
Temp1 = Replace(Temp1,"{$Topic}",Sql(5,i))
Temp1 = Replace(Temp1,"{$DateTime}",FormatDateTime(Sql(7,i),2) & " " & FormatDateTime(Sql(7,i),4))
If Sql(1,i)=0 Then
Temp1 = Replace(Temp1,"{$cat}","未归类")
Else
Temp1 = Replace(Temp1,"{$cat}",DvBoke.ChannelTitle(Sql(1,i)))
End If
Temp = Temp & Temp1
Next
Else
Temp = DvBoke.InputShowMsg
End If

PageHtml = Replace(PageHtml,"{$InfoList}",Temp)
PageHtml = Replace(PageHtml,"{$Page}",Page)
PageHtml = Replace(PageHtml,"{$MaxRows}",MaxRows)
PageHtml = Replace(PageHtml,"{$CountNum}",CountNum)
PageSearch = "KeyWord="&KeyWord&"&s=1&t="&sTypeID&"&m=3"
PageHtml = Replace(PageHtml,"{$PageSearch}",PageSearch)
If Is_Isapi_Rewrite = 0 Then DvBoke.ModHtmlLinked = "boke.asp?"
PageHtml = Replace(PageHtml,"{$bokeurl}",DvBoke.ModHtmlLinked)
PageHtml = Replace(PageHtml,"{$bokename}",DvBoke.BokeName)
PageHtml = Replace(PageHtml,"{$KeyWord}",KeyWord)
PageHtml = Replace(PageHtml,"{$t}",sTypeID)

Temp = ""
Set Rs=DvBoke.Execute("Select * From Dv_Boke_UserCat Where UserID = " & DvBoke.UserID)
If Not (Rs.Eof And Rs.Bof) Then
Do While Not Rs.Eof
Temp = Temp & "<Option value="""&Rs("uCatID")&""">"&Server.HtmlEncode(Rs("uCatTitle")&"")&"</Option>"
Rs.MoveNext
Loop
PageHtml = Replace(PageHtml,"{$uCatList}",Temp)
Else
PageHtml = Replace(PageHtml,"{$uCatList}","")
End If
Rs.Close:Set Rs=Nothing
Page_UserInput_mTopic = PageHtml

End Function

Function Page_UserInput_mTopic_Del()
Dim TopicID,iTopic,i,Rs,Sql,tRs,PostNum,tPostNum,TopicNum,uCatID,sTypeID_a
Dim Num_T,Num_F,Num_L,Num_P
Num_T=0
Num_F=0
Num_L=0
Num_P=0
TopicID = Request("TopicID")
iTopic = Request("iTopic")
uCatID = Request("uCatID")
If TopicID = "" Or iTopic = "" Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
Exit Function
End If
If Not IsNumeric(iTopic) Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
Exit Function
End If
iTopic = Cint(iTopic)
If iTopic <> 0 And iTopic <> 1 Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
Exit Function
End If
If uCatID = "" Or Not IsNumeric(uCatID) Then uCatID = 0
uCatID = cCur(uCatID)
TopicID = Replace(TopicID," ","")
TopicID = Split(TopicID,",")
'检测目标栏目是否合法
If uCatID = -1 And iTopic = 1 Then
DvBoke.ShowCode(49)
DvBoke.ShowMsg(2)
Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
Exit Function
End If
If uCatID > 0 Then
Set Rs=DvBoke.Execute("Select * From Dv_Boke_UserCat Where UserID = "&DvBoke.UserID&" And uCatID = " & uCatID)
If Rs.Eof And Rs.Bof Then
Rs.Close:Set Rs=Nothing
DvBoke.ShowCode(49)
DvBoke.ShowMsg(2)
Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
Exit Function
Else
sTypeID_a = Rs("uType")
End If
Rs.Close:Set Rs=Nothing
End If

For i = 0 To Ubound(TopicID)
If IsNumeric(TopicID(i)) Then
Select Case iTopic
Case 0
Set Rs=DvBoke.Execute("Select * From Dv_Boke_Topic Where UserID = "&DvBoke.UserID&" And TopicID = " & TopicID(i))
If Not (Rs.Eof And Rs.Bof) Then
TopicNum = 0
If DateDiff("d",Rs("PostTime"),Now()) = 0 Then TopicNum = 1
Select Case Rs("sType")
Case 0
Num_T = 1
Case 1
Num_F = 1
Case 2
Num_L = 1
Case 4
Num_P = 1
End Select
'删除包括其评论
Set tRs=DvBoke.Execute("Select * From Dv_Boke_Post Where RootID = " & TopicID(i))
PostNum = 0
tPostNum = 0
Do While Not tRs.Eof
PostNum = PostNum + 1
If DateDiff("d",tRs("JoinTime"),Now()) = 0 Then tPostNum = tPostNum + 1
'上传文件清理
If tRs("IsUpfile")=1 Then DvBoke.SysDeleteFile(tRs("PostID"))
tRs.MoveNext
Loop
PostNum = PostNum - 1
tRs.Close:Set tRs=Nothing
TopicNum = TopicNum + tPostNum
DvBoke.Execute("Delete From Dv_Boke_Post Where RootID = " & TopicID(i))
'更新系统数据
DvBoke.Execute("Update [Dv_Boke_SysCat] Set TopicNum = TopicNum - 1,PostNum = PostNum - "&PostNum&",TodayNum = TodayNum - "&TopicNum&" Where sCatID in ("&Rs("sCatID")&","&DvBoke.BokeNode.getAttribute("syscatid")&")")

DvBoke.Execute("Update [Dv_Boke_System] Set S_TopicNum=S_TopicNum - "&Num_T&",S_PostNum=S_PostNum - "&PostNum&",S_PhotoNum=S_PhotoNum - "&Num_P&",S_FavNum=S_FavNum - "&Num_F&",S_TodayNum=S_TodayNum - "&TopicNum)
'更新用户总数据
DvBoke.Execute("Update [Dv_Boke_User] Set TopicNum = TopicNum - "&Num_T&",PostNum = PostNum - "&PostNum&",FavNum=FavNum - "&Num_F&",PhotoNum=PhotoNum - "&Num_P&",TodayNum=TodayNum - "&TopicNum&" Where UserID="&DvBoke.BokeUserID)
'更新用户栏目数据
DvBoke.Execute("Update [Dv_Boke_UserCat] Set TopicNum = TopicNum - 1,PostNum = PostNum - "&PostNum&",TodayNum=TodayNum - "&TopicNum&" Where uCatID="&Rs("CatID"))
'删除主题
DvBoke.Execute("Delete From Dv_Boke_Topic Where TopicID = " & TopicID(i))
Num_T=0:Num_F=0:Num_L=0:Num_P=0
End If
Rs.Close:Set Rs=Nothing
Case 1
Set Rs=DvBoke.Execute("Select * From Dv_Boke_Topic Where UserID = "&DvBoke.UserID&" And TopicID = " & TopicID(i))
If Not (Rs.Eof And Rs.Bof) Then
TopicNum = 0
If DateDiff("d",Rs("PostTime"),Now()) = 0 Then TopicNum = 1
Select Case Rs("sType")
Case 0
Num_T = 1
Case 1
Num_F = 1
Case 2
Num_L = 1
Case 4
Num_P = 1
End Select
'移动包括其评论
Set tRs=DvBoke.Execute("Select * From Dv_Boke_Post Where RootID = " & TopicID(i))
PostNum = 0
tPostNum = 0
Do While Not tRs.Eof
PostNum = PostNum + 1
If DateDiff("d",tRs("JoinTime"),Now()) = 0 Then tPostNum = tPostNum + 1
'上传文件移动
If tRs("IsUpfile")=1 Then DvBoke.Execute("Update Dv_Boke_Upfile Set CatID = "&uCatID&",sType = "&sTypeID_a&" Where PostID = " & tRs("PostID"))
tRs.MoveNext
Loop
PostNum = PostNum - 1
tRs.Close:Set tRs=Nothing
TopicNum = TopicNum + tPostNum
DvBoke.Execute("UpDate Dv_Boke_Post Set CatID = "&uCatID&",sType = "&sTypeID_a&" Where RootID = " & TopicID(i))
'更新用户栏目数据
DvBoke.Execute("Update [Dv_Boke_UserCat] Set TopicNum = TopicNum - 1,PostNum = PostNum - "&PostNum&",TodayNum=TodayNum - "&TopicNum&" Where uCatID="&Rs("CatID"))
DvBoke.Execute("Update [Dv_Boke_UserCat] Set TopicNum = TopicNum + 1,PostNum = PostNum + "&PostNum&",TodayNum=TodayNum + "&TopicNum&" Where uCatID="&uCatID)
'移动主题
DvBoke.Execute("Update Dv_Boke_Topic Set CatID = "&uCatID&",sType = "&sTypeID_a&" Where TopicID = " & TopicID(i))
Num_T=0:Num_F=0:Num_L=0:Num_P=0
End If
Rs.Close:Set Rs=Nothing
End Select
End If
Next
'更新用户首页数据
Update_TopicToXml()
DvBoke.LoadSetup(1)
'更新系统缓存数据
DvBoke.ShowCode(50)
DvBoke.ShowMsg(2)
Page_UserInput_mTopic_Del = DvBoke.InputShowMsg
End Function

Function Page_UserInput_mPost()
Dim PageHtml,KeyWord,iKeyWord,iTopic
PageHtml = DvBoke.Page_Strings(22).text
Dim Rs,Sql
Dim Page,MaxRows,Endpage,CountNum,PageSearch
Endpage = 0
MaxRows = DvBoke.System_Setting(7)
Page = Request("Page")
If IsNumeric(Page) = 0 or Page="" Then Page=1
Page = Clng(Page)
KeyWord = Request("KeyWord")
If KeyWord <> "" Then
KeyWord = DvBoke.CheckStr(KeyWord)
iKeyWord = " And (Title Like '%"&KeyWord&"%' Or Content Like '%"&KeyWord&"%')"
End If

'字段排序 TopicID=0 ,CatID=1 ,sCatID=2 ,UserID=3 ,UserName=4 ,Title=5 ,Content=6 ,JoinTime=7 ,sType=8

Sql = "Select RootID,CatID,sCatID,UserID,UserName,Title,Content,JoinTime,sType,PostID,Content From Dv_Boke_Post Where UserID = "&DvBoke.UserID&" And (Not ParentID = 0) "&iKeyWord&" order by PostID Desc"
Set Rs = server.CreateObject ("adodb.recordset")
If Dv_Boke_InDvbbsData = 1 Then
Rs.Open Sql,Boke_Conn,1,1
Else
Rs.Open Sql,Conn,1,1
End If
DvBoke.SqlQueryNum = DvBoke.SqlQueryNum + 1
If Not Rs.eof Then
CountNum = Rs.RecordCount
If CountNum Mod MaxRows=0 Then
Endpage = CountNum \ MaxRows
Else
Endpage = CountNum \ MaxRows+1
End If
Rs.MoveFirst
If Page > Endpage Then Page = Endpage
If Page < 1 Then Page = 1
If Page >1 Then 
Rs.Move (Page-1) * MaxRows
End if
SQL=Rs.GetRows(MaxRows)
Else
DvBoke.ShowCode(48)
DvBoke.ShowMsg(2)
'Page_UserInput_mTopic = DvBoke.InputShowMsg
'Exit Function
End If
Rs.close:Set Rs = Nothing
Dim i,Temp,Temp1
If DvBoke.InputShowMsg = "" Then
For i=0 To Ubound(SQL,2)
Temp1 = DvBoke.Page_Strings(23).text
Temp1 = Replace(Temp1,"{$EditID}",Sql(9,i))
Temp1 = Replace(Temp1,"{$topicid}",Sql(0,i))
Temp1 = Replace(Temp1,"{$postid}",Sql(9,i))
If Sql(5,i) = "" Or IsNull(Sql(5,i)) Then
If strLength(Sql(10,i)) > 24 Then Sql(10,i) = CutStr(Sql(10,i),24) & "..."
iTopic = Server.HtmlEncode(Sql(10,i))
Else
If strLength(Sql(5,i)) > 24 Then Sql(5,i) = CutStr(Sql(5,i),24) & "..."
iTopic = Server.HtmlEncode(Sql(5,i))
End If
Temp1 = Replace(Temp1,"{$Topic}",iTopic)
Temp1 = Replace(Temp1,"{$DateTime}",FormatDateTime(Sql(7,i),2) & " " & FormatDateTime(Sql(7,i),4))
Temp1 = Replace(Temp1,"{$cat}",Sql(4,i))
Temp = Temp & Temp1
Next
Else
Temp = DvBoke.InputShowMsg
End If

PageHtml = Replace(PageHtml,"{$InfoList}",Temp)
PageHtml = Replace(PageHtml,"{$Page}",Page)
PageHtml = Replace(PageHtml,"{$MaxRows}",MaxRows)
PageHtml = Replace(PageHtml,"{$CountNum}",CountNum)
PageSearch = "KeyWord="&KeyWord&"&s=2"
PageHtml = Replace(PageHtml,"{$PageSearch}",PageSearch)
If Is_Isapi_Rewrite = 0 Then DvBoke.ModHtmlLinked = "boke.asp?"
PageHtml = Replace(PageHtml,"{$bokeurl}",DvBoke.ModHtmlLinked)
PageHtml = Replace(PageHtml,"{$bokename}",DvBoke.BokeName)
PageHtml = Replace(PageHtml,"{$KeyWord}",KeyWord)
PageHtml = Replace(PageHtml,"{$t}",sTypeID)

Temp = ""
Set Rs=DvBoke.Execute("Select * From Dv_Boke_UserCat Where UserID = " & DvBoke.UserID)
If Not (Rs.Eof And Rs.Bof) Then
Do While Not Rs.Eof
Temp = Temp & "<Option value="""&Rs("uCatID")&""">"&Server.HtmlEncode(Rs("uCatTitle")&"")&"</Option>"
Rs.MoveNext
Loop
PageHtml = Replace(PageHtml,"{$uCatList}",Temp)
Else
PageHtml = Replace(PageHtml,"{$uCatList}","")
End If
Rs.Close:Set Rs=Nothing
Page_UserInput_mPost = PageHtml
End Function

Function Page_UserInput_mPost_Del()
Dim TopicID,iTopic,i,Rs,Sql,tRs,PostNum,tPostNum,TopicNum
TopicID = Request("TopicID")
iTopic = Request("iTopic")
If TopicID = "" Or iTopic = "" Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserInput_mPost_Del = DvBoke.InputShowMsg
Exit Function
End If
If Not IsNumeric(iTopic) Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserInput_mPost_Del = DvBoke.InputShowMsg
Exit Function
End If
iTopic = Cint(iTopic)
If iTopic <> 0 Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserInput_mPost_Del = DvBoke.InputShowMsg
Exit Function
End If
TopicID = Replace(TopicID," ","")
TopicID = Split(TopicID,",")

For i = 0 To Ubound(TopicID)
If IsNumeric(TopicID(i)) Then
'删除评论
Set Rs=DvBoke.Execute("Select * From Dv_Boke_Post Where PostID = " & TopicID(i))
tPostNum = 0
If Not (Rs.Eof And Rs.Bof) Then
If DateDiff("d",Rs("JoinTime"),Now()) = 0 Then tPostNum = 1
'更新系统数据
DvBoke.Execute("Update [Dv_Boke_SysCat] Set PostNum = PostNum - 1,TodayNum = TodayNum - "&tPostNum&" Where sCatID in ("&Rs("sCatID")&","&DvBoke.BokeNode.getAttribute("syscatid")&")")


DvBoke.Execute("Update [Dv_Boke_System] Set S_PostNum = S_PostNum - 1,S_TodayNum = S_TodayNum - "&tPostNum)
'更新用户总数据
DvBoke.Execute("Update [Dv_Boke_User] Set PostNum = PostNum - 1,TodayNum=TodayNum - "&tPostNum&" Where UserID="&DvBoke.BokeUserID)
'更新用户栏目数据
DvBoke.Execute("Update [Dv_Boke_UserCat] Set PostNum = PostNum - 1,TodayNum=TodayNum - "&tPostNum&" Where uCatID="&Rs("CatID"))
'上传文件清理
If Rs("IsUpfile")=1 Then DvBoke.SysDeleteFile(Rs("PostID"))
'更新主题数据
DvBoke.Execute("UpDate [Dv_Boke_Topic] Set Child=Child-1 Where TopicID = " & Rs("RootID"))
DvBoke.Execute("Delete From Dv_Boke_Post Where PostID = " & TopicID(i))
End If
Rs.Close:Set Rs=Nothing
End If
Next
'更新用户首页数据
Update_TopicToXml()
DvBoke.LoadSetup(1)
'更新系统缓存数据
DvBoke.ShowCode(50)
DvBoke.ShowMsg(0)
'Page_UserInput_mPost_Del = DvBoke.InputShowMsg
End Function

Sub Page_UserSetting()
Dim PageHtml,UserPageHtml
PageHtml = DvBoke.Page_Strings(6).text
Select Case t
Case "1"
If Request.QueryString("Action") = "Save" Then
Page_UserSetting_Info_Save()
Else
UserPageHtml = Page_UserSetting_Info()
End If
Case "2"
If Request.QueryString("Action") = "Save" Then
Page_UserSetting_Pass_Save()
Else
UserPageHtml = Page_UserSetting_Pass()
End If
Case "3"
If Request.QueryString("Action") = "Save" Then
Page_UserSetting_Set_Save()
Else
UserPageHtml = Page_UserSetting_Set()
End If
Case "4"
If Request.QueryString("Action") = "Save" Then
Page_UserSetting_Key_Save()
ElseIf Request.QueryString("Action") = "Del" Then
Page_UserSetting_Key_Del()
Else
UserPageHtml = Page_UserSetting_Key()
End If
Case Else
If Request.QueryString("Action") = "Save" Then
Page_UserSetting_Info_Save()
Else
UserPageHtml = Page_UserSetting_Info()
End If
End Select
PageHtml = Replace(PageHtml,"{$UserSettingInfo}",UserPageHtml)
Response.Write PageHtml
End Sub

Function Page_UserSetting_Info()
Dim PageHtml
PageHtml = DvBoke.Page_Strings(7).text
PageHtml = Replace(PageHtml,"{$BokeName}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("bokename")&""))
PageHtml = Replace(PageHtml,"{$NickName}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("nickname")&""))
PageHtml = Replace(PageHtml,"{$BokeTitle}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("boketitle")&""))
PageHtml = Replace(PageHtml,"{$BokeCTitle}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("bokechildtitle")&""))
PageHtml = Replace(PageHtml,"{$BokeNote}",Server.HtmlEncode(DvBoke.BokeNode.getAttribute("bokenote")&""))
Page_UserSetting_Info = PageHtml
End Function

Sub Page_UserSetting_Info_Save()
Dim NickName,BokeTitle,BokeCTitle,BokeNote
If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2):DvBoke.ShowMsg(0)
NickName = Request.Form("NickName")
BokeTitle = Request.Form("BokeTitle")
BokeCTitle = Request.Form("BokeCTitle")
BokeNote = Request.Form("BokeNote")

If NickName = "" or strLength(NickName)>50 or strLength(NickName)<1 Then
DvBoke.ShowCode(8)
Else
NickName = Server.Htmlencode(NickName)
End If
If BokeTitle = "" or strLength(BokeTitle)>150 or strLength(BokeTitle)<1 Then
DvBoke.ShowCode(12)
Else
BokeTitle = Server.Htmlencode(BokeTitle)
End If
If BokeCTitle = "" or strLength(BokeCTitle)>250 or strLength(BokeCTitle)<1 Then
DvBoke.ShowCode(12)
Else
BokeCTitle = Server.Htmlencode(BokeCTitle)
End If
If BokeNote <> "" Then
If CheckText(BokeNote) = False Then
DvBoke.ShowCode(9)
Else
BokeNote = Server.Htmlencode(BokeNote)
End If
End If
If CheckText(NickName) = False Then DvBoke.ShowCode(9)
DvBoke.ShowMsg(0)

Dim Rs,SQL
Sql  = "Select * From [Dv_Boke_User] Where UserID = " & DvBoke.BokeUserID
If Not IsObject(Boke_Conn) Then Boke_ConnectionDatabase
Set Rs=Server.CreateObject("Adodb.RecordSet")
Rs.Open Sql,Boke_Conn,1,3
If Lcase(Rs("NickName")) <> Lcase(NickName) Then
'更新主题表
DvBoke.Execute("Update Dv_Boke_Topic Set UserName = '"&DvBoke.CheckStr(NickName)&"' Where UserID = " & DvBoke.BokeUserID)
'更新帖子表
DvBoke.Execute("Update Dv_Boke_Post Set UserName = '"&DvBoke.CheckStr(NickName)&"' Where UserID = " & DvBoke.BokeUserID)
'更新上传表
DvBoke.Execute("Update Dv_Boke_Upfile Set UserName = '"&DvBoke.CheckStr(NickName)&"' Where UserID = " & DvBoke.BokeUserID)
End If
Rs("NickName") = NickName
Rs("BokeTitle") = BokeTitle
Rs("BokeChildTitle") = BokeCTitle
Rs("BokeNote") = BokeNote
Rs.Update
Rs.Close
Set Rs=Nothing
'更新用户首页数据
Update_TopicToXml()
DvBoke.LoadSetup(1)
DvBoke.ShowCode(16)
DvBoke.ShowMsg(0)
End Sub

Function Page_UserSetting_Pass()
Page_UserSetting_Pass = DvBoke.Page_Strings(8).text
End Function

Sub Page_UserSetting_Pass_Save()
Dim PassWord,nPassWord,rnPassWord
If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2):DvBoke.ShowMsg(0)
PassWord = Request.Form("PassWord")
nPassWord = Request.Form("nPass")
rnPassWord = Request.Form("rnPass")

If PassWord = "" Or nPassWord = "" Or rnPassWord = "" Then
DvBoke.ShowCode(11)
End If
If nPassWord <> rnPassWord Then
DvBoke.ShowCode(17)
End If
nPassWord = MD5(nPassWord,16)
PassWord = MD5(PassWord,16)
DvBoke.ShowMsg(0)

Dim Rs
Set Rs = DvBoke.Execute("Select PassWord From Dv_Boke_User Where UserID = " & DvBoke.UserID)
If PassWord <> Rs(0) Then
DvBoke.ShowCode(15)
DvBoke.ShowMsg(0)
End If
Rs.Close : Set Rs = Nothing
DvBoke.Execute("Update Dv_Boke_User Set [PassWord]='"&nPassWord&"' Where UserID = " & DvBoke.UserID)
DvBoke.ShowCode(18)
DvBoke.ShowMsg(0)
End Sub

Function Page_UserSetting_Set()
Dim PageHtml,i,Rs,PageHtml_Str
PageHtml = DvBoke.Page_Strings(9).text
For i = 0 To 50
PageHtml = Replace(PageHtml,"{$Setting"&i&"}",DvBoke.BokeSetting(i))
Next
Set Rs = DvBoke.Execute("Select * From Dv_Boke_SysCat Where sType = 0 Order By sCatID")
Do While Not Rs.Eof
PageHtml_Str = PageHtml_Str & "<Option value="""&Rs("sCatID")&""" "
If Cint(DvBoke.BokeNode.getAttribute("syscatid")) = Rs("sCatID") Then PageHtml_Str = PageHtml_Str & "selected"
PageHtml_Str = PageHtml_Str & ">"&Rs("sCatTitle")&"</Option>"
Rs.MoveNext
Loop
Rs.Close
Set Rs=Nothing
PageHtml = Replace(PageHtml,"{$CatList}",PageHtml_Str)
Page_UserSetting_Set = PageHtml
End Function

Sub Page_UserSetting_Set_Save()
Dim iSetting,BokeSetting,i
Dim SysCatID
SysCatID = Request.Form("SysCatID")
If SysCatID = "" Or Not IsNumeric(SysCatID) Then SysCatID = 1
SysCatID = Clng(SysCatID)
For i = 0 To 50
If Trim(Request.Form("Setting"&i)) = "" Then
iSetting= 1
Else
iSetting = Replace(Trim(Request.Form("Setting"&i)),",","")
End If
If i < 12 Then
If Not IsNumeric(iSetting) Then
DvBoke.ShowCode(9)
Exit For
End If
End If
If i = 0 Then
BokeSetting = iSetting
Else
BokeSetting = BokeSetting & "," & iSetting
End If
Next
DvBoke.ShowMsg(0)
BokeSetting = DvBoke.CheckStr(BokeSetting)
BokeSetting = Server.HtmlEncode(BokeSetting)
BokeSetting = Dv_FilterJS(BokeSetting)

'当用户所选系统分类改变时相应更新分类用户数
If DvBoke.BokeNode.getAttribute("syscatid")<>SysCatID Then
DvBoke.Execute("Update Dv_Boke_SysCat Set ucatnum = ucatnum - 1 Where scatid = " & DvBoke.BokeNode.getAttribute("syscatid"))
DvBoke.Execute("Update Dv_Boke_SysCat Set ucatnum = ucatnum + 1 Where scatid = " & SysCatID)

DvBoke.Update_SysCat DvBoke.BokeNode.getAttribute("syscatid"),-1,0,0,0,Null
DvBoke.Update_SysCat SysCatID,1,0,0,0,Null
DvBoke.SaveSystemCache()
End If

DvBoke.Execute("Update Dv_Boke_User Set BokeSetting = '"&BokeSetting&"',SysCatID = "&SysCatID&" Where UserID = " & DvBoke.BokeUserID)

DvBoke.ShowCode(19)
DvBoke.ShowMsg(0)
End Sub

Function Page_UserSetting_Key()
Dim PageHtml,PageHtml_Str,Rs
PageHtml = DvBoke.Page_Strings(10).text
If Request("KeyID")<>"" And IsNumeric(Request("KeyID")) Then
Set Rs = DvBoke.Execute("Select * From Dv_Boke_KeyWord Where KeyID = " & Request("KeyID") & " And UserID = " & DvBoke.UserID)
If Not (Rs.Eof And Rs.Bof) Then
PageHtml = Replace(PageHtml,"{$KeyID}",Rs("KeyID"))
PageHtml = Replace(PageHtml,"{$KeyWord}",Rs("KeyWord"))
PageHtml = Replace(PageHtml,"{$nKeyWord}",Rs("nKeyWord"))
PageHtml = Replace(PageHtml,"{$LinkUrl}",Rs("LinkUrl") & "")
If Rs("NewWindows")=1 Then
PageHtml = Replace(PageHtml,"{$NewWindows}","checked")
Else
PageHtml = Replace(PageHtml,"{$NewWindows}","")
End If
PageHtml = Replace(PageHtml,"{$LinkTitle}",Rs("LinkTitle") & "")
End If
Rs.Close
Set Rs = Nothing
End If
PageHtml = Replace(PageHtml,"{$KeyID}","0")
PageHtml = Replace(PageHtml,"{$KeyWord}","")
PageHtml = Replace(PageHtml,"{$nKeyWord}","")
PageHtml = Replace(PageHtml,"{$LinkUrl}","")
PageHtml = Replace(PageHtml,"{$NewWindows}","checked")
PageHtml = Replace(PageHtml,"{$LinkTitle}","")
Set Rs = DvBoke.Execute("Select * From Dv_Boke_KeyWord Where UserID = " & DvBoke.UserID & " Order By KeyID")
If Not (Rs.Eof And Rs.Bof) Then
Do While Not Rs.Eof
PageHtml_Str = PageHtml_Str & "<ul>"
PageHtml_Str = PageHtml_Str & "<li class=""Set33"">"&Rs("KeyWord")&"</li>"
PageHtml_Str = PageHtml_Str & "<li class=""Set33"">"&Rs("nKeyWord")&"</li>"
PageHtml_Str = PageHtml_Str & "<li class=""Set44""><a href="""&Rs("LinkUrl")&""" target=""_blank"" title="""&Server.HtmlEncode(Rs("LinkTitle")&"")&""">"&Left(Rs("LinkUrl"),25)&"</a></li>"
PageHtml_Str = PageHtml_Str & "<li class=""Set55""><a href=""?s=5&t=4&KeyID="&Rs("KeyID")&""">编辑</a>&nbsp;&nbsp;<a href=""#"" onclick=""alertreadme('您确定删除关键字 "&Rs("KeyWord")&" 吗?','?s=5&t=4&Action=Del&KeyID="&Rs("KeyID")&"')"">删除</a></li>"
PageHtml_Str = PageHtml_Str & "</ul>"
Rs.MoveNext
Loop
End If
Rs.Close
Set Rs=Nothing
PageHtml = Replace(PageHtml,"{$KeyWordList}",PageHtml_Str)
Page_UserSetting_Key = PageHtml
End Function

Sub Page_UserSetting_Key_Save()
Dim KeyID,KeyWord,nKeyWord,LinkUrl,LinkTitle,NewWindows
Dim Rs
KeyID = Request.Form("KeyID")
KeyWord = Replace(DvBoke.CheckStr(Request.Form("KeyWord")),"|","")
nKeyWord = Replace(DvBoke.CheckStr(Request.Form("nKeyWord")),"|","")
LinkUrl = DvBoke.CheckStr(Request.Form("LinkUrl"))
LinkTitle = DvBoke.CheckStr(Request.Form("LinkTitle"))
NewWindows = Request.Form("NewWindows")

If KeyID = "" Or Not IsNumeric(KeyID) Then KeyID = 0
KeyID = cCur(KeyID)
If NewWindows = "" Or Not IsNumeric(NewWindows) Then NewWindows = 0
NewWindows = Cint(NewWindows)
If KeyWord = "" Or nKeyWord = "" Then
DvBoke.ShowCode(20)
Else
KeyWord = Server.HtmlEncode(KeyWord)
nKeyWord = Server.HtmlEncode(nKeyWord)
End If
If LinkUrl <> "" Then LinkUrl = Server.HtmlEncode(Dv_FilterJS(LinkUrl))
If LinkTitle <> "" Then LinkTitle = Server.HtmlEncode(Dv_FilterJS(LinkTitle))
DvBoke.ShowMsg(0)
If KeyID > 0 Then
Set Rs = DvBoke.Execute("Select KeyID From Dv_Boke_KeyWord Where (Not KeyID = "&KeyID&") And UserID = "&DvBoke.UserID&" And KeyWord = '"&KeyWord&"'")
If Not (Rs.Eof And Rs.Bof) Then
DvBoke.ShowCode(22)
DvBoke.ShowMsg(0)
End If
Rs.Close
Set Rs = Nothing
DvBoke.Execute("Update Dv_Boke_KeyWord Set KeyWord = '"&KeyWord&"',nKeyWord = '"&nKeyWord&"',LinkUrl = '"&LinkUrl&"',LinkTitle = '"&LinkTitle&"',NewWindows = "&NewWindows&" Where KeyID = " & KeyID & " And UserID = " & DvBoke.UserID)
Else
Set Rs = DvBoke.Execute("Select KeyID From Dv_Boke_KeyWord Where UserID = "&DvBoke.UserID&" And KeyWord = '"&KeyWord&"'")
If Not (Rs.Eof And Rs.Bof) Then
DvBoke.ShowCode(22)
DvBoke.ShowMsg(0)
End If
Rs.Close
Set Rs = Nothing
DvBoke.Execute("Insert Into Dv_Boke_KeyWord (KeyWord,nKeyWord,LinkUrl,LinkTitle,NewWindows,UserID) Values ('"&KeyWord&"','"&nKeyWord&"','"&LinkUrl&"','"&LinkTitle&"',"&NewWindows&","&DvBoke.UserID&")")
End If
DvBoke.ShowCode(21)
DvBoke.ShowMsg(0)
End Sub

Sub Page_UserSetting_Key_Del()
Dim KeyID
KeyID = Request("KeyID")
If KeyID = "" Or Not IsNumeric(KeyID) Then KeyID = 0
KeyID = cCur(KeyID)
DvBoke.Execute("Delete From Dv_Boke_KeyWord Where KeyID = "&KeyID&" And UserID = " & DvBoke.UserID)
DvBoke.ShowCode(23)
DvBoke.ShowMsg(0)
End Sub

'风格模板列表
Sub Page_SkinSetting()
Dim Rs,Sql
Dim Page,MaxRows,Endpage,CountNum,PageSearch
Dim PageHtml

PageHtml = DvBoke.Page_Strings(18).text
Endpage = 0
MaxRows = 9
Page = Request("Page")
If IsNumeric(Page) = 0 or Page="" Then Page=1
Page = Clng(Page)

'S_ID=0 ,S_SkinName=1 ,S_Path=2 ,S_ViewPic=3 ,S_Info=4 ,S_Builder=5
Sql = "Select S_ID,S_SkinName,S_Path,S_ViewPic,S_Info,S_Builder From [Dv_Boke_Skins] "
'Set Rs = DvBoke.Execute(Sql)
Set Rs = server.CreateObject ("adodb.recordset")
If Dv_Boke_InDvbbsData = 1 Then
Rs.Open Sql,Boke_Conn,1,1
Else
Rs.Open Sql,Conn,1,1
End If
DvBoke.SqlQueryNum = DvBoke.SqlQueryNum + 1
If Not Rs.eof Then
CountNum = Rs.RecordCount
If CountNum Mod MaxRows=0 Then
Endpage = CountNum \ MaxRows
Else
Endpage = CountNum \ MaxRows+1
End If
Rs.MoveFirst
If Page > Endpage Then Page = Endpage
If Page < 1 Then Page = 1
If Page >1 Then 
Rs.Move (Page-1) * MaxRows
End if
SQL=Rs.GetRows(MaxRows)
Else
DvBoke.ShowCode(28)
DvBoke.ShowMsg(0)
Exit Sub
End If
Rs.close:Set Rs = Nothing
Dim i,ii,Temp1,Temp2,TempHtml,ViewLogo
PageSearch = "s=4"

Temp2 = DvBoke.Page_Strings(20).text

For i=0 To Ubound(SQL,2)
Temp1 = DvBoke.Page_Strings(19).text
If SQL(3,i)<>"" or not IsNull(SQL(3,i)) Then
ViewLogo = SQL(3,i)
Else
ViewLogo = "boke/images/viewskins.png"
End If
Temp1 = Replace(Temp1,"{$ViewLogo}",ViewLogo)
Temp1 = Replace(Temp1,"{$S_Name}",SQL(1,i))
Temp1 = Replace(Temp1,"{$S_id}",SQL(0,i))

TempHtml = TempHtml & Temp1

If ii=3 Then
TempHtml = TempHtml & Temp2
ii=0
Else
ii=ii+1
End If
Next

PageHtml = Replace(PageHtml,"{$skin_list}",TempHtml)
PageHtml = Replace(PageHtml,"{$S_id}",DvBoke.BokeNode.getAttribute("skinid"))
PageHtml = Replace(PageHtml,"{$Page}",Page)
PageHtml = Replace(PageHtml,"{$MaxRows}",MaxRows)
PageHtml = Replace(PageHtml,"{$CountNum}",CountNum)
PageHtml = Replace(PageHtml,"{$PageSearch}",PageSearch)
Response.Write PageHtml
End Sub

'保存模板风格设置
Sub Page_SaveSkins()
Dim Skinid
Skinid = Request.Form("Skinid")
If Not DvBoke.ChkPost() Then DvBoke.ShowCode(2)
If DvBoke.CheckNumeric(Skinid) = 0 Then
DvBoke.ShowCode(4)
End If
DvBoke.ShowMsg(0)
Dim Rs,Sql
Set Rs = DvBoke.Execute("Select S_ID From Dv_Boke_Skins Where S_ID="&Skinid)
If Not Rs.Eof Then
DvBoke.Execute("Update Dv_Boke_User Set Skinid="&Skinid&" where UserID="&DvBoke.UserID)
DvBoke.ShowCode(29)
Else
DvBoke.ShowCode(4)
End If
DvBoke.ShowMsg(0)
End Sub

Sub Page_UserFile()
Dim PageHtml,mStr,KeyWord,iKeyWord,iFileType
Dim Sql,Rs,TopicHtml,i,Title,ii
Dim Page,MaxRows,Endpage,CountNum,PageSearch
Endpage = 0
MaxRows = Cint(DvBoke.BokeSetting(7))
'MaxRows = 2
Page = Request("Page")
If IsNumeric(Page) = 0 or Page="" Then Page=1
Page = Clng(Page)
PageHtml = DvBoke.Page_Strings(24).text
KeyWord = DvBoke.CheckStr(Request("keyword"))
If KeyWord <> "" Then iKeyWord = " And (Title Like '%"&KeyWord&"%' Or sFileName Like '%"&KeyWord&"%')"
Select Case m
Case "1"
mStr = "所有"
Case "2"
mStr = "图片"
iFileType = " And FileType = 1"
Case "3"
mStr = "压缩"
iFileType = " And FileType = 5"
Case "4"
mStr = "文档"
iFileType = " And FileType = 6"
Case "5"
mStr = "媒体"
iFileType = " And FileType In (2,3,4)"
Case Else
mStr = "所有"
End Select
Sql = "Select ID,BokeUserID,UserName,CatID,sType,TopicID,PostID,IsTopic,Title,FileName,FileType,FileSize,FileNote,DownNum,ViewNum,DateAndTime,PreviewImage,IsLock,sFileName From Dv_Boke_Upfile where Userid="&DvBoke.BokeUserID&" "&iFileType&" "&iKeyWord&" order by DateAndTime Desc"
'Response.Write sql
PageHtml = Replace(PageHtml,"{$ActionInfo}",mStr)
PageHtml = Replace(PageHtml,"{$KeyWord}",KeyWord)
If Request("Action")="Del" Then
PageHtml = Replace(PageHtml,"{$topiclist}",Page_UserFile_Del())
Response.Write PageHtml
Exit Sub
End If

Set Rs = server.CreateObject ("adodb.recordset")
If Dv_Boke_InDvbbsData = 1 Then
Rs.Open Sql,Boke_Conn,1,1
Else
Rs.Open Sql,Conn,1,1
End If
DvBoke.SqlQueryNum = DvBoke.SqlQueryNum + 1
If Not Rs.eof Then
CountNum = Rs.RecordCount
If CountNum Mod MaxRows=0 Then
Endpage = CountNum \ MaxRows
Else
Endpage = CountNum \ MaxRows+1
End If
Rs.MoveFirst
If Page > Endpage Then Page = Endpage
If Page < 1 Then Page = 1
If Page >1 Then 
Rs.Move (Page-1) * MaxRows
End if
SQL=Rs.GetRows(MaxRows)
Else
DvBoke.ShowCode(48)
DvBoke.ShowMsg(2)
TopicHtml = DvBoke.InputShowMsg
End If
Rs.close:Set Rs = Nothing

If TopicHtml = "" Then
Dim Temp,Temp2
Temp2 = DvBoke.Page_Strings(27).text
Dim ViewFile
If Not IsNumeric(DvBoke.System_Setting(9)) Then
DvBoke.System_Setting(9) = 3
Else
DvBoke.System_Setting(9) = Cint(DvBoke.System_Setting(9))
End If
For i=0 To Ubound(SQL,2)
TopicHtml = DvBoke.Page_Strings(26).text
Title = Sql(8,i)
If Len(Title)>150 Then
Title = Left(Title,150) &"......"
End If
If Title = "" Or IsNull(Title) Then
If Sql(18,i)<>"" Then
Title = Sql(18,i)
Else
Title = Split(Sql(9,i),"/")(2)
End If
End If

ViewFile = Sql(16,i)
If ViewFile="" or IsNull(ViewFile) Then
ViewFile = Sql(9,i)
End If
ViewFile = DvBoke.System_UpSetting(19) & ViewFile
If Sql(10,i) <> 1 Then
ViewFile = "boke/images/info.gif"
End If
TopicHtml = Replace(TopicHtml,"{$ViewPhoto}",ViewFile)
If Sql(17,i) = 4 Then
Title = "未曾使用"
TopicHtml = Replace(TopicHtml,"{$topic}",DvBoke.HTMLEncode(Title))
Else
If Sql(7,i)=0 Then
TopicHtml = Replace(TopicHtml,"{$topic}","<a href="""&DvBoke.ModHtmlLinked&DvBoke.BokeName&".showtopic."&Sql(5,i)&".html"" target=""_blank"">" & DvBoke.HTMLEncode(Title) & "</a>")
ElseIf Sql(7,i)=1 Then
TopicHtml = Replace(TopicHtml,"{$topic}","<a href="""&DvBoke.ModHtmlLinked&DvBoke.BokeName&".showtopic."&Sql(5,i)&"."&Sql(6,i)&".html"" target=""_blank"">" & DvBoke.HTMLEncode(Title) & "</a>")
Else
TopicHtml = Replace(TopicHtml,"{$topic}",DvBoke.HTMLEncode(Title))
End If
End If
TopicHtml = Replace(TopicHtml,"{$PostDate}",FormatDateTime(Sql(15,i),1))
TopicHtml = Replace(TopicHtml,"{$PostUserName}",Sql(2,i))
TopicHtml = Replace(TopicHtml,"{$TopicID}",Sql(5,i))
TopicHtml = Replace(TopicHtml,"{$fileid}",Sql(0,i))
Temp = Temp & TopicHtml
If ii >= Cint(DvBoke.System_Setting(9))-1 Then
Temp = Temp & Temp2
ii = 0
Else
ii = ii+1
End If
Next
Temp = Replace(Temp,"{$width}",Dvboke.System_UpSetting(14))
Temp = Replace(Temp,"{$height}",Dvboke.System_UpSetting(15))
PageHtml = Replace(PageHtml,"{$topiclist}",DvBoke.Page_Strings(25).text)
PageHtml = Replace(PageHtml,"{$photo_list}",Temp)
Else
PageHtml = Replace(PageHtml,"{$topiclist}",TopicHtml)
End If
PageSearch = "s=3&m="&m&"&keyword="&keyword
PageHtml = Replace(PageHtml,"{$Page}",Page)
PageHtml = Replace(PageHtml,"{$MaxRows}",MaxRows)
PageHtml = Replace(PageHtml,"{$CountNum}",CountNum)
PageHtml = Replace(PageHtml,"{$PageSearch}",PageSearch)
PageHtml = Replace(PageHtml,"{$bokename}",DvBoke.BokeName)
PageHtml = Replace(PageHtml,"{$bokeurl}",DvBoke.ModHtmlLinked)

Response.Write PageHtml
End Sub

Function Page_UserFile_Del()
Dim FileID,iTopic,i,Rs,tRs
Dim PostContent,objFSO,FilePath,ViewFilepath,IsUpfile
'On Error Resume Next
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
FilePath = DvBoke.System_UpSetting(19)
FileID = Request("fileid")
iTopic = Request("iTopic")
If FileID = "" Or iTopic = "" Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserFile_Del = DvBoke.InputShowMsg
Exit Function
End If
If Not IsNumeric(iTopic) Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserFile_Del = DvBoke.InputShowMsg
Exit Function
End If
iTopic = Cint(iTopic)
If iTopic <> 0 Then
DvBoke.ShowCode(9)
DvBoke.ShowMsg(2)
Page_UserFile_Del = DvBoke.InputShowMsg
Exit Function
End If
FileID = Replace(FileID," ","")
FileID = Split(FileID,",")

For i = 0 To Ubound(FileID)
If IsNumeric(FileID(i)) Then
Set Rs=DvBoke.Execute("Select * From Dv_Boke_Upfile Where BokeUserID = " & DvBoke.BokeUserID & " And ID = " & FileID(i))
If Not (Rs.Eof And Rs.Bof) Then
'如关联帖子,则更新相应数据
If (Rs("IsTopic")=0 Or Rs("IsTopic")=1) And Rs("PostID")>0 Then
Set tRs=DvBoke.Execute("Select * From Dv_Boke_Post Where PostID=" & Rs("PostID"))
If Not (tRs.Eof And tRs.Bof) Then
IsUpfile = 0
PostContent = tRs("Content")
PostContent = Replace(PostContent,"[upload="&Split(Rs("FileName"),".")(1)&"]"&Rs("FileName")&"[/upload]","")
PostContent = DvBoke.CheckStr(PostContent)
If InStr(PostContent,"[/upload]") > 0 Then IsUpfile = 1
DvBoke.Execute("Update Dv_Boke_Post Set Content = '" & PostContent & "',IsUpfile="&IsUpfile&" Where PostID = " & Rs("PostID"))
End If
tRs.Close:Set tRs=Nothing
End If
'删除附件
If DvBoke.SysObjFso=True Then
If objFSO.FileExists(Server.MapPath(FilePath & Rs("FileName"))) Then
objFSO.DeleteFile(Server.MapPath(FilePath & Rs("FileName")))
End If
ViewFilepath = Rs("PreviewImage")
IF Not IsNull(ViewFilepath) And ViewFilepath<>"" Then
ViewFilepath=Replace(ViewFilepath,"..","")
If objFSO.FileExists(Server.MapPath(ViewFilepath)) Then
objFSO.DeleteFile(Server.MapPath(ViewFilepath))
End If
End IF
End If
'删除附件表记录
DvBoke.Execute("Delete From Dv_Boke_Upfile Where ID = " & Rs("ID"))
End If
Rs.Close:Set Rs=Nothing
End If
Next
DvBoke.ShowCode(51)
DvBoke.ShowMsg(2)
Page_UserFile_Del = DvBoke.InputShowMsg
End Function

'个人博客数据更新或统计
Sub Page_Count()
Dim PageHtml
PageHtml = DvBoke.Page_Strings(28).text
Select Case t
Case "1"
Update_UserNickName()
Case "2"
Update_UserCatData()
Case "3"
Update_UserBokeData()
Case Else
End Select
Response.Write PageHtml
End Sub

'更新用户笔名
Sub Update_UserNickName()
Dim Sql
'[Dv_Boke_Topic]
Sql = "Update [Dv_Boke_Topic] Set UserName = '"&DvBoke.CheckStr(DvBoke.BokeUserName)&"' Where UserID="&DvBoke.BokeUserID
DvBoke.Execute Sql
DvBoke.ShowCode("主题信息更新完成！")
'[Dv_Boke_Upfile]
Sql = "Update [Dv_Boke_Upfile] Set UserName = '"&DvBoke.CheckStr(DvBoke.BokeUserName)&"' Where UserID="&DvBoke.BokeUserID
DvBoke.Execute Sql
DvBoke.ShowCode("上传文件信息更新完成！")
'[Dv_Boke_Post]
Sql = "Update [Dv_Boke_Post] Set UserName = '"&DvBoke.CheckStr(DvBoke.BokeUserName)&"' Where UserID="&DvBoke.BokeUserID
DvBoke.Execute Sql
DvBoke.ShowCode("回复信息更新完成！")
DvBoke.ShowMsg(0)
End Sub
'更新栏目数据
Sub Update_UserCatData()
Dim Rs,Sql,DayStr
Dim ChildNode,uCatID
Dim TopicNum,PostNum,TodayNum,LastUpTime
If Dv_Boke_DataBase = 1 Then
DayStr = "d"
Else
DayStr = "'d'"
End If
If DvBoke.BokeCatNode.length>0 Then
For Each ChildNode In DvBoke.BokeCatNode
uCatID = DvBoke.CheckNumeric(ChildNode.getAttribute("ucatid"))
If uCatID>0 Then
TopicNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Topic] Where CatID = "&uCatID)(0)
PostNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Post] Where ParentID>0 and CatID = "&uCatID)(0)
TodayNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Post] Where CatID = "&uCatID&" and DateDiff("&DayStr&",JoinTime,"&bSqlNowString&") = 0")(0)

'Response.Write "Select Top 1 JoinTime From [Dv_Boke_Post] Where CatID = "&uCatID&" order by JoinTime,postid desc"

Set Rs = DvBoke.Execute("Select Top 1 JoinTime From [Dv_Boke_Post] Where CatID = "&uCatID&" order by JoinTime desc")
If Rs.Eof Then
LastUpTime = Now()
Else
LastUpTime = Rs(0)
End If
Rs.Close
ChildNode.attributes.getNamedItem("topicnum").text = TopicNum
ChildNode.attributes.getNamedItem("postnum").text = PostNum
ChildNode.attributes.getNamedItem("todaynum").text = TodayNum
ChildNode.attributes.getNamedItem("lastuptime").text = LastUpTime
DvBoke.Execute("Update Dv_Boke_UserCat Set TopicNum="&TopicNum&",PostNum="&PostNum&",TodayNum="&TodayNum&",LastUpTime = '"&LastUpTime&"' where  uCatID = "&uCatID)
DvBoke.ShowCode("["&ChildNode.getAttribute("ucattitle")&"] 更新完成：主题共 "&TopicNum&" 篇，评论共 "&PostNum&" 篇，今日帖共 "&TodayNum&" 篇； ")
End If
Next
DvBoke.Execute("Update Dv_Boke_User set XmlData = '"&Replace(DvBoke.BokeCat.documentElement.xml,"'","''")&"' where UserID="&DvBoke.BokeUserID)
End If
DvBoke.ShowCode(DvBoke.BokeCatNode.length&" 个分栏更新完成！")
DvBoke.ShowMsg(0)
End Sub
'更新个人博客总数据
Sub Update_UserBokeData()
'[Dv_Boke_User]
Dim DayStr,Rs
Dim TopicNum,FavNum,PhotoNum,PostNum,TodayNum,LastUpTime,SpaceSize
TopicNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Topic] Where sType=0 and UserID = "&DvBoke.BokeUserID)(0)
FavNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Topic] Where sType=1 and UserID = "&DvBoke.BokeUserID)(0)
PhotoNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Topic] Where sType=4 and UserID = "&DvBoke.BokeUserID)(0)
PostNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Post] Where ParentID>0 and BokeUserID = "&DvBoke.BokeUserID)(0)
If Dv_Boke_DataBase = 1 Then
DayStr = "d"
Else
DayStr = "'d'"
End If
TodayNum = DvBoke.Execute("Select Count(*) From [Dv_Boke_Post] Where BokeUserID = "&DvBoke.BokeUserID&" and DateDiff("&DayStr&",JoinTime,"&bSqlNowString&") = 0")(0)
Set Rs = DvBoke.Execute("Select Top 1 JoinTime From [Dv_Boke_Post] Where BokeUserID = "&DvBoke.BokeUserID&" order by JoinTime desc")
If Rs.Eof Then
LastUpTime = Now()
Else
LastUpTime = Rs(0)
End If
DvBoke.ShowCode("博客总数据更新完成：主题共 "&TopicNum&" 篇，收藏共 "&FavNum&" 篇，相册共 "&PhotoNum&" 张，评论共 "&PostNum&" 篇，今日帖共 "&TodayNum&" 篇。 ")
Dvboke.BokeNode.attributes.getNamedItem("spacesize").text = cCur(Dvboke.BokeNode.getAttribute("spacesize"))
If Dvboke.BokeNode.getAttribute("spacesize")>0 Then
SpaceSize = DvBoke.Execute("Select Sum(FileSize) From [Dv_Boke_Upfile] Where BokeUserID = "&DvBoke.BokeUserID)(0)
If SpaceSize>0 Then
SpaceSize = Formatnumber((SpaceSize/1024)/1024,2)
Dvboke.BokeNode.attributes.getNamedItem("spacesize").Text = cCur(DvBoke.System_Setting(15)) - SpaceSize
If Dvboke.BokeNode.getAttribute("spacesize")<0 Then Dvboke.BokeNode.attributes.getNamedItem("spacesize").text = 0
End If
If Dvboke.BokeNode.getAttribute("spacesize") = 0 Then
DvBoke.ShowCode("您的博客已超出"&DvBoke.System_Setting(15)&"MB，需要更多的空间请与管理员联系！")
Else
DvBoke.ShowCode("您的上传空间还有"&Dvboke.BokeNode.getAttribute("spacesize")&"MB。")
End If
End If
DvBoke.Execute("Update Dv_Boke_User set TopicNum="&TopicNum&",FavNum="&FavNum&",PhotoNum="&PhotoNum&",PostNum="&PostNum&",TodayNum="&TodayNum&",LastUpTime='"&LastUpTime&"',spacesize = "&Dvboke.BokeNode.getAttribute("spacesize")&" where UserID="&DvBoke.BokeUserID)
DvBoke.ShowMsg(0)
End Sub

%>
