⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 book.asp

📁 WAPmo手机网站管理平台是一款创建与管理维护WAP网站的的软件产品
💻 ASP
字号:
<%
Class ImplMocomWAPmoWAPBook
Private blnError
Private strError

Private Sub Class_Initialize()
    Set MyXML = MyKernel.XMLParser
    blnError = True
End Sub

Private Sub Class_Terminate()
End Sub

Public Sub main()
    MyXML.Align = "center"
    MyXML.Println MyKernel.Config("BookTitle")
    MyXML.Align = "left"
    If MyKernel.Config("IsBook") <> "1" Then
        MyXML.Println "该功能已被站长关闭"
    ElseIf MyIO.Env("REQUEST_METHOD") = "POST" Then
        Call doPost
    Else
        Call doGet
    End If
    Call BackHomeX(BOOK_SEQID)
    Call SetLog("book", 0)
    Call MyKernel.OutputXML(Empty)
End Sub

Private Sub doGet()
    MyXML.Println "[查看留言]"
    Select Case MyKernel.Config("IsBookPublic")
    Case "0"
        Call doGetMain
    Case "1"
        If IsGuest() Then
            RegisterHint "只有注册用户才能查看留言"
        Else
            Call doGetMain
        End If
    Case "2"
        If Not IsGuest() Then
            Call doGetMain
        End If
    End Select
    Call doGetForm
End Sub

Private Sub doGetMain()
    Dim objPage, xmlNode, xmlDoc2
    Dim i
    Set objPage = vbsre.mocom.WAPmo.Page.newInstance()
    objPage.ID = atol(MyIO.QueryString("Page"))
    objPage.Size = 10
    objPage.DataType = WM_DataType
    objPage.Table = T_BOOK
    If MyKernel.Config("IsBookPublic") = "2" Then
        objPage.Where = "FOLLOW=0 AND USERID=" & atol(MyKernel.Memory("SeqID"))
        objPage.Count = GetPageCount(objPage)
    Else
        objPage.Where = "FOLLOW=0"
        objPage.Count = GetBookCount()
    End If
    objPage.Index = "SEQID"
    objPage.Sort = "SEQID DESC"
    objPage.SortType = 1
    objPage.Build "msgs", "msg"
    If objPage.Rows.hasChildNodes Then
        i = 0
        Set xmlDoc2 = GetReplyDoc(objPage.Rows.childNodes)
        For Each xmlNode In objPage.Rows.childNodes
            MyXML.Println String(16, "-")
            If atol(XMLAttr(xmlNode, "userid")) < 1 Then
                MyXML.Println "昵称:" & XMLAttr(xmlNode, "username") & "[游客]"
            ElseIf Not ValidCoop() And MyKernel.Config("IsMsgbox") = "1" Then
                MyXML.Printf "昵称:"
                MyXML.Println MyXML.CreateA(GetMsgSendURL(XMLAttr(xmlNode, "userid")), XMLAttr(xmlNode, "username"), "", "")
            Else
                MyXML.Println "昵称:" & XMLAttr(xmlNode, "username")
            End If
            MyXML.Println "留言:" & XMLAttr(xmlNode, "content")
            MyXML.Println "时间:" & FormatTime(XMLAttr(xmlNode, "intime"), "Y-m-d H:i:s")
            doGetReply xmlDoc2, XMLAttr(xmlNode, "seqid")
            i = i + 1
        Next
        Set xmlDoc2 = Nothing
        If objPage.ID < objPage.Total Then
            MyXML.Printf MyXML.CreateA(GetURL("guestbook.asp", "Page", objPage.ID + 1), "下一页", "", "")
            MyXML.Printf "|"
            MyXML.Println MyXML.CreateA(GetURL("guestbook.asp", "Page", objPage.Total), "最末页", "", "")
        End If
        If objPage.ID > 1 Then
            MyXML.Printf MyXML.CreateA(GetURL("guestbook.asp", "Page", objPage.ID - 1), "上一页", "", "")
            MyXML.Printf "|"
            MyXML.Println MyXML.CreateA("guestbook.asp", "第一页", "", "")
        End If
        If objPage.Total > 2 Then
            MyXML.SetF "guestbook.asp", "get", "", True
            Call SetQuery
            MyXML.SetN "Page", "text", "", objPage.ID & "/" & objPage.Total & "页>>跳到", "页", False, 5, 5, "N*"
            MyXML.SetN "", "submit", "GO", "", "", True, 0, 0, ""
        End If
    End If
    Set objPage = Nothing
End Sub

Private Function GetBookCount()
    Dim strName
    strName = "WAPmo.Book"
    If IsEmpty(GetCache(strName)) Then
        SetCache strName, MyKernel.DB.GetRow("SELECT COUNT(SEQID) FROM " & T_BOOK & " WHERE FOLLOW=0")
    End If
    GetBookCount = atol(GetCache(strName))
End Function

