📄 classproduct.asp
字号:
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_GetProductList(ItemHTML)
ItemHTML = Label_GetProductPhoto(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_GetProductList(ByVal HTML)
Dim Match, Matches, ReturnString, Parameters, Temp
CommonRegExp.Pattern = "<!--\{\$GetProductList\(([ 0-9]+|[ ]*ChannelID[ ]*),([ 0-9\|]+|[ ]*ClassID[ ]*),([ 0-9]+),([ 0-9]+),[ ]*(True|False)[ ]*,([ 0-9]+),[ ]*(True|False)[ ]*,[ ]*(True|False)[ ]*,[ ]*(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, "GetProductList")
Temp = ProductList(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(17), Parameters(17), Parameters(18))
ReturnString = Replace(ReturnString, Match.Value, Temp)
Next
CommonRegExp.Pattern = "\{\$GetProductList\(([ 0-9]+|[ ]*ChannelID[ ]*),([ 0-9\|]+|[ ]*ClassID[ ]*),([ 0-9]+),([ 0-9]+),[ ]*(True|False)[ ]*,([ 0-9]+),[ ]*(True|False)[ ]*,[ ]*(True|False)[ ]*,[ ]*(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, "GetProductList")
Temp = ProductList(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(17), Parameters(17), Parameters(18))
ReturnString = Replace(ReturnString, Match.Value, Temp)
Next
Set Matches = Nothing
Label_GetProductList = ReturnString
End Function
Private Function ProductList(ByVal iChannelID, ByVal arrClassID, ByVal ProductNum, ByVal TitleLen, ByVal ShowPrice, ByVal ShowBookButton, ByVal ShowDays, ByVal ShowClassName, ByVal IsCommend, ByVal OrderType, ByVal OpenType, ByVal ColNum, ByVal ListType, ByVal ShowIcon, ByVal ShowHint, ByVal ShowPage, ByVal ClassA, ByVal Class1, ByVal Class2)
Dim ProductCmd, rsProduct, 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
ProductList = 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 <> 3 Then
ProductList = EL_Common.Lang("BaseConfig.ChannelModuleError", "·频道模块错误")
Exit Function
End If
If Disabled Then
ProductList = EL_Common.Lang("BaseConfig.Disabled", "·该频道已被禁用")
Exit Function
End If
ProductNum = EL_Common.ELClng(ProductNum)
TitleLen = EL_Common.ELClng(TitleLen)
ShowPrice = Eval(ShowPrice)
ShowBookButton = EL_Common.ELClng(ShowBookButton)
ShowDays = Eval(ShowDays)
ShowClassName = Eval(ShowClassName)
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)
SQLTables = "EL_Product,EL_Class"
SQLFields = "EL_Product.ProductID,EL_Product.ProductName,EL_Product.Days"
SQLFields = SQLFields &",EL_Product.LeastPerson,EL_Product.Price"
If ShowClassName Then SQLFields = SQLFields &",EL_Class.ClassID,EL_Class.ClassName"
SQLOrder = "EL_Product.OnTop DESC"
Select Case OrderType
Case 1: SQLOrder = SQLOrder &",EL_Product.ProductID ASC"
Case 2: SQLOrder = SQLOrder &",EL_Product.ProductID DESC"
Case 3: SQLOrder = SQLOrder &",EL_Product.UpdateTime ASC"
Case 4: SQLOrder = SQLOrder &",EL_Product.UpdateTime DESC"
Case 5: SQLOrder = SQLOrder &",EL_Product.Hits ASC"
Case 6: SQLOrder = SQLOrder &",EL_Product.Hits DESC"
Case Else: SQLOrder = SQLOrder &",EL_Product.ProductID DESC"
End Select
SQLCondition = " EL_Product.ChannelID="& ChannelID &" And EL_Product.ClassID=EL_Class.ClassID And EL_Product.Passed="& EL_True &" And EL_Product.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_Product.ClassID In("& ArrClassID &") "
End If
If IsCommend Then SQLCondition = SQLCondition &" AND EL_Product.Commended="& EL_True &" "
ReturnString = ""
If EL_Flag = False Then ShowPage = False '防止在特殊标签中设ShowPage=True
If ShowPage Then
Call EL_Common.InitCommand(ProductCmd, "EL_SP_SplitPage")
With ProductCmd
.Parameters.Append .CreateParameter("RETURN", 3, 4, 4)
.Parameters.Append .CreateParameter("@Tables", 200, 1, 100, SQLTables)
.Parameters.Append .CreateParameter("@PrimaryKey", 200, 1, 20, "EL_Product.ProductID")
.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 rsProduct = .Execute()
End With
rsProduct.Close()
RowCount = ProductCmd(0)
TotalRowCount = ProductCmd(9)
PageCounts = ProductCmd(10)
Else
If ProductNum < 1 Then ProductNum = EL_Common.Lang("Product.TopNum", 5)
Call EL_Common.InitCommonCmd(ProductCmd, rsProduct, SQLTables, " TOP "& ProductNum &" "& SQLFields, SQLCondition &" ORDER BY "& SQLOrder)
rsProduct.Close()
RowCount = ProductCmd(0)
End If
If RowCount = 0 Then
Set rsProduct = Nothing
Set ProductCmd = Nothing
ProductList = EL_Common.RegExpStaticLabel(EL_Common.Lang("BaseConfig.NoList", "·没有任何{$ItemName}"), "{$ItemName}", ItemName)
Exit Function
Else
Dim Title_Name, Title_Days, Title_BookPrice, PriceIcon, PriceUnit, DayName, ArrClass(2), vBookPrice
If ShowHint = True Then
Title_Name = EL_Common.RegExpStaticLabel(EL_Common.Lang("Product.Name", "{$ItemName}名称"), "{$ItemName}", ItemName)
Title_Days = EL_Common.Lang("Product.Days", "天 数")
Title_BookPrice = EL_Common.Lang("BaseConfig.BookPrice", "预订价")
End If
DayName = EL_Common.Lang("Product.DayName", "天")
PriceUnit = EL_Common.Lang("Product.PriceUnit", "元/人")
PriceIcon = EL_Common.Lang("BaseConfig.PriceIcon", "¥")
rsProduct.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"
ArrClass(1) = Class1
ArrClass(2) = Class2
For i = 1 To RowCount
vBookPrice = rsProduct("Price")
Select Case ListType
Case 2:
ReturnString = ReturnString &"<div class='"& ArrClass(2-((i+2) Mod 2)) &"'>"
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="& rsProduct("ClassID") &"' class='"& ClassA &"'>"& EL_Common.ServerHTMLEncode(rsHotel("ClassName")) &"</a>]"
ReturnString = ReturnString &"<a href='"& InstallDir & ChannelDir &"/ShowProduct.asp?ProductID="& rsProduct("ProductID") &"' class='"& ClassA &"' "
If ShowHint = True Then
ReturnString = ReturnString &"title='"& Title_Name &":"& EL_Common.HTMLEncode(rsProduct("ProductName")) & VBCRLF & Title_Days &":"& rsProduct(2)
If ShowPrice = True Then
ReturnString = ReturnString & VBCRLF & Title_BookPrice &":"& PriceIcon & vBookPrice & PriceUnit &"' "
Else
ReturnString = ReturnString &"' "
End If
End If
ReturnString = ReturnString & EL_Common.ArrOpenType(OpenType) &">"& EL_Common.HTMLEncode(EL_Common.GetTopic(rsProduct("ProductName"), TitleLen))
If ShowDays = True Then ReturnString = ReturnString &"("& rsProduct("Days") & DayName &")"
ReturnString = ReturnString &"</a></span>"
If ShowPrice = True Then ReturnString = ReturnString &"<span class='listbp'>"& PriceIcon & vBookPrice & PriceUnit &"</span>"
If ShowBookButton > 0 Then ReturnString = ReturnString &"<span class='listbt'><a href='"& InstallDir & ChannelDir &"/ShowProduct.asp?ProductID="& rsProduct("ProductID") &"' class='"& ClassA &"'><img src='"& InstallDir & ChannelDir &"/Images/bookbutton"& ShowBookButton &".gif' border='0'></a></span>"
ReturnString = ReturnString &"</div>"
Case 3, 4:
ReturnString = ReturnString &"<li class='"& ArrClass(2-((i+2) Mod 2)) &"'>"
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="& rsProduct("ClassID") &"' class='"& ClassA &"'>"& EL_Common.ServerHTMLEncode(rsHotel("ClassName")) &"</a>]"
ReturnString = ReturnString &"<a href='"& InstallDir & ChannelDir &"/ShowProduct.asp?ProductID="& rsProduct("ProductID") &"' class='"& ClassA &"' "
If ShowHint = True Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -