通用标签一直是大家所希望有的,前段时间,我改了几个标签,实现通用。我本来在想能否用更简单的方法来实现,但是一直没想出来,呵呵~(水平太差^_^)。就只好提供一个标签函数修改的方法给大家参考一下,并非所有的标签都可以用。修改的时候,请注意一下。
我用推荐新闻的标签函数做个示例:
打开\ foosun\admin\Refresh\RefreshFunction.asp 搜索:Function RecNews找到推荐新闻的标签函数:
Function RecNews(ClassEName,SoonClassStr,NewNumberStr,TitleNumberStr,RowNumberStr,NaviPicStr,CompatPicStr,OpenTypeStr,CSSStyleStr,RowHeightStr,TxtNaviStr) Dim RecNewsSql,RsRecNewsObj,i TitleNumberStr = GetTitleNumberStr(TitleNumberStr) OpenTypeStr = GetOpenTypeStr(OpenTypeStr) CompatPicStr = GetCompatPicStr(CompatPicStr,"","",RowNumberStr) NaviPicStr = GetNewsNavitionStr(TxtNaviStr,NaviPicStr) if RowHeightStr <> "" then RowHeightStr = " Height=""" & RowHeightStr & """" '------------- dim TemppID,TemppSql,EndClassIDList If ClassEName<>"" then If SoonClassStr="1" then TemppSql="select ClassID from FS_NewsClass where ClassEName='" & ClassEName & "'" Set TemppID=conn.execute(TemppSql) EndClassIDList= "'" & TemppID(0) & "'" & AllChildClassIDStrList(TemppID(0)) Else TemppSql="select ClassID from FS_NewsClass where ClassEName='" & ClassEName & "'" Set TemppID=conn.execute(TemppSql) EndClassIDList="'" & TemppID(0) & "'" End if Else '当标签所选栏目为空时 If SoonClassStr="1" then '当选择了包含子类时 Select Case Fun_Refresh_Type '选择当前所在的类别 Case "Class" '当当前类别为栏目的时候 EndClassIDList = "'" & Fun_Refresh_ID & "'" & AllChildClassIDStrList(Fun_Refresh_ID) 'EndClassIDList取值为当前的栏目的栏目id加其所有子栏目的栏目id Case "News" '当当前的列别为新闻页面时 dim temp1rs,temp1sql,temp1id temp1sql = "select classid from fs_news where newsid = '" & Fun_Refresh_ID & "'" set temp1rs = conn.execute(temp1sql) if not temp1rs.eof then temp1id = temp1rs("classid") end if EndClassIDList = "'" & temp1id & "'" 'EndClassIDList取值为当前新闻所在的栏目id Case Else EndClassIDList = "" '当当前类别不在所列出的类别之内时EndClassIDList取空值 End Select else '当标签所选栏目为空,并却不包含子类时 EndClassIDList = "'" & Fun_Refresh_ID & "'" 'EndClassIDList取值为当前栏目的栏目id end if end if if EndClassIDList <> "" then '当EndClassIDList的值不为空的时候 RecNewsSql = "Select Top " & NewNumberStr & " *,FS_NewsClass.FileExtName as ClassFileExtName,FS_News.FileExtName as NewsFileExtName from FS_News,FS_NewsClass where FS_News.ClassID=FS_NewsClass.ClassID and FS_News.DelTF=0 and FS_News.RecTF=1 and FS_News.AuditTF=1 and FS_News.ClassID in(" & EndClassIDList & ") order by FS_News.ID Desc" 'RecNewsSql查询EndClassIDList所列出的所有栏目下的推荐新闻 else '当EndClassIDList取值为空的时候 Select Case Fun_Refresh_Type '选择当前页面类别(上面已经做了栏目和新闻的,所以这里就是专题和除了栏目、新闻、专题之外的类别选择) Case "Special" '当类别为专题的时候 RecNewsSql = "Select Top " & NewNumberStr & " *,FS_NewsClass.FileExtName as ClassFileExtName,FS_News.FileExtName as NewsFileExtName from FS_News,FS_NewsClass where FS_News.ClassID=FS_NewsClass.ClassID and FS_News.DelTF=0 and FS_News.RecTF=1 and FS_News.AuditTF=1 and FS_News.SpecialID like '" & Fun_Refresh_ID & "' order by FS_News.ID Desc" '查询当前专题中的所有推荐新闻 Case Else RecNewsSql = "Select Top " & NewNumberStr & " *,FS_NewsClass.FileExtName as ClassFileExtName,FS_News.FileExtName as NewsFileExtName from FS_News,FS_NewsClass where FS_News.ClassID=FS_NewsClass.ClassID and FS_News.DelTF=0 and FS_News.RecTF=1 and FS_News.AuditTF=1 order by FS_News.ID Desc" '当前类别在所有选择的类别之外的,查询所有的推荐新闻 End Select end if Set RsRecNewsObj = Conn.Execute(RecNewsSql) RecNews = "<table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">" & Chr(13) & Chr(10) do while Not RsRecNewsObj.Eof '=============中间内容省略================================================ RecNews = RecNews & "</table>" End Function
红色部分为修改内容,兰色部分为注释。
使用方法:当标签选择了栏目时,就调用所选栏目的内容。当标签不选择栏目的时候,则自动识别当前所在位置,调用符合当前位置的新闻。
修改后的程序截图:

此主题相关图片如下:

|