#bulletin.mo

来自「WAPmo手机网站管理平台是一款创建与管理维护WAP网站的的软件产品」· MO 代码 · 共 154 行

MO
154
字号
Option Explicit

TBBS.Vars("template") = "admin.bulletin"
TBBS.SetNodes "forums|bulletin"
TBBS.AddNav "", TBBS.Lang("general_manage")
TBBS.AddNav "", TBBS.Lang("bulletin_manage")

Call main()

Private Sub doGet()
    TBBS.Vars("state") = 0
    If Request.QueryString("action") = "edit" Then
        TBBS.Vars("action_addr") = "admin.asp?handle=bulletin&action=edit&id=" & Request.QueryString("id")
        TBBS.Vars("action_name") = TBBS.Lang("edit_bulletin")
        If Not CheckBulletin(Request.QueryString("id")) Then
            TBBS.Vars("state") = 1
            TBBS.AddHint "missing_bulletin", Array()
        End If
    Else
        TBBS.Vars("action_addr") = "admin.asp?handle=bulletin&action=add"
        TBBS.Vars("action_name") = TBBS.Lang("add_bulletin")
        TBBS.Vars("forumid") = 0
    End If
End Sub

Private Sub doPost()
    TBBS.Vars("action_addr") = "admin.asp?handle=bulletin&action=add"
    TBBS.Vars("action_name") = TBBS.Lang("add_bulletin")
    Select Case Request.QueryString("action")
    Case "add"
        Call doPostAdd
    Case "edit"
        TBBS.Vars("action_addr") = "admin.asp?handle=bulletin&action=edit&id=" & Request.QueryString("id")
        TBBS.Vars("action_name") = TBBS.Lang("edit_bulletin")
        Call doPostEdit
    Case "delete"
        Call doPostDelete
    Case Else
        TBBS.AddError "invalid_handle", Array()
    End Select
End Sub

Private Function CheckBulletin(ByVal strId)
    TBBS.Vars("id") = atol(strId)
    If TBBS.Vars("id") = 0 Then
        CheckBulletin = False
        Exit Function
    End If
    Dim xmlDoc, xmlNode, xmlAttr
    Set xmlDoc = TBBS.GetXMLCache("Bulletin")
    Set xmlNode = XMLQuery(xmlDoc.documentElement, "bulletin[@seqid = " & TBBS.Vars("id") & "]")
    CheckBulletin = CBool(Not xmlNode Is Nothing)
    If CheckBulletin Then
        For Each xmlAttr In xmlNode.attributes
            TBBS.Vars(xmlAttr.name) = atos(xmlAttr.value)
        Next
    End If
    Set xmlNode = Nothing
    Set xmlDoc = Nothing
End Function

Private Sub doPostAdd()
    Dim clsCmd
    TBBS.Vars("state") = 1
    TBBS.Vars("forumid") = atol(MyIO.Form("forumid"))
    TBBS.Vars("title") = Trim(MyIO.Form("title"))
    TBBS.Vars("content") = MyIO.Form("content")
    If TBBS.Vars("title") = "" Then
        TBBS.AddHint "empty_title", Array()
    ElseIf Trim(TBBS.Vars("content")) = "" Then
        TBBS.AddHint "empty_content", Array()
    ElseIf Len(TBBS.Vars("title")) > 255 Then
        TBBS.AddHint "title_too_long", Array()
    ElseIf Not ValidForum() Then
        TBBS.AddHint "missing_forum", Array()
    Else
        Set clsCmd = MyKernel.Command(T_BULLETIN)
        clsCmd.CommandType = "INSERT"
        clsCmd.Add "title", TBBS.Vars("title")
        clsCmd.Add "content", TBBS.Vars("content")
        clsCmd.Add "forumid", TBBS.Vars("forumid")
        If TBBS.Vars("forumid") = 0 Then
            clsCmd.Add "forumname", TBBS.Lang("bbs_index")
        Else
            clsCmd.Add "forumname", TBBS.Forum("crt.name")
        End If
        clsCmd.Add "postusername", MyKernel.Memory("username")
        clsCmd.Add "posttime", TBBS.Vars("time")
        clsCmd.Exec
        Set clsCmd = Nothing
        TBBS.Vars("state") = 2
        TBBS.AddHint "add_bulletin_ok", Array()
        TBBS.SetXMLCache "Bulletin"
        TBBS.SetNodes "bulletin"
    End If
End Sub

Private Function ValidForum()
    If TBBS.Vars("forumid") = 0 Then
        ValidForum = True
    Else
        ValidForum = TBBS.CheckForum("crt", TBBS.Vars("forumid"))
    End If
End Function

Private Sub doPostEdit()
    TBBS.Vars("state") = 1
    If Not CheckBulletin(Request.QueryString("id")) Then
        TBBS.AddHint "missing_bulletin", Array()
        Exit Sub
    End If
    Dim clsCmd
    TBBS.Vars("title") = Trim(MyIO.Form("title"))
    TBBS.Vars("content") = MyIO.Form("content")
    If TBBS.Vars("title") = "" Then
        TBBS.AddHint "empty_title", Array()
    ElseIf Trim(TBBS.Vars("content")) = "" Then
        TBBS.AddHint "empty_content", Array()
    ElseIf Len(TBBS.Vars("title")) > 255 Then
        TBBS.AddHint "title_too_long", Array()
    Else
        Set clsCmd = MyKernel.Command(T_BULLETIN)
        clsCmd.CommandType = "UPDATE"
        clsCmd.Where = "SEQID=" & TBBS.Vars("seqid")
        clsCmd.Add "title", TBBS.Vars("title")
        clsCmd.Add "content", TBBS.Vars("content")
        clsCmd.Add "postusername", MyKernel.Memory("username")
        clsCmd.Add "posttime", TBBS.Vars("time")
        clsCmd.Exec
        Set clsCmd = Nothing
        TBBS.Vars("state") = 2
        TBBS.AddHint "edit_bulletin_ok", Array()
        TBBS.SetXMLCache "Bulletin"
        TBBS.SetNodes "bulletin"
    End If
End Sub

Private Sub doPostDelete()
    Dim arr
    TBBS.Vars("state") = 3
    arr = MyIO.FormArray("seqid")
    If Not IsArray(arr) Then
        TBBS.AddHint "choose_bulletin_empty", Array()
    ElseIf Not IsNumericArray(arr) Then
        TBBS.AddHint "invalid_handle", Array()
    Else
        TBBS.Vars("deletes") = MyKernel.DB.Exec("DELETE FROM " & T_BULLETIN & " WHERE SEQID IN (" & Join(arr, ",") & ")")
        TBBS.Vars("state") = 4
        TBBS.AddHint "delete_bulletin_ok", Array(TBBS.Vars("deletes"))
        TBBS.SetXMLCache "Bulletin"
        TBBS.SetNodes "bulletin"
    End If
End Sub

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?