📄 #forum.mo
字号:
Option Explicit
TBBS.AddLang "common|head|foot|error|forum"
TBBS.SetNodes "env|user|forums|bulletin"
TBBS.Page("name") = TBBS.Env("bbs_name")
TBBS.Vars("skin") = "default"
Call main
Private Sub doGet()
If Not TBBS.CheckForum("crt", Request.QueryString("id")) Then
TBBS.AddError "missing_forum", Array()
Exit Sub
End If
Call SetForumTops
Call SetPage
Call TBBS.SetForumNav(TBBS.Page("id") > 1)
End Sub
Private Sub doPost()
TBBS.AddError "invalid_handle", Array()
End Sub
Private Sub SetPage()
Dim lngId, lngRows, lngSize, lngTotal, lngMove, lngFlag
lngId = atoi(MyIO.QueryString("page"))
If lngId < 1 Then lngId = 1
lngRows = atol(TBBS.Forum("crt.topics")) - atol(TBBS.Forum("crt.souls"))
lngSize = 20
lngTotal = (lngRows \ lngSize) + IIf(lngRows Mod lngSize = 0, 0, 1)
If lngTotal < 1 Then lngTotal = 1
If lngId > lngTotal Then lngId = lngTotal
If lngRows = 0 Then
lngMove = 0
lngFlag = 0
ElseIf lngId * lngSize >= lngRows Then
lngMove = IIf(lngRows Mod lngSize = 0, lngSize, lngRows Mod lngSize)
lngFlag = IIf(lngRows Mod lngSize = 0, lngRows - lngSize, lngRows - (lngRows Mod lngSize))
Else
lngMove = lngSize
lngFlag = (lngId - 1) * lngSize
End If
TBBS.Page("id") = lngId
TBBS.Page("rows") = lngRows
TBBS.Page("size") = lngSize
TBBS.Page("total") = lngTotal
TBBS.Page("move") = lngMove
TBBS.Page("flag") = lngFlag
If MyKernel.DB.DataType = adSQLServer Then
TBBS.Page("datatype") = adAccess
Else
TBBS.Page("datatype") = MyKernel.DB.DataType
End If
TBBS.Page("table") = T_TOPIC
TBBS.Page("column") = "SEQID,FORUMID,FORUMNAME,TITLE,USERID,USERNAME,REPLIES,HITS,LASTPOSTID,LASTPOSTTITLE,LASTPOSTUSERID,LASTPOSTUSERNAME,LASTPOSTTIME"
TBBS.Page("where") = "FORUMID=" & TBBS.Forum("crt.seqid") & " AND TOPTYPE=0 AND FOLLOW=0"
TBBS.Page("sort") = "LASTPOSTTIME DESC"
TBBS.Page("sorttype") = 1
TBBS.Page("index") = "LASTPOSTTIME"
TBBS.SetPagePrefix "forum.asp", "id", TBBS.Forum("crt.seqid")
TBBS.SetPageXML "topics", "topic", False
End Sub
Public Function SetForumTops()
Dim arr
arr = Split(TBBS.Forum("crt.mark"), "_")
TBBS.AppendXML TBBS.GetTopCache(TBBS_TOP_ALL, 0), True
TBBS.AppendXML TBBS.GetTopCache(TBBS_TOP_PARENT, arr(0)), False
TBBS.AppendXML TBBS.GetTopCache(TBBS_TOP_CURRENT, arr(UBound(arr))), False
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -