asp下tag的实现,简单介绍与部分代码

时间:2022-09-18 14:30:55

标签(Tag)是什么? 
标签是一种更为*、灵活,完全由用户决定的分类方式,而非传统的由网站定义的分类。您可以根据自己的理解,对发表的文章、上传的图片、音乐、视频等各种文件添加一个或多个标签,进行灵活的描述。  
添加标签(Tag)有什么作用? 
标签体现了群体的力量,使得用户之间可以通过相近的内容产生更多的关联和互动。您在发表日志或上传文件时添加了Tag ,就可以看到http://www.zzvips.com/tags.html所有和您使用了相同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