📄 classarticle.asp
字号:
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> </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", "作 者")
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' /> "
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)) &" "& Title_Author &":"& rsArticle(2) &" "& 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 + -