Private objAPI
Private objCore
Private objXML
Private objUser
Private objCoop
Private objForum
Private objArticle
Private intPageNo

Private Sub Class_Initialize()
    Set objAPI = New WAPmoAPI
    Set objCore = objAPI.Core
    Set objXML = objCore.XMLParser
    Set objUser = objCore.User
    Set objCoop = objCore.Coop
End Sub

Private Sub Class_Terminate()
    Set objCoop = Nothing
    Set objUser = Nothing
    Set objXML = Nothing
    Set objCore = Nothing
    Set objAPI = Nothing
End Sub

Public Sub main()
    objXML.Align = "center"
    objXML.Println MyKernel.Config("BBSTitle")
    objXML.Align = "left"
    Set objForum = MyKernel.Table(T_FORUM)
    Set objArticle = MyKernel.Table(T_ARTICLE)
    intPageNo = atoi(Request.QueryString("PageNo"))
    If MyKernel.Config("IsBBS") <> "1" Then
        objXML.Println "ùѱվر"
    ElseIf objUser.Item("Status") < USER_REGISTER Then
        Call RegisterHint
    ElseIf objForum.Exec("*", "SeqId=" & atol(Request.QueryString("ForumId"))) = False Then
        objCore.Redirect "bbs/index.asp"
    Else
        objArticle.Exec "*", "SeqId=" & atol(Request.QueryString("ArticleId"))
        objXML.Println "[" & objForum.Item("Title") & "]"
        If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
            Call doPost
        Else
            Call doGet
        End If
        If objArticle.Item("SeqId") <> 0 Then
            objXML.Println objCore.CreateA("bbs/article.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & intPageNo & "&ArticleId=" & objArticle.Item("SeqId"), "" & objArticle.Item("Title"), objCore.CreateImg("back.gif", ""))
        End If
        objXML.Println objCore.CreateA("bbs/forum.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & intPageNo, "" & objForum.Item("Title"), objCore.CreateImg("back.gif", ""))
    End If
    Set objArticle = Nothing
    Set objForum = Nothing
    objXML.Println objCore.CreateA("bbs/index.asp", "" & MyKernel.Config("BBSTitle"), objCore.CreateImg("back.gif", ""))
    objCore.ExportBackHome "1", "ҳ"
    objXML.Println ""
End Sub

Private Sub doGet()
    If objArticle.Item("SeqId") <> 0 Then
        objXML.Println "ظ[" & objArticle.Item("Title") & "]"
        objXML.SetForm objCore.FormatURL("bbs/post.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & intPageNo & "&ArticleId=" & objArticle.Item("SeqId")), "post", "", True
    Else
        objXML.Println ""
        objXML.setForm objCore.FormatURL("bbs/post.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & intPageNo), "post", "", True
        objXML.SetInput "Title", "text", "", "ӱ⣺", "", True
    End If
    objXML.SetInput "Content", "text", "", "ݣ", "", True
    objXML.SetInput "", "submit", "ȷ", "", "", True
End Sub

Private Sub doPost()
    Dim MyIO
    Dim blnError
    Dim strError
    Set MyIO = Server.CreateObject("WMCore.IIO")
    blnError = True
    If MyIO.Parse(KBYTE * 5) <> 0 Then
        strError = "󳤶ȣ" & (KBYTE * 5)
    Else
        Dim strTitle, strContent
        strTitle = Trim(MyIO.Form("Title", 65001))
        strContent = Trim(MyIO.Form("Content", 65001))
        If objArticle.Item("SeqId") = 0 And strTitle = "" Then
            strError = "ӱ"
        ElseIf strContent = "" Then
            strError = ""
        ElseIf getTime(Now()) - objUser.Item("LastArt") < atoi(MyKernel.Config("ArtInterval")) Then
            strError = "лĲ룬벻ҪƵ"
        ElseIf objUser.Item("ArtTotal") > atoi(MyKernel.Config("ArtTotal")) Then
            blnError = True
            strError = "лĲ룬һܷ" & MyKernel.Config("BookTotal") & ""
        Else
            blnError = False
            strError = IIf(objArticle.Item("SeqId") = 0, "", "") & "ɹ"
            Dim strSQL
            strSQL = "INSERT INTO $(Table) (UserId,UserName,ForumId,ForumName,Title,Content,Reply,Hit,Follow,Intime,Outime) VALUES ($(UserId),'$(UserName)',$(ForumId),'$(ForumName)','$(Title)','$(Content)',0,0,$(Follow),$(Timeval),$(Timeval))"
            strSQL = Replace(strSQL, "$(Table)", T_ARTICLE)
            strSQL = Replace(strSQL, "$(UserId)", objUser.Item("UserId"))
            strSQL = Replace(strSQL, "$(UserName)", SafeString(objUser.Item("Nick")))
            strSQL = Replace(strSQL, "$(ForumId)", objForum.Item("SeqId"))
            strSQl = Replace(strSQL, "$(ForumName)", SafeString(objForum.Item("Title")))
            strSQL = Replace(strSQL, "$(Title)", SafeString(strTitle))
            strSQL = Replace(strSQL, "$(Content)", SafeString(strContent))
            strSQL = Replace(strSQL, "$(Follow)", objArticle.Item("SeqId"))
            strSQL = Replace(strSQL, "$(Timeval)", getTime(Now()))
            SafeExecute strSQL
            If objArticle.Item("SeqId") <> 0 Then
                strSQL = "UPDATE $(Table) SET Reply=Reply+1,Outime=$(Timeval) WHERE SeqId=$(SeqId)"
                strSQL = Replace(strSQL, "$(Table)", T_ARTICLE)
                strSQL = Replace(strSQL, "$(Timeval)", getTime(Now()))
                strSQL = Replace(strSQL, "$(SeqId)", objArticle.Item("SeqId"))
                SafeExecute strSQL
            End If
            strSQL = "UPDATE $(Table) SET ArtTotal=$(ArtTotal),LastArt=$(Timeval) WHERE SeqId=$(SeqId)"
            strSQL = Replace(strSQL, "$(Table)", T_USER)
            If objUser.Item("LastRemark") >= getTime(Date()) Then
                strSQL = Replace(strSQL, "$(ArtTotal)", objUser.Item("ArtTotal") + 1)
            Else
                strSQL = Replace(strSQL, "$(ArtTotal)", 1)
            End If
            strSQL = Replace(StrSQL, "$(Timeval)", getTime(Now()))
            strSQL = Replace(strSQL, "$(SeqId)", objUser.Item("SeqId"))
            SafeExecute strSQL
        End If
    End If
    Set MyIO = Nothing
    objXML.Println strError
    If blnError Then
        Call doGet
    End IF
End Sub

Private Sub RegisterHint()
    objCore.Query("Referer") = objCore.Referer
    objXML.Println "ֻעûܷͻ"
    objXML.Printf "ûע᣿"
    objXML.Println objCore.CreateA("register.asp", "ע", "")
    objXML.Printf "Ѿעˣ"
    objXML.Println objCore.CreateA("login.asp", "˵¼", "")
    objCore.Query("Referer") = Empty
End Sub
