📄 marker
字号:
Private strHandle
Private blnError
Private strError
Private strURL
Private Sub Class_Initialize()
Set MyXML = MyKernel.XMLParser
blnError = True
End Sub
Private Sub Class_Terminate()
End Sub
Public Sub main()
strHandle = MyIO.QueryString("Handle")
strURL = MyIO.QueryString("URL")
MyXML.Align = "center"
MyXML.Println MyKernel.Config("MarkerTitle")
MyXML.Align = "left"
If MyKernel.Config("IsMarker") <> "1" Then
MyXML.Println "该功能已被站长关闭"
ElseIf IsGuest() Then
Call RegisterHint("只有注册用户才能使用书签功能")
ElseIf MyIO.Env("REQUEST_METHOD") = "POST" Then
Call doPost
Else
Call doGet
End If
If strURL <> "" Then
MyXML.Println MyXML.CreateA(strURL, "快速返回", GetImagePrefix("images/back.gif"), "")
End If
If strHandle <> "" And MyKernel.Config("IsMarker") = "1" Then
MyXML.Println MyXML.CreateA("marker.asp", MyKernel.Config("MarkerTitle"), GetImagePrefix("images/back.gif"), "")
End If
MyXML.Println MyXML.CreateA("console.asp", "返回控制台", GetImagePrefix("images/back.gif"), "")
Call BackHome
Call SetLog("marker", 0)
Call MyKernel.OutputXML(Empty)
End Sub
Private Sub doGet()
Select Case LCase(strHandle)
Case "add"
Call doGetAdd
Case "delete"
Call doGetDelete
Case Else
Call doGetMain
End Select
End Sub
Private Sub doGetMain()
Dim objPage, xmlNode
Dim i
Set objPage = vbsre.mocom.WAPmo.Page.newInstance()
objPage.ID = atol(MyIO.QueryString("Page"))
objPage.Size = 20
objPage.DataType = WM_DataType
objPage.Table = T_MARKER
objPage.Where = "UserID=" & MyKernel.Memory("SeqID")
objPage.Count = atol(MyKernel.Memory("MarkerTotal"))
objPage.Index = "SEQID"
objPage.Sort = "SEQID DESC"
objPage.SortType = 1
objPage.Build "favs", "fav"
If objPage.Rows.hasChildNodes Then
i = 0
For Each xmlNode In objPage.Rows.childNodes
MyXML.Printf MyXML.CreateA(XMLAttr(xmlNode, "content"), ((objPage.ID - 1) * objPage.Size + i + 1) & "." & XMLAttr(xmlNode, "title"), "", "")
MyXML.Printf "["
MyXML.Printf MyXML.CreateA("marker.asp?Handle=Delete&SeqId=" & XMLAttr(xmlNode, "seqid"), "删除", "", "")
MyXML.Println "]"
i = i + 1
Next
If objPage.ID < objPage.Total Then
MyXML.Printf MyXML.CreateA("marker.asp?Page=" & (objPage.ID + 1), "下一页", "", "")
MyXML.Printf "|"
MyXML.Println MyXML.CreateA("marker.asp?Page=" & (objPage.Total), "最末页", "", "")
End If
If objPage.ID > 1 Then
MyXML.Printf MyXML.CreateA("marker.asp?Page=" & (objPage.ID - 1), "上一页", "", "")
MyXML.Printf "|"
MyXML.Println MyXML.CreateA("marker.asp", "第一页", "", "")
End If
If objPage.Total > 2 Then
MyXML.SetF "marker.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
Else
MyXML.Println "您尚未添加书签"
End If
Set objPage = Nothing
MyXML.Println MyXML.CreateA("marker.asp?Handle=Add", "新建书签", "", "")
End Sub
Private Sub doGetAdd()
MyXML.Println "[添加书签]"
MyXML.SetF GetURL("marker.asp?Handle=Add", "URL", strURL), "post", "", True
MyXML.SetN "Title", "text", "", "书签标题:", " 中英文或数字,不能超过200个字节(即100个汉字)", True, 0, 0, ""
If strURL = "" Then
MyXML.SetN "Content", "text", "http://", "连接地址:", " 站外连接必须带http://前缀", True, 0, 0, ""
End If
MyXML.SetN "", "submit", "确定", "", "", True, 0, 0, ""
End Sub
Private Sub doGetDelete()
Dim strAccept
Dim objCmd
Dim lngID
Dim strSQL
strAccept = MyIO.QueryString("Accept")
lngID = atol(MyIO.QueryString("SeqId"))
Set objCmd = MyKernel.Command(T_MARKER)
objCmd.CommandType = "SELECT"
objCmd.Where = "USERID=" & MyKernel.Memory("SeqID") & " AND SEQID=" & lngID
If lngID <= 0 Then
MyXML.Println "请选择您要删除的书签"
ElseIf Not objCmd.Exec Then
MyXML.Println "找不到您要删除的书签"
ElseIf strAccept = "YES" Then
MyXML.Println "书签[" & objCmd("Title") & "]已成功删除"
strSQL = "DELETE FROM $(Table) WHERE SEQID=$(SeqId)"
strSQL = Replace(strSQL, "$(Table)", T_MARKER)
strSQL = Replace(strSQL, "$(SeqId)", objCmd("SeqId"))
MyKernel.DB.Exec strSQL
MyKernel.Memory("MarkerTotal") = atoi(MyKernel.Memory("MarkerTotal")) - 1
If atoi(MyKernel.Memory("MarkerTotal")) < 0 Then
MyKernel.Memory("MarkerTotal") = 0
End If
strSQL = "UPDATE $(Table) SET MARKERTOTAL=$(MarkerTotal) WHERE SEQID=$(SeqId)"
strSQL = Replace(strSQL, "$(Table)", T_USER)
strSQL = Replace(strSQL, "$(MarkerTotal)", MyKernel.Memory("MarkerTotal"))
strSQL = Replace(strSQL, "$(SeqId)", MyKernel.Memory("SeqId"))
MyKernel.DB.Exec strSQL
Else
MyXML.Println "您确定要删除书签[" & objCmd("Title") & "]么?"
MyXML.Println MyXML.CreateA("marker.asp?Handle=Delete&SeqId=" & objCmd("SeqId") & "&Accept=YES", "确定", "", "")
End If
Set objCmd = Nothing
End Sub
Private Sub doPost()
Select Case LCase(strHandle)
Case "add"
Call doPostAdd
Case Else
End Select
End Sub
Private Sub doPostAdd()
Dim strTitle, strContent
Dim objCmd, strSQL
strTitle = Trim(MyIO.Form("Title"))
strContent = strURL
If strContent = "" Then
strContent = MyIO.Form("Content")
End If
Set objCmd = MyKernel.Command(T_MARKER)
objCmd.CommandType = "SELECT"
objCmd.Where = "USERID=" & MyKernel.Memory("SeqID") & " AND (TITLE='" & SafeString(strTitle) & "' OR CONTENT='" & SafeString(strContent) & "')"
If strTitle = "" Then
strError = "请输入书签标题"
ElseIf strContent = "" Then
strError = "请输入连接地址"
ElseIf atoi(MyKernel.Memory("MarkerTotal")) > atoi(MyKernel.Config("MarkerTotal")) Then
strError = "最多只能添加" & MyKernel.Config("MarkerTotal") & "个书签" & vbCrLf & _
"您现在已有" & MyKernel.Memory("MarkerTotal") & "个书签了"
ElseIf objCmd.Exec Then
strError = "该书签已经添加过了"
Else
blnError = False
strError = "书签添加成功"
objCmd.CommandType = "INSERT"
objCmd.Add "UserID", MyKernel.Memory("SeqID")
objCmd.Add "UserName", MyKernel.Memory("UserName")
objCmd.Add "Title", strTitle
objCmd.Add "Content", strContent
objCmd.Add "Intime", GetTime(Now())
objCmd.Add "Outime", 0
objCmd.Exec
strSQL = "UPDATE $(Table) SET MARKERTOTAL=MARKERTOTAL+1 WHERE SEQID=$(SeqId)"
strSQL = Replace(strSQL, "$(Table)", T_USER)
strSQL = Replace(strSQL, "$(SeqId)", MyKernel.Memory("SeqId"))
MyKernel.DB.Exec strSQL
MyKernel.Memory("MarkerTotal") = atoi(MyKernel.Memory("MarkerTotal")) + 1
End If
Set objCmd = Nothing
MyXML.Println strError
If blnError Then
Call doGetAdd
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -