Private objAPI
Private objCore
Private objXML
Private objUser
Private objCoop
Private objForum

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)
    If MyKernel.Config("IsBBS") <> "1" Then
        objXML.Println "ùѱվر"
    ElseIf objForum.Exec("*", "SeqId=" & atol(Request.QueryString("ForumId"))) = False Then
        objCore.Redirect "bbs/index.asp"
    ElseIf Request.ServerVariables("REQUEST_METHOD") = "POST" Then
        Call doPost
    Else
        objXML.Println "[" & objForum.Item("Title") & "]"
        Call doGet
    End If
    If objForum.Item("Follow") <> 0 Then
        objXML.Println objCore.CreateA("bbs/forum.asp?ForumId=" & objForum.Item("Follow"), "ϼ", objCore.CreateImg("back.gif", ""))
    End If
    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()
    Call doGetForum
    objXML.Println objCore.CreateA("bbs/post.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & atoi(Request.QueryString("PageNo")), "Ҫ", "")
    Call doGetArticle
End Sub

Private Sub doPost()
End Sub

Private Sub doGetForum()
    Dim strSQL
    Dim rs
    strSQL = "SELECT * FROM " & T_FORUM & " WHERE Follow=" & objForum.Item("SeqId") & " ORDER BY Serial"
    Set rs = MyKernel.Execute(strSQL)
    Do While rs.EOF = False
        objXML.Println objCore.CreateA("bbs/forum.asp?ForumId=" & rs("SeqId"), "*." & rs("Title"), "")
        objXML.Println rs("Content")
        objXML.Println String(16, "-")
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
End Sub

Private Sub doGetArticle()
    Dim objPage
    Dim rs
    Dim i
    Set objPage = Server.CreateObject("WMKernel.IPage")
    objPage.PageName = "PageNo"
    objPage.PageSize = 10
    objPage.DataType = WM_DataType
    objPage.Increment = "Outime"
    objPage.Table = T_ARTICLE
    objPage.Where = "ForumId=" & objForum.Item("SeqId") & " AND Follow=0"
    objPage.Sort = "Outime DESC"
    objPage.SortType = True
    Set rs = objPage.Exec()
    If objPage.TotalRow > 0 Then
        i = 0
        Dim objArt
        Set objArt = MyKernel.Table(T_ARTICLE)
        Do While rs.EOF = False And i < objPage.PageSize
            objArt.Source = rs
            objXML.Println objCore.CreateA("bbs/article.asp?ForumId=" & objArt.Item("ForumId") & "&PageNo=" & objPage.PageNum & "&ArticleId=" & objArt.Item("SeqId"), "*." & objArt.Item("Title") & "[" & objArt.Item("Reply") & "/" & objArt.Item("Hit") & "/" & FormatTime(getDate(objArt.Item("Intime")), "YY-MM-DD HH24:MI") & "]", "")
            rs.MoveNext
            i = i + 1
        Loop
        Set objArt = Nothing
        objXML.Println ""
        If objPage.PageNum < objPage.TotalPage Then
            objXML.Printf objCore.CreateA("bbs/forum.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & (objPage.PageNum + 1), "һҳ", "")
            objXML.Printf "|"
            objXML.Println objCore.CreateA("bbs/forum.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & (objPage.TotalPage), "ĩҳ", "")
        End If
        If objPage.PageNum > 1 Then
            objXML.Printf objCore.CreateA("bbs/forum.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & (objPage.PageNum - 1), "һҳ", "")
            objXML.Printf "|"
            objXML.Println objCore.CreateA("bbs/forum.asp?ForumId=" & objForum.Item("SeqId") & "&PageNo=" & (1), "һҳ", "")
        End If
        If objPage.TotalPage > 2 Then
            objXML.SetForm MyKernel.PathName("bbs/forum.asp"), "get", "", True
            Call objCore.setQuery
            objXML.SetInput "ForumId", "hidden", objForum.Item("SeqId"), "", "", False
            objXML.SetInput "PageNo", "text", "", objPage.PageNum & "/" & objPage.TotalPage & "ҳ>>", "ҳ", False, 5, 5, "*N"
            objXML.SetInput "", "submit", "GO", "", "", True
        End If
        objXML.Println ""
    End If
    If TypeName(rs) <> "Nothing" Then rs.Close
    Set rs = Nothing
    Set objPage = Nothing
End Sub
