<% Class CmsDj_Label Dim DB,DjClass,SpecialClass,Dj,ArtiCle,TempUrl,HtmlUrl,CacheName Dim Loops,Start,States,Stars,SpecialID,Times,SqlWhere,SqlOrder,SqlSort,IPageSize,Group,ClassID,MatchC,ReadGo,Mark,ClassIDArr,ClassIDAll,Hide,I,DjClassArr,Arti,ClassAll,ClassIDs,SystemID Dim ZContent Dim RegEx,Match,Matches,TableName,Match1,RegEx1,Match2,RegEx2,MContent Dim Tmp_Matches,LinkStr Dim TempName,ClassName Dim PageStr,MyPage,PageMark,PageCountStr,PageCounts,CountData,Rss Private Sub Class_Initialize Set DB=New DAL_DB Set Dj = New CmsDj_Com_Dj Set User = New CmsDj_Com_User IF Cache.CheckCache("DjClass") Then DB.Table="CmsDj_Class" Cache.SetCache("DjClass"),DB.GetArr("",0,"CD_SystemID=1") End IF IF Cache.CheckCache("NewsClass") Then DB.Table="CmsDj_NewsClass" Cache.SetCache("NewsClass"),DB.GetArr("",0,"CD_IsIndex=0") End IF Set CmsDjMold= New CmsDj_Com_Mold Set HtmlRs=CmsDjMold.GetRs("",0,"CD_TheOrder=1") CD_TemplateUrl=HtmlRs("CD_TempPath") TempUrl=InstallDir&CD_TemplateUrl IF Right(Trim(TempUrl),1)="/" Then TempUrl=Left(TempUrl,Len(TempUrl)-1) IF Cache.CheckCache("TempImg")=True Then Cache.SetCache("TempImg"),Mid(TempUrl,1,InStrRev(TempUrl,"/",-1,1)-1) End Sub Public Function SpanDjList(Byval ClassID) IF Not IsNum(ClassID) Then:Echo "系统参数错误!":Exit Function:End IF ClassAll=Cache.GetCache("DjClass") For I=0 To Ubound(ClassAll,2) IF Cint(ClassID)=ClassAll(0,I) Then:TempName=ClassAll(3,I):ClassName=ClassAll(1,I):SystemID=ClassAll(6,I):Exit For Next IF Not(IsNul(TempName)) Then IF Not(Fso.CheckFile(TempUrl&"/"&TempName)) Then TempName="List.html" Else TempName="List.html" End IF IF CD_IsCache=0 or Cache.CheckCache(TempName&ClassID) Then IF Not(Fso.CheckFile(TempUrl&"/"&TempName)) Then Put "模板:"&TempUrl&"/"&TempName&" 文件不存在!" SpanDjList=Data_Mark(Base_Mark(GetTemp(TempName,ClassID)),ClassID) Cache.SetCache(TempName&ClassID),SpanDjList Else SpanDjList=Cache.GetCache(TempName&ClassID) End IF End Function Function SpanDjPlay(Byval ID) Dim DjClassID,Rsv IF Not IsNum(ID) Then Echo "系统参数错!":Exit Function:End IF DB.Table="CmsDj_Dj" Set Rsv=DB.GetRs("",1,"CD_ID="&ID) IF Rsv.Eof Then:Echo "没有找到相关记录":Exit Function:End IF DjClassID=Rsv("CD_ClassID") DjPlaySkin=Rsv("CD_Skin") IF CD_IsCache=0 or Cache.CheckCache(DjPlaySkin&DjClassID) Then IF Not(Fso.CheckFile(TempUrl&"/"&DjPlaySkin)) Then Put "模板:"&TempUrl&"/"&DjPlaySkin&" 文件不存在!" SpanDjPlay=GetTemp(DjPlaySkin,DjClassID) Cache.SetCache(DjPlaySkin&DjClassID),SpanDjPlay Else SpanDjPlay=Cache.GetCache(DjPlaySkin&DjClassID) End IF SpanDjPlay=ReplaceStr(SpanDjPlay,"[dj:ulink]",GetNext(Rsv(0),"u",1)) '上一首歌曲超链接 SpanDjPlay=ReplaceStr(SpanDjPlay,"[dj:uname]",GetNext(Rsv(0),"u",0)) '上一首歌曲名称 SpanDjPlay=ReplaceStr(SpanDjPlay,"[dj:dlink]",GetNext(Rsv(0),"d",1)) '下一首歌曲超链接 SpanDjPlay=ReplaceStr(SpanDjPlay,"[dj:dname]",GetNext(Rsv(0),"d",0)) '下一首歌曲名称 SpanDjPlay=ReplaceStr(SpanDjPlay,"[dj:hits]","") SpanDjPlay=ParamTwo(SpanDjPlay,"dj",Rsv,0) Rsv.Close End Function Function SpanDjSpecial(Byval ID) Dim SpecialID,Rsv IF Not IsNum(ID) Then Echo "系统参数错!":Exit Function:End IF DB.Table="CmsDj_Special" Set Rsv=DB.GetRs("",1,"CD_ID="&ID) IF Rsv.Eof Then:Echo "没有找到相关记录":Exit Function:End IF SpecialID=Rsv("CD_ID") DjSpecialSkin="Special.html" IF CD_IsCache=0 or Cache.CheckCache(DjSpecialSkin&SpecialID) Then IF Not(Fso.CheckFile(TempUrl&"/"&DjSpecialSkin)) Then Put "模板:"&TempUrl&"/"&DjSpecialSkin&" 文件不存在!" SpanDjSpecial=GetTemp(DjSpecialSkin,SpecialID) Cache.SetCache(DjSpecialSkin&SpecialID),SpanDjSpecial Else SpanDjSpecial=Cache.GetCache(DjSpecialSkin&SpecialID) End IF SpanDjSpecial=ReplaceStr(SpanDjSpecial,"[special:hits]","") SpanDjSpecial=ParamTwo(SpanDjSpecial,"special",Rsv,0) Rsv.Close End Function Function SpanDjNews(Byval ID) Dim NewsID,Rsv IF Not IsNum(ID) Then Echo "系统参数错!":Exit Function:End IF DB.Table="CmsDj_News" Set Rsv=DB.GetRs("",1,"CD_ID="&ID) IF Rsv.Eof Then:Echo "没有找到相关记录":Exit Function:End IF NewsID=Rsv("CD_ID") DjNewsSkin="News.html" IF CD_IsCache=0 or Cache.CheckCache(DjNewsSkin&NewsID) Then IF Not(Fso.CheckFile(TempUrl&"/"&DjNewsSkin)) Then Put "模板:"&TempUrl&"/"&DjNewsSkin&" 文件不存在!" SpanDjNews=GetTemp(DjNewsSkin,NewsID) Cache.SetCache(DjNewsSkin&NewsID),SpanDjNews Else SpanDjNews=Cache.GetCache(DjNewsSkin&NewsID) End IF SpanDjNews=ReplaceStr(SpanDjNews,"[news:hits]","") SpanDjNews=ParamTwo(SpanDjNews,"news",Rsv,0) Rsv.Close End Function Public Function SpanNewsList(Byval ClassID) IF Not IsNum(ClassID) Then:Echo "系统参数错误!":Exit Function:End IF ClassAll=Cache.GetCache("NewsClass") For I=0 To Ubound(ClassAll,2) IF Cint(ClassID)=ClassAll(0,I) Then:ClassName=ClassAll(1,I):Exit For Next SystemID=0 TempName="NewsList.html" IF CD_IsCache=0 or Cache.CheckCache(TempName&ClassID) Then IF Not(Fso.CheckFile(TempUrl&"/"&TempName)) Then Put "模板:"&TempUrl&"/"&TempName&" 文件不存在!" SpanNewsList=Data_Mark(Base_Mark(GetTemp(TempName,ClassID)),ClassID) Cache.SetCache(TempName&ClassID),SpanNewsList Else SpanNewsList=Cache.GetCache(TempName&ClassID) End IF End Function Function SpanDjPage(Byval ID) Dim PageID,Rsv IF Not IsNum(ID) Then Echo "系统参数错!":Exit Function:End IF DB.Table="CmsDj_Page" Set Rsv=DB.GetRs("",1,"CD_ID="&ID) IF Rsv.Eof Then:Echo "没有找到相关记录":Exit Function:End IF CD_SelfLable=Rsv("CD_SelfLable") SpanDjPage=TopAndBottom(Data_Mark(Base_Mark(CD_SelfLable),0)) Rsv.Close End Function Public Function GetTemp(Byval FileName,Byval ClassIDs) HtmlUrl=TempUrl&"/"&FileName CacheName = Lcase(ReplaceStr(HtmlUrl,"/","")) IF CD_IsCache = 0 Then GetTemp=TopAndBottom(Fso.ReadFile(HtmlUrl)) Else IF Cache.CheckCache(CacheName) Then GetTemp=TopAndBottom(Fso.ReadFile(HtmlUrl)):Cache.SetCache CacheName ,GetTemp Else GetTemp=Cache.GetCache(CacheName) End IF End IF Set SelfLabel= New Dal_DB SelfLabel.Table="CmsDj_Label" Set RsLabel=SelfLabel.GetRs("CD_Name,CD_SelfLable",0,"order by CD_Priority asc") If Not(RsLabel.bof And RsLabel.EOF) Then do while not RsLabel.eof LabelName=RsLabel("CD_Name") LabelContent=RsLabel("CD_SelfLable") GetTemp = replace(GetTemp,"{$MY_"&LabelName&"}",Data_Mark(Base_Mark(LabelContent),0)) RsLabel.movenext loop End If RsLabel.Close Set RsLabel=nothing GetTemp=Data_Mark(Base_Mark(GetTemp),ClassIDs) End Function Public Function TopAndBottom(Byval Template_Content) Template_Content=ReplaceStr(Template_Content,"[cmsdj:head]",Data_Mark(Base_Mark(Fso.ReadFile(TempUrl&"/Head.html")),0)) Template_Content=ReplaceStr(Template_Content,"[cmsdj:bottom]",Data_Mark(Base_Mark(Fso.ReadFile(TempUrl&"/Bottom.html")),0)) TopAndBottom=Template_Content End Function Public Function Base_Mark(Byval Mark_Text) IF IsNul(Mark_Text) Then:Echo "通用标签解析出错!":Exit Function:End IF Mark_Text = ReplaceStr(Mark_Text,"[Dj95_name]",Dj95_name) Mark_Text = ReplaceStr(Mark_Text,"[Dj95_w]",Dj95_w) Mark_Text = ReplaceStr(Mark_Text,"[Dj95_h]",Dj95_h) Mark_Text = ReplaceStr(Mark_Text,"[Dj95_color]",Dj95_color) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:webname]",CD_WebName) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:weburl]",CD_WebUrl) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:path]",InstallDir) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:mail]",CD_WebMail) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:qq]",CD_WebQQ) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:tel]",CD_WebTel) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:tempurl]",Cache.GetCache("TempImg")&"/") Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:icp]",CD_WebICP) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:lpid]",LpID) Mark_Text = ReplaceStr(Mark_Text,"[cmsdj:stat]",CD_WebCount) Base_Mark = Mark_Text End Function Public Function Data_Mark(Byval Mark_Text,Byval ClassID) Dim RegEx,Match,Matches,TableName,Match1,RegEx1,MContent Dim Tmp_Matches,DArray,Rs IF IsNul(Mark_Text) Then:Echo "处理数据标签出错!":Exit Function:End IF ClassIDs=ClassID Set RegEx=TAG(Mark_Text,"{cmsdj:([\S]+)\s+([\s\S]+?)}([\s\S]+?){/cmsdj:\1}") For Each Match In RegEx TableName=LCase(Trim(LCase("cmsdj_"&Match.SubMatches(0)))) Mark=Match.SubMatches(0) Set RegEx1=TAG(Match.SubMatches(1),"([a-z0-9]+)=([a-z0-9|,]+)") Call Param(RegEx1) IF Mark="type" Then TableName="CmsDj_Class" End IF DB.Table=TableName IF ReadGo=0 And Mark<>"playlist" Then Set Rs=DB.GetRs("",Loops,SqlWhere):Tmp_Matches="" IF Not Rs.Eof Then IF Start<>1 Then IF Rs.RecordCount>=Cint(Start) Then Rs.Move Start-1 End IF End IF I=0 Do While Not Rs.Eof I=I+1 Tmp_Matches=Tmp_Matches&ParamTwo(Match.SubMatches(2),Mark,Rs,I) Rs.MoveNext Loop Rs.Close End IF IF IsNul(Tmp_Matches) Then Tmp_Matches="
没有相关记录!
" Mark_Text=ReplaceStr(Mark_Text,Match.Value,Tmp_Matches) End IF Next Data_Mark=Mark_Text End Function Sub Page_Mark(Mark_Text,ClassID,KeyWord) IF IsNul(Mark_Text) Then:Put "处理翻页标签出错!":Exit Sub:End IF ClassIDs=ClassID Set RegEx=TAG(Mark_Text,"{cmsdj:([\S]+)\s+([\s\S]+?)}([\s\S]+?){/cmsdj:[\S]+?}") For Each Match In RegEx Set RegEx1=TAG(Match.SubMatches(1),"([a-z0-9]+)=([a-z0-9|,]+)") TableName=Trim(LCase("cmsdj_"&Match.SubMatches(0))):DB.Table=TableName:Mark=Match.SubMatches(0) Call Param(RegEx1) PageStr=Match.SubMatches(2) PageCountStr=Mark_Text PageMark=Match.Value IF IsNul(KeyWord) Then Set Rss=DB.GetRs("",0,SqlWhere) Else If CD_DBtype = "sql" Then Set Rss=DB.GetRs("",0,"CD_Deleted=0 And CD_Passed=0 And CD_Name Like '%"&KeyWord&"%' Or CD_Singer Like '%"&KeyWord&"%' Or CD_User Like '%"&KeyWord&"%' Order By CD_ID Desc") Else Set Rss=DB.GetRs("",0,"CD_Deleted=0 And CD_Passed=0 And InStr(1,LCase(CD_Name),LCase('"&key&"'),0)<>0 or InStr(1,LCase(CD_Singer),LCase('"&key&"'),0)<>0 or InStr(1,LCase(CD_User),LCase('"&key&"'),0)<>0 Order By CD_ID Desc") End If End IF Rss.Pagesize=IPageSize PageCounts = Rss.PageCount CountData = Rss.RecordCount Exit For Next End Sub Function GetPageCount GetPageCount=PageCounts End Function Function GetCountData GetCountData=CountData End Function Function GetIPageSize GetIPageSize=IPageSize End Function Function Span_Page(Byval ClassID,Byval Page) Tmp_Matches="" IF Not Rss.Eof Then Rss.AbsolutePage=Page For I=1 To Rss.PageSize IF Rss.Eof Then Exit For Tmp_Matches=Tmp_Matches&ParamTwo(PageStr,Mark,Rss,I) Rss.MoveNext Next Else Tmp_Matches="没有任何记录!" End IF Span_Page=PageCountStr Span_Page=ReplaceStr(Span_Page,PageMark,Tmp_Matches) Span_Page=ReplaceStr(Span_Page,"["&Mark&":classname]",ClassName) Span_Page=ReplaceStr(Span_Page,"["&Mark&":classlink]",LinkClassUrl(TableName,ClassID,SystemID,Page)) End Function Function PageShow(Byval Mark_Text,Byval SystemID,Byval Page,Byval ID) '翻页开始 IF Not Rss.Eof Or Cint(Page)=Cint(PageCounts) Then Dim HomePage,UpPage,NextPage,EndPage,PageNum,PageNumC,ForText,G,PageNumReg,H,PageListC HomePage=LinkClassURL(TableName,ClassIDs,SystemID,1) IF Cint(Page)=1 And Cint(PageCounts)=1 Then UpPage=HomePage NextPage=HomePage EndPage=HomePage ElseIF Cint(Page)=Cint(PageCounts) And Cint(PageCounts)>1 Then UpPage=LinkClassURL(TableName,ClassIDs,SystemID,Page-1) NextPage=LinkClassURL(TableName,ClassIDs,SystemID,PageCounts) EndPage=NextPage ElseIF Cint(Page)=1 And Cint(PageCounts)>1 Then UpPage=HomePage NextPage=LinkClassURL(TableName,ClassIDs,SystemID,Page+1) EndPage=LinkClassURL(TableName,ClassIDs,SystemID,PageCounts) Else UpPage=LinkClassURL(TableName,ClassIDs,SystemID,Page-1) NextPage=LinkClassURL(TableName,ClassIDs,SystemID,Page+1) EndPage=LinkClassURL(TableName,ClassIDs,SystemID,PageCounts) End IF IF Not IsNum(PageNum) Then PageNum=10 PageNumC="" Dim ForGos,ForEnds ForGos=1 ForEnds=Cint(PageNum) IF Cint(Page)>ForEnds\2 Then ForGos=Page-ForEnds\2 ForEnds=Page+ForEnds\2 End IF For H=ForGos To ForEnds IF H>PageCounts Then Exit For IF H=Cint(Page) Then PageNumC=PageNumC&""&H&"" Else PageNumC=PageNumC&""&H&"" End IF Next '下拉分页 'IF Cache.CheckCache("List_Mark.asp"&ClassIDs)=True Then PageListC="" ' Cache.SetCache "List_Mark.asp"&ClassIDs,PagelistC 'End IF 'PagelistC=Cache.GetCache("List_Mark.asp"&ClassIDs) End IF ''数字分页 Set ForText=TAG(Mark_Text,"\[page:(number)\s*([a-zA-Z=]*)\s*([\d]*)\]") For Each G In ForText IF IsNum(G.SubMatches(2)) Then PageNum=G.SubMatches(2) PageNumReg=G.value Next Mark_Text = ReplaceStr(Mark_Text,"[page:first]",HomePage) Mark_Text = ReplaceStr(Mark_Text,"[page:last]",EndPage) Mark_Text = ReplaceStr(Mark_Text,"[page:pageup]",UpPage) Mark_Text = ReplaceStr(Mark_Text,"[page:pagedown]",NextPage) Mark_Text = ReplaceStr(Mark_Text,"[page:countdata]",CountData) Mark_Text = ReplaceStr(Mark_Text,"[page:numpage]",page) Mark_Text = ReplaceStr(Mark_Text,PageNumReg,PageNumC) Mark_Text = ReplaceStr(Mark_Text,"[page:numlist]",PageListC) Mark_Text = ReplaceStr(Mark_Text,"[page:pagenum]",Page) Mark_Text = ReplaceStr(Mark_Text,"[page:pagecout]",PageCounts) Mark_Text = ReplaceStr(Mark_Text,"[page:pagesize]",IpageSize) PageShow=Mark_Text End Function '标签解析 Function TAG(Byval Mark_Text,Byval Pattern) Dim RegExT IF IsNul(Mark_Text) Then Put "出错了,处理标签出错!" Set RegExT= New RegExp RegExT.Pattern=Pattern RegExT.IgnoreCase = True RegExT.Global = True Set TAG=RegExT.Execute(Mark_Text) End Function '标签参数处理 Sub Param(Byval RegExC) ClassID="":Loops="":Start="":SpecialID="":Times="":SqlSort="":SqlOrder="":IPagesize="":Group="dj":Stars="":Hide="":SqlWhere=" 1=1 ":States="":ReadGO=0 IF Mark="class" Then SqlWhere=" CD_FatherID=0 " ElseIF Mark="type" Then SqlWhere= " CD_FatherID<>0 " End IF For Each MatchC In RegExC Select Case Trim(LCase(MatchC.SubMatches(0))) Case "classid" ClassID=Trim(LCase(MatchC.SubMatches(1))) Case "loop" Loops=Trim(LCase(MatchC.SubMatches(1))) Case "start" Start=Trim(LCase(MatchC.SubMatches(1))) Case "specialid" SpecialID=Trim(LCase(MatchC.SubMatches(1))) Case "time" Times=Trim(LCase(MatchC.SubMatches(1))) Case "sort" SqlSort=Trim(LCase(MatchC.SubMatches(1))) Case "order" SqlOrder=Trim(LCase(MatchC.SubMatches(1))) Case "pagesize" IPageSize=Trim(LCase(MatchC.SubMatches(1))):ReadGo=1 Case "group" Group=Trim(LCase(MatchC.SubMatches(1))) Case "state" States=Trim(LCase(MatchC.SubMatches(1))) Case "stars" Stars=Trim(LCase(MatchC.SubMatches(1))) Case "hide" Hide=Trim(LCase(MatchC.SubMatches(1))) End Select Next IF Not IsNum(Loops) Then Loops=99 IF Not IsNum(Start) Then Start=1 IF Start=0 Then Start=1 IF Start<>1 Then Loops=Cint(Loops)+Cint(Start) IF IsNul(Stars) Then Stars="all" IF IsNul(SpecialID) Then SpecialID="all" IF IsNul(SqlSort) Then SqlSort="time" ElseIF Not(SqlOrder<>"id" Or SqlOrder<>"time" Or SqlOrder<>"hits" Or SqlOrder<>"stars" Or SqlOrder<>"downhits" Or SqlOrder<>"favhits" Or SqlOrder<>"uhits" Or SqlOrder<>"dhits" Or SqlOrder<>"dayhits" Or SqlOrder<>"weekhits" Or SqlOrder<>"monthhits" Or SqlOrder<>"turn") Then SqlSort="time" End IF IF Not IsNum(IPageSize) Then IPageSize=10 IF IsNul(ClassID) Then ClassID="all" '组织Sql语句 IF IsNul(SqlOrder) Then:SqlOrder = "Desc" Select Case Mark Case "class":SqlWhere=SqlWhere&" And CD_IsHide=0 ":ClassSql Case "dj":SqlWhere=SqlWhere&" And CD_Passed=0 And CD_Deleted<>1 And CD_ClassID<>0 ":TableSql Case "user":SqlWhere=SqlWhere&" And UserLock=0 ":ClassSql Case "pic":SqlWhere=SqlWhere&" And Hidden=0 ":ClassSql Case "special":SqlWhere=SqlWhere&" And CD_Passed=0 ":TableSql Case "art":SqlWhere=SqlWhere&" And Hidden=0 ":ClassSql Case "link":ClassSql Case "news":SqlWhere=SqlWhere&" And CD_IsIndex=0 ":TableSql Case "newsclass":SqlWhere=SqlWhere&" And CD_IsIndex=0 ":ClassSql End Select End Sub Function ParamTwo(Byval ZContents,Byval Marks,Byval Rs,Byval I) Dim VCCount,RsClass,Comment,S,SourceArr,SourceStr,J ZContent=ZContents:J=0 Select Case Marks Case "class" ZContent=ReplaceStr(ZContent,"[class:i]",I) '排序ID ZContent=ReplaceStr(ZContent,"[class:id]",Rs(0)) '栏目ID ZContent=ReplaceStr(ZContent,"[class:link]",LinkClassUrl("cmsdj_class",Rs(0),Rs(6),1)) '超链接 Set RegEx2=TAG(ZContent,"\[class:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(1))) '名称 Case "aliasname" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(2))) '英文别名 End Select Next Case "dj" ZContent=ReplaceStr(ZContent,"[dj:i]",I) '当前歌曲排序ID ZContent=ReplaceStr(ZContent,"[dj:id]",Rs(0)) '当前歌曲ID ZContent=ReplaceStr(ZContent,"[dj:link]",LinkUrl("cmsdj_dj",Rs(2),1,Rs(0))) '当前歌曲超链接 ZContent=ReplaceStr(ZContent,"[dj:classid]",Rs(2)) '所属栏目ID ZContent=ReplaceStr(ZContent,"[dj:classname]",GetAttr(Cache.GetCache("DjClass"),Rs(2),1)) '所属栏目名称 ZContent=ReplaceStr(ZContent,"[dj:classlink]",LinkClassUrl("cmsdj_class",Rs(2),1,1)) '所属栏目超链接 ZContent=ReplaceStr(ZContent,"[dj:color]",Rs(28)) '标题颜色 ZContent=ReplaceStr(ZContent,"[dj:pic]",PicShow(Rs(6),"dj")) ZContent=ReplaceStr(ZContent,"[dj:url]",Rs(7)) '播放地址 ZContent=ReplaceStr(ZContent,"[dj:hits]",Rs(11)) '播放总人气 ZContent=ReplaceStr(ZContent,"[dj:downhits]",Rs(12)) '下载人气 ZContent=ReplaceStr(ZContent,"[dj:favhits]",Rs(13)) '收藏人气 ZContent=ReplaceStr(ZContent,"[dj:uhits]",Rs(14)) '顶歌人气 ZContent=ReplaceStr(ZContent,"[dj:dhits]",Rs(15)) '踩歌人气 ZContent=ReplaceStr(ZContent,"[dj:dayhits]",Rs(16)) '本日人气 ZContent=ReplaceStr(ZContent,"[dj:weekhits]",Rs(17)) '本周人气 ZContent=ReplaceStr(ZContent,"[dj:monthhits]",Rs(18)) '本月人气 ZContent=ReplaceStr(ZContent,"[dj:isbest]",Rs(23)) '推荐等级 ZContent=ReplaceStr(ZContent,"[dj:points]",Rs(26)) '收费点数 ZContent=ReplaceStr(ZContent,"[dj:userid]",GetUserID(Rs(5))) '所属会员ID ZContent=ReplaceStr(ZContent,"[dj:userpic]",GetUserPic(Rs(5),1)) ZContent=ReplaceStr(ZContent,"[dj:usernicheng]",GetData(Rs(5),8)) ZContent=ReplaceStr(ZContent,"[dj:userqq]",GetData(Rs(5),9)) ZContent=ReplaceStr(ZContent,"[dj:userwhe]",GetData(Rs(5),10)) ZContent=ReplaceStr(ZContent,"[dj:usersex]",GetData(Rs(5),11)) ZContent=ReplaceStr(ZContent,"[dj:userlink]",LinkWebURL(GetUserID(Rs(5)),Rs(5))) '所属会员空间链接 Set RegEx2=TAG(ZContent,"\[dj:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(1))) Case "time" ZContent=ReplaceStr(ZContent,Match2.Value,TimeShow(Match2.SubMatches(2),Rs(20))) Case "singer" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(4))) Case "user" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(5))) Case "word" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(9))) Case "lrc" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(10))) End Select Next Case "user" ZContent=ReplaceStr(ZContent,"[user:i]",I) '排序ID ZContent=ReplaceStr(ZContent,"[user:id]",Rs(0)) '会员ID ZContent=ReplaceStr(ZContent,"[user:link]",LinkWebURL(Rs(0),Rs(1))) '超链接 ZContent=ReplaceStr(ZContent,"[user:email]",Rs(6)) 'Email ZContent=ReplaceStr(ZContent,"[user:sex]",Rs(7)) '性别 ZContent=ReplaceStr(ZContent,"[user:qq]",Rs(11)) 'QQ ZContent=ReplaceStr(ZContent,"[user:points]",Rs(15)) '点数 ZContent=ReplaceStr(ZContent,"[user:photo]",PicShow(Rs(16),"dj")) '头像 ZContent=ReplaceStr(ZContent,"[user:whe]",Rs(19)) '省份 ZContent=ReplaceStr(ZContent,"[user:birthday]",Rs(20)) '生日 ZContent=ReplaceStr(ZContent,"[user:address]",Rs(21)) '地区 ZContent=ReplaceStr(ZContent,"[user:hits]",Rs(24)) '人气 ZContent=ReplaceStr(ZContent,"[user:money]",Rs(26)) '金额 Set RegEx2=TAG(ZContent,"\[user:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(1))) '名称 Case "time" ZContent=ReplaceStr(ZContent,Match2.Value,TimeShow(Match2.SubMatches(2),Rs(8))) '注册日期 Case "nicheng" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(2))) '呢称 Case "sign" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(17))) '签名 End Select Next Case "pic" ZContent=ReplaceStr(ZContent,"[pic:i]",I) '排序ID ZContent=ReplaceStr(ZContent,"[pic:id]",Rs(0)) '图片ID ZContent=ReplaceStr(ZContent,"[pic:link]",InstallDir&"user/space.asp?do=pic&view=album&id="&Rs(0)) '超链接 ZContent=ReplaceStr(ZContent,"[pic:userid]",Rs(1)) '所属会员ID ZContent=ReplaceStr(ZContent,"[pic:url]",PicShow(Rs(5),"pic")) '图片文件链接 ZContent=ReplaceStr(ZContent,"[pic:hits]",Rs(7)) '人气 ZContent=ReplaceStr(ZContent,"[pic:userid]",Rs(1)) '所属会员ID ZContent=ReplaceStr(ZContent,"[pic:userlink]",LinkWebURL(Rs(1),Rs(2))) '所属会员空间链接 Set RegEx2=TAG(ZContent,"\[pic:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(3))) '名称 Case "time" ZContent=ReplaceStr(ZContent,Match2.Value,TimeShow(Match2.SubMatches(2),Rs(8))) '日期 Case "user" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(2))) '所属会员名称 End Select Next Case "special" ZContent=ReplaceStr(ZContent,"[special:i]",I) '排序ID ZContent=ReplaceStr(ZContent,"[special:id]",Rs(0)) 'ID ZContent=ReplaceStr(ZContent,"[special:link]",LinkUrl("cmsdj_special",Rs(1),1,Rs(0))) '超链接 ZContent=ReplaceStr(ZContent,"[special:classid]",Rs(1)) '所属栏目ID ZContent=ReplaceStr(ZContent,"[special:classname]",GetAttr(Cache.GetCache("DjClass"),Rs(1),1)) '所属栏目名称 ZContent=ReplaceStr(ZContent,"[special:classlink]",LinkClassUrl("cmsdj_class",Rs(1),1,1)) '所属栏目超链接 ZContent=ReplaceStr(ZContent,"[special:userid]",GetUserID(Rs(3))) '所属会员ID ZContent=ReplaceStr(ZContent,"[special:userlink]",LinkWebURL(GetUserID(Rs(3)),Rs(3))) '所属会员空间链接 ZContent=ReplaceStr(ZContent,"[special:pic]",PicShow(Rs(4),"pic")) '图片文件链接 ZContent=ReplaceStr(ZContent,"[special:gongsi]",Rs(5)) '公司 ZContent=ReplaceStr(ZContent,"[special:yuyan]",Rs(6)) '语言 ZContent=ReplaceStr(ZContent,"[special:hits]",Rs(8)) '人气 Set RegEx2=TAG(ZContent,"\[special:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(2))) '名称 Case "time" ZContent=ReplaceStr(ZContent,Match2.Value,TimeShow(Match2.SubMatches(2),Rs(11))) '日期 Case "user" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(3))) '所属会员名称 Case "intro" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(7))) '简介 End Select Next Case "link" ZContent=ReplaceStr(ZContent,"[link:i]",I) ZContent=ReplaceStr(ZContent,"[link:id]",Rs(0)) ZContent=ReplaceStr(ZContent,"[link:pic]",Rs(3)) ZContent=ReplaceStr(ZContent,"[link:url]",Rs(2)) Set RegEx2=TAG(ZContents,"\[link:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(1))) Case "intro" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(5))) End Select Next Case "art" ZContent=ReplaceStr(ZContent,"[art:i]",I) '排序ID ZContent=ReplaceStr(ZContent,"[art:id]",Rs(0)) '日志ID ZContent=ReplaceStr(ZContent,"[art:link]",InstallDir&"user/space.asp?do=daily&view=blog&id="&Rs(0)) '超链接 ZContent=ReplaceStr(ZContent,"[art:userid]",Rs(1)) '所属会员ID ZContent=ReplaceStr(ZContent,"[art:hits]",Rs(7)) '人气 ZContent=ReplaceStr(ZContent,"[art:userid]",Rs(1)) '所属会员ID ZContent=ReplaceStr(ZContent,"[art:userlink]",LinkWebURL(Rs(1),Rs(2))) '所属会员空间链接 Set RegEx2=TAG(ZContent,"\[art:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(3))) '名称 Case "time" ZContent=ReplaceStr(ZContent,Match2.Value,TimeShow(Match2.SubMatches(2),Rs(7))) '日期 Case "user" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(2))) '所属会员名称 Case "content" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),RemoveHTML(Rs(4)))) '日志内容 End Select Next Case "news" ZContent=ReplaceStr(ZContent,"[news:i]",I) '排序ID ZContent=ReplaceStr(ZContent,"[news:id]",Rs(0)) '新闻ID ZContent=ReplaceStr(ZContent,"[news:link]",LinkUrl("cmsdj_news",Rs(1),1,Rs(0))) '超链接 ZContent=ReplaceStr(ZContent,"[news:classid]",Rs(1)) '所属栏目ID ZContent=ReplaceStr(ZContent,"[news:classname]",GetAttr(Cache.GetCache("NewsClass"),Rs(1),1)) '所属栏目名称 ZContent=ReplaceStr(ZContent,"[news:classlink]",LinkClassUrl("cmsdj_newsclass",Rs(1),0,1)) '所属栏目超链接 ZContent=ReplaceStr(ZContent,"[news:color]",Rs(7)) '标题颜色 ZContent=ReplaceStr(ZContent,"[news:hits]",Rs(4)) '人气 Set RegEx2=TAG(ZContent,"\[news:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(2))) '名称 Case "time" ZContent=ReplaceStr(ZContent,Match2.Value,TimeShow(Match2.SubMatches(2),Rs(8))) '日期 Case "intro" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(3))) '新闻内容-不过滤 Case "content" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),RemoveHTML(Rs(3)))) '新闻内容-过滤HTML代码 End Select Next Case "newsclass" ZContent=ReplaceStr(ZContent,"[newsclass:i]",I) '排序ID ZContent=ReplaceStr(ZContent,"[newsclass:id]",Rs(0)) '新闻ID ZContent=ReplaceStr(ZContent,"[newsclass:link]",LinkClassUrl("cmsdj_newsclass",Rs(0),0,1)) '超链接 Set RegEx2=TAG(ZContent,"\[newsclass:\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match2 In RegEx2 MContent="" Select Case LCase(Match2.SubMatches(0)) Case "name" ZContent=ReplaceStr(ZContent,Match2.Value,NameShow(Match2.SubMatches(2),Rs(1))) '名称 End Select Next End Select ParamTwo=ZContent End Function Function PicShow(Byval PicStr,Mark) Dim URLSel Select Case LCase(Trim(Mark)) Case "dj" URLSel="url" Case "pic" URLSel="pic" Case "topic" URLSel=CD_Timgfolder End Select IF PicStr<>"" Then IF LCase(Left(PicStr,7))="http://" Then PicShow=PicStr Else PicShow=InstallDir&PicStr End IF Else PicShow=InstallDir&"user/image/noavatar_big.gif" End IF End Function Function TimeShow(Byval Str,Byval Times) Dim Years,Months,Days,Hours,Minutes,Seconds IF IsNul(Str) Then:TimeShow=FormatDateTime(Times,2):Exit Function:End IF Years=Year(Times):Months=Month(Times):Days=Day(Times):Hours=Hour(Times):Minutes=Minute(Times):Seconds=Second(Times) Str=ReplaceStr(Str,"y",Years) Str=ReplaceStr(Str,"m",Months) Str=ReplaceStr(Str,"d",Days) Str=ReplaceStr(Str,"h",Hours) Str=ReplaceStr(Str,"f",Minutes) Str=ReplaceStr(Str,"s",Seconds) TimeShow=Str End Function Function NameShow(Byval Num,Byval SName) IF IsNum(Num) Then NameShow=Left(SName,Num) Else NameShow=SName End IF End Function Sub ClassSql IF ClassID="txt" Then ClassID=1 ElseIF ClassID="pic" Then ClassID=2 ElseIF ClassID="auto" Then IF IsNum(ClassIDs) Then IF Cint(ClassIDs)<>0 Then IF Mark="type" Then SqlWhere=SqlWhere& " And CD_ID In("&ChildrenID("cmsdj_"&Group,ClassIDs)&") And CD_FatherID<>0 And CD_ID<>"&ClassIDs&" " Else SqlWhere=SqlWhere&" And CD_ID="&ClassIDs&" " End IF End IF End IF ElseIF Not IsNul(ClassID) And ClassID<>"all" Then ClassID=ReplaceStr(ClassID,"|",",") SqlWhere=SqlWhere&" And CD_ID In ("&ClassID&") " End IF IF Group="dj" And Mark<>"link" Then SqlWhere = SqlWhere& " " IF IsNul(SqlSort) Then SqlWhere = SqlWhere & " Order By CD_ID " IF Mark="link" Then SqlWhere = SqlWhere &" And CD_IsVerify=0 " IF Hide="true" And Mark="link" Then SqlWhere = SqlWhere &" And CD_IsIndex=0 And CD_ClassID="&ClassID&" " IF Mark="link" or Mark="class" or Mark="newsclass" Then Select Case SqlSort Case "id" SqlWhere = SqlWhere & " Order By CD_ID "&SqlOrder Case "turn" SqlWhere = SqlWhere &" Order By CD_TheOrder "&SqlOrder&" , CD_ID Desc" Case Else SqlWhere=SqlWhere &"Order By CD_ID "&SqlOrder End Select ElseIF Mark="news" Then Select Case SqlSort Case "time" SqlWhere =SqlWhere &" Order By CD_AddTime "&SqlOrder&" , CD_ID Desc" Case "id" SqlWhere =SqlWhere &" Order By CD_ID "&SqlOrder Case "hits" SqlWhere =SqlWhere &" Order By CD_Hits "&SqlOrder&" , CD_ID Desc" Case Else SqlWhere=SqlWhere &" Order By CD_AddTime "&SqlOrder&" , CD_ID Desc" End Select ElseIF Mark="pic" or Mark="art" Then Select Case SqlSort Case "time" SqlWhere =SqlWhere &" Order By UpdateTime "&SqlOrder&" , ID Desc" Case "id" SqlWhere =SqlWhere &" Order By ID "&SqlOrder Case "hits" SqlWhere =SqlWhere &" Order By Hits "&SqlOrder&" , ID Desc" Case Else SqlWhere=SqlWhere &" Order By UpdateTime "&SqlOrder&" , ID Desc" End Select ElseIF Mark="user" Then Select Case SqlSort Case "time" SqlWhere =SqlWhere &" Order By RegDate "&SqlOrder&" , UserID Desc" Case "id" SqlWhere =SqlWhere &" Order By UserID "&SqlOrder Case "hits" SqlWhere =SqlWhere &" Order By Hits "&SqlOrder&" , UserID Desc" Case "isbest" SqlWhere =SqlWhere &" And IsBest=1 Order By UserID "&SqlOrder&" , UserID Desc" Case Else SqlWhere=SqlWhere &" Order By RegDate "&SqlOrder&" , UserID Desc" End Select End IF End Sub Sub TableSql IF ClassID="auto" Then IF IsNum(ClassIDs) Then IF Cint(ClassIDs)<>0 Then SqlWhere=SqlWhere&" And CD_ClassID In("&ChildrenID("cmsdj_"&Group,ClassIDs)&") " End IF ElseIF Not IsNul(ClassID) And ClassID<>"all" Then ClassIDAll=ChildrenID("cmsdj_dj",ClassID) SqlWhere=SqlWhere&" And CD_ClassID In ("&ClassIDAll&") " End IF IF SpecialID="auto" Then SqlWhere= SqlWhere& " And CD_SpecialID In ("&ClassIDs&") " End IF IF States="true" And Mark="dj" Then SqlWhere=SqlWhere & " And CD_Passed=1 " IF Not IsNul(Stars) And Stars<>"all" Then SqlWhere = SqlWhere &" And CD_IsBest In ("&Stars&") " End IF IF Mark<>"special" Then Select Case SqlSort Case "time" SqlWhere =SqlWhere &" Order By CD_AddTime "&SqlOrder&" , CD_ID Desc" Case "id" SqlWhere =SqlWhere &" Order By CD_ID "&SqlOrder Case "hits" SqlWhere =SqlWhere &" Order By CD_Hits "&SqlOrder&" , CD_ID Desc" Case "stars" SqlWhere =SqlWhere &" Order By CD_IsBest "&SqlOrder&" , CD_ID Desc" Case "downhits" SqlWhere =SqlWhere &" Order By CD_DownHits "&SqlOrder&" , CD_ID Desc" Case "favhits" SqlWhere =SqlWhere &" Order By CD_FavHits "&SqlOrder&" , CD_ID Desc" Case "uhits" SqlWhere =SqlWhere &" Order By CD_uHits "&SqlOrder&" , CD_ID Desc" Case "dhits" SqlWhere =SqlWhere &" Order By CD_dHits "&SqlOrder&" , CD_ID Desc" Case "dayhits" SqlWhere =SqlWhere &" Order By CD_DayHits "&SqlOrder&" , CD_ID Desc" Case "weekhits" SqlWhere =SqlWhere &" Order By CD_WeekHits "&SqlOrder&" , CD_ID Desc" Case "monthhits" SqlWhere =SqlWhere &" Order By CD_MonthHits "&SqlOrder&" , CD_ID Desc" Case Else SqlWhere=SqlWhere &" Order By CD_AddTime "&SqlOrder&" , CD_ID Desc" End Select ElseIF Mark="special" Then Select Case SqlSort Case "time" SqlWhere =SqlWhere &" Order By CD_AddTime "&SqlOrder&" , CD_ID Desc" Case "id" SqlWhere =SqlWhere &" Order By CD_ID "&SqlOrder Case "hits" SqlWhere =SqlWhere &" Order By CD_Hits "&SqlOrder&" , CD_ID Desc" Case "isbest" SqlWhere =SqlWhere &" And CD_IsBest=1 Order By CD_ID "&SqlOrder Case Else SqlWhere=SqlWhere &" Order By CD_AddTime "&SqlOrder&" , CD_ID Desc" End Select End IF End Sub '取分类所有ID Function ChildrenID(Byval TableName,Byval ClassID) Dim I,J,ClassIDArr IF Not IsNum(ClassID) Or ClassID="0" Then:ChildrenID=0:Exit Function:End IF IF TableName="cmsdj_dj" Then ClassAll=Cache.GetCache("DjClass") ElseIF TableName="cmsdj_special" Then ClassAll=Cache.GetCache("DjClass") Else ChildrenID=0:Exit Function End IF ClassIDArr=Split(ReplaceStr(ClassID,"|",","),",") For I=0 To Ubound(ClassIDArr) IF IsNum(ClassIDArr(I)) Then For J=0 To Ubound(ClassAll,2) IF ClassAll(4,J)=Cint(ClassIDArr(I)) Then ChildrenID=ChildrenID&","&ClassAll(0,J) End IF Next ChildrenID=ChildrenID&","&ClassIDArr(I) End IF Next ChildrenID=Right(ChildrenID,Len(ChildrenID)-1) End Function Function TwoClass(Byval ZContents,Byval Marks,Byval Rs, Byval J) Dim ZContent2,RegEx3,Match3 ZContent2=ZContents IF Cache.CheckCache("VCCount"&Rs(0))=True Then Set RsClass=Dj.GetRs("CD_ID",0,"CD_ClassID="&Rs(0)) VCCount=RsClass.RecordCount Cache.SetCache("VCCount"&Rs(0)),VCCount End IF IF Marks="type" Then ZContent2=ReplaceStr(ZContent2,"["&Marks&":i]",J+1) Else ZContent2=ReplaceStr(ZContent2,"["&Marks&":i]",I+1) End IF ZContent2=ReplaceStr(ZContent2,"["&Marks&":id]",Rs(0)) VCCount=Cache.GetCache("VCCount"&Rs(0)) ZContent2=ReplaceStr(ZContent2,"["&Marks&":count]",VCCount) IF Group="article" Then SystemID=2 ZContent2=ReplaceStr(ZContent2,"["&Marks&":link]",LinkclassUrl("cmsdj_class",Rs(0),Rs(6),1)) Set RegEx3=TAG(ZContents,"\["&Marks&":\s*([0-9a-zA-Z]+)([\s]*[len|style]*)[=]??([\da-zA-Z\-\\\/\:\s]*)\]") For Each Match3 In RegEx3 MContent="" Select Case LCase(Match3.SubMatches(0)) Case "name" ZContent2=ReplaceStr(ZContent2,Match3.Value,NameShow(Match3.SubMatches(2),Rs(1))) End Select Next TwoClass=ZContent2 End Function Sub SpanSel IF CD_WebHtml<>2 Then:Echo "网站运行模式为动态模式,不允许生成!":Response.End:End IF End Sub Public Sub Class_Terminate End Sub End Class Dim Label Set Label = New CmsDj_Label %>