Private Sub doGetForm()
    MyXML.Println String(16, "-")
    MyXML.Println "[发表留言]"
    If MyKernel.Config("IsBookWrite") = "0" And IsGuest() Then
        Call RegisterHint("只有注册用户才能发表留言")
    Else
        MyXML.SetF "guestbook.asp", "post", "", True
        If IsGuest() Then
            MyXML.SetN "UserName", "text", "", "您的昵称:", "", True, 0, 0, ""
        End If
        MyXML.SetN "Content", "text", "", "您的留言:", "", True, 0, 0, ""
        MyXML.SetN "", "submit", "确定", "", "", True, 0, 0, ""
    End If
End Sub

Private Function GetReplyDoc(xmlNodes)
    Dim tmp, i
    ReDim tmp(xmlNodes.length - 1)
    For i = 0 To xmlNodes.length - 1
        tmp(i) = XMLAttr(xmlNodes(i), "seqid")
    Next
    Set GetReplyDoc = MyKernel.DB.SQLToXML("SELECT CONTENT,FOLLOW,INTIME FROM " & T_BOOK & " WHERE FOLLOW IN (" & Join(tmp, ",") & ")", "replies", "reply")
End Function

Private Sub doGetReply(xmlDoc, ByVal lngFollow)
    Dim xmlNodes, xmlNode
    Set xmlNodes = XMLQueries(xmlDoc.documentElement, "reply[@follow = " & lngFollow & "]")
    For Each xmlNode In xmlNodes
        MyXML.Println "站长回复:" & XMLAttr(xmlNode, "content")
        MyXML.Println "回复时间:" & FormatTime(XMLAttr(xmlNode, "intime"), "Y-m-d H:i:s")
    Next
    Set xmlNodes = Nothing
End Sub

Private Sub doPost()
    Call doPostAdd
    If MyKernel.Config("IsBookPublic") = "0" Then
        MyXML.Println MyXML.CreateA("guestbook.asp", "查看留言", "", "")
    ElseIf MyKernel.Config("IsBookPublic") = "1" And Not IsGuest() Then
        MyXML.Println MyXML.CreateA("guestbook.asp", "查看留言", "", "")
    End If
End Sub

Private Sub doPostAdd()
    Dim strUserName
    Dim strContent
    Dim objCmd, strSQL, lngTime, lngCount
    strUserName = Trim(MyIO.Form("UserName"))
    strContent = Trim(MyIO.Form("Content"))
    If strContent = "" Then
        strError = "请输入您的留言"
    ElseIf IsGuest() And strUserName = "" Then
        strError = "请输入您的昵称"
    ElseIf IsGuest() And Not ValidName(strUserName) Then
        strError = "请勿在昵称中使用特殊字符"
    ElseIf IsGuest() And LenC(strUserName) > 20 Then
        strError = "昵称的长度不能超过20个字节(即10个汉字)"
    ElseIf GetTime(Now()) - atol(MyKernel.Memory("LastBook")) < atoi(MyKernel.Config("BookInterval")) Then
        strError = "感谢您的参与,请不要频繁发表留言"
    ElseIf atol(MyKernel.Memory("BookTotal")) > atoi(MyKernel.Config("BookTotal")) Then
        strError = "感谢你的参与,一天最多能发表" & MyKernel.Config("BookTotal") & "个留言"
    Else
        blnError = False
        strError = "感谢您的留言,我们会在近期回复"
        lngTime = GetTime(Now())
        lngCount = GetBookCount()
        Set objCmd = MyKernel.Command(T_BOOK)
        objCmd.CommandType = "INSERT"
        If IsGuest() Then
            objCmd.Add "UserID", 0
            objCmd.Add "UserName", strUserName
        Else
            objCmd.Add "UserID", MyKernel.Memory("SeqID")
            objCmd.Add "UserName", MyKernel.Memory("UserName")
        End If
        objCmd.Add "Content", strContent
        objCmd.Add "Reply", 0
        objCmd.Add "IPAddr", MyIO.Env("REMOTE_ADDR")
        objCmd.Add "Follow", 0
        objCmd.Add "Intime", lngTime
        objCmd.Exec
        Set objCmd = Nothing
        SetCache "WAPmo.Book", lngCount + 1
        If atol(MyKernel.Memory("LastBook")) >= GetTime(Date()) Then
            MyKernel.Memory("BookTotal") = atoi(MyKernel.Memory("BookTotal")) + 1
        Else
            MyKernel.Memory("BookTotal") = 1
        End If
        MyKernel.Memory("LastBook") = lngTime
        If Not IsGuest() Then
            strSQL = "UPDATE $(Table) SET BOOKTOTAL=$(BookTotal),LASTBOOK=$(Timeval) WHERE SEQID=$(SeqId)"
            strSQL = Replace(strSQL, "$(Table)", T_USER)
            strSQL = Replace(strSQL, "$(BookTotal)", MyKernel.Memory("BookTotal"))
            strSQL = Replace(StrSQL, "$(Timeval)", lngTime)
            strSQL = Replace(strSQL, "$(SeqId)", MyKernel.Memory("SeqId"))
            MyKernel.DB.Exec strSQL
        End If
    End If
    MyXML.Println strError
    If blnError Then
        Call doGetForm
    End If
End Sub

Public Function newInstance()
    Set newInstance = New ImplMocomWAPmoWAPBook
End Function
End Class
%>

⌨️ 快捷键说明

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