⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classarticle.asp

📁 依蓝旅游网站管理系统Elan2008.SP2
💻 ASP
📖 第 1 页 / 共 5 页
字号:
		 MatchString = Match.Value
		 TempString = LCase(Left(MatchString, InStr(MatchString, "]")))
		 TempString = Replace(Replace(TempString, "[", ""), "]", "")
		 TempString = Replace(TempString, " ", "")
		 TempString = Replace(TempString, "arrclasslist", "")
		 TempString = Replace(Replace(TempString, "(", ""), ")", "")
		 Cols = EL_Common.ELClng(TempString)
		 If Cols < 1 Then Cols = 1
		 If ClassID = 0 Then
		    SQLCondition = "ChannelID="& ChannelID &" And ParentID="& ClassID &" And ShowOnIndex="& EL_True &" ORDER BY OrderID"
		 Else
		    SQLCondition = "ChannelID="& ChannelID &" And ParentID="& ClassID &" And ShowOnParent="& EL_True &" ORDER BY OrderID"
		 End If 
		 Call EL_Common.InitCommonCmd(ArrClassCmd, rsArrClass, "EL_Class", "ClassID,ClassName", SQLCondition)
		 rsArrClass.Close()
		 RowCount = ArrClassCmd(0)
		 If RowCount = 0 Then
		    Temp = ""
		 Else
			MatchString = EL_Common.ReplaceText(MatchString, "\[arrClassList\(([ 0-9]+)\)\]", "")
			MatchString = EL_Common.ReplaceText(MatchString, "\[\/arrClassList\]", "")			
			rsArrClass.Open()
			Temp = "<table width=100% border='0' cellpadding='0' cellspacing='0'><tr>"
			Dim ItemHTML, ArrClassID
		    For i = 1 To RowCount
			   ArrClassID = Replace(EL_Common.GetAllClassID(rsArrClass(0)), ",", "|")	
			   ItemHTML = ""		   
			   ItemHTML = EL_Common.RegExpStaticLabel(MatchString, "{$arr_ClassID}", rsArrClass(0).value)			   
			   ItemHTML = EL_Common.RegExpStaticLabel(ItemHTML, "{$arr_ClassName}", rsArrClass(1).value)
			   ItemHTML = EL_Common.RegExpStaticLabel(ItemHTML, "{$arr_ClassURL}", InstallDir & EL_Channel.ChannelDir &"/ShowClass.asp?ClassID="& rsArrClass(0).value)
			   ItemHTML = EL_Common.ReplaceText(ItemHTML, "arr_AllChildID", ArrClassID)
			   ItemHTML = Label_GetArticleList(ItemHTML)
			   ItemHTML = Label_GetArticlePhoto(ItemHTML)
			   Temp = Temp &"<td width='"& 100/Cols &"%' valign='top'>"
			   Temp = Temp & ItemHTML
			   Temp = Temp &"</td>"
			   If (i Mod Cols)=0 And i<RowCount Then 
			      Temp = Temp &"</tr><tr>"
			   Else
			   If (i Mod Cols)>0 Then Temp = Temp &"<td>&nbsp;</td>"
			   End If
			   If i<RowCount Then rsArrClass.MoveNext
			Next
			Temp = Temp &"</tr></table>"
			rsArrClass.Close()
		 End if
		 Set rsArrClass = Nothing
		 Set ArrClassCmd = Nothing
		 ReturnString = Replace(ReturnString, Match.Value, Temp)
      Next	  
	  
	  Set Matches = Nothing
	  EL_Flag = True
	  Label_ArrClassList = ReturnString
   End Function
   
   Private Function Label_GetArticleList(ByVal HTML)
      Dim Match, Matches, ReturnString, Parameters, Temp
	  CommonRegExp.Pattern = "<!--\{\$GetArticleList\(([ 0-9]+|[ ]*ChannelID[ ]*),([ 0-9\|]+|[ ]*ClassID[ ]*),([ 0-9]+),([ 0-9]+),[ ]*(True|False)[ ]*,([ 0-9]+),[ ]*(True|False)[ ]*,([ 0-9]+),([ 0-9]+),([ 0-9]+),([ 0-9]+),([ 0-9]+),[ ]*(True|False)[ ]*,[ ]*(True|False)[ ]*,[ \w""]*,[ \w""]*,[ \w""]*\)\}-->"        
      Set Matches = CommonRegExp.Execute(HTML)
	  ReturnString = HTML
	  Temp = ""	  
      For Each Match in Matches
		 Parameters = EL_Common.GetLabelParameters(Match.Value, "GetArticleList")
		 Temp = ArticleList(Parameters(0), Parameters(1), Parameters(2), Parameters(3), Parameters(4), Parameters(5), Parameters(6), Parameters(7), Parameters(8), Parameters(9), Parameters(10), Parameters(11), Parameters(12), Parameters(13), Parameters(14), Parameters(15), Parameters(16))		 
		 ReturnString = Replace(ReturnString, Match.Value, Temp)
      Next
	  
	  CommonRegExp.Pattern = "\{\$GetArticleList\(([ 0-9]+|[ ]*ChannelID[ ]*),([ 0-9\|]+|[ ]*ClassID[ ]*),([ 0-9]+),([ 0-9]+),[ ]*(True|False)[ ]*,([ 0-9]+),[ ]*(True|False)[ ]*,([ 0-9]+),([ 0-9]+),([ 0-9]+),([ 0-9]+),([ 0-9]+),[ ]*(True|False)[ ]*,[ ]*(True|False)[ ]*,[ \w""]*,[ \w""]*,[ \w""]*\)\}"
	  Set Matches = CommonRegExp.Execute(ReturnString)
	  For Each Match in Matches
		 Parameters = EL_Common.GetLabelParameters(Match.Value, "GetArticleList")
		 Temp = ArticleList(Parameters(0), Parameters(1), Parameters(2), Parameters(3), Parameters(4), Parameters(5), Parameters(6), Parameters(7), Parameters(8), Parameters(9), Parameters(10), Parameters(11), Parameters(12), Parameters(13), Parameters(14), Parameters(15), Parameters(16))
		 ReturnString = Replace(ReturnString, Match.Value, Temp)
      Next
	  Set Matches = Nothing
	  
	  Label_GetArticleList = ReturnString
   End Function
   
   Private Function ArticleList(ByVal iChannelID, ByVal ArrClassID, ByVal ArticleNum, ByVal TitleLen, ByVal ShowClassName, ByVal ShowDateType, ByVal IsCommend, ByVal OrderType, ByVal OpenType, ByVal ColNum, ByVal ListType, ByVal ShowIcon, ByVal ShowHint, ByVal ShowPage, ByVal ClassA, ByVal Class1, ByVal Class2)
      Dim ArticleCmd, rsArticle, i, ReturnString
	  Dim PageSizes, RowCount, TotalRowCount, PageCounts
	  Dim SQLTables, SQLFields, SQLCondition, SQLOrder, SQL
	  Dim ChannelCmd, rsChannel, ChannelDir, ChannelModule, ItemName, ItemUnit, Disabled
	  
	  iChannelID = Eval(iChannelID)
	  If Instr(ArrClassID, "|")<1 Then
	     ArrClassID = Eval(ArrClassID)	
	  End If
	  ArrClassID = CStr(ArrClassID)  
	  
	  If iChannelID <> ChannelID Then
	     Call EL_Common.InitCommonCmd(ChannelCmd, rsChannel, "EL_Channel", "ChannelDir,ChannelModule,ShowPageSize,ItemName,ItemUnit,Disabled", "ChannelID="& iChannelID &" AND ChannelType=0")
	     rsChannel.Close()
	     If ChannelCmd(0) <> 1 Then
	        Set rsChannel = Nothing
		    Set ChannelCmd = Nothing
		    ArticleList = EL_Common.Lang("BaseConfig.ChannelError", "·频道参数错误")
		    Exit Function
	     Else
	        rsChannel.Open()
		    ChannelDir = rsChannel(0)
		    ChannelModule = rsChannel(1)
		    PageSizes = rsChannel(2)
		    ItemName = rsChannel(3)
		    ItemUnit = rsChannel(4)
		    Disabled = rsChannel(5)
		    rsChannel.Close()		    
	     End If
	     Set rsChannel = Nothing
	     Set ChannelCmd = Nothing	     
	  Else
	     ChannelDir = EL_Channel.ChannelDir
		 ChannelModule = EL_Channel.ChannelModule
		 PageSizes = EL_Channel.ShowPageSize
		 ItemName = EL_Channel.ItemName
		 ItemUnit = EL_Channel.ItemUnit
		 Disabled = EL_Channel.Disabled
	  End If	
	  
	  If ChannelModule <> 1 Then
	     ArticleList = EL_Common.Lang("BaseConfig.ChannelModuleError", "·频道模块错误")
	     Exit Function
	  End If
	  
	  If Disabled Then
	     ArticleList = EL_Common.Lang("BaseConfig.Disabled", "·该频道已被禁用")
	     Exit Function
	  End If  	  
	  If PageSizes<1 Then PageSizes = EL_Common.Lang("BaseConfig.ShowPageSizes", 20)
	  
	  ArticleNum = EL_Common.ELClng(ArticleNum)
	  TitleLen = EL_Common.ELClng(TitleLen)
	  ShowClassName = Eval(ShowClassName)	  
	  ShowDateType = EL_Common.ELClng(ShowDateType)
	  IsCommend = Eval(IsCommend)	  
	  OrderType = EL_Common.ELClng(OrderType)	  
	  OpenType = EL_Common.ELClng(OpenType)
	  ColNum = EL_Common.ELClng(ColNum)
	  ListType = EL_Common.ELClng(ListType)
	  ShowIcon = EL_Common.ELClng(ShowIcon)
	  ShowHint = Eval(ShowHint)	  
	  ShowPage = Eval(ShowPage)	  
	  ClassA = Replace(ClassA, """", "")
	  Class1 = Replace(Class1, """", "")
	  Class2 = Replace(Class2, """", "")  
	  
	  If OpenType > 1 Then OpenType = 1	
	  If ColNum < 1 Then ColNum = 1
	  
	  SQLTables = "EL_Article,EL_Class"
	  SQLFields = "EL_Article.ArticleID,EL_Article.Title,EL_Article.Author,EL_Article.UpdateTime"
	  If ShowClassName Then SQLFields = SQLFields &",EL_Class.ClassID,EL_Class.ClassName"	
	  SQLOrder = "EL_Article.OnTop DESC"	   
	  Select Case OrderType
	    Case 1: SQLOrder = SQLOrder &",EL_Article.ArticleID ASC"
		Case 2: SQLOrder = SQLOrder &",EL_Article.ArticleID DESC"
		Case 3: SQLOrder = SQLOrder &",EL_Article.UpdateTime ASC"
		Case 4: SQLOrder = SQLOrder &",EL_Article.UpdateTime DESC"
		Case 5: SQLOrder = SQLOrder &",EL_Article.Hits ASC"
		Case 6: SQLOrder = SQLOrder &",EL_Article.Hits DESC"
		Case Else:  SQLOrder = SQLOrder &",EL_Article.ArticleID DESC"
	  End Select
	  SQLOrder = "EL_Article.OnTop DESC,EL_Article.ArticleID DESC"	 	  
	  SQLCondition = " EL_Article.ChannelID="& iChannelID &" And EL_Article.ClassID=EL_Class.ClassID And EL_Article.Passed="& EL_True &" And EL_Article.Deleted="& EL_False &" " 
	  If ArrClassID = "" Or ArrClassID = "0" Or Replace(ArrClassID, "|", "") = "" Then
	     'SQLCondition = SQLCondition &""
	  Else
		 If ShowClassType = 1 Then
		    ArrClassID = ArrClassID
		 Else
		    ArrClassID = EL_Common.GetAllClassID(ArrClassID)
		 End If
		 SQLCondition = SQLCondition &"AND EL_Article.ClassID In("& ArrClassID &") "
	  End If	  
	  If IsCommend Then SQLCondition = SQLCondition &" AND EL_Article.Commended="& EL_True &" "
	  ReturnString = ""
	  
	  If EL_Flag = False Then ShowPage = False '防止在特殊标签中设ShowPage=True	  
 
	  If ShowPage = True Then		  
		 Call EL_Common.InitCommand(ArticleCmd, "EL_SP_SplitPage")
		 With ArticleCmd
		    .Parameters.Append .CreateParameter("RETURN", 3, 4, 4)
		    .Parameters.Append .CreateParameter("@Tables", 200, 1, 50, SQLTables)
		    .Parameters.Append .CreateParameter("@PrimaryKey", 200, 1, 50, "EL_Article.ArticleID")
		    .Parameters.Append .CreateParameter("@Sort", 200, 1, 200, SQLOrder)
		    .Parameters.Append .CreateParameter("@CurrentPage", 3, 1, 4, CurrentPage)
		    .Parameters.Append .CreateParameter("@PageSize", 3, 1, 4, PageSizes)
		    .Parameters.Append .CreateParameter("@Fields", 200, 1, 1000, SQLFields)
		    .Parameters.Append .CreateParameter("@Filter", 200, 1, 1000, SQLCondition)
		    .Parameters.Append .CreateParameter("@Group", 200, 1, 1, "")
		    .Parameters.Append .CreateParameter("@TotalRowCount", 3, 2, 4)
		    .Parameters.Append .CreateParameter("@PageCount", 3, 2, 4)
		    Set rsArticle = .Execute()
		 End With
		 rsArticle.Close()
		 RowCount = ArticleCmd(0)
		 TotalRowCount = ArticleCmd(9)
		 PageCounts = ArticleCmd(10)
	  Else
	     If ArticleNum < 1 Then ArticleNum = EL_Common.Lang("Article.TopNum", 5)
		 Call EL_Common.InitCommonCmd(ArticleCmd, rsArticle, SQLTables, " TOP "& ArticleNum &" "& SQLFields, SQLCondition &" ORDER BY "& SQLOrder)
		 rsArticle.Close()
		 RowCount = ArticleCmd(0)		 
	  End If
	  
	  If RowCount = 0 Then
		    Set rsArticle = Nothing
			Set ArticleCmd = Nothing
			ArticleList = EL_Common.RegExpStaticLabel(EL_Common.Lang("BaseConfig.NoList", "·没有任何{$ItemName}"), "{$ItemName}", ItemName)
			Exit Function
	  Else
		    Dim Title_Name, Title_Author, Title_UpdateTime
			If ShowHint = True Then
			   Title_Name = EL_Common.RegExpStaticLabel(EL_Common.Lang("Article.Name", "{$ItemName}标题"), "{$ItemName}", ItemName)
			   Title_Author = EL_Common.Lang("Article.Author", "作&nbsp;&nbsp;&nbsp;&nbsp;者")
			   Title_UpdateTime = EL_Common.Lang("Article.UpdateTime", "更新日期")
			End If
		    rsArticle.Open()	
			Select Case ListType
			   Case 2:    ReturnString = "<div class='list'>"
			   Case 3:    ReturnString = "<ul class='list'>"
			   Case 4:    ReturnString = "<ol class='list'>"
			   Case Else: ReturnString = "<table width='100%' border='0' cellspacing='0' cellpadding='0' class='list'><tr>"
			End Select			
			If ClassA = "" Then ClassA = "lista"
			If Class1 = "" Then Class1 = "list1"
			If Class2 = "" Then Class2 = "list2"
			Dim ArrClass(2)
			ArrClass(1) = Class1
			ArrClass(2) = Class2
			For i = 1 To RowCount
			   Select Case ListType
			      Case 2:    ReturnString = ReturnString &"<div class='"& ArrClass(2-((i+2) Mod 2))&"'>"
				  Case 3, 4: ReturnString = ReturnString &"<li class='"& ArrClass(2-((i+2) Mod 2))&"'>"
				  Case Else: ReturnString = ReturnString &"<td width='"& 100/ColNum &"%' class='"& ArrClass(2-((i+2) Mod 2))&"'>"
			   End Select
			   ReturnString = ReturnString &"<span class='listn'>"	
			   If ShowIcon > 0 Then ReturnString = ReturnString &"<img border='0' src='"& InstallDir & ChannelDir &"/Images/icon"& ShowIcon &".gif' />&nbsp;"
			   If ShowClassName = True Then ReturnString = ReturnString &"[<a href='"& InstallDir & ChannelDir &"/ShowClass.asp?ClassID="& rsArticle(4) &"' class='"& ClassA &"'>"& EL_Common.ServerHTMLEncode(rsArticle(5)) &"</a>]"				  
			   ReturnString = ReturnString &"<a href='"& InstallDir & ChannelDir &"/ShowArticle.asp?ArticleID="& rsArticle(0) &"' class='"& ClassA &"' "
			   If ShowHint = True Then ReturnString = ReturnString &"title='"& Title_Name &":"& EL_Common.HTMLEncode(rsArticle(1)) &"&#13;"& Title_Author &":"& rsArticle(2) &"&#13;"& Title_UpdateTime &":"& rsArticle(3) &"' "
			   ReturnString = ReturnString & EL_Common.ArrOpenType(OpenType) &">"& EL_Common.HTMLEncode(EL_Common.GetTopic(rsArticle(1), TitleLen)) &"</a>"		   
			   ReturnString = ReturnString &"</span>"
			   Select Case ShowDateType
				  Case 1: ReturnString = ReturnString &"<span class='listd'>["& FormatDateTime(rsArticle(3), 2) &"]</span>"
				  Case 2: ReturnString = ReturnString &"<span class='listd'>["& Right("0"& Month(rsArticle(3)), 2) &"-"& Right("0"& Day(rsArticle(3)), 2) &"]</span>"
			   End Select

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -