asp下tag的实现,简单介绍与部分代码
编程学习 2021-07-05 10:58www.dzhlxh.cn编程入门
标签(Tag)是什么?
标签是一种更为自由、灵活,完全由用户决定的分类方式,而非传统的由网站定义的分类。您可以根据自己的理解,对发表的文章、上传的图片、音乐、视频等各种文件添加一个或多个标签,进行灵活的描述。
添加标签(Tag)有什么作用?
标签体现了群体的力量,使得用户之间可以通过相近的内容产生更多的关联和互动。您在发表日志或上传文件时添加了Tag ,就可以看到woku.com所有和您使用了相同Tag 的日志和文件。
标签频道中不同大小、粗细的文字代表什么?
使用不同大小、粗细字体的标签,代表着标签不同的使用频率。字体越大、越粗,说明这些标签的使用频率越高。
添加标签时需要注意些什么?
① 多个标签之间请用空格分隔。
② 每个标签的最大长度为 10 个汉字。
③ 每篇日志或每个文件最多只能添加10个标签,这包括您自己以及其他用户添加的标签。
我可以在别人发表的日志和文件中添加标签吗?
您可以根据浏览对象的阅读权限来判断是否可以添加标签。公开的日志或文件,所有用户都可以添加标签;仅供好友浏览的日志,只有好友和作者能添加标签;仅作者可以浏览的日志或文件,只有作者能够添加标签。当然,无论是谁添加的标签,都只有该日志或文件的作者可以修改或删除这些标签。
所以呢我找了些实现tag功能的asp代码,仅供参考
'*********************************************************
' 目的: 定义TTag类
' 输入: 无
' 返回: 无
'*********************************************************
Class TTag
Public ID
Public Name
Public Intro
Public Order
Public Count
Public Property Get EncodeName
EncodeName = Server.URLEncode(Name)
End Property
Public Property Get Url
Url = ZC_BLOG_HOST & "catalog.asp?"& "tags=" & Server.URLEncode(Name)
End Property
Public Property Get HtmlUrl
HtmlUrl=TransferHTML(Url,"[html-format]")
End Property
Public Property Get HtmlIntro
HtmlIntro=TransferHTML(Intro,"[html-format]")
End Property
Public Property Get HtmlName
HtmlName=TransferHTML(Name,"[html-format]")
End Property
Public Property Get RssUrl
RssUrl = ZC_BLOG_HOST & "sydication.asp?tags=" & ID
End Property
Public Function Post()
Call CheckParameter(ID,"int",0)
Call CheckParameter(Order,"int",0)
Name=FilterSQL(Name)
Name=TransferHTML(Name,"[normalname]")
If Len(Name)=0 Then Post=False:Exit Function
Intro=FilterSQL(Intro)
Intro=TransferHTML(Intro,"[html-format]")
If ID=0 Then
objConn.Execute("INSERT INTO [blog_Tag]([tag_Name],[tag_Order],[tag_Intro]) VALUES ('"&Name&"',"&Order&",'"&Intro&"')")
Else
objConn.Execute("UPDATE [blog_Tag] SET [tag_Name]='"&Name&"',[tag_Order]="&Order&",[tag_Intro]='"&Intro&"' WHERE [tag_ID] =" & ID)
End If
Post=True
End Function
Public Function LoadInfoByID(tag_ID)
Call CheckParameter(tag_ID,"int",0)
Dim objRS
Set objRS=objConn.Execute("SELECT [tag_ID],[tag_Name],[tag_Intro],[tag_Order],[tag_Count] FROM [blog_Tag] WHERE [tag_ID]=" & tag_ID)
If (Not objRS.bof) And (Not objRS.eof) Then
ID=objRS("tag_ID")
Name=objRS("tag_Name")
Intro=objRS("tag_Intro")
Order=objRS("tag_Order")
Count=objRS("tag_Count")
LoadInfoByID=True
End If
objRS.Close
Set objRS=Nothing
If IsNull(Intro) Then Intro=""
End Function
Public Function LoadInfoByArray(aryTagInfo)
If IsArray(aryTagInfo)=True Then
ID=aryTagInfo(0)
Name=aryTagInfo(1)
Intro=aryTagInfo(2)
Order=aryTagInfo(3)
Count=aryTagInfo(4)
End If
If IsNull(Intro) Then Intro=""
LoadInfoByArray=True
End Function
Public Function Del()
Call CheckParameter(ID,"int",0)
If (ID=0) Then Del=False:Exit Function
Dim s
Dim i
Dim objRS
Set objRS=Server.CreateObject("ADODB.Recordset")
objRS.CursorType = adOpenKeyset
objRS.LockType = adLockReadOnly
objRS.ActiveConnection=objConn
objRS.Source=""
objRS.Open("SELECT [log_ID],[log_tag] FROM [blog_Article] WHERE [log_Tag] LIKE '%{" & ID & "}%'")
If (Not objRS.bof) And (Not objRS.eof) Then
Do While Not objRS.eof
i=objRS("log_ID")
s=objRS("log_tag")
s=Replace(s,"{"& ID &"}","")
objConn.Execute("UPDATE [blog_Article] SET [log_tag]='"& s &"' WHERE [log_ID] =" & i)
objRS.MoveNext
Loop
End If
objRS.Close
objConn.Execute("DELETE FROM [blog_Tag] WHERE [tag_ID] =" & ID)
Del=True
End Function
Public Function MakeTemplate(s)
s=Replace(s,"<#article/tag/id#>",ID)
s=Replace(s,"<#article/tag/name#>",HtmlName)
s=Replace(s,"<#article/tag/intro#>",HtmlIntro)
s=Replace(s,"<#article/tag/count#>",Count)
s=Replace(s,"<#article/tag/url#>",HtmlUrl)
s=Replace(s,"<#article/tag/encodename#>",EncodeName)
MakeTemplate=s
End Function
End Class
'*********************************************************
'*********************************************************
' 目的: Tags读取
'*********************************************************
Function GetTags()
Dim i,j,k,l
Dim aryAllData
Dim arySingleData()
Erase Tags
Dim objRS
Set objRS=objConn.Execute("SELECT TOP 1 [tag_ID] FROM [blog_Tag] ORDER BY [tag_ID] DESC")
If (Not objRS.bof) And (Not objRS.eof) Then
i=objRS("tag_ID")
ReDim Tags(i)
End If
Set objRS=objConn.Execute("SELECT [tag_ID],[tag_Name],[tag_Intro],[tag_Order],[tag_Count] FROM [blog_Tag] ORDER BY [tag_ID] ASC")
If (Not objRS.bof) And (Not objRS.eof) Then
aryAllData=objRS.GetRows(objRS.RecordCount)
objRS.Close
Set objRS=Nothing
k=UBound(aryAllData,1)
l=UBound(aryAllData,2)
For i=0 To l
Set Tags(aryAllData(0,i))=New TTag
Tags(aryAllData(0,i)).LoadInfoByArray(Array(aryAllData(0,i),aryAllData(1,i),aryAllData(2,i),aryAllData(3,i),aryAllData(4,i)))
Next
End If
GetTags=True
End Function
标签是一种更为自由、灵活,完全由用户决定的分类方式,而非传统的由网站定义的分类。您可以根据自己的理解,对发表的文章、上传的图片、音乐、视频等各种文件添加一个或多个标签,进行灵活的描述。
添加标签(Tag)有什么作用?
标签体现了群体的力量,使得用户之间可以通过相近的内容产生更多的关联和互动。您在发表日志或上传文件时添加了Tag ,就可以看到woku.com所有和您使用了相同Tag 的日志和文件。
标签频道中不同大小、粗细的文字代表什么?
使用不同大小、粗细字体的标签,代表着标签不同的使用频率。字体越大、越粗,说明这些标签的使用频率越高。
添加标签时需要注意些什么?
① 多个标签之间请用空格分隔。
② 每个标签的最大长度为 10 个汉字。
③ 每篇日志或每个文件最多只能添加10个标签,这包括您自己以及其他用户添加的标签。
我可以在别人发表的日志和文件中添加标签吗?
您可以根据浏览对象的阅读权限来判断是否可以添加标签。公开的日志或文件,所有用户都可以添加标签;仅供好友浏览的日志,只有好友和作者能添加标签;仅作者可以浏览的日志或文件,只有作者能够添加标签。当然,无论是谁添加的标签,都只有该日志或文件的作者可以修改或删除这些标签。
所以呢我找了些实现tag功能的asp代码,仅供参考
代码如下:
'*********************************************************
' 目的: 定义TTag类
' 输入: 无
' 返回: 无
'*********************************************************
Class TTag
Public ID
Public Name
Public Intro
Public Order
Public Count
Public Property Get EncodeName
EncodeName = Server.URLEncode(Name)
End Property
Public Property Get Url
Url = ZC_BLOG_HOST & "catalog.asp?"& "tags=" & Server.URLEncode(Name)
End Property
Public Property Get HtmlUrl
HtmlUrl=TransferHTML(Url,"[html-format]")
End Property
Public Property Get HtmlIntro
HtmlIntro=TransferHTML(Intro,"[html-format]")
End Property
Public Property Get HtmlName
HtmlName=TransferHTML(Name,"[html-format]")
End Property
Public Property Get RssUrl
RssUrl = ZC_BLOG_HOST & "sydication.asp?tags=" & ID
End Property
Public Function Post()
Call CheckParameter(ID,"int",0)
Call CheckParameter(Order,"int",0)
Name=FilterSQL(Name)
Name=TransferHTML(Name,"[normalname]")
If Len(Name)=0 Then Post=False:Exit Function
Intro=FilterSQL(Intro)
Intro=TransferHTML(Intro,"[html-format]")
If ID=0 Then
objConn.Execute("INSERT INTO [blog_Tag]([tag_Name],[tag_Order],[tag_Intro]) VALUES ('"&Name&"',"&Order&",'"&Intro&"')")
Else
objConn.Execute("UPDATE [blog_Tag] SET [tag_Name]='"&Name&"',[tag_Order]="&Order&",[tag_Intro]='"&Intro&"' WHERE [tag_ID] =" & ID)
End If
Post=True
End Function
Public Function LoadInfoByID(tag_ID)
Call CheckParameter(tag_ID,"int",0)
Dim objRS
Set objRS=objConn.Execute("SELECT [tag_ID],[tag_Name],[tag_Intro],[tag_Order],[tag_Count] FROM [blog_Tag] WHERE [tag_ID]=" & tag_ID)
If (Not objRS.bof) And (Not objRS.eof) Then
ID=objRS("tag_ID")
Name=objRS("tag_Name")
Intro=objRS("tag_Intro")
Order=objRS("tag_Order")
Count=objRS("tag_Count")
LoadInfoByID=True
End If
objRS.Close
Set objRS=Nothing
If IsNull(Intro) Then Intro=""
End Function
Public Function LoadInfoByArray(aryTagInfo)
If IsArray(aryTagInfo)=True Then
ID=aryTagInfo(0)
Name=aryTagInfo(1)
Intro=aryTagInfo(2)
Order=aryTagInfo(3)
Count=aryTagInfo(4)
End If
If IsNull(Intro) Then Intro=""
LoadInfoByArray=True
End Function
Public Function Del()
Call CheckParameter(ID,"int",0)
If (ID=0) Then Del=False:Exit Function
Dim s
Dim i
Dim objRS
Set objRS=Server.CreateObject("ADODB.Recordset")
objRS.CursorType = adOpenKeyset
objRS.LockType = adLockReadOnly
objRS.ActiveConnection=objConn
objRS.Source=""
objRS.Open("SELECT [log_ID],[log_tag] FROM [blog_Article] WHERE [log_Tag] LIKE '%{" & ID & "}%'")
If (Not objRS.bof) And (Not objRS.eof) Then
Do While Not objRS.eof
i=objRS("log_ID")
s=objRS("log_tag")
s=Replace(s,"{"& ID &"}","")
objConn.Execute("UPDATE [blog_Article] SET [log_tag]='"& s &"' WHERE [log_ID] =" & i)
objRS.MoveNext
Loop
End If
objRS.Close
objConn.Execute("DELETE FROM [blog_Tag] WHERE [tag_ID] =" & ID)
Del=True
End Function
Public Function MakeTemplate(s)
s=Replace(s,"<#article/tag/id#>",ID)
s=Replace(s,"<#article/tag/name#>",HtmlName)
s=Replace(s,"<#article/tag/intro#>",HtmlIntro)
s=Replace(s,"<#article/tag/count#>",Count)
s=Replace(s,"<#article/tag/url#>",HtmlUrl)
s=Replace(s,"<#article/tag/encodename#>",EncodeName)
MakeTemplate=s
End Function
End Class
'*********************************************************
'*********************************************************
' 目的: Tags读取
'*********************************************************
Function GetTags()
Dim i,j,k,l
Dim aryAllData
Dim arySingleData()
Erase Tags
Dim objRS
Set objRS=objConn.Execute("SELECT TOP 1 [tag_ID] FROM [blog_Tag] ORDER BY [tag_ID] DESC")
If (Not objRS.bof) And (Not objRS.eof) Then
i=objRS("tag_ID")
ReDim Tags(i)
End If
Set objRS=objConn.Execute("SELECT [tag_ID],[tag_Name],[tag_Intro],[tag_Order],[tag_Count] FROM [blog_Tag] ORDER BY [tag_ID] ASC")
If (Not objRS.bof) And (Not objRS.eof) Then
aryAllData=objRS.GetRows(objRS.RecordCount)
objRS.Close
Set objRS=Nothing
k=UBound(aryAllData,1)
l=UBound(aryAllData,2)
For i=0 To l
Set Tags(aryAllData(0,i))=New TTag
Tags(aryAllData(0,i)).LoadInfoByArray(Array(aryAllData(0,i),aryAllData(1,i),aryAllData(2,i),aryAllData(3,i),aryAllData(4,i)))
Next
End If
GetTags=True
End Function