<% 'Response.Buffer=True Dim SqlNowString,DataPart_D,DataPart_Y,DataPart_H,DataPart_S,DataPart_W,DataPart_M Dim Conn,DBPath,CollectDBPath,DataServer,DataUser,DataBaseName,DataBasePsw,ConnStr,CollcetConnStr '***********牛摩网发邮件配置 start**************************** Const Newmotor_Email_UserName ="1815400921@qq.com" '牛摩网邮箱帐号 Const Newmotor_Email_Password ="xiegao" '牛摩网邮箱密码 Const Newmotor_Email_Name ="牛摩网"' '发信人姓名 Const Newmotor_Email_smtpServer ="smtp.qq.com" '邮箱SMTP 服务器名称 '***********牛摩网发邮件配置 end**************************** Const DataBaseType=1 '系统数据库类型,"1"为MS SQL2000数据库,"0"为MS ACCESS 2000数据库 Const MsxmlVersion=".3.0" '系统采用XML版本设置 Const EnableSiteManageCode = true '是否启用后台管理认证码 是: True 否: False Const SiteManageCode = "6518" '后台管理认证码,请修改,这样即使有人知道了您的后台用户名和密码也不能登录后台 Const Newmotor_isDebug = false '判断牛摩网是否是正在测试,true:表示测试阶段,false 表示不测试 '没测试的时候务必把true改为false,这样可以提高网站访问速度 '图片文件上传到指定的服务器上面 Const uploadFileServerPath = "http://img2.newmotor.com.cn" Const upload_FileServerPath2 = "img2.newmotor.com.cn" Session.Timeout=24 'SEESION有效时间为:24小时 If DataBaseType=0 then '如果是ACCESS数据库,请认真修改好下面的数据库的文件名 DBPath = "/KS_Data/KesionCMS7.mdb" 'ACCESS数据库的文件名,请使用相对于网站根目录的的绝对路径 Else '如果是SQL数据库,请认真修改好以下数据库选项 DataServer = "23.224.235.74" '数据库服务器IP 电信ip:14.152.95.180 DataUser = "newmotor" '访问数据库用户名 DataBaseName = "newmotor" '数据库名称 'DataBaseName = "new" '数据库名称 DataBasePsw = "pxhTyJ9Yj}0pOPv[M2CnrqO&SsR!L" '访问数据库密码 End if '采集数据库路径 CollectDBPath="\KS_Data\Collect\KS_Collect.Mdb" '=============================================================== 以下代码请不要自行修改======================================== Call OpenConn Sub OpenConn() On Error Resume Next If DataBaseType = 1 Then 'ConnStr="Provider = Sqloledb; User ID = " & datauser & "; Password = " & databasepsw & "; Initial Catalog = " & databasename & "; Data Source = " & dataserver & ";" 'asp 连接sql server2008 'ConnStr= "provider=sqloledb;Data source=" & DataServer & ",3819;uid=" & DataUser & ";pwd="& DataBasePsw &";database=" & DataBaseName ConnStr= "provider=sqloledb;Data source=" & DataServer & ",1433;uid=" & DataUser & ";pwd="& DataBasePsw &";database=" & DataBaseName SqlNowString = "getdate()" DataPart_D = "d" DataPart_Y = "y" DataPart_H = "hour" DataPart_S = "s" DataPart_W = "week" DataPart_M = "month" Else ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DBPath) SqlNowString = "Now()" DataPart_D = "'d'" DataPart_Y = "'yyyy'" DataPart_H = "'h'" DataPart_S = "'s'" DataPart_W = "'w'" DataPart_M = "'m'" End If Set conn = Server.CreateObject("ADODB.Connection") conn.open ConnStr If Err Then Err.Clear:Set conn = Nothing:Response.Write "数据库正在迁移,请稍候访问...
" & Err.Description:Response.End CollcetConnStr ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(CollectDBPath) 'CollcetConnStr ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath(CollectDBPath) End Sub Sub CloseConn() On Error Resume Next Conn.close:Set Conn=nothing End sub '====================================如果频道启用二级域名,请正确配置以下参数,否则可能导致会员不能登录========================== Const EnabledSubDomain =true rem 网站频道是否启用二级域名 true表示启用 false表示没有启用 Const RootDomain = "newmotor.com.cn" rem 网站主域名根,如果有多个子域名,必须设置 '=============================================二级域名配置结束======================================================== '==============================================全局变量类开始============================== Dim GCls:Set GCls=New GlobalVarCls Class GlobalVarCls Public Sql_Use Public StaticPreList,StaticPreContent,StaticExtension,ClubPreContent,ClubPreList Private Sub Class_Initialize() StaticPreList = "list" rem 内容模型伪静态列表前缀 不能包含"?"及"-" staticPreContent = "thread" rem 内容模型伪静态内容前缀 StaticExtension = ".html" rem 内容模型伪静态扩展名 ClubPreContent = "forumthread" rem 伪静态小论坛帖子前缀地址 ClubPreList = "forum" rem 伪静态小论坛版面列表前缀地址 End Sub Private Sub Class_Terminate() Set GCls=Nothing End Sub Public Function Execute(Command) If Not IsObject(Conn) Then OpenConn() On Error Resume Next Set Execute = Conn.Execute(Command) If Err Then Response.Write("查询语句为:" & Command & "
") Response.Write("错误信息为:" & Err.Description & "
") Err.Clear Set Execute = Nothing Response.End() End If Sql_Use = Sql_Use + 1 End Function Function GetUrl() On Error Resume Next Dim strTemp If LCase(Request.ServerVariables("HTTPS")) = "off" Then strTemp = "http://" Else strTemp = "https://" End If strTemp = strTemp & Request.ServerVariables("SERVER_NAME") If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT") end if strTemp = strTemp & Request.ServerVariables("URL") If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString) end if GetUrl = strTemp End Function '====================标志来访地址================ Public Property Let ComeUrl(ByVal strVar) Session("M_ComeUrl") = strVar End Property Public Property Get ComeUrl ComeUrl= Session("M_ComeUrl") End Property '================================================ End Class '==============================================全局临时变量类结束============================== %> <% '**************************************************** 'Newmotor.com.cn '**************************************************** Class Thumb Private KS Private Sub Class_Initialize() Set KS=New PublicCls End Sub Private Sub Class_Terminate() ' Call CloseConn() Set KS=Nothing End Sub '为图片添加水印 Function AddWaterMark(FileName) Dim objFileSystem, strFileExtName, objImage If InStr(FileName, ":") = 0 Then FileName = Server.MapPath(FileName) End If If FileName <> "" And Not IsNull(FileName) Then strFileExtName = "" If InStr(FileName, ".") <> 0 Then strFileExtName = LCase(Trim(Mid(FileName, InStrRev(FileName, ".") + 1))) End If If strFileExtName <> "jpg" And strFileExtName <> "gif" And strFileExtName <> "bmp" And strFileExtName <> "png" Then Exit Function End If Set objFileSystem = KS.InitialObject(KS.Setting(99)) If objFileSystem.FileExists(FileName) Then If KS.TbSetting(5) <> "0" Then Select Case KS.TbSetting(5) Case "1" If KS.IsObjInstalled("Persits.Jpeg") Then If KS.IsExpired("Persits.Jpeg") Then Response.Write ("对不起,Persits.Jpeg组件已过期!") Response.End End If If KS.TbSetting(6) = "1" Then AddWordMark 1, KS.TbSetting(8), KS.TbSetting(10), KS.TbSetting(11), KS.TbSetting(12), KS.TbSetting(9), KS.TbSetting(7), FileName Else AddPhotoMark 1, KS.TbSetting(16), KS.TbSetting(17), KS.TbSetting(13), KS.TbSetting(14), KS.TbSetting(15), KS.TbSetting(7), FileName End If End If Case "2" If strFileExtName = "png" Then Exit Function End If If KS.IsObjInstalled("wsImage.Resize") Then If KS.IsExpired("wsImage.Resize") Then Response.Write ("对不起,sImage.Resize组件已过期!") Response.End End If If KS.TbSetting(6) = "1" Then AddWordMark 2, KS.TbSetting(8), KS.TbSetting(10), KS.TbSetting(11), KS.TbSetting(12), KS.TbSetting(9), KS.TbSetting(7), FileName Else AddPhotoMark 2, KS.TbSetting(16), KS.TbSetting(17), KS.TbSetting(13), KS.TbSetting(14), KS.TbSetting(15), KS.TbSetting(7), FileName End If End If Case "3" If KS.IsObjInstalled("SoftArtisans.ImageGen") Then If KS.IsExpired("SoftArtisans.ImageGen") Then Response.Write ("对不起,SoftArtisans.ImageGen组件已过期!") Response.End End If If KS.TbSetting(6) = "1" Then AddWordMark 3, KS.TbSetting(8), KS.TbSetting(10), KS.TbSetting(11), KS.TbSetting(12), KS.TbSetting(9), KS.TbSetting(7), FileName Else AddPhotoMark 3, KS.TbSetting(16), KS.TbSetting(17), KS.TbSetting(13), KS.TbSetting(14), KS.TbSetting(15), KS.TbSetting(7), FileName End If End If End Select End If End If Set objFileSystem = Nothing End If End Function '为图片添加文字水印 Function AddWordMark(MarkComponentID, MarkText, MarkFontColor, MarkFontName, MarkFontBond, MarkFontSize, MarkPosition, FileName) Dim objImage, x, y, Text, TextWidth, FontColor, FontName, FondBond, FontSize, OriginalWidth, OriginalHeight If InStr(FileName, ":") = 0 Then FileName = Server.MapPath(FileName) End If Text = Trim(MarkText) If Text = "" Then Exit Function End If FontColor = Replace(MarkFontColor, "#", "&H") FontName = MarkFontName If MarkFontBond = "1" Then FondBond = True Else FondBond = False End If FontSize = CInt(MarkFontSize) Select Case MarkComponentID Case 1 If Not KS.IsObjInstalled("Persits.Jpeg") Then Exit Function End If Set objImage = KS.InitialObject("Persits.Jpeg") objImage.Open FileName objImage.Canvas.Font.Color = FontColor objImage.Canvas.Font.Family = FontName objImage.Canvas.Font.Bold = FondBond objImage.Canvas.Font.size = FontSize on error resume next TextWidth = objImage.Canvas.GetTextExtent(Text) if err then err.clear:TextWidth =200 If objImage.OriginalWidth < TextWidth Or objImage.OriginalHeight < FontSize Then Exit Function End If GetPostion CInt(MarkPosition), x, y, objImage.OriginalWidth, objImage.OriginalHeight, TextWidth, FontSize With objImage.Canvas .Print x, y, Text End With objImage.Quality=80 objImage.Save FileName Case 2 If Not KS.IsObjInstalled("wsImage.Resize") Then Exit Function End If Set objImage = KS.InitialObject("wsImage.Resize") objImage.LoadSoucePic CStr(FileName) objImage.TxtMarkFont = CStr(FontName) objImage.TxtMarkBond = FondBond objImage.TxtMarkHeight = FontSize FontColor = "&H" & Mid(FontColor, 7) & Mid(FontColor, 5, 2) & Mid(FontColor, 3, 2) objImage.AddTxtMark CStr(FileName), CStr(Text), CLng(FontColor), 1, 1 Case 3 If Not KS.IsObjInstalled("SoftArtisans.ImageGen") Then Exit Function End If Set objImage = KS.InitialObject("SoftArtisans.ImageGen") objImage.LoadImage FileName objImage.Font.Height = FontSize objImage.Font.name = FontName FontColor = "&H" & Mid(FontColor, 7) & Mid(FontColor, 5, 2) & Mid(FontColor, 3, 2) objImage.Font.Color = CLng(FontColor) objImage.Text = Text GetPostion CInt(MarkPosition), x, y, objImage.Width, objImage.Height, objImage.TextWidth, objImage.TextHeight objImage.DrawTextOnImage x, y, objImage.TextWidth, objImage.TextHeight objImage.SaveImage 0, objImage.ImageFormat, FileName End Select Set objImage = Nothing End Function Function AddPhotoMark(MarkComponentID, MarkWidth, MarkHeight, MarkPicture, MarkOpacity, MarkTranspColor, MarkPosition, FileName) Dim objImage, objMark, x, y, OriginalWidth, OriginalHeight, Position If InStr(FileName, ":") = 0 Then FileName = Server.MapPath(FileName) End If If IsNull(MarkWidth) Or MarkWidth = "" Then MarkWidth = 0 Else MarkWidth = CInt(MarkWidth) End If If IsNull(MarkHeight) Or MarkHeight = "" Then MarkHeight = 0 Else MarkHeight = CInt(MarkHeight) End If If Trim(MarkPicture) = "" Or IsNull(MarkPicture) Then Exit Function End If If IsNull(MarkOpacity) Or MarkOpacity = "" Then MarkOpacity = 1 Else MarkOpacity = CSng(MarkOpacity) End If If MarkTranspColor <> "" Then MarkTranspColor = Replace(MarkTranspColor, "#", "&H") Else End If Select Case MarkComponentID Case 1 If Not KS.IsObjInstalled("Persits.Jpeg") Then Exit Function End If Set objImage = KS.InitialObject("Persits.Jpeg") Set objMark = KS.InitialObject("Persits.Jpeg") objImage.Open FileName If objImage.OriginalWidth < MarkWidth Or objImage.OriginalHeight < MarkHeight Then Exit Function End If objMark.Open Server.MapPath(MarkPicture) 'objImage.Canvas.DrawImage 0,objImage.OriginalHeight/2-33,objMark,0.6,&HFFFFFF GetPostion CInt(MarkPosition), x, y, objImage.OriginalWidth, objImage.OriginalHeight, MarkWidth, MarkHeight If MarkTranspColor <> "" Then objImage.Canvas.DrawImage x, y, objMark, MarkOpacity, MarkTranspColor 'objImage.Canvas.DrawImage x, y, objMark, MarkOpacity,&HFFFFFF Else objImage.DrawImage x, y, objMark, MarkOpacity End If objImage.Quality=80 objImage.Save FileName Case 2 If Not KS.IsObjInstalled("wsImage.Resize") Then Exit Function End If Set objImage = KS.InitialObject("wsImage.Resize") objImage.LoadSoucePic CStr(FileName) objImage.LoadImgMarkPic Server.MapPath(MarkPicture) objImage.GetSourceInfo OriginalWidth, OriginalHeight GetPostion CInt(MarkPosition), x, y, OriginalWidth, OriginalHeight, MarkWidth, MarkHeight If MarkTranspColor = "" Then MarkTranspColor = 0 Else MarkTranspColor = "&H" & Mid(MarkTranspColor, 7) & Mid(MarkTranspColor, 5, 2) & Mid(MarkTranspColor, 3, 2) End If objImage.AddImgMark CStr(FileName), Int(x), Int(y), CLng(MarkTranspColor), Int(CSng(MarkOpacity) * 100) Case 3 If Not KS.IsObjInstalled("SoftArtisans.ImageGen") Then Exit Function End If Set objImage = KS.InitialObject("SoftArtisans.ImageGen") objImage.LoadImage FileName Select Case CInt(MarkPosition) Case 1 Position = 3 Case 2 Position = 5 Case 3 Position = 1 Case 4 Position = 6 Case 5 Position = 8 End Select If MarkTranspColor <> "" Then MarkTranspColor = "&H" & Mid(MarkTranspColor, 7) & Mid(MarkTranspColor, 5, 2) & Mid(MarkTranspColor, 3, 2) objImage.AddWaterMark Server.MapPath(MarkPicture), Position, CSng(MarkOpacity), CLng(MarkTranspColor) Else objImage.AddWaterMark Server.MapPath(MarkPicture), Position, CSng(MarkOpacity) End If objImage.SaveImage 0, objImage.ImageFormat, FileName End Select Set objImage = Nothing Set objMark = Nothing End Function Function GetPostion(MarkPosition, x, y, ImageWidth, ImageHeight, MarkWidth, MarkHeight) Select Case CInt(MarkPosition) Case 1 x = 1 y = 1 Case 2 x = 1 y = Int(ImageHeight - MarkHeight - 1) Case 3 x = Int((ImageWidth - MarkWidth) / 2) y = Int((ImageHeight - MarkHeight) / 2) Case 4 x = Int(ImageWidth - MarkWidth - 1) y = 1 Case 5 x = Int(ImageWidth - MarkWidth - 1) y = Int(ImageHeight - MarkHeight - 1) End Select End Function '由原图片根据数据里保存的设置生成缩略图 Function CreateThumbs(ByVal FileName, ByVal ThumbFileName) CreateThumbs = False If KS.TbSetting(0) <> "0" And (Not IsNull(KS.TbSetting(0))) Then If KS.TbSetting(1) = "0" Then Dim ThumbnailsConfig,Width,Height,GoldenPoint ThumbnailsConfig= Session("ThumbnailsConfig") If ThumbnailsConfig="" Then GoldenPoint= Round(KS.TbSetting(18)) Width=CInt(KS.TbSetting(2)) Height= CInt(KS.TbSetting(3)) Else ThumbnailsConfig=Split(ThumbnailsConfig,"|") If Not IsNumeric(ThumbnailsConfig(0)) Then GoldenPoint= 0 Else GoldenPoint= Round(ThumbnailsConfig(0)) End If If Not IsNumeric(ThumbnailsConfig(1)) Then Width=100 Else Width=CInt(ThumbnailsConfig(1)) End If If Not IsNumeric(ThumbnailsConfig(2)) Then Height=80 Else Height= CInt(ThumbnailsConfig(2)) End If End If CreateThumbs = CreateThumb(FileName,Width ,Height,GoldenPoint, 0, ThumbFileName) Else CreateThumbs = CreateThumb(FileName, 0, 0, GoldenPoint,CSng(KS.TbSetting(4)), ThumbFileName) End If End If End Function '由原图片根据数据里保存的设置生成缩略图 Function CreateSimilThumbs(ByVal FileName, ByVal ThumbFileName) CreateSimilThumbs = False If KS.TbSetting(0) <> "0" And (Not IsNull(KS.TbSetting(0))) Then If KS.TbSetting(1) = "0" Then Dim ThumbnailsConfig,Width,Height,GoldenPoint ThumbnailsConfig= Session("ThumbnailsConfig") If ThumbnailsConfig="" Then GoldenPoint= Round(KS.TbSetting(18)) Else ThumbnailsConfig=Split(ThumbnailsConfig,"|") If Not IsNumeric(ThumbnailsConfig(0)) Then GoldenPoint= 0 Else GoldenPoint= Round(ThumbnailsConfig(0)) End If End If Width= 50 Height= 50 CreateSimilThumbs = CreateThumb(FileName,Width ,Height,GoldenPoint, 0, ThumbFileName) Else CreateSimilThumbs = CreateThumb(FileName, 0, 0, GoldenPoint,CSng(KS.TbSetting(4)), ThumbFileName) End If End If End Function '由原图片生成指定宽度和高度的缩略图 Function CreateThumb(FileName, Width, Height,GoldenPoint, Rate, ThumbFileName) 'On Error Resume Next Dim strSql, RsSetting, objImage, iWidth, iHeight, strFileExtName CreateThumb = False If IsNull(FileName) Then '如果原图片未指定直接退出 Exit Function ElseIf FileName = "" Then Exit Function End If If InStr(FileName, ".") <> 0 Then strFileExtName = LCase(Trim(Mid(FileName, InStrRev(FileName, ".") + 1))) End If If strFileExtName <> "jpg" And strFileExtName <> "gif" And strFileExtName <> "bmp" And strFileExtName <> "png" Then '文件不是可用图片则退出 Exit Function End If If IsNull(ThumbFileName) Then Exit Function ElseIf ThumbFileName = "" Then Exit Function End If If IsNull(Width) Then Width = 0 ElseIf Width = "" Then Width = 0 End If If IsNull(Rate) Then Rate = 0 ElseIf Rate = "" Then Rate = 0 End If If IsNull(Height) Then Height = 0 ElseIf Height = "" Then Height = 0 End If If InStr(FileName, ":") = 0 Then FileName = Server.MapPath(FileName) End If If InStr(ThumbFileName, ":") = 0 Then ThumbFileName = Server.MapPath(ThumbFileName) End If Width = CInt(Width) Height = CInt(Height) Rate = CSng(Rate) Select Case CInt(KS.TbSetting(0)) Case 0 Exit Function Case 1 If Not KS.IsObjInstalled("Persits.Jpeg") Then Exit Function End If If KS.IsExpired("Persits.Jpeg") Then Response.Write ("对不起,Persits.Jpeg组件已过期!") Response.End End If Set objImage = KS.InitialObject("Persits.Jpeg") objImage.Open FileName If Rate = 0 And (Width <> 0 Or Height <> 0) Then If Width < objImage.OriginalWidth And Height < objImage.OriginalHeight And Height<>0 Then dim qjazhro_h,qjazhro_w,qjazhro_t,qjazhro_hj,qjazhro,mznvhai qjazhro=round((Width/Height),3) mznvhai=round((objImage.OriginalWidth/objImage.OriginalHeight),3) If qjazhromznvhai Then objImage.Width = Width objImage.Height = round((objImage.OriginalHeight / objImage.OriginalWidth * Width),3) qjazhro_h=objImage.Height-Height qjazhro_hj=qjazhro_h*GoldenPoint 'GoldenPoint为黄金分割点,你可以按自己的要求修改这个值 qjazhro_t=Height+qjazhro_hj objImage.crop 0,qjazhro_hj,Width,qjazhro_t ElseIf qjazhro=mznvhai Then objImage.Width = Width objImage.Height = Height End If End If If Height=0 Then '当高度为0时,自适应高度 Height=Width * objImage.OriginalHeight / objImage.OriginalWidth objImage.Height=Height objImage.Width=Width End If ElseIf Rate <> 0 Then objImage.Width = objImage.OriginalWidth * Rate objImage.Height = objImage.OriginalHeight * Rate End If objImage.Interpolation=0 objImage.Quality=80 objImage.Save ThumbFileName Case 2 If Not KS.IsObjInstalled("wsImage.Resize") Then Exit Function End If If KS.IsExpired("wsImage.Resize") Then Response.Write ("对不起,wsImage.Resize组件已过期!") Response.End End If If strFileExtName = "png" Then Exit Function End If Set objImage = KS.InitialObject("wsImage.Resize") objImage.LoadSoucePic CStr(FileName) If Rate = 0 And (Width <> 0 Or Height <> 0) Then objImage.GetSourceInfo iWidth, iHeight If Width < iWidth And Height < iHeight Then If Width = 0 And Height <> 0 Then objImage.OutputSpic CStr(ThumbFileName), 0, Height, 2 ElseIf Width <> 0 And Height = 0 Then objImage.OutputSpic CStr(ThumbFileName), Width, 0, 1 ElseIf Width <> 0 And Height <> 0 Then objImage.OutputSpic CStr(ThumbFileName), Width, Height, 0 Else objImage.OutputSpic CStr(ThumbFileName), 1, 1, 3 End If Else objImage.OutputSpic CStr(ThumbFileName), 1, 1, 3 End If ElseIf Rate <> 0 Then objImage.OutputSpic CStr(ThumbFileName), Rate, Rate, 3 Else objImage.OutputSpic CStr(ThumbFileName), 1, 1, 3 End If Case 3 If Not KS.IsObjInstalled("SoftArtisans.ImageGen") Then Exit Function End If If KS.IsExpired("SoftArtisans.ImageGen") Then Response.Write ("对不起,SoftArtisans.ImageGen组件已过期!") Response.End End If Set objImage = KS.InitialObject("SoftArtisans.ImageGen") objImage.LoadImage FileName If Rate = 0 And (Width <> 0 Or Height <> 0) Then If Width < objImage.Width And Height < objImage.Height Then If Width = 0 And Height <> 0 Then objImage.CreateThumb , CLng(Height), 0, True ElseIf Width <> 0 And Height = 0 Then objImage.CreateThumb CLng(Width), objImage.Height / objImage.Width * Width, 0, False ElseIf Width <> 0 And Height <> 0 Then objImage.CreateThumb CLng(Width), CLng(Height), 0, False End If End If ElseIf Rate <> 0 Then objImage.CreateThumb CLng(objImage.Width * Rate), CLng(objImage.Height * Rate), 0, False End If objImage.SaveImage 0, objImage.ImageFormat, ThumbFileName Case 4 If Not KS.IsObjInstalled("CreatePreviewImage.cGvbox") Then Exit Function End If Set objImage = KS.InitialObject("CreatePreviewImage.cGvbox") objImage.SetImageFile = FileName If Rate = 0 And (Width <> 0 Or Height <> 0) Then objImage.SetPreviewImageSize = Width ElseIf Rate <> 0 Then objImage.SetPreviewImageSize = objImage.SetPreviewImageSize * Rate End If objImage.SetSavePreviewImagePath = ThumbFileName If objImage.DoImageProcess = False Then Exit Function End If End Select CreateThumb = True End Function End Class %> <% '**************************************************** 'Newmotor.com.cn '**************************************************** Class CtoECls Private Sub Class_Initialize() End Sub Private Sub Class_Terminate() End Sub function CTOE(str) dim codestr:codestr=Join(UTF8ToANSIArray(str), ",") dim n,tt tt=split(codestr,",") for n=0 to ubound(tt) CTOE=CTOE&getpychar(tt(n)) next end function Public Function LShift(ByVal lValue, ByVal iBit) LShift = lValue * (2 ^ iBit) End Function '整合高低位字节为整数 Public Function MAKEWORD(ByVal iHigh, ByVal iLow) MAKEWORD = (iHigh And &HFF) Or LShift((iLow And &HFF), 8) End Function '将Unicode字符串转换成GBK编码数组 '该函数用于CodePage=65001环境 Public Function UTF8ToANSIArray(ByVal strData) Dim objStream Dim ret, i, k Set objStream = Server.CreateObject("ADODB.Stream") objStream.Type = 2 objStream.Mode = 3 objStream.Charset = "gbk" objStream.Open objStream.WriteText strData objStream.Position = 0 objStream.Type = 1 ReDim ret(objStream.Size - 1) For i = 0 To UBound(ret) ret(i) = AscB(objStream.Read(1)) Next k = 0 For i = 0 To UBound(ret) If ret(i) < 128 Then ret(k) = ret(i) Else ret(k) = MAKEWORD(ret(i + 1), ret(i)) i = i + 1 End If k = k + 1 Next ReDim Preserve ret(k - 1) objStream.Close Set objStream = Nothing UTF8ToANSIArray = ret End Function function getpychar(tmp) 'tmp=65536+asc(char) if(tmp>=45217 and tmp<=45252) then getpychar= "a" elseif(tmp>=45253 and tmp<=45760) then getpychar= "b" elseif(tmp>=45761 and tmp<=46317) then getpychar= "c" elseif(tmp>=46318 and tmp<=46825) then getpychar= "d" elseif(tmp>=46826 and tmp<=47009) then getpychar= "e" elseif(tmp>=47010 and tmp<=47296) then getpychar= "f" elseif(tmp>=47297 and tmp<=47613) then getpychar= "g" elseif(tmp>=47614 and tmp<=48118) then getpychar= "h" elseif(tmp>=48119 and tmp<=49061) then getpychar= "j" elseif(tmp>=49062 and tmp<=49323) then getpychar= "k" elseif(tmp>=49324 and tmp<=49895) then getpychar= "l" elseif(tmp>=49896 and tmp<=50370) then getpychar= "m" elseif(tmp>=50371 and tmp<=50613) then getpychar= "n" elseif(tmp>=50614 and tmp<=50621) then getpychar= "o" elseif(tmp>=50622 and tmp<=50905) then getpychar= "p" elseif(tmp>=50906 and tmp<=51386) then getpychar= "q" elseif(tmp>=51387 and tmp<=51445) then getpychar= "r" elseif(tmp>=51446 and tmp<=52217) then getpychar= "s" elseif(tmp>=52218 and tmp<=52697) then getpychar= "t" elseif(tmp>=52698 and tmp<=52979) then getpychar= "w" elseif(tmp>=52980 and tmp<=53688) then getpychar= "x" elseif(tmp>=53689 and tmp<=54480) then getpychar= "y" elseif(tmp>=54481 and tmp<=62289) then getpychar= "z" else getpychar=chr(tmp) end if end function End Class %> <% '**************************************************** 'Newmotor.com.cn '**************************************************** Class KesionCls Private Sub Class_Initialize() End Sub Private Sub Class_Terminate() End Sub '系统版本号 Public Property Get KSVer KSVer="KS V7 全能版" End Property '系统缓存名称,如果你的一个站点下安装多套牛摩系统,请分别将各个目录下的系统的缓存名称设置成不同 Public Property Get SiteSN SiteSN="KS7" End Property End Class %> <% '**************************************************** 'Newmotor.com.cn '**************************************************** Const ClassField="ID,FolderName,Folder,ClassPurview,FolderDomain,TemplateID,ClassBasicInfo,ClassDefineContent,TS,ClassID,Tj,DefaultDividePercent,ChannelID,TN,ClassType,FolderOrder,AdminPurview,AllowArrGroupID,CommentTF,Child,PubTf,MailTF" '定义载入缓存的栏目字段 Class PublicCls Public SiteSN,Version Public Setting,TbSetting,SSetting,JSetting,ASetting,WSetting Private Sub Class_Initialize() if Not Response.IsClientConnected then die "" Call Initialize_Kesion_Config End Sub Private Sub Class_Terminate() End Sub Function InitialObject(str) 'iis5创建对象方法Server.CreateObject(ObjectName); 'iis6创建对象方法CreateObject(ObjectName); '默认为iis6,如果在iis5中使用,需要改为Server.CreateObject(str); Set InitialObject=CreateObject(str) End Function '******************************************************************************************************************* '函数名:Initialize_Kesion_Config '作 用: 加载KesionCMS的必要参数 '备 注:以下参数请不要更改。否则系统可能无法正常运行 '******************************************************************************************************************* Public Function Initialize_Kesion_Config() Dim KCls:Set KCls=New KesionCls SiteSN =KCls.SiteSN Version = KCls.KSVer Set KCls=Nothing 'Call InitialConfig() 'Call IsIPlock() 'IP访问限制 End Function '*********新增ks——v9.5函数 start********************************************************************** '生成商品品牌缓存 Sub CreateBrandCache() Dim XMLStr,RS:Set RS=Server.CreateObject("adodb.recordset") RS.Open "Select B.ID,R.ClassID,B.BrandName From KS_ClassBrand B inner join KS_ClassBrandR R On B.id=R.BrandID order by B.orderid",conn,1,1 If Not RS.EOf Then XMLStr="" &vbcrlf XMLStr=XMLStr&"" &vbcrlf Do While Not RS.Eof XMLStr=XMLStr & "" &vbcrlf RS.MoveNext Loop XMLStr=XMLStr&"" &vbcrlf Call WriteTOFile(Setting(3) & "config/shopbrand.xml",xmlstr) End If RS.CLose Set RS=Nothing End Sub Function ReadSetting(no) dim config:config=split(ReadFromFile(Setting(3) & "config/config.txt") &"♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂","♂") ReadSetting=config(no) End Function '*********新增ks——v9.5函数 end ********************************************************************** '不提示,批量清除缓存,参数 PreCacheName-前段匹配 Public Sub DelCaches(PreCacheName) Dim i Dim CacheList:CacheList=split(GetCacheList(PreCacheName),",") If UBound(CacheList)>1 Then For i=0 to UBound(CacheList)-1 DelCahe CacheList(i) Next End IF End Sub '取得缓存列表 参数 PreCacheName-前段匹配 Public Function GetCacheList(PreCacheName) Dim Cacheobj For Each Cacheobj in Application.Contents If CStr(Left(Cacheobj,Len(PreCacheName)))=CStr(PreCacheName) Then GetCacheList=GetCacheList&Cacheobj&"," Next End Function '清除缓存,参数 MyCaheName-缓存名称 Public Sub DelCahe(MyCaheName) Application.Lock Application.Contents.Remove(MyCaheName) Application.unLock End Sub Public Sub GetSetting() Dim RSObj':Set RSObj=Server.CreateObject("ADODB.RECORDSET") 'RSObj.Open "SELECT top 1 Setting,TbSetting,SpaceSetting,JobSetting,AskSetting,WapSetting from [KS_Config]",conn,1,1 Set RSObj=Conn.Execute("PRO_GetSetting") Dim i,node,xml,j,DataArray,rs Set xml = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) xml.appendChild(xml.createElement("xml")) If Not RSObj.EOF Then DataArray=RSObj.GetRows(1) RSObj.Close:Set RSObj=Nothing For i=0 To UBound(DataArray,2) Set Node=xml.createNode(1,"config","") node.attributes.setNamedItem(xml.createNode(2,LCase("Setting"),"")).text= Replace(DataArray(0,i),vbcrlf,"$br$")& "" node.attributes.setNamedItem(xml.createNode(2,LCase("TbSetting"),"")).text= Replace(DataArray(1,i),vbcrlf,"$br$")& "" node.attributes.setNamedItem(xml.createNode(2,LCase("SpaceSetting"),"")).text= Replace(DataArray(2,i),vbcrlf,"$br$")& "" node.attributes.setNamedItem(xml.createNode(2,LCase("JobSetting"),"")).text= Replace(DataArray(3,i),vbcrlf,"$br$")& "" node.attributes.setNamedItem(xml.createNode(2,LCase("AskSetting"),"")).text= Replace(DataArray(4,i),vbcrlf,"$br$")& "" node.attributes.setNamedItem(xml.createNode(2,LCase("WapSetting"),"")).text= Replace(DataArray(5,i),vbcrlf,"$br$")& "" xml.documentElement.appendChild(Node) Next End If DataArray=Null Set Application(SiteSN&"_Config")=Xml End Sub Public Sub InitialConfig() If not IsObject(Application(SiteSN&"_Config")) Then GetSetting Setting=Split(Replace(Application(SiteSN&"_Config").documentElement.selectSingleNode("config/@setting").text,"$br$",vbcrlf),"^%^") TbSetting=Split(Replace(Application(SiteSN&"_Config").documentElement.selectSingleNode("config/@tbsetting").text,"$br$",vbcrlf),"^%^") SSetting=Split(Replace(Application(SiteSN&"_Config").documentElement.selectSingleNode("config/@spacesetting").text,"$br$",vbcrlf),"^%^") JSetting=Split(Replace(Application(SiteSN&"_Config").documentElement.selectSingleNode("config/@jobsetting").text,"$br$",vbcrlf),"^%^") ASetting=Split(Replace(Application(SiteSN&"_Config").documentElement.selectSingleNode("config/@asksetting").text,"$br$",vbcrlf),"^%^") WSetting=Split(Replace(Application(SiteSN&"_Config").documentElement.selectSingleNode("config/@wapsetting").text,"$br$",vbcrlf),"^%^") End Sub 'xmlroot跟节点名称 row记录行节点名称 Public Function RecordsetToxml(RSObj,row,xmlroot) Dim i,node,rs,j,DataArray If xmlroot="" Then xmlroot="xml" If row="" Then row="row" Set RecordsetToxml=Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) RecordsetToxml.appendChild(RecordsetToxml.createElement(xmlroot)) If Not RSObj.EOF Then DataArray=RSObj.GetRows(-1) For i=0 To UBound(DataArray,2) Set Node=RecordsetToxml.createNode(1,row,"") j=0 For Each rs in RSObj.Fields node.attributes.setNamedItem(RecordsetToxml.createNode(2,"ks"&j,"")).text= DataArray(j,i)& "" j=j+1 Next RecordsetToxml.documentElement.appendChild(Node) Next End If DataArray=Null End Function 'xmlroot跟节点名称 row记录行节点名称*******(通过优化执行速度快2015-01-10) Public Function RecordsetToxml2(RSObj,row,xmlroot) Dim i,node,rs,j,DataArray,fieldsCount If xmlroot="" Then xmlroot="xml" If row="" Then row="row" Set RecordsetToxml2=Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) RecordsetToxml2.appendChild(RecordsetToxml2.createElement(xmlroot)) If Not RSObj.EOF Then DataArray=RSObj.GetRows(-1) fieldsCount = RSObj.Fields.count RSObj.close:Set RSObj=Nothing For i=0 To UBound(DataArray,2) Set Node=RecordsetToxml2.createNode(1,row,"") j=0 For j=0 To fieldsCount-1 node.attributes.setNamedItem(RecordsetToxml2.createNode(2,"ks"&j,"")).text= DataArray(j,i)& "" next RecordsetToxml2.documentElement.appendChild(Node) Next End If DataArray=Null End Function 'xmlroot跟节点名称 row记录行节点名称 Public Function RsToxml(RSObj,row,xmlroot) Dim i,node,rs,j,DataArray,fieldName If xmlroot="" Then xmlroot="xml" If row="" Then row="row" Set RsToxml = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) RsToxml.appendChild(RsToxml.createElement(xmlroot)) If Not RSObj.EOF Then DataArray=RSObj.GetRows(-1) For i=0 To UBound(DataArray,2) Set Node=RsToxml.createNode(1,row,"") j=0 For Each rs in RSObj.Fields fieldName=LCase(rs.name) if fieldName="username" then node.attributes.setNamedItem(RsToxml.createNode(2,fieldName,"")).text= lcase(DataArray(j,i))& "" else node.attributes.setNamedItem(RsToxml.createNode(2,fieldName,"")).text= DataArray(j,i)& "" end if j=j+1 Next RsToxml.documentElement.appendChild(Node) Next End If DataArray=Null End Function 'xmlroot跟节点名称 row记录行节点名称---(这是优化能够提升执行速度的函数2015-01-12) Public Function RsToxml2(rsFields,DataArray,row,xmlroot) Dim i,node,rs,j,fieldName If xmlroot="" Then xmlroot="xml" If row="" Then row="row" Set RsToxml2 = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) RsToxml2.appendChild(RsToxml2.createElement(xmlroot)) rsFields = Split(rsFields,",") 'DataArray=RSObj.GetRows(-1) For i=0 To UBound(DataArray,2) Set Node=RsToxml2.createNode(1,row,"") j=0 for j=0 to ubound(rsFields) FieldName = rsFields(j) if fieldName="username" then node.attributes.setNamedItem(RsToxml2.createNode(2,LCase(fieldName),"")).text= lcase(DataArray(j,i))& "" else node.attributes.setNamedItem(RsToxml2.createNode(2,LCase(fieldName),"")).text= DataArray(j,i)& "" end If Next RsToxml2.documentElement.appendChild(Node) Next DataArray=Null End Function Public Function ArrayToxml(DataArray,Recordset,row,xmlroot) Dim i,node,rs,j If xmlroot="" Then xmlroot="xml" Set ArrayToxml = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) ArrayToxml.appendChild(ArrayToxml.createElement(xmlroot)) If row="" Then row="row" For i=0 To UBound(DataArray,2) Set Node=ArrayToxml.createNode(1,row,"") j=0 For Each rs in Recordset.Fields node.attributes.setNamedItem(ArrayToxml.createNode(2,LCase(rs.name),"")).text= DataArray(j,i)& "" j=j+1 Next ArrayToxml.documentElement.appendChild(Node) Next End Function Public Function LoadChannelConfig() Application.Lock 'Dim RS:Set Rs=conn.execute("select ChannelID,ChannelName,ChannelTable,ItemName,ItemUnit,FieldBit,BasicType,FsoHtmlTF,FsoFolder,RefreshFlag,ModelEname,MaxPerPage,VerificCommentTF,CommentVF,CommentLen,CommentTemplate,UserSelectFilesTF,InfoVerificTF,UserAddMoney,UserAddPoint,UserAddScore,ChannelStatus,CollectTF,UpFilesTF,UpFilesDir,UpFilesSize,UserUpFilesTF,UserUpFilesDir,AllowUpPhotoType,AllowUpFlashType,AllowUpMediaType,AllowUpRealType,AllowUpOtherType,SearchTemplate,ChargeType,FsoListNum,UserTF,DiggByVisitor,DiggByIP,DiggRepeat,DiggPerTimes,UserClassStyle,UserEditTF,FsoContentRule,FsoClassListRule,FsoClassPreTag,ThumbnailsConfig,LatestNewDay,StaticTF,PubTimeLimit,AnnexPoint,ModelIco,ModelShortName From KS_Channel Order by ChannelID") 'Set Application(SiteSN&"_ChannelConfig")=RecordsetToxml(rs,"channel","ChannelConfig") 'Set Rs=Nothing Dim RS:Set Rs=conn.execute("PRO_LoadChannelConfig") Set Application(SiteSN&"_ChannelConfig")=RecordsetToxml2(rs,"channel","ChannelConfig") Application.unLock End Function Function C_S(sChannelID,FieldID) If IsNul(sChannelID) Then Exit Function If not IsObject(Application(SiteSN&"_ChannelConfig")) Then LoadChannelConfig() Dim Node:Set Node=Application(SiteSN&"_ChannelConfig").documentElement.selectSingleNode("channel[@ks0=" & sChannelID & "]/@ks" & FieldID & "") If Not Node Is Nothing Then C_S = Node.Text Else C_S=0 Set Node = Nothing End Function Public Function LoadClassConfig() If not IsObject(Application(SiteSN&"_class")) Then Application.Lock 'Dim RS:Set Rs=conn.execute("select " & ClassField & " From KS_Class Order by root,folderorder") 'Set Application(SiteSN&"_class")=RecordsetToxml(rs,"class","classConfig") 'Set Rs=Nothing Dim RS:Set Rs=conn.execute("PRO_LoadClassConfig") Set Application(SiteSN&"_class")=RecordsetToxml2(rs,"class","classConfig") Application.unLock End If End Function '加载所有要生成的产品数据 Public Function LoadAllCreateProdct() If not IsObject(Application(SiteSN&"_LoadAllCreateProduct")) Then Application.Lock Dim RS:Set RS=Conn.Execute("exec ks_LoadAllCreateProduct") 'Dim DataArray_:DataArray_ = rs.GetRows(-1) 'Set Application(SiteSN&"_LoadAllCreateProduct")= ArrayToXml(DataArray_,RS,"row","allcreateproductConfig") 'RS.Close:Set RS=Nothing Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) RS.Close:Set RS=Nothing rsFieldsStr="ID,ProID,Tid,KeyWords,Title,PhotoUrl,BigPhoto,Intro,ProModel,ProSpecificat,ProducerName,TrademarkName,ServiceTerm,Rank,Unit,Hits,TotalNum,AlarmNum,ProductType,Discount,Price,Price_Original,Price_Market,Price_Member,AddDate,JSID,TemplateID,Fname,RefreshTF,Recommend,Rolls,Popular,Verific,Comment,IsSpecial,IsTop,Slide,Point,DelTF,GroupPrice,BrandID,HitsByDay,HitsByWeek,HitsByMonth,LastHitsTime,Strip,ClassID,ShowOnSpace,BigClassID,SmallClassID,AttributeCart,Inputer,WapTemplateID,IsChangedBuy,ChangeBuyNeedPrice,ChangeBuyPresentPrice,IsLimitbuy,LimitBuyPrice,LimitBuyTaskID,LimitBuyAmount,weight,KS_chexing,KS_fupinpai,KS_ckg,KS_zhouju,KS_lidijianxie,KS_zuodiangao,KS_youxiangrongliang,KS_kongchezhiliang,KS_zhengbeizhiliang,KS_gangshu,KS_chonchengshu,KS_lenquefangshi,KS_yasuobi,KS_zuidagonglv,KS_zuidaniuju,KS_zuigaochesu,KS_gonyoufangshi,KS_jingjihaoyou,KS_qidongfangshi,KS_zhidongfangshi,KS_liheqixingshi,KS_ppId,ks_ppname,KS_pinyin,KS_bbsid,KS_shichangjia,KS_pailiang,KS_isshengcheng,KS_Score,KS_Rnumber,KS_SSSH,KS_ZCTC,KS_lunshu,KS_QLGZ,KS_HLGZ,KS_KXYS,KS_HBBZ,KS_BXQXH,KS_lunwang,KS_mbh,KS_pingjunjia,KS_shangjiashu,KS_shuxing,HitsByYear,HitsByYear2012,KS_tjindex,KS_cuxiaourl,KS_isNew,KS_isDianDongChe,KS_CDCLX,KS_CDCGG,KS_CDCSL,KS_CDQLX,KS_CDDY,KS_DJEDEL,KS_DJEDDY,KS_PeiJian,ks_fabunum" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_LoadAllCreateProduct")= ArrayToxml2(rsFieldsStr,DataArray_,"row","allcreateproductConfig") Application.unLock End If End Function '加载所有要生成的品牌数据 Public Function LoadAllCreate_PPB() If not IsObject(Application(SiteSN&"_LoadAllCreate_PPB")) Then Application.Lock Dim rsFieldsStr,RS:Set RS=Conn.Execute("exec ks_LoadAllCreate_PPB") Dim DataArray_:DataArray_ = rs.GetRows(-1) 'Set Application(SiteSN&"_LoadAllCreate_PPB")= ArrayToXml(DataArray_,RS,"row","allcreatePPBConfig") RS.Close:Set RS=Nothing rsFieldsStr="ID,TID,KeyWords,TitleType,Title,FullTitle,Intro,ShowComment,TitleFontColor,TitleFontType,ArticleContent,PageTitle,Author,Origin,Rank,Hits,HitsByDay,HitsByWeek,HitsByMonth,LastHitsTime,AddDate,JSID,TemplateID,WapTemplateID,Fname,RefreshTF,Inputer,PhotoUrl,PicNews,Changes,Recommend,Rolls,Strip,Popular,Verific,Slide,Comment,IsTop,IsVideo,DelTF,OrderID,IsSign,SignUser,SignDateLimit,SignDateEnd,Province,City,InfoPurview,ArrGroupID,ReadPoint,ChargeType,PitchTime,ReadTimes,DividePercent,MapMarker,KS_ppzm,ks_ppid,ks_ppname,KS_pinyin,KS_paixu,KS_tsdh,KS_ppQQ1,KS_ppQQ2,KS_ppQQ3,KS_QQ1sm,KS_QQ2sm,KS_QQ3sm,KS_bbsid,KS_isshengcheng,KS_erweima,KS_tanchuang,KS_VIPkehu,KS_isNew,KS_productNum" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_LoadAllCreate_PPB")= ArrayToxml2(rsFieldsStr,DataArray_,"row","allcreatePPBConfig") Application.unLock End If End Function Public Function ArrayToxml2(rsFields,DataArray,row,xmlroot) Dim i,node,rs,j,r,FieldName If xmlroot="" Then xmlroot="xml" Set ArrayToxml2 = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) ArrayToxml2.appendChild(ArrayToxml2.createElement(xmlroot)) If row="" Then row="row" rsFields = Split(rsFields,",") For i=0 To UBound(DataArray,2) Set Node=ArrayToxml2.createNode(1,row,"") j=0 for r=0 to ubound(rsFields) FieldName = rsFields(r) node.attributes.setNamedItem(ArrayToxml2.createNode(2,LCase(FieldName),"")).text= DataArray(j,i)& "" j=j+1 Next ArrayToxml2.documentElement.appendChild(Node) Next End Function '添加节点 Public Function AddArrayToxml2(rsFields,DataArray,row,xmlroot,Application_key) If isnul(Application_key) Then Exit Function Application_key = Trim(Application_key) Dim i,node,rs,j,r,FieldName If IsOBJECT(Application(Application_key)) Then If xmlroot="" Then xmlroot="xml" If row="" Then row="row" Set AddArrayToxml2 = Application(Application_key) rsFields = Split(rsFields,",") For i=0 To UBound(DataArray,2) Set Node=AddArrayToxml2.createNode(1,row,"") j=0 for r=0 to ubound(rsFields) FieldName = rsFields(r) node.attributes.setNamedItem(AddArrayToxml2.createNode(2,LCase(FieldName),"")).text = DataArray(j,i) & "" j=j+1 Next AddArrayToxml2.documentElement.appendChild(Node) Next End If End Function '加载所有产品数据 Public Function LoadAllproductData() If not IsObject(Application(SiteSN&SiteSN&"_LoadAllproductData")) Then Application.Lock Dim RS:Set RS=Conn.Execute("exec KS_LoadAllproductData") Dim DataArray_,rsFieldsStr:DataArray_ = rs.GetRows(-1) RS.Close:Set RS=Nothing rsFieldsStr = "ID,ProID,Tid,KeyWords,Title,PhotoUrl,BigPhoto,Intro,ProModel,ProSpecificat,ProducerName,TrademarkName,ServiceTerm,Rank,Unit,Hits,TotalNum,AlarmNum,ProductType,Discount,Price,Price_Original,Price_Market,Price_Member,AddDate,JSID,TemplateID,Fname,RefreshTF,Recommend,Rolls,Popular,Verific,Comment,IsSpecial,IsTop,Slide,Point,DelTF,GroupPrice,BrandID,HitsByDay,HitsByWeek,HitsByMonth,LastHitsTime,Strip,ClassID,ShowOnSpace,BigClassID,SmallClassID,AttributeCart,Inputer,WapTemplateID,IsChangedBuy,ChangeBuyNeedPrice,ChangeBuyPresentPrice,IsLimitbuy,LimitBuyPrice,LimitBuyTaskID,LimitBuyAmount,weight,KS_chexing,KS_fupinpai,KS_ckg,KS_zhouju,KS_lidijianxie,KS_zuodiangao,KS_youxiangrongliang,KS_kongchezhiliang,KS_zhengbeizhiliang,KS_gangshu,KS_chonchengshu,KS_lenquefangshi,KS_yasuobi,KS_zuidagonglv,KS_zuidaniuju,KS_zuigaochesu,KS_gonyoufangshi,KS_jingjihaoyou,KS_qidongfangshi,KS_zhidongfangshi,KS_liheqixingshi,KS_ppId,ks_ppname,KS_pinyin,KS_bbsid,KS_shichangjia,KS_pailiang,KS_isshengcheng,KS_Score,KS_Rnumber,KS_SSSH,KS_ZCTC,KS_lunshu,KS_QLGZ,KS_HLGZ,KS_KXYS,KS_HBBZ,KS_BXQXH,KS_lunwang,KS_mbh,KS_pingjunjia,KS_shangjiashu,KS_shuxing,HitsByYear,HitsByYear2012,KS_tjindex,KS_cuxiaourl,KS_isNew,KS_isDianDongChe,KS_CDCLX,KS_CDCGG,KS_CDCSL,KS_CDQLX,KS_CDDY,KS_DJEDEL,KS_DJEDDY,KS_PeiJian"'这里的字段可以不区分大小写 Set LoadAllproductData=ArrayToxml2(rsFieldsStr,DataArray_,"row","LoadAllproductData") Set Application(SiteSN&SiteSN&"_LoadAllproductData")= LoadAllproductData Application.unLock Else Set LoadAllproductData = Application(SiteSN&SiteSN&"_LoadAllproductData") End If End Function Public Function UpdProductArrayToxml2(productId) If 0 = ChkClng(productId) Then Exit Function Application.Lock If IsObject(Application(SiteSN&SiteSN&"_LoadAllproductData")) Then Dim GXML,objRootlist Set GXML = Application(SiteSN&SiteSN&"_LoadAllproductData") '删除老节点 For Each objRootlist in GXML.DocumentElement.SelectNodes("row[@id="& productId &"]") GXML.documentElement.RemoveChild(objRootlist)'删除老数据 Next Dim RS:Set RS=Conn.Execute("exec KS_LoadAllproductDataById " & productId) Dim DataArray_,rsFieldsStr:DataArray_ = rs.GetRows(-1) RS.Close:Set RS=Nothing rsFieldsStr = "ID,ProID,Tid,KeyWords,Title,PhotoUrl,BigPhoto,Intro,ProModel,ProSpecificat,ProducerName,TrademarkName,ServiceTerm,Rank,Unit,Hits,TotalNum,AlarmNum,ProductType,Discount,Price,Price_Original,Price_Market,Price_Member,AddDate,JSID,TemplateID,Fname,RefreshTF,Recommend,Rolls,Popular,Verific,Comment,IsSpecial,IsTop,Slide,Point,DelTF,GroupPrice,BrandID,HitsByDay,HitsByWeek,HitsByMonth,LastHitsTime,Strip,ClassID,ShowOnSpace,BigClassID,SmallClassID,AttributeCart,Inputer,WapTemplateID,IsChangedBuy,ChangeBuyNeedPrice,ChangeBuyPresentPrice,IsLimitbuy,LimitBuyPrice,LimitBuyTaskID,LimitBuyAmount,weight,KS_chexing,KS_fupinpai,KS_ckg,KS_zhouju,KS_lidijianxie,KS_zuodiangao,KS_youxiangrongliang,KS_kongchezhiliang,KS_zhengbeizhiliang,KS_gangshu,KS_chonchengshu,KS_lenquefangshi,KS_yasuobi,KS_zuidagonglv,KS_zuidaniuju,KS_zuigaochesu,KS_gonyoufangshi,KS_jingjihaoyou,KS_qidongfangshi,KS_zhidongfangshi,KS_liheqixingshi,KS_ppId,ks_ppname,KS_pinyin,KS_bbsid,KS_shichangjia,KS_pailiang,KS_isshengcheng,KS_Score,KS_Rnumber,KS_SSSH,KS_ZCTC,KS_lunshu,KS_QLGZ,KS_HLGZ,KS_KXYS,KS_HBBZ,KS_BXQXH,KS_lunwang,KS_mbh,KS_pingjunjia,KS_shangjiashu,KS_shuxing,HitsByYear,HitsByYear2012,KS_tjindex,KS_cuxiaourl,KS_isNew,KS_isDianDongChe,KS_CDCLX,KS_CDCGG,KS_CDCSL,KS_CDQLX,KS_CDDY,KS_DJEDEL,KS_DJEDDY,KS_PeiJian"'这里的字段可以不区分大小写 Set UpdProductArrayToxml2=AddArrayToxml2(rsFieldsStr,DataArray_,"row","LoadAllproductData",SiteSN&SiteSN&"_LoadAllproductData") Set Application(SiteSN&SiteSN&"_LoadAllproductData") = UpdProductArrayToxml2 End If Application.unLock End function Function C_C(ClassID,FieldID) If ClassID="" Or IsNull(ClassID) Then Exit Function LoadClassConfig() Dim Node:Set Node=Application(SiteSN&"_class").documentElement.selectSingleNode("class[@ks0=" & classID & "]/@ks" & FieldID & "") If Not Node Is Nothing Then C_C=Node.text Set Node=Nothing End Function '加载品牌缓存 Sub LoadBrandCache() If Not IsObject(Application(SiteSN&"_ClassBrand")) Then Application.Lock 'Dim RS:Set Rs=conn.execute("select id,BrandName,BrandEname,PhotoUrl From KS_ClassBrand Order by ID") 'Set Application(SiteSN&"_ClassBrand")=RsToxml(rs,"row","classbrand") 'Set Rs=Nothing Dim RS:Set Rs=conn.execute("PRO_LoadBrandCache") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "id,BrandName,BrandEname,PhotoUrl" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_ClassBrand")=RsToxml2(rsFieldsStr,DataArray_,"row","classbrand") Application.unLock End If End Sub Function C_B(BrandID,FieldName) If BrandID="" Or IsNull(BrandID) Then Exit Function LoadBrandCache() Dim Node:Set Node=Application(SiteSN&"_classbrand").documentElement.selectSingleNode("row[@id=" & BrandID & "]/@" & LCase(FieldName) & "") If Not Node Is Nothing Then C_B=Node.text Set Node=Nothing End Function '加载用户组缓存 Sub LoadUserGroup() If Not IsObject(Application(SiteSN&"_UserGroup")) Then Application.Lock 'Dim RS:Set Rs=conn.execute("select id,groupname,powerlist,descript,usertype,formid,templatefile,showonreg,ChargeType,GroupPoint,GroupSetting From KS_UserGroup Order by ID") 'Set Application(SiteSN&"_UserGroup")=RsToxml(rs,"row","groupConfig") Dim RS:Set Rs=conn.execute("PRO_LoadUserGroup") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "id,groupname,powerlist,descript,usertype,formid,templatefile,showonreg,ChargeType,GroupPoint,GroupSetting" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_UserGroup")=RsToxml2(rsFieldsStr,DataArray_ ,"row","groupConfig") Set Rs=Nothing Application.unLock End If End Sub '获取用户组特殊权限 Function U_S(GroupID,i) If IsNul(GroupID) Then U_S=0 : Exit Function Dim GroupSetting:GroupSetting=U_G(GroupID,"GroupSetting") &",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" Dim GroupSetArr:GroupSetArr=Split(GroupSetting,",") U_S=GroupSetArr(i) End Function Function U_G(GroupID,FieldName) If IsNul(GroupID) Then Exit Function LoadUserGroup Dim Node:Set Node=Application(SiteSN&"_UserGroup").DocumentElement.selectSingleNode("row[@id=" & GroupID & "]/@" & Lcase(FieldName)) If Not Node Is Nothing Then U_G=Node.text Set Node=Nothing End Function '加载论坛/问答等级 Sub LoadAskGrade() If Not IsObject(Application(SiteSN&"_AskGrade")) Then Application.Lock 'Dim RS:Set Rs=conn.execute("select gradeid,UserTitle,score,Ico,ClubPostNum,Color,TypeFlag,Special From KS_AskGrade Order by GradeID") 'Set Application(SiteSN&"_AskGrade")=RsToxml(rs,"row","AskGrade") 'Set Rs=Nothing Dim RS:Set Rs=conn.execute("PRO_LoadAskGrade") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "gradeid,UserTitle,score,Ico,ClubPostNum,Color,TypeFlag,Special" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_AskGrade")=RsToxml2(rsFieldsStr,DataArray_,"row","AskGrade") Application.unLock End If End Sub '取KS_AskGrade表的配置 Function A_G(GradeID,FieldName) If IsNul(GradeID) Then Exit Function LoadAskGrade Dim Node:Set Node=Application(SiteSN&"_AskGrade").DocumentElement.selectSingleNode("row[@gradeid=" & GradeID & "]/@" & Lcase(FieldName)) If Not Node Is Nothing Then A_G=Node.text Set Node=Nothing End Function '加载留言版面缓存 Sub LoadClubBoard() If Not IsObject(Application(SiteSN&"_ClubBoard")) Then Application.Lock 'Dim RS:Set Rs=conn.execute("select [id],[boardname],[note],[master],[todaynum],[postnum],[topicnum],[parentid],[LastPost],[BoardRules],[Settings] From KS_GuestBoard Where Locked<>1 Order by orderid,ID") 'Set Application(SiteSN&"_ClubBoard")=RsToxml(rs,"row","clubConfig") 'Set Rs=Nothing Dim RS:Set Rs=conn.execute("PRO_LoadClubBoard") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "id,boardname,note,master,todaynum,postnum,topicnum,parentid,LastPost,BoardRules,Settings" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_ClubBoard")=RsToxml2(rsFieldsStr,DataArray_,"row","clubConfig") Application.unLock End If End Sub Sub LoadClubBoardCategory() If Not IsObject(Application(SiteSN&"_ClubBoardCategory")) Then Application.Lock 'Dim RS:Set Rs=conn.execute("select [categoryid],[categoryname],[BoardID],[ico] From KS_GuestCategory Where Status=1 Order by orderid,CategoryID") 'Set Application(SiteSN&"_ClubBoardCategory")=RsToxml(rs,"row","boardcategory") 'Set Rs=Nothing Dim RS:Set Rs=conn.execute("PRO_LoadClubBoardCategory") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "categoryid,categoryname,BoardID,ico" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_ClubBoardCategory")=RsToxml2(rsFieldsStr,DataArray_,"row","classbrand") Application.unLock End If End Sub '************************************************** '函数名:LoadClassOption '作 用:加载栏目选项 '参 数:ChannelID-----当前模型ID,ShowPub 不允许发布的栏目显示灰色 '返回值:整棵树 '************************************************** Public Function LoadClassOption(ChannelID,ShowPub) Dim Node,K,SQL,NodeText,Pstr,TJ,SpaceStr,TreeStr,nbsp LoadClassConfig() If ChannelID<>0 Then Pstr="and @ks12=" & channelid & "" For Each Node In Application(SiteSN&"_class").DocumentElement.SelectNodes("class[@ks14=1" & Pstr&"]") SpaceStr="" If (C("SuperTF")=1 or FoundInArr(Node.SelectSingleNode("@ks16").text,C("AdminName"),",") or Instr(C("ModelPower"),C_S(Node.SelectSingleNode("@ks12").text,10)&"1")>0) and (C_S(Node.SelectSingleNode("@ks12").text,21)=1 or Node.SelectSingleNode("@ks12").text=5) Then TJ=Node.SelectSingleNode("@ks10").text If TJ>1 Then For k = 1 To TJ - 1 SpaceStr = SpaceStr & "──" Next End If If ShowPub=true Then If Node.SelectSingleNode("@ks20").text="1" Then TreeStr = TreeStr & "" Else TreeStr = TreeStr & "" End If Else TreeStr = TreeStr & "" End If End If Next LoadClassOption=TreeStr End Function Sub Echo(Str) Response.Write Str End Sub Sub Die(Str) Response.Write Str : Response.End End Sub Function IsNul(Str) If Str="" Or IsNull(Str) Then IsNul=True Else IsNul=false End Function '替换空null为空字符串 Function replace_Null(Str) If Str="" Or IsNull(Str) Then replace_Null = " " Else replace_Null = Str End If End Function Sub LoadChannelField() If Not IsObject(Application(SiteSN & "_ChannelField")) then 'Dim Rs:Set Rs = Conn.Execute("Select ChannelID,Title,FieldName,FieldType From KS_Field Order By FieldID") 'Set Application(SiteSN & "_ChannelField")=RsToxml(Rs,"row","root") 'Set Rs = Nothing Dim RS:Set Rs=conn.execute("PRO_LoadChannelField") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "ChannelID,Title,FieldName,FieldType" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_ChannelField")=RsToxml2(rsFieldsStr,DataArray_,"row","classbrand") End If End Sub Sub IsIPlock() On Error Resume Next If Setting(100)=0 Then Exit Sub If session("KS_IPlock") = "" Then session("KS_IPlock") = CheckIPlock(Setting(100), Setting(101), GetIP) End If If session("KS_IPlock") = True Then die "对不起!您的IP(" &GetIP & ")被系统限定。您可以和站长联系。" End If End Sub Function EncodeIP(Sip) Dim strIP:strIP = Split(Sip, ".") If UBound(strIP) < 3 Then EncodeIP = 0:Exit Function End If If IsNumeric(strIP(0)) = 0 Or IsNumeric(strIP(1)) = 0 Or IsNumeric(strIP(2)) = 0 Or IsNumeric(strIP(3)) = 0 Then Sip = 0 Else Sip = CInt(strIP(0)) * 256 * 256 * 256 + CInt(strIP(1)) * 256 * 256 + CInt(strIP(2)) * 256 + CInt(strIP(3)) - 1 End If EncodeIP = Sip End Function Function CStrIP(ByVal anNewIP) Dim lsResults ' Results To be returned Dim lnTemp ' Temporary value being parsed Dim lnIndex ' Position of number being parsed For lnIndex = 3 To 0 Step-1 lnTemp = Int(anNewIP / (256 ^ lnIndex)) lsResults = lsResults & lnTemp & "." anNewIP = anNewIP - (lnTemp * (256 ^ lnIndex)) Next lsResults = Left(lsResults, Len(lsResults) - 1) lsResults=Split(lsResults,".") Dim IPStr,i:For I=0 To Ubound(lsResults) if i=3 then IPStr=IPStr & "." &lsResults(3)+1 elseif i=0 then IPStr=lsResults(0) else IPStr=IPStr & "." & lsResults(i) end if Next CStrIP = IPStr End Function '白名单的端点可以访问和黑名单的端点将不允许访问。 Function ChecKIPlock(ByVal sLockType, ByVal sLockList, ByVal sUserIP) Dim IPlock, rsLockIP Dim arrLockIPW, arrLockIPB, arrLockIPWCut, arrLockIPBCut IPlock = False ChecKIPlock = IPlock Dim i, sKillIP If sLockType = "" Or IsNull(sLockType) Then Exit Function If sLockList = "" Or IsNull(sLockList) Then Exit Function If sUserIP = "" Or IsNull(sUserIP) Then Exit Function sUserIP = CDbl(EncodeIP(sUserIP)) rsLockIP = Split(sLockList, "|||") If sLockType = 4 Then arrLockIPB = Split(Trim(rsLockIP(1)), "$$$") For i = 0 To UBound(arrLockIPB) If arrLockIPB(i) <> "" Then arrLockIPBCut = Split(Trim(arrLockIPB(i)), "----") IPlock = True If CDbl(arrLockIPBCut(0)) > sUserIP Or sUserIP > CDbl(arrLockIPBCut(1)) Then IPlock = False If IPlock Then Exit For End If Next If IPlock = True Then arrLockIPW = Split(Trim(rsLockIP(0)), "$$$") For i = 0 To UBound(arrLockIPW) If arrLockIPW(i) <> "" Then arrLockIPWCut = Split(Trim(arrLockIPW(i)), "----") IPlock = True If CDbl(arrLockIPWCut(0)) <= sUserIP And sUserIP <= CDbl(arrLockIPWCut(1)) Then IPlock = False If IPlock Then Exit For End If Next End If Else If sLockType = 1 Or sLockType = 3 Then arrLockIPW = Split(Trim(rsLockIP(0)), "$$$") For i = 0 To UBound(arrLockIPW) If arrLockIPW(i) <> "" Then arrLockIPWCut = Split(Trim(arrLockIPW(i)), "----") IPlock = True If CDbl(arrLockIPWCut(0)) <= sUserIP And sUserIP <= CDbl(arrLockIPWCut(1)) Then IPlock = False If IPlock Then Exit For End If Next End If If IPlock = False And (sLockType = 2 Or sLockType = 3) Then arrLockIPB = Split(Trim(rsLockIP(1)), "$$$") For i = 0 To UBound(arrLockIPB) If arrLockIPB(i) <> "" Then arrLockIPBCut = Split(Trim(arrLockIPB(i)), "----") IPlock = True If CDbl(arrLockIPBCut(0)) > sUserIP Or sUserIP > CDbl(arrLockIPBCut(1)) Then IPlock = False If IPlock Then Exit For End If Next End If End If ChecKIPlock = IPlock End Function Public Function Conn() On Error Resume Next Dim ConnObj:Set ConnObj=Server.CreateObject("ADODB.Connection") ConnObj.Open ConnStr Set Conn = ConnObj End Function '采集数据库连接 Public Function ConnItem() Dim ConnObj:Set ConnObj=Server.CreateObject("ADODB.Connection") ConnObj.Open CollcetConnStr Set ConnItem = ConnObj End Function '*************************************************************************************************************** '函数名:GetDomain '作 用:获取URL,包括虚拟目录 如http://www.newmotor.com.cn/ 或 http://www.newmotor.com.cn/Sys/ 其中 Sys/为虚拟目录 '参 数: 无 '返回值:完整域名 '*************************************************************************************************************** Public Function GetDomain() GetDomain = Trim(Setting(2) & Setting(3)) End Function '************************************************** '函数名:GetChannelDomain '作 用:获取包含频道的完整Url '参 数:ChannelID频道ID '返回值:完整域名 '************************************************** Public Function GetChannelDomain(ChannelID) GetChannelDomain=C_S(ChannelID,8) If Left(GetChannelDomain, 1) = "/" Then GetChannelDomain = Right(GetChannelDomain, Len(GetChannelDomain) - 1) GetChannelDomain = GetDomain() & GetChannelDomain End Function '************************************************** '函数名:GetAutoDoMain() '作 用:取得当前服务器IP 如:http://127.0.0.1 '参 数:无 '************************************************** Public Function GetAutoDomain() Dim TempPath If Request.ServerVariables("SERVER_PORT") = "80" Then GetAutoDomain = Request.ServerVariables("SERVER_NAME") Else GetAutoDomain = Request.ServerVariables("SERVER_NAME") & ":" & Request.ServerVariables("SERVER_PORT") End If If Instr(UCASE(GetAutoDomain),"/W3SVC")<>0 Then GetAutoDomain=Left(GetAutoDomain,Instr(GetAutoDomain,"/W3SVC")) End If GetAutoDomain = "http://" & GetAutoDomain End Function Function CutFixContent(ByVal str, ByVal start, ByVal last, ByVal n) Dim strTemp On Error Resume Next If InStr(str, start) > 0 Then Select Case n Case 0 '左右都截取(都取前面)(去处关键字) strTemp = Right(str, Len(str) - InStr(str, start) - Len(start) + 1) strTemp = Left(strTemp, InStr(strTemp, last) - 1) Case Else '左右都截取(都取前面)(保留关键字) strTemp = Right(str, Len(str) - InStr(str, start) + 1) strTemp = Left(strTemp, InStr(strTemp, last) + Len(last) - 1) End Select Else strTemp = "" End If CutFixContent = strTemp End Function '取得Tag之间的循环体 Function GetTagLoop(ByVal Content) Dim regEx, Matches, Match, LoopStr Set regEx = New RegExp regEx.Pattern = "{Tag([\s\S]*?):(.+?)}" regEx.IgnoreCase = True regEx.Global = True Set Matches = regEx.Execute(Content) For Each Match In Matches Content=Replace(Content,Match.Value,"") Content=Replace(Content,"{/Tag}","") Next GetTagLoop=Content End Function '================================================== '函数名:ScriptHtml '作 用:过滤html标记 '参 数:ConStr ------ 要过滤的字符串 '================================================== Function ScriptHtml(ByVal Constr, TagName, FType) Dim re Set re = New RegExp re.IgnoreCase = True re.Global = True Select Case FType Case 1 re.Pattern = "<" & TagName & "([^>])*>" Constr = re.Replace(Constr, "") Case 2 re.Pattern = "<" & TagName & "([^>])*>.*?])*>" Constr = re.Replace(Constr, "") Case 3 re.Pattern = "<" & TagName & "([^>])*>" Constr = re.Replace(Constr, "") re.Pattern = "])*>" Constr = re.Replace(Constr, "") End Select ScriptHtml = Constr Set re = Nothing End Function '************************************************************************* '函数名:gotTopic '作 用:截字符串,汉字一个算两个字符,英文算一个字符 '参 数:str ----原字符串 ' strlen ----截取长度 '返回值:截取后的字符串 '************************************************************************* Public Function GotTopic(ByVal Str, ByVal strlen) If Str = "" OR IsNull(Str) Then GotTopic = "":Exit Function If strlen=0 Then GotTopic=Str:Exit Function Dim l, T, c, I, strTemp Str = Replace(Replace(Replace(Replace(Str, " ", " "), """, Chr(34)), ">", ">"), "<", "<") l = Len(Str) T = 0 strTemp = Str strlen = CLng(strlen) For I = 1 To l c = Abs(Ascw(Mid(Str, I, 1))) If c > 255 Then T = T + 2 Else T = T + 1 End If If T >= strlen Then strTemp = Left(Str, I) Exit For End If Next If strTemp <> Str Then strTemp = strTemp GotTopic = Replace(Replace(Replace(Replace(strTemp, " ", " "), Chr(34), """), ">", ">"), "<", "<") End Function '************************************************** '函数名:ListTitle '作 用:取标题 '参 数:TitleStr 标题, TitleNum 取字符数 '返回值:将标题分解成两行 '************************************************** Public Function ListTitle(TitleStr, TitleNum) Dim LeftStr, RightStr ListTitle = Trim(GotTopic(Trim(TitleStr), TitleNum)) If Len(ListTitle) > CInt(TitleNum / 2) Then LeftStr = GotTopic(ListTitle, CInt(TitleNum / 2)) RightStr = Mid(ListTitle, Len(LeftStr) + 1) ListTitle = LeftStr & "
" & RightStr End If End Function Function ListTitle1(TitleStr, TitleNum) Dim ClsTitleStr, ClsTitleNum, I, J, ClsTempNum, k, ClsTitleStrResult, LeftStr, RightStr ClsTitleNum = CInt(TitleNum) ClsTempNum = Len(CStr(TitleStr)) If ClsTitleNum > ClsTempNum Then ClsTitleNum = ClsTempNum End If ClsTitleStr = Left(CStr(TitleStr), ClsTitleNum) Dim TempStr For I = 1 To ClsTitleNum - 1 TempStr = TempStr & Mid(ClsTitleStr, I, 1) & "
" Next TempStr = TempStr & Right(ClsTitleStr, 1) ListTitle1 = TempStr End Function '************************************************** '函数名:GetIP '作 用:取得正确的IP '返回值:IP字符串 '************************************************** Public Function GetIP() Dim strIPAddr If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" Or InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then strIPAddr = Request.ServerVariables("REMOTE_ADDR") ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1) ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1) Else strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") End If getIP = Checkstr(Trim(Mid(strIPAddr, 1, 30))) End Function Public Function Checkstr(Str) If Isnull(Str) Then CheckStr = "" Exit Function End If Str = Replace(Str,Chr(0),"") CheckStr = Replace(Str,"'","''") End Function '================================================ '函数名:URLDecode '作 用:URL解码 '================================================ Function URLDecode(ByVal urlcode) Dim start,final,length,char,i,butf8,pass Dim leftstr,rightstr,finalstr Dim b0,b1,bx,blength,position,u,utf8 On Error Resume Next b0 = Array(192,224,240,248,252,254) urlcode = Replace(urlcode,"+"," ") pass = 0 utf8 = -1 length = Len(urlcode) : start = InStr(urlcode,"%") : final = InStrRev(urlcode,"%") If start = 0 Or length < 3 Then URLDecode = urlcode : Exit Function leftstr = Left(urlcode,start - 1) : rightstr = Right(urlcode,length - 2 - final) For i = start To final char = Mid(urlcode,i,1) If char = "%" Then bx = URLDecode_Hex(Mid(urlcode,i + 1,2)) If bx > 31 And bx < 128 Then i = i + 2 finalstr = finalstr & ChrW(bx) ElseIf bx > 127 Then i = i + 2 If utf8 < 0 Then butf8 = 1 : blength = -1 : b1 = bx For position = 4 To 0 Step -1 If b1 >= b0(position) And b1 < b0(position + 1) Then blength = position Exit For End If Next If blength > -1 Then For position = 0 To blength b1 = URLDecode_Hex(Mid(urlcode,i + position * 3 + 2,2)) If b1 < 128 Or b1 > 191 Then butf8 = 0 : Exit For Next Else butf8 = 0 End If If butf8 = 1 And blength = 0 Then butf8 = -2 If butf8 > -1 And utf8 = -2 Then i = start - 1 : finalstr = "" : pass = 1 utf8 = butf8 End If If pass = 0 Then If utf8 = 1 Then b1 = bx : u = 0 : blength = -1 For position = 4 To 0 Step -1 If b1 >= b0(position) And b1 < b0(position + 1) Then blength = position b1 = (b1 xOr b0(position)) * 64 ^ (position + 1) Exit For End If Next If blength > -1 Then For position = 0 To blength bx = URLDecode_Hex(Mid(urlcode,i + 2,2)) : i = i + 3 If bx < 128 Or bx > 191 Then u = 0 : Exit For u = u + (bx And 63) * 64 ^ (blength - position) Next If u > 0 Then finalstr = finalstr & ChrW(b1 + u) End If Else b1 = bx * &h100 : u = 0 bx = URLDecode_Hex(Mid(urlcode,i + 2,2)) If bx > 0 Then u = b1 + bx i = i + 3 Else If Left(urlcode,1) = "%" Then u = b1 + Asc(Mid(urlcode,i + 3,1)) i = i + 2 Else u = b1 + Asc(Mid(urlcode,i + 1,1)) i = i + 1 End If End If finalstr = finalstr & Chr(u) End If Else pass = 0 End If End If Else finalstr = finalstr & char End If Next URLDecode = leftstr & finalstr & rightstr End Function Function URLDecode_Hex(ByVal h) On Error Resume Next h = "&h" & Trim(h) : URLDecode_Hex = -1 If Len(h) <> 4 Then Exit Function If isNumeric(h) Then URLDecode_Hex = cInt(h) End Function '************************************************** '函数名:R '作 用:过滤非法的SQL字符 '参 数:strChar-----要过滤的字符 '返回值:过滤后的字符 '************************************************** Public Function R(strChar) If strChar = "" Or IsNull(strChar) Then R = "":Exit Function Dim strBadChar, arrBadChar, tempChar, I 'strBadChar = "$,#,',%,^,&,?,(,),<,>,[,],{,},/,\,;,:," & Chr(34) & "," & Chr(0) & "" strBadChar = "+,',--,%,^,&,?,(,),<,>,[,],{,},/,\,;,:," & Chr(9) & "," & Chr(10) & "," & Chr(13) & "," & Chr(32) & "," & Chr(34) & "," & Chr(39) & "," & Chr(0) & "" arrBadChar = Split(strBadChar, ",") tempChar = strChar For I = 0 To UBound(arrBadChar) tempChar = Replace(tempChar, arrBadChar(I), "") Next tempChar = Replace(tempChar, "@@", "@") R = tempChar End Function '过滤xss Function CheckXSS(ByVal strCode) Dim Re Set re=new RegExp re.IgnoreCase =True re.Global=True re.Pattern="<.[^>]*(style).>" strCode = re.Replace(strCode, "") re.Pattern="<(a.[^>]*|\/a|li|br|B|\/li|\/B|font.[^>]*|\/font)>" strCode=re.Replace(strCode,"[$1]") strCode=Replace(Replace(strCode, "<", "<"), ">", ">") re.Pattern="\[(a.[^\]]*|\/a|li|br|B|\/li|\/B|font.[^\]]*|\/font)\]" strCode=re.Replace(strCode,"<$1>") re.Pattern="<.[^>]*(on(load|click|dbclick|mouseover|mouseout|mousedown|mouseup|mousewheel|keydown|submit|change|focus)).>" strCode = re.Replace(strCode, "") Set Re=Nothing CheckXSS=strCode End Function Function FilterIDs(byval strIDs) Dim arrIDs,i,strReturn strIDs=Trim(strIDs) If Len(strIDs)=0 Then Exit Function arrIDs=Split(strIDs,",") For i=0 To Ubound(arrIds) If ChkClng(Trim(arrIDs(i)))<>0 Then strReturn=strReturn & "," & Int(arrIDs(i)) End If Next If Left(strReturn,1)="," Then strReturn=Right(strReturn,Len(strReturn)-1) FilterIDs=strReturn End Function '******************************************** '函数名:IsValidEmail '作 用:检查Email地址合法性 '参 数:email ----要检查的Email地址 '返回值:True ----Email地址合法 ' False ----Email地址不合法 '******************************************** Public Function IsValidEmail(Email) Dim names, name, I, c IsValidEmail = True names = Split(Email, "@") If UBound(names) <> 1 Then IsValidEmail = False: Exit Function For Each name In names If Len(name) <= 0 Then IsValidEmail = False:Exit Function For I = 1 To Len(name) c = LCase(Mid(name, I, 1)) If InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 And Not IsNumeric(c) Then IsValidEmail = False:Exit Function Next If Left(name, 1) = "." Or Right(name, 1) = "." Then IsValidEmail = False:Exit Function Next If InStr(names(1), ".") <= 0 Then IsValidEmail = False:Exit Function I = Len(names(1)) - InStrRev(names(1), ".") If I <> 2 And I <> 3 Then IsValidEmail = False:Exit Function If InStr(Email, "..") > 0 Then IsValidEmail = False End Function '************************************************** '函数名:strLength '作 用:求字符串长度。汉字算两个字符,英文算一个字符。 '参 数:str ----要求长度的字符串 '返回值:字符串长度 '************************************************** Public Function strLength(Str) On Error Resume Next Dim WINNT_CHINESE:WINNT_CHINESE = (Len("中国") = 2) If WINNT_CHINESE Then Dim l, T, c,I l = Len(Str) T = l For I = 1 To l c = Ascw(Mid(Str, I, 1)) If c < 0 Then c = c + 65536 If c > 255 Then T = T + 1 End If Next strLength = T Else strLength = Len(Str) End If If Err.Number <> 0 Then Err.Clear End Function '************************************************** '函数名: GetFolderPath '功 能:取得目录Url '参 数: FolderID目录的ID '************************************************** Public Function GetFolderPath(FolderID) If Not IsObject(Application(SiteSN&"_classpath")) Then Dim Folder,ClassPurview,ChannelFsoHtmlTF,Node,K,SQL,RS Set Application(SiteSN&"_classpath")=Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) Application(SiteSN&"_classpath").appendChild( Application(SiteSN&"_classpath").createElement("xml")) 'Set RS=Server.CreateObject("ADODB.RECORDSET") 'RS.Open "Select C.ClassID,C.ChannelID,TN,Folder,FolderDomain,ClassPurview,FsoHtmlTF,StaticTF,C.ID,ClassType,M.FsoClassListRule,M.FsoClassPreTag,FolderFsoIndex,StaticTF From KS_Class C inner join KS_Channel M On C.ChannelID=M.ChannelID Order BY FolderOrder", Conn, 1, 1 Set Rs=conn.execute("PRO_GetFolderPath") If RS.Eof And RS.Bof Then RS.Close:Set RS=Nothing:Exit Function SQL=RS.GetRows(-1):RS.Close:Set RS=Nothing For K=0 To Ubound(SQL,2) ClassPurview=SQL(5,K) ChannelFsoHtmlTF=SQL(6,K) If SQL(9,K)="2" Then GetFolderPath=SQL(3,K) Else If Trim(SQL(4,K)) <> "" And SQL(2,K) = "0" Then IF ClassPurview=2 Or ChannelFsoHtmlTF=0 Or ChannelFsoHtmlTF=2 Then GetFolderPath= GetChannelNoHtmlUrl(SQL(7,K),SQL(0,K)) Else GetFolderPath=Trim(SQL(4,K)) End If ElseIf Trim(SQL(4,K)) <> "" Then Folder = Trim(SQL(3,K)) Folder = Right(Mid(Folder, InStr(Folder, "/")), Len(Mid(Folder, InStr(Folder, "/"))) - 1) IF ClassPurview=2 Or ChannelFsoHtmlTF=0 Or ChannelFsoHtmlTF=3 Then GetFolderPath= Trim(SQL(4,K)) & GetChannelNoHtmlUrl(SQL(7,K),SQL(0,K)) Else GetFolderPath= Trim(SQL(4,K)) & Folder End If Else IF ClassPurview=2 Or ChannelFsoHtmlTF=0 Or ChannelFsoHtmlTF=2 Then GetFolderPath= GetChannelNoHtmlUrl(SQL(7,K),SQL(0,K)) Else GetFolderPath= GetChannelDomain(SQL(1,K)) If SQL(9,K)="3" Then GetFolderPath= GetChannelDomain(SQL(1,K)) & SQL(3,K) Else Dim FsoClassPreTag:FsoClassPreTag=SQL(11,K) Dim FolderEname:FolderEname=Split(Trim(SQL(3,K)),"/")(Ubound(Split(Trim(SQL(3,K)),"/"))-1) FsoClassPreTag=Replace(FsoClassPreTag,"{$TopClassEname}",Split(Trim(SQL(3,K)),"/")(0)) FsoClassPreTag=Replace(FsoClassPreTag,"{$ClassEname}",FolderEName) FsoClassPreTag=Replace(FsoClassPreTag,"{$ClassID}",SQL(0,K)) FsoClassPreTag=Replace(FsoClassPreTag,"{$BigClassID}",SQL(8,K)) Select Case SQL(10,K) Case "1":GetFolderPath= GetChannelDomain(SQL(1,K)) & SQL(3,K) Case "2":GetFolderPath= GetChannelDomain(SQL(1,K)) & FsoClassPreTag &"_" & SQL(0,K) &Mid(Trim(SQL(12,K)), InStrRev(Trim(SQL(12,K)), ".")) '分离出扩展名 Case "3": GetFolderPath= GetChannelDomain(SQL(1,K)) & Split(SQL(3,K),"/")(0) & "/" If SQL(2,K) <> "0" Then GetFolderPath= GetFolderPath & FsoClassPreTag &"_" & SQL(0,K) &Mid(Trim(SQL(12,K)), InStrRev(Trim(SQL(12,K)), ".")) '分离出扩展名 Case "4":GetFolderPath=GetChannelDomain(SQL(1,K)) & FsoClassPreTag &Mid(Trim(SQL(12,K)), InStrRev(Trim(SQL(12,K)), ".")) '分离出扩展名 End Select End If End If End If End If Set Node=Application(SiteSN&"_classpath").documentElement.appendChild(Application(SiteSN&"_classpath").createNode(1,"classpath","")) Node.attributes.setNamedItem(Application(SiteSN&"_classpath").createNode(2,"classid","")).text=SQL(8,K) Node.text=GetFolderPath Next End If Dim NodeText:Set NodeText=Application(SiteSN&"_classpath").documentElement.selectSingleNode("classpath[@classid=" & FolderID & "]") If Not NodeText Is Nothing Then GetFolderPath=NodeText.text End Function '************************************************************************ '函数名: GetClassNP '功 能: 取得目录名称并加上链接 '参 数: ClassID目录的ID '************************************************************************* Function GetClassNP(ClassID) If Not IsObject(Application(SiteSN&"_classnamepath")) Then Dim Folder,ClassPurview,ChannelFsoHtmlTF,Node,K,SQL,RS Dim OpenTypeStr:OpenTypeStr=" target=""_blank""" Set Application(SiteSN&"_classnamepath")=Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion) Application(SiteSN&"_classnamepath").appendChild( Application(SiteSN&"_classnamepath").createElement("xml")) 'Set RS=Server.CreateObject("ADODB.RECORDSET") 'RS.Open "Select ID,FolderName From KS_Class Order BY FolderOrder", Conn, 1, 1 Set Rs=conn.execute("PRO_GetClassNP") If RS.Eof And RS.Bof Then RS.Close:Set RS=Nothing:Exit Function SQL=RS.GetRows(-1):RS.Close:Set RS=Nothing For K=0 To Ubound(SQL,2) Set Node=Application(SiteSN&"_classnamepath").documentElement.appendChild(Application(SiteSN&"_classnamepath").createNode(1,"classnamepath","")) Node.attributes.setNamedItem(Application(SiteSN&"_classnamepath").createNode(2,"classid","")).text=SQL(0,K) Node.text="" & Trim(SQL(1,K)) & "" Next End If Dim NodeText:Set NodeText=Application(SiteSN&"_classnamepath").documentElement.selectSingleNode("classnamepath[@classid=" & ClassID & "]") If Not NodeText Is Nothing Then GetClassNP=NodeText.text End Function '替换内容页生成规则 Function LoadFsoContentRule(ChannelID,ClassID) On Error Resume Next Dim FsoContentRule:FsoContentRule=C_S(ChannelID,43) FsoContentRule=Replace(FsoContentRule,"{$ChannelEname}",Split(C_C(ClassID,2),"/")(0)) FsoContentRule=Replace(FsoContentRule,"{$ClassDir}",C_C(ClassID,2)) FsoContentRule=Replace(FsoContentRule,"{$ClassID}",C_C(ClassID,9)) FsoContentRule=Replace(FsoContentRule,"{$ClassEname}",Split(C_C(ClassID,2), "/")(C_C(ClassID,10)- 1)) FsoContentRule=Replace(Setting(3) & C_S(ChannelID,8),"//","/") & FsoContentRule LoadFsoContentRule=FsoContentRule End Function Function LoadInfoUrl(ChannelID,ClassID,Fname) If C_C(ClassID,4)<>"" Then LoadInfoUrl=GetFolderPath(ClassID) & Fname Else LoadInfoUrl=Setting(2) & LoadFsoContentRule(ChannelID,ClassID) & Fname End If End Function '---------------------------------------------------------------------------------------------------------------------- '函数名: GetSpecialPath '功 能: 取得专题目录Url '参 数: SpecialrRS '----------------------------------------------------------------------------------------------------------------------- Public Function GetSpecialPath(SpecialID,SpecialEname,FsoSpecialIndex) Dim SpecialDir:SpecialDir = Setting(95) If Left(SpecialDir, 1) = "/" Or Left(SpecialDir, 1) = "\" Then SpecialDir = Right(SpecialDir, Len(SpecialDir) - 1) If Setting(78)="0" Then GetSpecialPath=GetDomain & "Special.shtml?ID=" & SpecialID Else GetSpecialPath = GetDomain & SpecialDir & SpecialEname & "/" & FsoSpecialIndex End iF End Function '---------------------------------------------------------------------------------------------------------------------- '函数名: GetFolderSpecialPath '功 能: 取得栏目专题汇总Url '参 数: ClassID目录的ID,FullPathFlag是否完整路径(取栏目首页与否),包括专题首页 '----------------------------------------------------------------------------------------------------------------------- Function GetFolderSpecialPath(ClassID, FullPathFlag) Dim SpecialDir:SpecialDir =Setting(95) If Left(SpecialDir, 1) = "/" Or Left(SpecialDir, 1) = "\" Then SpecialDir = Right(SpecialDir, Len(SpecialDir) - 1) IF Setting(78)="0" Then GetFolderSpecialPath = GetDomain &"SpecialList.shtml?ClassID="&ClassID Else Dim RS:Set RS=Conn.Execute("Select ClassEname,FsoIndex From KS_SpecialClass Where ClassID=" & ChkClng(ClassID)) If RS.Eof Then GetFolderSpecialPath = GetDomain &"SpecialList.shtml?ClassID="&ClassID Else GetFolderSpecialPath = GetDomain & SpecialDir & RS(0) & "/" If FullPathFlag = True Then GetFolderSpecialPath=GetFolderSpecialPath & RS(1) End If RS.Close:Set RS = Nothing End IF End If End Function '取得栏目的链接URL Public Function GetChannelNoHtmlUrl(StaticTF,ClassID) If StaticTF=0 Then GetChannelNoHtmlUrl=GetDomain &"Item/list.shtml?id=" & ClassID ElseIf StaticTF=2 Then GetChannelNoHtmlUrl=GetDomain & GCls.StaticPreList & "-" & ClassID & GCls.StaticExtension Else GetChannelNoHtmlUrl=GetDomain & "?" & GCls.StaticPreList & "-" & ClassID & GCls.StaticExtension End If End Function '模型内容页URL Public Function GetItemURL(ByVal ChannelID,ByVal Tid,ByVal InfoID,ByVal Fname) IF Not Isnumeric(ChannelID) Then GetItemURL="#":Exit Function If C_S(ChannelID,7)=0 Then if C_S(ChannelID,48)=0 Then GetItemURL=GetDomain & "Item/Show.shtml?m=" & ChannelID & "&d=" &InfoID If ChannelID = 2 Then GetItemURL=GetDomain & "photo/Show.shtml?m=" & ChannelID & "&d=" &InfoID'搜索列表-图片正确链接地址 ElseIf ChannelID = 5 Then Dim RS,SqlStr,ks_pinyin Set RS=Server.CreateObject("ADODB.RECORDSET") SqlStr = " select top 1 ks_pinyin From dbo.KS_Product where id=" & InfoID RS.Open SqlStr,conn,1,1 If RS.Eof And RS.Bof Then RS.close:Set RS = nothing else ks_pinyin = rs("ks_pinyin") End If RS.close:Set RS = Nothing GetItemURL= "http://motor.newmotor.com.cn/"& trim(ks_pinyin) & InfoID &"/" ElseIf ChannelID = 120 Then GetItemURL=GetDomain & "Item/Show.shtml?m=" & ChannelID & "&d=" &InfoID ElseIf ChannelID = 113 Then Set RS=Server.CreateObject("ADODB.RECORDSET") SqlStr = " select top 1 ks_pinyin From new.KS_U_ppb where id=" & InfoID RS.Open SqlStr,conn,1,1 If RS.Eof And RS.Bof Then RS.close:Set RS = nothing else ks_pinyin = rs("ks_pinyin") End If RS.close:Set RS = Nothing GetItemURL= "http://brand.newmotor.com.cn/"& trim(ks_pinyin) & InfoID &"/" End If ElseIf C_S(ChannelID,48)=2 Then GetItemURL=GetDomain & GCls.StaticPreContent & "-" & InfoID & "-"& ChannelID & GCls.StaticExtension Else GetItemURL=GetDomain & "?" & GCls.StaticPreContent & "-" & InfoID & "-"& ChannelID & GCls.StaticExtension End If Else GetItemURL=LoadInfoUrl(ChannelID,TID,Fname) End If End Function '根据ID取空间Url Public Function GetSpaceUrl(ByVal UserID) If SSetting(21)="1" Then GetSpaceUrl=GetDomain & "space/" & UserID Else GetSpaceUrl=GetDomain & "space/?" & UserID End If End Function '帖子版面URL Public Function GetClubListUrl(ByVal Id) If ID=0 Then '首页 If Not IsNul(Setting(69)) Then GetClubListUrl="http://" & Setting(69) & "/" Else GetClubListUrl=GetDomain & Setting(66) & "/index.shtml" End If Else If Not IsNul(Setting(69)) Then If Setting(70)="1" Then GetClubListUrl="http://" & Setting(69) &"/" & GCls.ClubPreList & "-" & id&GCls.StaticExtension Else GetClubListUrl="http://" & Setting(69) &"/?" & GCls.ClubPreList & "-" & id&GCls.StaticExtension End If Else If Setting(70)="1" Then GetClubListUrl=GetDomain & "" & GCls.ClubPreList & "-" & id&GCls.StaticExtension Else GetClubListUrl=GetDomain & Setting(66) & "/index.shtml?boardid=" & id End If End If End If End Function '帖子Url Public Function GetClubShowUrl(ByVal Id) If Not IsNul(Setting(69)) Then If Setting(70)="1" Then GetClubShowUrl="http://" & Setting(69) &"/" & GCls.ClubPreContent & "-" & id&GCls.StaticExtension Else GetClubShowUrl="http://" & Setting(69) &"/?" & GCls.ClubPreContent & "-" & id&GCls.StaticExtension End If Else If Setting(70)="1" Then GetClubShowUrl=GetDomain & "" & GCls.ClubPreContent & "-" & id&GCls.StaticExtension Else GetClubShowUrl=GetDomain & Setting(66) & "/display.shtml?id=" & id End If End If End Function '帖子Url带分页 Public Function GetClubShowUrlPage(ByVal Id,ByVal Page) If Not IsNul(Setting(69)) Then If Setting(70)="1" Then GetClubShowUrlPage="http://" & Setting(69) &"/" & GCls.ClubPreContent & "-" & id & "-" & page &GCls.StaticExtension Else GetClubShowUrlPage="http://" & Setting(69) &"/?" & GCls.ClubPreContent & "-" & id & "-" & page &GCls.StaticExtension End If Else If Setting(70)="1" Then GetClubShowUrlPage=GetDomain & "" & GCls.ClubPreContent & "-" & id & "-" & page &GCls.StaticExtension Else GetClubShowUrlPage=GetDomain & Setting(66) & "/display.shtml?id=" & id &"&page=" & page End If End If End Function '论坛分页 Function GetClubPageList(MaxPerPage,CurrentPage,TotalPut,ID,PreStatic) dim totalPage GetClubPageList= "
" If Not IsNul(Setting(69)) Then If totalput Mod MaxPerPage = 0 Then TotalPage=totalput\MaxPerPage Else TotalPage=totalput\MaxPerPage + 1 End If If Setting(70)="1" Then GetClubPageList=GetClubPageList & "
" & GetStaticPageList ("http://" & Setting(69) & "/" & PreStatic & "-" & ID & "-",4,CurrentPage,TotalPage,true,GCls.StaticExtension) &"
" Else GetClubPageList=GetClubPageList & "
" & GetStaticPageList ("http://" & Setting(69) & "/?" & PreStatic & "-" & ID & "-",4,CurrentPage,TotalPage,true,GCls.StaticExtension) &"
" End if Else If Setting(70)="1" Then If totalput Mod MaxPerPage = 0 Then TotalPage=totalput\MaxPerPage Else TotalPage=totalput\MaxPerPage + 1 End If GetClubPageList=GetClubPageList & "
" & GetStaticPageList (PreStatic & "-" & ID & "-",4,CurrentPage,TotalPage,true,GCls.StaticExtension) &"
" Else GetClubPageList=GetClubPageList &ShowPage(totalput, MaxPerPage, "", CurrentPage,false,false) End If End If GetClubPageList=GetClubPageList & "
" End Function '论坛顶部广告 Function GetClubTopAdList() IF Not IsNUL(Setting(159)) Then Dim ADArr,I,J,Str,N,JJ ADArr=Split(Setting(159),"@") : N=0 str="" &vbcrlf For I=0 To Ubound(AdArr) str=str & ""& VBCRLF For J=1 To 4 str=str & "" & VBCRLF n=n+1 If N>Ubound(AdArr) Then Exit For Next If N>Ubound(AdArr) Then do while j<4 str=str &"" j=j+1 loop str=str &""& VBCRLF Exit For End If str=str &""& VBCRLF Next str=str &"
" & AdArr(N) & " 
"& VBCRLF End If GetClubTopAdList=str End Function '取消HTML 原始 Public Function LoseHtml(ByVal ContentStr) On Error Resume Next Dim TempLoseStr, regEx If ContentStr="" Or ContentStr=Null Then Exit Function TempLoseStr = HtmlCode(ContentStr) Set regEx = New RegExp regEx.Pattern = "<\/*[^<>]*>" regEx.IgnoreCase = True regEx.Global = True TempLoseStr = regEx.Replace(TempLoseStr, "") LoseHtml = TempLoseStr End Function '取消ubbcode Public Function LoseUbb(ByVal ContentStr) On Error Resume Next Dim TempLoseStr, regEx If ContentStr="" Or ContentStr=Null Then Exit Function TempLoseStr = HtmlCode(ContentStr) Set regEx = New RegExp regEx.Pattern = "<\/*[^<>]*>" regEx.IgnoreCase = True regEx.Global = True RegEx.Pattern = "\[[^\]]*\]" '过滤ubbcode TempLoseStr = regEx.Replace(TempLoseStr, "") LoseUbb = TempLoseStr End Function '取消HTML 'Public Function LoseHtml(ByVal ContentStr) ' On Error Resume Next 'Dim TempLoseStr, regEx 'If ContentStr="" Or ContentStr=Null Then Exit Function ' TempLoseStr = HtmlCode(ContentStr) 'Set regEx = New RegExp ' regEx.Pattern = "<\/*[^<>]*>" ' regEx.IgnoreCase = True ' regEx.Global = True ' RegEx.Pattern = "\[[^\]]*\]" '过滤ubbcode ' TempLoseStr = regEx.Replace(TempLoseStr, "") ' LoseHtml = TempLoseStr ' End Function '--------------------------------------------------------------------------------------------------- '函数名: G_O_T_S '功 能:取得打开类型 '参 数: OpenType 取true时,新窗口打开 '-------------------------------------------------------------------------------------------- Function G_O_T_S(OpenType) If OpenType = "" Or OpenType = False Then G_O_T_S = "" ElseIf OpenType = True Then G_O_T_S = " target=""_blank""" Else G_O_T_S = " target=""" & OpenType & """" End If End Function '-------------------------------------------------------------------------------------------------- '函数名: GetCss '功 能:取得样式 '参 数: CssName样式名称 '-------------------------------------------------------------------------------------------- Function GetCss(CssName) If CssName = "" Or IsNull(CssName) Then GetCss = "" Else GetCss = " class=""" & CssName & """" End Function '取得CSS的ID Function GetCssID(ID) If ID="" Then GetCssID="" Else GetCssID=" id=""" & ID & """" End Function '------------------------------------------------------------------------------------------------------------- '函数名: G_R_H '功 能:取得单元格行距 '参 数: RowHeight 默认行距 '----------------------------------------------------------------------------------------------------------- Function G_R_H(RowHeight) If IsNumeric(RowHeight) Then G_R_H = RowHeight Else G_R_H = 20 End Function '---------------------------------------------------------------------------------------------------------------------------- '函数名:GetMenuBg '功 能:取得表头背景 '参 数: MenuBGType 类型 1 取背景图片 0 取背景颜色, MenuBg 背景颜色的值 如#CCCCCC 或 /Upfies/TITLE_BG.GIF ,ColNumber列数 '--------------------------------------------------------------------------------------------------------------------------- Function GetMenuBg(MenuBgType, MenuBg, ColNumber) If MenuBgType = 0 Then If MenuBg = "" Then GetMenuBg = "" Else GetMenuBg = MenuBg Else If MenuBg = "" Then GetMenuBg = "url(" & GetDomain & "Images/Default/MenuBg" & ColNumber & ".Gif)" Else If Left(MenuBg, 1) = "/" Or Left(MenuBg, 1) = "\" Then MenuBg = Right(MenuBg, Len(MenuBg) - 1) If LCase(Left(MenuBg, 4)) = "http" Then MenuBg = MenuBg Else MenuBg = GetDomain & MenuBg GetMenuBg = "url(" & MenuBg & ")" End If End If End Function '---------------------------------------------------------------------------------------------------------------------------- '函数名:GetPhotoBorder '功 能: 取得图片的边框 '参 数: BorderType 类型 1 取透明图片边框 0 取颜色边框, Border 背景颜色的值 如#CCCCCC 或 /Upfies/TITLE_BG.GIF ,ColNumber列数 '---------------------------------------------------------------------------------------------------------------------------- Function GetPhotoBorder(LinkPhotoStr, BorderType, Border) Dim bgColorStr If Trim(Border) = "" Then GetPhotoBorder = LinkPhotoStr:Exit Function Else If BorderType = 0 Then bgColorStr = " bgcolor=""" & Border & """" GetPhotoBorder = "" & vbCrLf GetPhotoBorder = GetPhotoBorder & " " & vbCrLf GetPhotoBorder = GetPhotoBorder & " " & vbCrLf GetPhotoBorder = GetPhotoBorder & " " & vbCrLf GetPhotoBorder = GetPhotoBorder & "
" & LinkPhotoStr & "
" & vbCrLf Exit Function Else If Left(Border, 1) = "/" Or Left(Border, 1) = "\" Then Border = Right(Border, Len(Border) - 1) If LCase(Left(Border, 4)) = "http" Then Border = Border Else Border = GetDomain & Border End If bgColorStr = " style=""background:url(" & Border & ") #FFF no-repeat;""" GetPhotoBorder = "" & vbCrLf GetPhotoBorder = GetPhotoBorder & " " & vbCrLf GetPhotoBorder = GetPhotoBorder & " " & vbCrLf GetPhotoBorder = GetPhotoBorder & " " & vbCrLf GetPhotoBorder = GetPhotoBorder & "
" & LinkPhotoStr & "
" & vbCrLf End If End If End Function '-------------------------------------------------------------------------------------------------------------------- '函数名: GetNavi '功 能: 取得导航值 '参 数: NaviType 导航类型, NaviStr导航值 '--------------------------------------------------------------------------------------------------------------- Function GetNavi(NaviType, NaviStr) If NaviType = "0" Then If NaviStr = "" Then GetNavi = "" Else GetNavi = NaviStr ElseIf NaviType = "1" Then If NaviStr <> "" Then GetNavi = "" Else GetNavi = "" End If End Function '--------------------------------------------------------------- '函数名:GetDateStr '作用:取日期的样式 '参数:AddDate,DateRule,DateAlign,DateCssStr,ByRef ColSpanNum '--------------------------------------------------------------- Function GetDateStr(ChannelID,AddDate,DateRule,DateAlign,DateCssStr,ByVal ColNumber,ByRef ColSpanNum) If CStr(DateRule) <> "0" And CStr("DateRule") <> "" Then Dim NowDate,NowFormatStr If DateDiff("d",AddDate,Now())-ChkClng(C_S(ChannelID,47))<0 Then NowFormatStr=" style=""color:red""" Else NowFormatStr="" If Lcase(DateAlign)="left" Then GetDateStr=" " & DateFormat(AddDate, DateRule) & "" ColSpanNum = ColNumber+1 Else GetDateStr="" & DateFormat(AddDate, DateRule) & "" ColSpanNum = ColNumber+2 End If Else GetDateStr="":ColSpanNum = ColNumber+1 End If End Function '取得日期样式(div+css) Function GetDCDateStr(ChannelID,AddDate,DateRule,DateCssStr) If CStr(DateRule) <> "0" And CStr("DateRule") <> "" Then Dim NowFormatStr If DateDiff("d",AddDate,Now())-ChkClng(C_S(ChannelID,47))<0 Then NowFormatStr=" style=""color:red""" Else NowFormatStr="" End If GetDCDateStr=" " & DateFormat(AddDate, DateRule) & "" Else GetDCDateStr="" End If End Function '返回格式化后的时间,showTime显示时间部分 Function GetTimeFormat1(DateTime,showTime) If Not IsDate(DateTime) Then GetTimeFormat1=DateTime : Exit Function if DateDiff("n",DateTime,now)<5 then GetTimeFormat1="刚刚" elseif DateDiff("n",DateTime,now)<60 then GetTimeFormat1=DateDiff("n",DateTime,now) & " 分钟前" elseif DateDiff("h",DateTime,now)<5 Then GetTimeFormat1=DateDiff("h",DateTime,now) & " 小时前" elseif DateDiff("d",DateTime,now)=0 Then GetTimeFormat1=" 今天 " & right("0"&Hour(DateTime),2) & ":" & right("0"&Minute(DateTime),2) elseif DateDiff("d",DateTime,now)=1 Then GetTimeFormat1=" 昨天 " & right("0"&Hour(DateTime),2) & ":" & right("0"&Minute(DateTime),2) elseif DateDiff("d",DateTime,now)=2 Then GetTimeFormat1=" 前天 " & right("0"&Hour(DateTime),2) & ":" & right("0"&Minute(DateTime),2) else if showTime=true then GetTimeFormat1=DateTime else GetTimeFormat1=formatdatetime(DateTime,2) end if end if End Function '返回格式化后的时间 Function GetTimeFormat(DateTime) GetTimeFormat=GetTimeFormat1(DateTime,false) End Function '---------------------------------------------------------------------------------------------------------------------------- '函数名:DateFormat '功 能:日期格式函数 '参 数: DateStr日期, Types转换类型 '---------------------------------------------------------------------------------------------------------------------------- Function DateFormat(DateStr, Types) Dim DateString If IsDate(DateStr) = False Then DateFormat = "":Exit Function End If Select Case CStr(Types) Case "0" DateFormat = "" Exit Function Case 1,21,41 DateString=Year(DateStr) & "-" & Right("0" & Month(DateStr), 2) & "-" & Right("0" & Day(DateStr), 2) if Types=21 then DateString = "(" & DateString &")" elseIf Types=41 then DateString = "[" & DateString &"]" end if Case 2,22,42 DateString=Year(DateStr) & "." & Right("0" & Month(DateStr), 2) & "." & Right("0" & Day(DateStr), 2) if Types=22 then DateString = "(" & DateString &")" elseIf Types=42 then DateString = "[" & DateString &"]" end if Case 3,23,43 DateString=Year(DateStr) & "/" & Right("0" & Month(DateStr), 2) & "/" & Right("0" & Day(DateStr), 2) if Types=23 then DateString = "(" & DateString &")" elseIf Types=43 then DateString = "[" & DateString &"]" end if Case 4,24,44 DateString=Right("0" & Month(DateStr), 2) & "/" & Right("0" & Day(DateStr), 2) & "/" & Year(DateStr) if Types=24 then DateString = "(" & DateString &")" elseIf Types=44 then DateString = "[" & DateString &"]" end if Case 5,25,45 DateString = Year(DateStr) & "年" & Right("0" & Month(DateStr), 2) & "月" if Types=25 then DateString = "(" & DateString &")" elseIf Types=45 then DateString = "[" & DateString &"]" end if Case 6,26,46 DateString = Year(DateStr) & "年" & Right("0" & Month(DateStr), 2) & "月" & Right("0" & Day(DateStr), 2) & "日" if Types=26 then DateString = "(" & DateString &")" elseIf Types=46 then DateString = "[" & DateString &"]" end if Case 7,27,47 DateString = Right("0" & Month(DateStr), 2) & "." & Right("0" & Day(DateStr), 2) & "." & Year(DateStr) if Types=27 then DateString = "(" & DateString &")" elseIf Types=47 then DateString = "[" & DateString &"]" end if Case 8,28,48 DateString = Right("0" & Month(DateStr), 2) & "-" & Right("0" & Day(DateStr), 2) & "-" & Year(DateStr) if Types=28 then DateString = "(" & DateString &")" elseIf Types=48 then DateString = "[" & DateString &"]" end if Case 9,29,49 DateString = Right("0" & Month(DateStr), 2) & "/" & Right("0" & Day(DateStr), 2) if Types=29 then DateString = "(" & DateString &")" elseIf Types=49 then DateString = "[" & DateString &"]" end if Case 10,30,50 DateString = Right("0" & Month(DateStr), 2) & "." & Right("0" & Day(DateStr), 2) if Types=30 then DateString = "(" & DateString &")" elseIf Types=50 then DateString = "[" & DateString &"]" end if Case 11,31,51 DateString = Right("0" & Month(DateStr), 2) & "月" & Right("0" & Day(DateStr), 2) & "日" if Types=31 then DateString = "(" & DateString &")" elseIf Types=51 then DateString = "[" & DateString &"]" end if Case 12,32,52 DateString = Right("0" & Day(DateStr), 2) & "日" & Right("0" & Hour(DateStr), 2) & "时" if Types=32 then DateString = "(" & DateString &")" elseIf Types=52 then DateString = "[" & DateString &"]" end if Case 13,33,53 DateString = Right("0" & Day(DateStr), 2) & "日" & Right("0" & Hour(DateStr), 2) & "点" if Types=33 then DateString = "(" & DateString &")" elseIf Types=53 then DateString = "[" & DateString &"]" end if Case 14,34,54 DateString = Right("0" & Hour(DateStr), 2) & "时" & Minute(DateStr) & "分" if Types=34 then DateString = "(" & DateString &")" elseIf Types=54 then DateString = "[" & DateString &"]" end if Case 15,35,55 DateString = Right("0" & Hour(DateStr), 2) & ":" & Right("0" & Minute(DateStr), 2) if Types=35 then DateString = "(" & DateString &")" elseIf Types=55 then DateString = "[" & DateString &"]" end if Case 16,36,56 DateString = Right("0" & Month(DateStr), 2) & "-" & Right("0" & Day(DateStr), 2) if Types=36 then DateString = "(" & DateString &")" elseIf Types=56 then DateString = "[" & DateString &"]" end if Case 17,37,57 DateString = Right("0" & Month(DateStr), 2) & "/" & Right("0" & Day(DateStr), 2) &" " &Right("0" & Hour(DateStr), 2)&":"&Right("0" & Minute(DateStr), 2) if Types=37 then DateString = "(" & DateString &")" elseIf Types=57 then DateString = "[" & DateString &"]" end if Case Else DateString = DateStr End Select DateFormat = DateString End Function '---------------------------------------------------------------------------------------------------------------------------- '函数名:GetOrigin '功 能:取得文章来源并附加上链接 '参 数: OriginName名称 '返回值: 形如 新华网 '---------------------------------------------------------------------------------------------------------------------------- Function GetOrigin(OriginName) GetOrigin = OriginName 'Dim RS: Set RS=Server.CreateObject("ADODB.Recordset") 'RS.Open "select OriginName,HomePage From KS_Origin Where OriginName='" & Trim(OriginName) & "'", Conn, 1, 1 'If RS.EOF Then 'GetOrigin = OriginName 'Else 'If RS("HomePage") <> "" And UCase(Trim(RS("HomePage"))) <> "HTTP://" Then 'GetOrigin = "" & OriginName & "" 'Else 'GetOrigin = OriginName 'End If 'End If 'RS.Close:Set RS = Nothing End Function '---------------------------------------------------------------------------------------------------------------------------- '函数名:GetMoreLink '功 能:取得更多链接 '参 数: ColNum列数, RowHeight行距, MoreLinkType链接类型, LinkUrl链接地址, OpenTypeStr是否新窗口打开 '---------------------------------------------------------------------------------------------------------------------------- Function GetMoreLink(PrintType,ColNum, RowHeight, MoreLinkType, LinkNameStr, LinkUrl, OpenTypeStr) If LinkNameStr = "" Then GetMoreLink = "":Exit Function If PrintType=2 Then If MoreLinkType = "0" Then GetMoreLink = "
  • " & LinkNameStr & "
  • " ElseIf MoreLinkType = "1" Then GetMoreLink = "
  • " Else GetMoreLink = "" End If Else LinkNameStr = Trim(LinkNameStr):LinkUrl = Trim(LinkUrl) If MoreLinkType = "0" Then GetMoreLink = " " & LinkNameStr & "" ElseIf MoreLinkType = "1" Then GetMoreLink = " " Else GetMoreLink = "" End If End If End Function '---------------------------------------------------------------------------------------------------------------------------- '函数名: GetSplitPic '功 能:取得分隔图片 '参 数: ColSpanNum 列数, SplitPic 图片SRC '------------------------------------------------------------------------------------------------------------------------------- Function GetSplitPic(SplitPic, ColSpanNum) Dim ColStr If SplitPic = "" or IsNull(SplitPic) Then GetSplitPic = "" Else If ColSpanNum>=2 Then ColStr=" colspan=""" & ColSpanNum & """" GetSplitPic = "" & vbcrlf End If End Function '------------------------------------------------------------------------------------------------------------------- '函数名:GetFolderTid '功 能:取得子目录的ID集合 '参 数: FolderID父目录ID '返回值: 形如 1255555,111111,4444的ID集合 '--------------------------------------------------------------------------------------------------------- Function GetFolderTid(FolderID) GetFolderTid="Select ID From KS_Class Where DelTF=0 AND TS LIKE '%" & FolderID & "%'":Exit Function End Function '取得专题查询参数,应用于Sql条件 Function GetSpecialPara(ChannelID,SpecialID) If SpecialID = "-1" Then If FCls.RefreshType = "Special" Then If ChannelID<>0 Then GetSpecialPara=" And ID in(select infoid from ks_specialr where ChannelID=" & ChannelID & " and SpecialID=" & ChkClng(FCls.CurrSpecialID) & ") " Else GetSpecialPara=" And InfoID in(select infoid from ks_specialr r where SpecialID=" & ChkClng(FCls.CurrSpecialID) & " and i.channelid=r.channelid) " End If Else GetSpecialPara = "" End If ElseIf (SpecialID = "" Or SpecialID = "0" Or IsNull(SpecialID)) Then GetSpecialPara = "" Else If ChannelID<>0 Then GetSpecialPara=" And ID in(select infoid from ks_specialr where ChannelID=" & ChannelID & " and SpecialID=" & ChkClng(SpecialID) & ") " Else GetSpecialPara=" And InfoID in(select infoid from ks_specialr r where SpecialID=" & ChkClng(SpecialID) & " and i.channelid=r.channelid) " End If End If End Function '载入文件类自定义字段 Sub LoadFieldToXml() If Not IsObject(Application(SiteSN & "_FeildXml")) then 'Dim Rs:Set Rs = Conn.Execute("Select ChannelID,FieldName,fieldtype From KS_Field Where FieldType=9 or FieldType=10 Order By FieldID") 'Set Application(SiteSN & "_FeildXml")=RsToxml(Rs,"row","FeildXml") 'Set Rs = Nothing Dim RS:Set Rs=conn.execute("PRO_LoadFieldToXml") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "ChannelID,FieldName,fieldtype" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_FeildXml")=RsToxml2(rsFieldsStr,DataArray_,"row","FeildXml") End If End Sub '添加自关联数据库 Sub FileAssociation(ByVal ChannelID,ByVal InfoID,ByVal Content,ByVal Flag) If Flag<>0 Then 'Conn.Execute("Delete From KS_UploadFiles Where IsAnnex<>1 and ChannelID=" & ChannelID & " and InfoID=" & InfoID) Conn.Execute("PRO_DEL_KS_UploadFiles " & ChannelID & "," & InfoID) End If If ChannelID<>0 And ChannelID<1000 and channelid<>7 Then Dim Node LoadFieldToXml() For Each Node In Application(SiteSN & "_FeildXml").DocumentElement.SelectNodes("row[@channelid=" & ChannelID &" and @fieldtype=9 or @fieldtype=10]") Content=Content & Request(Node.SelectSingleNode("@fieldname").text) Next End If Dim FileLists,I,FileArr FileLists=GetFilesList(ChannelID,Content) If Not IsNul(FileLists) Then FileArr=Split(FileLists,"|") For I=0 To Ubound(FileArr) Conn.Execute("Insert Into [KS_UploadFiles](ChannelID,InfoID,ClassID,FileName,IsAnnex,UserName,AddDate) values(" &ChannelID &"," & InfoID &"," & ChkClng(Session("UploadClassID")) & ",'" & FileArr(i) & "',0,'" & C("UserName") & "'," & SQLNowString&")") Next End If Session("UploadClassID")=0 End Sub '根据内容获取上传文件名 Public Function GetFilesList(ChannelID,Content) If IsNul(Content) Then Exit Function Dim re, UpFile, BFU, FileName,SaveFileList,FileExt If ChannelID<1000 Then FileExt=ReturnChannelAllowUpFilesType(ChannelID,0) Else FileExt=Setting(7) Set re = New RegExp re.IgnoreCase = True re.Global = True re.Pattern = "(\/uploadfiles\/)[^(\/uploadfiles\/)]?(.*?)[.]{1}(" & FileExt & "|wma|mp3)" 're.Pattern = "(\/uploadfiles\/)[^(\/uploadfiles\/)](.*?)[.]{1}(" & FileExt & "|wma|mp3)" Set UpFile = re.Execute(Content) Set re = Nothing For Each BFU In UpFile If Instr(SaveFileList,BFU)=0 Then if FileName="" then FileName=BFU Else FileName=FileName & "|" & BFU End If End If SaveFileList=SaveFileList & "," & BFU Next GetFilesList = FileName End Function '************************************************** '函数名:ReturnChannelAllowUpFilesTF '作 用:返回频道的是否允许上传文件 '参 数:ChannelID--频道ID '************************************************** Public Function ReturnChannelAllowUpFilesTF(ChannelID) If ChannelID = "" Or Not IsNumeric(ChannelID) Then ChannelID = 0 'Dim CRS:Set CRS=Server.CreateObject("ADODB.RECORDSET") 'CRS.Open "Select top 1 UpFilesTF From KS_Channel Where ChannelID=" & ChannelID, Conn, 1, 1 Dim CRS:Set CRS=conn.execute("PRO_ReturnChannelAllowUpFilesTF") If CInt(ChannelID) = 0 Or (CRS.EOF And CRS.BOF) Then '默认允许上传文件 ReturnChannelAllowUpFilesTF = True Else If CRS(0) = 1 Then ReturnChannelAllowUpFilesTF = True Else ReturnChannelAllowUpFilesTF = False End If CRS.Close:Set CRS = Nothing End Function '取上传目录6.0改为按日期存放 Function GetUpFilesDir() Dim DateFolder:DateFolder=Setting(3) & Setting(91) & Year(Now) & "-" & Right("0"&Month(Now),2) If Setting(96) = "1" Then Dim Ce:Set Ce=new CtoeCls Dim UserFolder:UserFolder=Ce.CTOE(R(C("AdminName"))) Set Ce=Nothing If UserFolder<>"" Then DateFolder=DateFolder & "/" & UserFolder End If CreateListFolder(DateFolder) GetUpFilesDir=DateFolder End Function '取得后台公共管理部分的上传目录,一般用于广告,公告设置等 Function GetCommonUpFilesDir() Dim Str If C("SuperTF")="1" Then Str=Setting(3) & Setting(91) Else Str=GetUpFilesDir() End If If Right(Str,1)="/" Then Str=Left(Str,Len(Str)-1) GetCommonUpFilesDir=Str End Function '************************************************** '函数名:ReturnChannelAllowUserUpFilesTF '作 用:返回频道是否允许会员上传文件 '参 数:ChannelID--频道ID '************************************************** Public Function ReturnChannelAllowUserUpFilesTF(ChannelID) If ChannelID = "" Or Not IsNumeric(ChannelID) Then '默认允许上传文件 ReturnChannelAllowUserUpFilesTF = True:Exit Function End If If C_S(ChannelID,26) = 1 Then ReturnChannelAllowUserUpFilesTF = True Else ReturnChannelAllowUserUpFilesTF = False End If End Function '************************************************** '函数名:ReturnChannelUserUpFilesDir '作 用:返回频道前台会员的上传目录 '参 数:ChannelID--频道ID,UserFolder-按用户名生成的目录 '返回值:目录字符串 '************************************************** Public Function ReturnChannelUserUpFilesDir(ChannelID,UserFolder) If HasChinese(UserFolder) Then Dim Ce:Set Ce=new CtoeCls UserFolder="[" & Ce.CTOE(R(UserFolder)) & "]" Set Ce=Nothing End If ChannelID = ChkCLng(ChannelID) If UserFolder="" Then UserFolder="Temp" Select Case ChannelID Case 9999 '用户头像 ReturnChannelUserUpFilesDir=Setting(3)&Setting(91)&"User/" & UserFolder &"/upface/" Case 99999 '商家门店形象照 ReturnChannelUserUpFilesDir=Setting(3)&Setting(91)&"User/" & UserFolder &"/companyface/" Case 9998,9997 '相册 ReturnChannelUserUpFilesDir=Setting(3)&Setting(91)&"User/" & UserFolder &"/xc/" Case 9996 '圈子图片 ReturnChannelUserUpFilesDir=Setting(3)&Setting(91)&"User/" & UserFolder &"/team/" Case 9995 '音乐 ReturnChannelUserUpFilesDir=Setting(3)&Setting(91)&"User/" & UserFolder &"/music/" Case 9994 '论坛 ReturnChannelUserUpFilesDir=Setting(3)&Setting(91)& UserFolder &"/" & Year(Now) & "-" & Right("0"&Month(Now),2) &"/" Case 9993 '日志 ReturnChannelUserUpFilesDir=Setting(3)&Setting(91)&"User/" & UserFolder &"/blog/" Case 999 ReturnChannelUserUpFilesDir=Setting(3)&Setting(91)&"User/" & UserFolder &"/" Case Else ReturnChannelUserUpFilesDir = Setting(3) & Setting(91)&"User/" & UserFolder &"/" End Select End Function '判断有没有中文 function HasChinese(str) HasChinese = false dim i for i=1 to Len(str) if Asc(Mid(str,i,1)) < 0 then HasChinese = true exit for end if next end function '************************************************** '函数名:ReturnChannelAllowUpFilesSize '作 用:返回频道的最大允许上传文件大小 '参 数:ChannelID--频道ID '************************************************** Public Function ReturnChannelAllowUpFilesSize(ChannelID) ChannelID = ChkClng(ChannelID) 'Dim CRS:Set CRS=conn.execute("Select top 1 UpFilesSize From KS_Channel Where ChannelID=" & ChannelID) Dim CRS:Set CRS=conn.execute("PRO_ReturnChannelAllowUpFilesSize " & ChannelID) If CInt(ChannelID) = 0 Or (CRS.EOF And CRS.BOF) Then ReturnChannelAllowUpFilesSize = Setting(6) Else ReturnChannelAllowUpFilesSize = CRS(0) End If CRS.Close:Set CRS = Nothing End Function '************************************************** '函数名:ReturnChannelAllowUpFilesType '作 用:返回频道的允许上传的文件类型 '参 数:ChannelID--频道ID,TypeFlag 0-取全部 1-图片类型 2-flash 类型 3-Windows 媒体类型 4-Real 类型 5-其它类型 '************************************************** Public Function ReturnChannelAllowUpFilesType(ChannelID, TypeFlag) If ChkClng(ChannelID) = 0 Then ReturnChannelAllowUpFilesType = Setting(7):Exit Function If Not IsNumeric(TypeFlag) Then TypeFlag = 0 If TypeFlag = 0 Then '所有允许的类型 ReturnChannelAllowUpFilesType = Replace(C_S(ChannelID,28) & "|" & C_S(ChannelID,29) & "|" & C_S(ChannelID,30) & "|" & C_S(ChannelID,31) & "|" & C_S(ChannelID,32),"||","|") Else ReturnChannelAllowUpFilesType = Replace(C_S(ChannelID,27+TypeFlag),"||","|") End If End Function '返回付款方式名称,参数TypeID,0名称 1折扣率 Function ReturnPayment(ID,TypeID) If Application(SiteSn &"Payment_" & ID&TypeID)="" Then Dim RS:Set RS=Server.CreateObject("ADODB.RECORDSET") RS.Open "Select top 1 TypeName,Discount From KS_PaymentType Where TypeID=" & ChkClng(ID),conn,1,1 If Not RS.Eof Then If TypeID=0 Then ReturnPayment=rs(0) If RS(1)<100 Then ReturnPayment=ReturnPayment & "  折扣率:" & RS(1) & "%" Else ReturnPayment=rs(1) End if End If RS.Close:Set RS=Nothing Application(SiteSn &"Payment_" & ID&TypeID)=ReturnPayment Else ReturnPayment=Application(SiteSn &"Payment_" & ID&TypeID) End If End Function '===========================计算订单运费=============================== Function GetFreight(ExpressID,ToCity,ByVal totalweight,ByRef ExpressCompany) Dim RST,fweight,carriage,C_fee,W_fee,foundexpress Set RST=Server.CreateObject("ADODB.RECORDSET") RST.Open "select Top 1 a.fweight,carriage,c_fee,w_fee,b.typename from KS_Delivery a inner join KS_DeliveryType b on A.ExpressID=B.TypeID where a.ExpressID="& expressid &" and a.tocity like '%"&ToCity&"%'",conn,1,1 If RST.Eof Then foundexpress=false:fweight=0 :carriage=0 : C_fee=0 : W_fee=0 Else foundexpress=true:fweight=rst("fweight"):carriage=rst("carriage"):C_fee=rst("C_fee"):W_fee=rst("W_fee"):ExpressCompany=rst("typename") End If RST.Close If foundexpress=false Then If DataBaseType=1 Then RST.Open "select Top 1 a.fweight,carriage,c_fee,w_fee,b.typename from KS_Delivery a inner join KS_DeliveryType b on A.ExpressID=B.TypeID where a.ExpressID="& expressid &" and (convert(varchar(200),tocity)='全国统一运费' or convert(varchar(200),tocity)='' or a.tocity is null)",conn,1,1 Else RST.Open "select Top 1 a.fweight,carriage,c_fee,w_fee,b.typename from KS_Delivery a inner join KS_DeliveryType b on A.ExpressID=B.TypeID where a.ExpressID="& expressid &" and (a.tocity='全国统一运费' or a.tocity='' or a.tocity is null)",conn,1,1 End If if rst.eof then rst.close : set rst=nothing GetFreight="0" Exit Function else fweight=rst("fweight"):carriage=rst("carriage"):C_fee=rst("C_fee"):W_fee=rst("W_fee"):ExpressCompany=rst("typename") end if rst.close End If set rst=nothing if (totalweight<=fweight) or (C_fee=0 and W_fee=0) then GetFreight=FormatNumber(carriage,2,-1,-1) else totalweight=int(totalweight+0.99) GetFreight=FormatNumber(carriage+(totalweight-fweight)*C_fee/W_fee,2,-1,-1) end if End Function '********************************************************************** '函数名:ReturnSpecial '作 用:返回专题名称 '参 数:Selected-预选中项 '返回值:专题名称 '********************************************************************** Public Function ReturnSpecial(SelectID) Dim RS,ParaStr,SpecialChannelStr,SQL,K,SQL2,total2,I 'Set RS=Conn.Execute("Select ClassID,ClassName From KS_SpecialClass Order By OrderID") Set Rs=conn.execute("PRO_ReturnSpecial") If Not RS.Eof Then SQL=RS.GetRows(-1) RS.Close If IsArray(SQL) Then For K=0 To Ubound(SQL,2) ReturnSpecial = ReturnSpecial & "" 'Set RS=Conn.Execute("Select SpecialName,SpecialID From KS_Special Where ClassID=" & SQL(0,K) & " Order By SpecialID Desc") Set RS=Conn.Execute("PRO_getKS_SpecialbyClassId " & SQL(0,K)) If Not RS.EOF Then SQL2 =RS.GetRows(-1) RS.Close : Set RS=Nothing total2 = Ubound(SQL2,2) For I = 0 To total2 If Trim(SelectID) = Trim(SQL2(1,I)) Then ReturnSpecial = ReturnSpecial & "" Else ReturnSpecial = ReturnSpecial & "" End If Next 'Do While Not RS.EOF 'If Trim(SelectID) = Trim(RS(1)) Then 'ReturnSpecial = ReturnSpecial & "" 'Else 'ReturnSpecial = ReturnSpecial & "" 'End If 'RS.MoveNext 'Loop End If Next 'RS.Close:Set RS = Nothing Else Set RS = Nothing End If End Function '************************************************** '函数:FoundInArr '作 用:检查一个数组中所有元素是否包含指定字符串 '参 数:strArr ----字符串 ' strToFind ----要查找的字符串 ' strSplit ----数组的分隔符 '返回值:True,False '************************************************** Public Function FoundInArr(strArr, strToFind, strSplit) Dim arrTemp, i FoundInArr = False If InStr(strArr, strSplit) > 0 Then arrTemp = Split(strArr, strSplit) For i = 0 To UBound(arrTemp) If LCase(Trim(arrTemp(i))) = LCase(Trim(strToFind)) Then FoundInArr = True:Exit For End If Next Else If LCase(Trim(strArr)) = LCase(Trim(strToFind)) Then FoundInArr = True End If End Function '检查是否是数字 ,并转换为长整型 Public Function ChkClng(ByVal str) On Error Resume Next If IsNumeric(str) Then ChkClng = CLng(str) Else ChkClng = 0 End If If Err Then ChkClng=0 End Function '************************************************** '函数名:ShowPage '作 用:显示“上一页 下一页”等信息 '参 数:filename文件名 TotalNumber总数量 MaxPerPage每页数量 ShowTurn显示转到 PrintOut立即输出 '************************************************** Function ShowPage(totalnumber, MaxPerPage, FileName, CurrPage,ShowTurn,PrintOut) Dim n,j,startpage,pageStr,TotalPage,ParamStr If totalnumber Mod MaxPerPage = 0 Then TotalPage = totalnumber \ MaxPerPage Else TotalPage = totalnumber \ MaxPerPage + 1 End If ParamStr=QueryParam("page") : If ParamStr<>"" Then ParamStr="&" & ParamStr n=0:startpage=1 pageStr=pageStr & "
    " & vbcrlf if (CurrPage>1) then pageStr=PageStr & "上一页" pageStr=pageStr & "首 页" if (CurrPage>=7) then startpage=CurrPage-5 if TotalPage-CurrPage<5 Then startpage=TotalPage-9 If startpage<0 Then startpage=1 For J=startpage To TotalPage If J= CurrPage Then PageStr=PageStr & " " & J &"" Else PageStr=PageStr & " " & J &"" End If n=n+1 if n>=10 then exit for Next if CurrPage<>TotalPage Then pageStr=pageStr & "..."& TotalPage &"" if CurrPage<>TotalPage and totalnumber>MaxPerPage then pageStr=PageStr & "下一页" pageStr=PageStr & " " If ShowTurn=true Then If CurrPage=TotalPage Then CurrPage=0 pageStr=PageStr & " 转到: " End If PageStr=PageStr & "
    " If PrintOut=true Then echo PageStr Else ShowPage=PageStr End Function '************************************************** '函数名:ShowPagePara '作 用:显示“上一页 下一页”等信息 '参 数:filename ----链接地址 ' TotalNumber ----总数量 ' MaxPerPage ----每页数量 ' ShowAllPages ---是否用下拉列表显示所有页面以供跳转。 ' strUnit ----计数单位,CurrentPage--当前页,ParamterStr参数 '返回值:无返回值 '************************************************** Public Function ShowPagePara(totalnumber, MaxPerPage, FileName, ShowAllPages, strUnit, CurrentPage, ParamterStr) Dim N, I, PageStr Const Btn_First = "9" '定义第一页按钮显示样式 Const Btn_Prev = "3" '定义前一页按钮显示样式 Const Btn_Next = "4" '定义下一页按钮显示样式 Const Btn_Last = ":" '定义最后一页按钮显示样式 PageStr = "" If totalnumber Mod MaxPerPage = 0 Then N = totalnumber \ MaxPerPage Else N = totalnumber \ MaxPerPage + 1 End If If N > 1 Then PageStr = PageStr & ("
    页次:" & CurrentPage & "/" & N & "页 共有:" & totalnumber & strUnit & " 每页:" & MaxPerPage & strUnit & " ") If CurrentPage < 2 Then PageStr = PageStr & Btn_First & " " & Btn_Prev & " " Else PageStr = PageStr & ("" & Btn_First & " " & Btn_Prev & " ") End If If N - CurrentPage < 1 Then PageStr = PageStr & " " & Btn_Next & " " & Btn_Last & " " Else PageStr = PageStr & (" " & Btn_Next & " " & Btn_Last & " ") End If If ShowAllPages = True Then PageStr = PageStr & ("转到: ") End If PageStr = PageStr & "
    " End If ShowPagePara = PageStr End Function Sub ShowPageParamter(totalnumber, MaxPerPage, FileName, ShowAllPages, strUnit, CurrentPage, ParamterStr) echo (ShowPagePara(totalnumber, MaxPerPage, FileName, ShowAllPages, strUnit, CurrentPage, ParamterStr)) End Sub '*********************************************************************************************************** '函数名:ReturnLabelFolderTree '作 用:显示标签目录列表。 '参 数:SelectID ---- 默认目录树ID号,ChannelID频道ID号,FolderType目录类型 0系统函数标签目录,1自由标签目录 '返回值:标签目录列表 '************************************************************************************************************* Public Function ReturnLabelFolderTree(SelectID, FolderType) Dim TempStr,ID,FolderName,Total_,jj,SQL SelectID = Trim(SelectID) If FolderType = "" Then FolderType = 0 TempStr = "" ReturnLabelFolderTree = TempStr End Function '************************************************************************************ '函数名:ReturnSubLabelFolderTree '作 用:查找并返子树数据。 '参 数:ParentID ----父节点ID, FolderID ----选择项ID '返回值:标签目录子树列表 '************************************************************************************ Public Function ReturnSubLabelFolderTree(ParentID, FolderID) Dim SubTypeList, SubRS, SpaceStr, k, Total, Num,FolderName, ID,TJ 'Set SubRS = Server.CreateObject("ADODB.RECORDSET") 'SubRS.Open ("Select count(ID) AS total from KS_LabelFolder Where ParentID='" & ParentID & "'"), Conn, 1, 1 'Total = SubRS("Total") 'SubRS.Close 'SubRS.Open ("Select ID,FolderName,TS from KS_LabelFolder Where ParentID='" & ParentID & "' Order BY AddDate Desc"), Conn, 1, 1 Total = conn.execute("PRO_KS_LabelFolderTotalByParentID " & ParentID)(0) Set SubRS = conn.execute("PRO_KS_LabelFolderByParentID " & ParentID) Num = 0 If Not SubRS.Eof Then dim Total_,jj,SQL,ID_,FolderName_,TS_ SQL=SubRS.GetRows(-1) SubRS.Close : Set SubRS=Nothing Total_=Ubound(SQL,2) For jj = 0 To Total_ ID_ = SQL(0,jj) FolderName_ = SQL(1,jj) TS_ = SQL(2,jj) Num = Num + 1:SpaceStr = "" TJ = UBound(Split(TS_, ",")) For k = 1 To TJ - 1 If k = 1 And k <> TJ - 1 Then SpaceStr = SpaceStr & "  │" ElseIf k = TJ - 1 Then If Num = Total Then SpaceStr = SpaceStr & "  └ " Else SpaceStr = SpaceStr & "  ├ " End If Else SpaceStr = SpaceStr & "  │" End If Next ID = Trim(ID_) FolderName = Trim(FolderName_) If FolderID = ID Then SubTypeList = SubTypeList & "" Else SubTypeList = SubTypeList & "" End If SubTypeList = SubTypeList & ReturnSubLabelFolderTree(ID, FolderID) next else SubRS.Close : Set SubRS=Nothing End If 'Do While Not SubRS.EOF 'Num = Num + 1:SpaceStr = "" 'TJ = UBound(Split(SubRS(2), ",")) 'For k = 1 To TJ - 1 'If k = 1 And k <> TJ - 1 Then 'SpaceStr = SpaceStr & "  │" 'ElseIf k = TJ - 1 Then 'If Num = Total Then 'SpaceStr = SpaceStr & "  └ " 'Else 'SpaceStr = SpaceStr & "  ├ " 'End If 'Else 'SpaceStr = SpaceStr & "  │" 'End If 'Next 'ID = Trim(SubRS(0)) 'FolderName = Trim(SubRS(1)) 'If FolderID = ID Then 'SubTypeList = SubTypeList & "" 'Else 'SubTypeList = SubTypeList & "" 'End If 'SubTypeList = SubTypeList & ReturnSubLabelFolderTree(ID, FolderID) 'SubRS.MoveNext 'Loop 'SubRS.Close:Set SubRS = Nothing ReturnSubLabelFolderTree = SubTypeList End Function '*********************************************************************************************************** '函数名:ReturnLabelInfo '参 数:LabelName ---- 默认标签名称,FolderID---标签目录ID号,Descript---标签描述 '返回值:标签基本信息 '************************************************************************************************************* Public Function ReturnLabelInfo(LabelName, FolderID, Descript) ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & ("
    ") If g("labelid")="" Then ReturnLabelInfo = ReturnLabelInfo & ("创 建 新 标 签") Else ReturnLabelInfo = ReturnLabelInfo & (" 修 改 标 签 属 性") End If ReturnLabelInfo = ReturnLabelInfo & ("
    标签名称") ReturnLabelInfo = ReturnLabelInfo & (" ") ReturnLabelInfo = ReturnLabelInfo & (" * 调用格式""{LB_标签名称}""
    标签目录 " & ReturnLabelFolderTree(FolderID, 0) & " 请选择标签归属目录,以便日后管理标签
    ") End Function '模型选项 Sub LoadChannelOption(ChannelID) If not IsObject(Application(SiteSN&"_ChannelConfig")) Then LoadChannelConfig Dim ModelXML,Node Set ModelXML=Application(SiteSN&"_ChannelConfig") For Each Node In ModelXML.documentElement.SelectNodes("channel") if Node.SelectSingleNode("@ks21").text="1" and Node.SelectSingleNode("@ks0").text<>"6" and Node.SelectSingleNode("@ks0").text<>"9" and Node.SelectSingleNode("@ks0").text<>"10" Then If Trim(ChannelID)=Trim(Node.SelectSingleNode("@ks0").text) Then echo "" Else echo "" End If End If next End Sub '**************************************************************************************************************************** '函数名:ReturnJSInfo '参 数:JSID--JSID号,JSName ---- 默认JS名称,JSFileName----JS文件名,FolderID---标签目录ID号,FolderType---目录类型,Descript---标签描述 '返回值:标签基本信息 '******************************************************************************************************************************* Public Function ReturnJSInfo(JSID, JSName, JSFileName, FolderID, FolderType, Descript) ReturnJSInfo = "" ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & ("
    ") ReturnJSInfo = ReturnJSInfo & ("
    JS基本信息") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & ("
    JS 名 称") ReturnJSInfo = ReturnJSInfo & ("  ") ReturnJSInfo = ReturnJSInfo & (" * 例如JS名称:"推荐文章列表",则在模板中调用:"{JS_推荐文章列表}"(注意英文大小写及全半角)。
    JS文件名") If JSID <> "" Then ReturnJSInfo = ReturnJSInfo & (" | 等特殊符号"" value=""" & JSFileName & """>") Else ReturnJSInfo = ReturnJSInfo & (" | 等特殊符号"" value=""" & JSFileName & """>") End If ReturnJSInfo = ReturnJSInfo & (" * 例如 "News.js" 一定要以扩展名 ".js"结束
    存放目录 " & ReturnLabelFolderTree(FolderID, FolderType) & "
    JS 描 述") ReturnJSInfo = ReturnJSInfo & (" ") ReturnJSInfo = ReturnJSInfo & (" 请在此输入JS的说明,方便以后查找
    ") ReturnJSInfo = ReturnJSInfo & ("
    ") '采集搜索参数 ReturnJSInfo = ReturnJSInfo & ("") ReturnJSInfo = ReturnJSInfo & ("") ReturnJSInfo = ReturnJSInfo & ("") ReturnJSInfo = ReturnJSInfo & ("") End Function '************************************************** '函数名:ReturnDateFormat '作 用:返回系统支持的日期格式 '参 数:SelectDate 预定选中的日期格式 '************************************************** Public Function ReturnDateFormat(SelectDate) Dim TempFormatDateStr, Str If CStr(SelectDate) = "0" Then TempFormatDateStr = (" ") Else TempFormatDateStr = (" ") End If If CStr(SelectDate) = "1" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "2" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "3" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "4" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "5" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "6" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "7" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "8" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "9" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "10" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "11" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "12" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "13" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "14" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "15" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "16" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "17" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "21" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "22" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "23" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "24" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "25" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "26" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "27" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "28" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "29" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "30" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "31" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "32" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "33" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "34" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "35" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "36" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "37" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "41" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "42" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "43" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "44" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "45" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "46" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "47" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "48" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "49" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "50" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "51" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "52" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "53" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "54" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "55" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "56" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") If CStr(SelectDate) = "57" Then Str = " Selected" Else Str = "" TempFormatDateStr = TempFormatDateStr & ("") ReturnDateFormat = TempFormatDateStr End Function '************************************************** '函数名:ReturnOpenTypeStr '作 用:返回系统支持的打开窗口方式(带可输入的下拉框) '参 数:SelectValue 预定选中的链接目标 '************************************************** Public Function ReturnOpenTypeStr(SelectValue) ReturnOpenTypeStr = "链接目标 =>" ReturnOpenTypeStr = ReturnOpenTypeStr & "" Exit Function End Function '分页样式 Public Function ReturnPageStyle(PageStyle) ReturnPageStyle = " 分页样式" ReturnPageStyle = ReturnPageStyle & " " End Function '专题显示样式 Public Function ReturnSpecialStyle(Sel) ReturnSpecialStyle= "显示样式 " End Function '************************************************** '函数名:SaveBeyondFile '作 用:保存远程文件到本地 '参 数:LocalFile 本地文件,BFU远程文件 '返回值:无 '************************************************** Public Function ReplaceBeyondUrl(ReplaceContent, SaveFilePath) Dim re, BeyondFile, BFU, SaveFileName,SaveFileList Set re = New RegExp re.IgnoreCase = True re.Global = True re.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\){1}((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*\/)((\S)+[.]{1}(gif|jpg|png|bmp)))" Set BeyondFile = re.Execute(ReplaceContent) Set re = Nothing For Each BFU In BeyondFile If Instr(SaveFileList,BFU)=0 Then SaveFileName = Year(Now()) & Month(Now()) & Day(Now()) & MakeRandom(10) & Mid(BFU, InStrRev(BFU, ".")) If Instr(BFU,Setting(2))<=0 Then Call SaveBeyondFile(SaveFilePath&SaveFileName,BFU) ReplaceContent = Replace(ReplaceContent, BFU, Setting(2) & SaveFilePath & SaveFileName) End If End If SaveFileList=SaveFileList & "," & BFU Next ReplaceBeyondUrl = ReplaceContent End Function '************************************************** '函数名:SaveBeyondFile2 '作 用:保存远程文件到本地 '参 数:LocalFile 本地文件,BFU远程文件 '返回值:无 '************************************************** Public Function ReplaceBeyondUrl2(ReplaceContent, SaveFilePath) Dim re, BeyondFile, BFU, SaveFileName,SaveFileList Set re = New RegExp re.IgnoreCase = True re.Global = True re.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\){1}((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*\/)((\S)+[.]{1}(gif|jpg|png|bmp)))" Set BeyondFile = re.Execute(ReplaceContent) Set re = Nothing For Each BFU In BeyondFile If Instr(SaveFileList,BFU)=0 Then SaveFileName = Year(Now()) & Month(Now()) & Day(Now()) & MakeRandom(10) & Mid(BFU, InStrRev(BFU, ".")) If Instr(BFU,Setting(2))<=0 Then If InStr(BFU,"newmotor.com.cn") > 0 Then Else response.write "" ReplaceContent = Replace(ReplaceContent, BFU, uploadFileServerPath & SaveFilePath & SaveFileName) End If End If End If SaveFileList=SaveFileList & "," & BFU Next ReplaceBeyondUrl2 = ReplaceContent End Function '================================================== '过程名:SaveBeyondFile '作 用:保存远程的文件到本地 '参 数:LocalFileName ------ 本地文件名 '参 数:RemoteFileUrl ------ 远程文件URL '================================================== Function SaveBeyondFile(LocalFileName,RemoteFileUrl) On Error Resume Next Dim SaveRemoteFile:SaveRemoteFile=True dim Ads,Retrieval,GetRemoteData Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP") With Retrieval .Open "Get", RemoteFileUrl, False, "", "" .Send If .Readystate<>4 then SaveRemoteFile=False Exit Function End If GetRemoteData = .ResponseBody End With Set Retrieval = Nothing Set Ads = Server.CreateObject("Adodb.Stream") With Ads .Type = 1 .Open .Write GetRemoteData .SaveToFile server.MapPath(LocalFileName),2 .Cancel() .Close() End With Set Ads=nothing SaveBeyondFile=SaveRemoteFile IF Setting(174)="1" Then '加水印 Dim T:Set T=New Thumb call T.AddWaterMark(LocalFileName) Set T=Nothing End If end Function '**************************************************** '参数说明 'Subject : 邮件标题 'MailAddress : 发件服务器的地址,如smtp.163.com 'LoginName ----登录用户名(不需要请填写"") 'LoginPass ----用户密码(不需要请填写"") 'Email : 收件人邮件地址 'Sender : 发件人姓名 'Content : 邮件内容 'Fromer : 发件人的邮件地址 '**************************************************** Public Function SendMail(MailAddress, LoginName, LoginPass, Subject, Email, Sender, Content, Fromer) On Error Resume Next Dim JMail Set jmail = Server.CreateObject("JMAIL.Message") '建立发送邮件的对象 jmail.silent = true '屏蔽例外错误,返回FALSE跟TRUE两值j jmail.Charset = "GB2312" '邮件的文字编码为国标 jmail.ContentType = "text/html" '邮件的格式为HTML格式 jmail.AddRecipient Email '邮件收件人的地址 jmail.From = Fromer '发件人的E-MAIL地址 jmail.FromName = Sender If LoginName <> "" And LoginPass <> "" Then JMail.MailServerUserName = LoginName '您的邮件服务器登录名 JMail.MailServerPassword = LoginPass '登录密码 End If jmail.Subject = Subject '邮件的标题 JMail.Body = Content JMail.Priority = 1'邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值 jmail.Send(MailAddress) '执行邮件发送(通过邮件服务器地址) jmail.Close() '关闭对象 Set JMail = Nothing If Err Then SendMail = Err.Description Err.Clear Else SendMail = "OK" End If End Function '************************************************** '函数名: ReplaceUserFile '作 用:将会员上传的文件移到指定的上传目录下 '************************************************** Public Function ReplaceUserFile(ReplaceContent,ChannelID) Dim re, BeyondFile, BFU, SaveFileName Set re = New RegExp re.IgnoreCase = True re.Global = True 're.Pattern = "(" &Setting(3)&Setting(91) & "user(\S*\/)((\S)+[.]{1}(gif|jpg|png|bmp|rar|doc|xsl|zip|exe)))" re.Pattern = "(" &Setting(3)&Setting(91) &"user[^(""|'|\s)]*[.]{1}(gif|jpg|png|bmp|rar|doc|xsl|zip|exe))" Set BeyondFile = re.Execute(ReplaceContent) Set re = Nothing Dim Path,DateDir Path = GetUpFilesDir() DateDir = Year(Now()) & Right("0" & Month(Now()), 2) & "/" Path = Path & "/" & DateDir For Each BFU In BeyondFile Dim NewPath:NewPath=Path & Split(BFU,"/")(Ubound(Split(bfu,"/"))) Call CopyFile(BFU,NewPath) ReplaceContent = Replace(ReplaceContent, BFU, NewPath) Next ReplaceUserFile = ReplaceContent End Function '模拟剪切文件操作 Public Function CopyFile(OldPath,NewPath) CopyFile=false Call CreateListFolder(Replace(NewPath,Split(NewPath,"/")(Ubound(Split(NewPath,"/"))),"")) On Error Resume Next dim fso:set fso = Server.CreateObject(Setting(99)) fso.CopyFile Server.MapPath(OldPath), server.mappath(NewPath), True DeleteFile(OldPath) if err then CopyFile=false else CopyFile=true end if IF err Then CopyFile=false End Function '************************************************** '函数名:CreateListFolder '作 用:不限分级创建目录 形如 1\2\3\ 则在网站根目录下创建分级目录 '参 数:Folder要创建的目录 '返回值:成功返回true 否则返回Flase '************************************************** Public Function CreateListFolder(ByVal Folder) Dim FSO, WaitCreateFolder, SplitFolder, CF, k On Error Resume Next If Folder = "" Then CreateListFolder = False:Exit Function End If Folder = Replace(Folder, "\", "/") If Right(Folder, 1) <> "/" Then Folder = Folder & "/" If Left(Folder, 1) <> "/" Then Folder = "/" & Folder Set FSO = CreateObject(Setting(99)) If Not FSO.FolderExists(Server.MapPath(Folder)) Then SplitFolder = Split(Folder, "/") For k = 0 To UBound(SplitFolder) - 1 If k = 0 Then CF = SplitFolder(k) & "/" Else CF = CF & SplitFolder(k) & "/" End If If (Not FSO.FolderExists(Server.MapPath(CF))) Then FSO.CreateFolder (Server.MapPath(CF)) CreateListFolder = True End If Next End If Set FSO = Nothing If Err.Number <> 0 Then Err.Clear CreateListFolder = False Else CreateListFolder = True End If End Function '************************************************** '函数名:DeleteFolder '作 用:删除指定目录 '参 数:FolderStr要删除的目录 '返回值:成功返回true 否则返回Flase '************************************************** Public Function DeleteFolder(FolderStr) Dim FSO On Error Resume Next FolderStr = Replace(FolderStr, "\", "/") Set FSO = CreateObject(Setting(99)) If FSO.FolderExists(Server.MapPath(FolderStr)) Then FSO.DeleteFolder (Server.MapPath(FolderStr)) Else DeleteFolder = True End If Set FSO = Nothing If Err.Number <> 0 Then Err.Clear:DeleteFolder = False Else DeleteFolder = True End If End Function '************************************************** '函数名:DeleteFile '作 用:删除指定文件 '参 数:FileStr要删除的文件 '返回值:成功返回true 否则返回Flase '************************************************** Public Function DeleteFile(FileStr) Dim FSO On Error Resume Next Set FSO = CreateObject(Setting(99)) If FSO.FileExists(Server.MapPath(FileStr)) Then FSO.DeleteFile Server.MapPath(FileStr), True Else DeleteFile = True End If Set FSO = Nothing If Err.Number <> 0 Then Err.Clear:DeleteFile = False Else DeleteFile = True End If End Function '********************************************************************** '函数名:CheckFileShowOrNot '参数:AllowShowExtNameStr允许的文件扩展名,ExtName实际文件扩展名 '********************************************************************** Public Function CheckFileShowOrNot(AllowShowExtNameStr, ExtName) If ExtName = "" Then CheckFileShowOrNot = False Else If InStr(1, AllowShowExtNameStr, ExtName) = 0 Then CheckFileShowOrNot = False Else CheckFileShowOrNot = True End If End If End Function '********************************************************************** '函数名:GetFieSize '作用:取得指定文件的大小 '参数:FilePath--文件位置 '********************************************************************** Public Function GetFieSize(FilePath) GetFieSize = 0 Dim FSO, F On Error Resume Next Set FSO = Server.CreateObject(Setting(99)) Set F = FSO.GetFile(FilePath) GetFieSize = F.size Set F = Nothing:Set FSO = Nothing End Function '取得目录大小 Public Function GetFolderSize(FolderPath) dim fso:Set FSO = Server.CreateObject(Setting(99)) if fso.FolderExists(Server.MapPath(FolderPath)) then dim userfilespace:set UserFileSpace=FSO.GetFolder(Server.MapPath(FolderPath)) GetFolderSize=UserFileSpace.size else GetFolderSize=0:exit function end if set userfilespace=nothing:set fso=nothing End Function '************************************************************************************* '文件备份过程 '过程名:backupdata '参数:CurrPath原文件完整物理地址,BackPath目标备份文件完整物理地址 '************************************************************************************* Public Function BackUpData(CurrPath, BackPath) On Error Resume Next Dim FSO:Set FSO = Server.CreateObject(Setting(99)) FSO.copyfile CurrPath, BackPath If Err Then BackUpData = False Else BackUpData = True End If FSO.Close:Set FSO = Nothing End Function '------------------检查某一目录是否存在------------------- Public Function CheckDir(FolderPath) Dim fso1 FolderPath = Server.MapPath(".") & "\" & FolderPath Set fso1 = CreateObject(Setting(99)) If fso1.FolderExists(FolderPath) Then CheckDir = True Else CheckDir = False End If Set fso1 = Nothing End Function '------------------检查某一文件是否存在------------------- Public Function CheckFile(FileName) On Error Resume Next Dim FsoObj Set FsoObj = Server.CreateObject(Setting(99)) If Not FsoObj.FileExists(Server.MapPath(FileName)) Then CheckFile = False Exit Function End If CheckFile = True:Set FsoObj = Nothing End Function '************************************************** '函数名:WriteTOFile '作 用:写内容到指定的html文件 '参 数:Filename ----目标文件件 如 mb\index.htm ' Content ------要写入目标文件的内容 '返回值:成功返回true ,失败返回false '************************************************** Public Function WriteTOFile(FileName, Content) On Error Resume Next dim stm:set stm=server.CreateObject("adodb.stream") stm.Type=2 '以文本模式读取 stm.mode=3 stm.charset="gb2312" stm.open stm.WriteText content stm.SaveToFile server.MapPath(FileName),2 stm.flush stm.Close set stm=nothing If Err.Number <> 0 Then WriteTOFile = False Else WriteTOFile = True End If End Function '************************************************** '函数名:ReadFromFile '作 用:写内容到指定的html文件 '参 数:Filename ----目标文件件 如 mb\index.htm '返回值:成功返回文件内容 ,失败返回"" '************************************************** Public Function ReadFromFile(FileName) On Error Resume Next Dim FsoObj, FileStreamObj, FileObj Set FsoObj = Server.CreateObject(Setting(99)) If CheckFile(FileName) = False Then Call Alert("错误提示:\n\n[" & Server.MapPath(FileName) & "]文件不存在", ""):Exit Function End If Set FileObj = FsoObj.GetFile(Server.MapPath(FileName)) Set FileStreamObj = FileObj.OpenAsTextStream(1) If Not FileStreamObj.AtEndOfStream Then ReadFromFile = FileStreamObj.ReadAll Else ReadFromFile = "" End If Set FsoObj=Nothing Set FileObj=Nothing Set FileStreamObj=Nothing End Function '************************************************** '函数名:MakeRandom '作 用:生成指定位数的随机数 '参 数: maxLen ----生成位数 '返回值:成功:返回随机数 '************************************************** Public Function MakeRandom(ByVal maxLen) Dim strNewPass,whatsNext, upper, lower, intCounter Randomize For intCounter = 1 To maxLen upper = 57:lower = 48:strNewPass = strNewPass & Chr(Int((upper - lower + 1) * Rnd + lower)) Next MakeRandom = strNewPass End Function '生成随机密码 Function GetRndPassword(PasswordLen) Dim Ran, i, strPassword strPassword = "" For i = 1 To PasswordLen Randomize Ran = CInt(Rnd * 2) Randomize If Ran = 0 Then Ran = CInt(Rnd * 25) + 97 strPassword = strPassword & UCase(Chr(Ran)) ElseIf Ran = 1 Then Ran = CInt(Rnd * 9) strPassword = strPassword & Ran ElseIf Ran = 2 Then Ran = CInt(Rnd * 25) + 97 strPassword = strPassword & Chr(Ran) End If Next GetRndPassword = strPassword End Function '************************************************** '函数名:MakeRandomChar '作 用:生成指定位数的随机数字符串 如 "sJKD_!@KK" '参 数: Length ----生成位数 '返回值:成功返回随机字符串 '************************************************** Public Function MakeRandomChar(Length) Dim I, tempS, v Dim c(65) tempS = "" c(1) = "a": c(2) = "b": c(3) = "c": c(4) = "d": c(5) = "e": c(6) = "f": c(7) = "g" c(8) = "h": c(9) = "i": c(10) = "j": c(11) = "k": c(12) = "l": c(13) = "m": c(14) = "n" c(15) = "o": c(16) = "p": c(17) = "q": c(18) = "r": c(19) = "s": c(20) = "t": c(21) = "u" c(22) = "v": c(23) = "w": c(24) = "x": c(25) = "y": c(26) = "z": c(27) = "1": c(28) = "2" c(29) = "3": c(30) = "4": c(31) = "5": c(32) = "6": c(33) = "7": c(34) = "8": c(35) = "9" c(36) = "-": c(37) = "_": c(38) = "@": c(39) = "!": c(40) = "A": c(41) = "B": c(42) = "C" c(43) = "D": c(44) = "E": c(45) = "F": c(46) = "G": c(47) = "H": c(48) = "I": c(49) = "J": c(50) = "K" c(51) = "L": c(52) = "M": c(53) = "N": c(54) = "O": c(55) = "P": c(56) = "Q": c(57) = "R": c(58) = "S" c(59) = "J": c(60) = "U": c(61) = "V": c(62) = "W": c(63) = "X": c(64) = "Y": c(65) = "Z" If IsNumeric(Length) = False Then MakeRandomChar = "":Exit Function End If For I = 1 To Length Randomize v = Int((65 * Rnd) + 1):tempS = tempS & c(v) Next MakeRandomChar = tempS End Function '************************************************** '函数名:GetFileName '作 用:构造文件名。 '参 数:FsoType ----生成类型,addDate -----添加时间,GetFileNameType--扩展名 '************************************************** Public Function GetFileName(FsoType, AddDate, GetFileNameType) Dim N Randomize N = Rnd * 10 + 5 Dim Y,M,D Y=Year(AddDate):M=Right("0"&Month(AddDate),2):D=Right("0"&Day(AddDate),2) Select Case FsoType Case 1:GetFileName = Y & "/" & M & "-" & D & "/" & MakeRandom(N) & GetFileNameType '年/月-日/随机数+扩展名 Case 2:GetFileName = Y & "/" & M & "/" & D & "/" & MakeRandom(N) & GetFileNameType '年/月/日/随机数+扩展名 Case 3:GetFileName = Y & "-" & M & "-" & D & "/" & MakeRandom(N) & GetFileNameType '年-月-日/随机数+扩展名 Case 4:GetFileName = Y & "/" & M & "/" & MakeRandom(N) & GetFileNameType '年/月/随机数+扩展名 Case 5:GetFileName = Y & "-" & M & "/" & MakeRandom(N) & GetFileNameType '年-月/随机数+扩展名 Case 12:GetFileName = Y & M & "/" & MakeRandom(N) & GetFileNameType '年-月/随机数+扩展名 Case 6:GetFileName = Y & M & D & "/" & MakeRandom(N) & GetFileNameType '年月日/随机数+扩展名 Case 7:GetFileName = Y & "/" & MakeRandom(N) & GetFileNameType '年/随机数+扩展名 Case 8:GetFileName = Y & M & D & MakeRandom(N) & GetFileNameType '年+月+日+随机数+扩展名 Case 9:GetFileName = MakeRandom(N) & GetFileNameType Case 10:GetFileName = MakeRandomChar(N) & GetFileNameType '随机字符 Case 11:GetFileName ="ID" Case Else GetFileName = Y & M & D & GetFileNameType '12位随机数+扩展名 End Select End Function '************************************************** '函数名:Alert '作 用:弹出成功提示。 '参 数:SuccessStr ----成功提示信息 ' Url ------成功提示按下"确定"转向链接 '返回值:无 '************************************************** Public Function Alert(SuccessStr, Url) If Url <> "" Then echo ("") Else echo ("") End If End Function Public Function AlertAlert(SuccessStr) echo ("") End Function '************************************************** '函数名:AlertHistory '作 用:弹出警告消息后,停止所在页面的执行,返回n级。 '参 数:SuccessStr ----成功提示信息 ' n ------返回级数 '返回值:无 '************************************************** Public Function AlertHistory(SuccessStr, N) echo ("") die "" End Function '提示成功。并返回 Sub AlertHintScript(SuccessStr) echo "" & vbCrLf die "" End Sub '************************************************** '函数名:Confirm '作 用:弹出成功提示。 '参 数:SuccessStr ----成功提示信息 ' Url ------成功提示按下"确定"转向链接 ' Url1 ------confirm按下"取消"转向链接 '返回值:无 '************************************************** Public Function Confirm(SuccessStr, Url, Url1) echo ("") End Function Public Sub ShowTips(Action,Message) Response.Redirect(Setting(3) & "Plus/error.shtml?action="&action &"&message="&Server.URLEncode(message)) End Sub '************************************************** '函数名:ShowError '作 用:显示错误信息。 '参 数:Errmsg ----出错信息 '返回值:无 '************************************************** Public Sub ShowError(Errmsg) echo ("

    ") echo ("
    ") echo (" ") echo (" ") echo (" ") echo (" ") echo (" ") echo (" ") echo (" ") echo ("
    ") echo (" " & Errmsg & "  ") echo (" ") echo ("
    ") echo ("

    ...::: 点 此 返 回 ") echo (" :::...") echo ("

    ") echo ("
    ") echo ("
    ") die ("") end sub '***************************************************************************************** '函数名:ReturnPowerResult '作 用:检查操作权限。 '参 数:ChannelID---所在系统(频道) 1文章系统2图片系统等 PowerOpName ---当前操作的权限名称 '返回值:允许返回true,否则返回false '****************************************************************************************** Public Function ReturnPowerResult(ChannelID, PowerOpName) If C("AdminName") = "" Then ReturnPowerResult = False Exit Function ElseIf C("SuperTF") = "1" Then '超级管理组拥有所有权限 ReturnPowerResult = True Exit Function Else If Instr(C("ModelPower"),C_S(ChannelID,10)&"0")>0 then '没有任何管理权 ReturnPowerResult = False ElseIf Instr(C("ModelPower"),C_S(ChannelID,10)&"1")>0 then '拥有所有权限 ReturnPowerResult = True ElseIf Instr(C("ModelPower"),C_S(ChannelID,10)&"2")>0 then '限制栏目,拥有部分权限 ReturnPowerResult = CheckPower(PowerOpName) Else ReturnPowerResult = CheckPower(PowerOpName) End If End If End Function '结合上面ReturnPowerResult过程序使用 Public Function CheckPower(PowerOpName) Dim PowerList, ModelPower PowerList = Trim(C("PowerList")) If (PowerList <> "") And (PowerOpName <> "") Then Select Case Left(PowerOpName, 4) '检查是否有模块的总权限 Case "KMST" '系统 If Instr(C("ModelPower"),"sysset0") >0 and C("SuperTF")<>"1" Then ModelPower = false else ModelPower=true Case "KMUA" '用户 If Instr(C("ModelPower"),"user0") >0 and C("SuperTF")<>"1" Then ModelPower = false else ModelPower=true Case "KMTL" If Instr(C("ModelPower"),"lab0")>0 and C("SuperTF")<>"1" Then ModelPower = false else ModelPower=true Case "KSMM" If Instr(C("ModelPower"),"model0")>0 and C("SuperTF")<>"1" Then ModelPower = false else ModelPower=true ' Case "KSMS" ' If Instr(C("ModelPower"),"subsys0")>0 and C("SuperTF")<>"1" Then ModelPower = false else ModelPower=true Case Else ModelPower = true End Select If InStr(PowerList, PowerOpName) <> 0 And ModelPower Then CheckPower = True:Exit Function Else CheckPower = False:Exit Function End If Else CheckPower = False:Exit Function End If End Function '结合上面ReturnPowerResult过程使用, ReturnFlag ----类型 0关闭,1返回前一页2,转向URL, Url -错误后转向的Url Sub ReturnErr(ReturnFlag, Url) If ReturnFlag = 0 Then echo ("") ElseIf ReturnFlag = 1 Then echo ("") ElseIf ReturnFlag = 2 Then echo ("") End If End Sub '插入网站后台日志 , UserName --- 管理员账号 , ResultTF ---0登录失败 1---登录成功 ,ScriptName---登录路径 ,Descript---描述信息 Sub InsertLog(UserName, ResultTF, ScriptName, Descript) Dim SystemStr:SystemStr = Request.ServerVariables("HTTP_USER_AGENT") If InStr(SystemStr, "Windows NT 5.2") Then SystemStr = "Win2003" ElseIf InStr(SystemStr, "Windows NT 5.0") Then SystemStr = "Win2000" ElseIf InStr(SystemStr, "Windows NT 5.1") Then SystemStr = "WinXP" ElseIf InStr(SystemStr, "Windows NT") Then SystemStr = "WinNT" ElseIf InStr(SystemStr, "Windows 9") Then SystemStr = "Win9x" ElseIf InStr(SystemStr, "unix") Or InStr(SystemStr, "linux") Or InStr(SystemStr, "SunOS") Or InStr(SystemStr, "BSD") Then SystemStr = "类似Unix" ElseIf InStr(SystemStr, "Mac") Then SystemStr = "Mac" Else SystemStr = "Other" End If Conn.Execute("Insert into KS_Log(UserName,ResultTF,LoginTime,LoginOS,LoginIP,ScriptName,Description) values('" & UserName & "'," & ResultTF & "," & SqlNowString & ",'" & replace(SystemStr,"'","""") & "','" & getip & "','" & replace(scriptname,"'","""") & "','" & replace(descript,"'","""") & "')") End Sub '显示分页的前部分 '参数说明:PageStyle-分页样式,ItemUnit-单位,TotalPage-总页数,CurrPage-当前第N页,TotalInfo-总信息数,PerPageNumber-每页显示数 Function GetPrePageList(PageStyle,ItemUnit,TotalPage,CurrPage,TotalInfo,PerPageNumber) Select Case Cint(PageStyle) Case 1:GetPrePageList= "
    " & "共 " & TotalInfo & " " & ItemUnit &" 页次: " & CurrPage & "/" & TotalPage & "页 " & PerPageNumber & " " & ItemUnit &"/页 " Case 2:GetPrePageList= "
    " & CurrPage & "页 共" & TotalPage & "页 " Case 3:GetPrePageList= "
    " & CurrPage & "页 共" & TotalPage & "页 " Case 4:GetPrePageList= "
    " End Select End Function '动态显示分页 Function GetPageList(FileName,PageStyle,CurrPage,TotalPage, ShowTurnToFlag) Dim PageStr, I, J, SelectStr If ChkClng(PageStyle)=0 Then PageStyle=1 Select Case PageStyle Case 1 If CurrPage = 1 And CurrPage <> TotalPage Then PageStr = "首页 上一页 下一页 尾页" ElseIf CurrPage = 1 And CurrPage = TotalPage Then PageStr = "首页 上一页 下一页 尾页" ElseIf CurrPage = TotalPage And CurrPage <> 2 Then '对于最后一页刚好是第二页的要做特殊处理 PageStr = "首页 上一页 下一页 尾页" ElseIf CurrPage = TotalPage And CurrPage = 2 Then PageStr = "首页 上一页 下一页 尾页" ElseIf CurrPage = 2 Then PageStr = "首页 上一页 下一页 尾页" Else PageStr = "首页 上一页 下一页 尾页" End If Case 2 If CurrPage=1 Then PageStr="9 7" ElseIf CurrPage=2 Then PageStr="9 7" Else PageStr="9 7 " End If dim startpage,n startpage=1 if (CurrPage>=10) then startpage=(CurrPage\10-1)*10+CurrPage mod 10+2 For J=startpage To TotalPage If J= CurrPage Then PageStr=PageStr & " " & J &"" Else PageStr=PageStr & " " & J &"" End If n=n+1 if n>=10 then exit for Next If CurrPage=TotalPage Then PageStr=PageStr & " 8 :" Else PageStr=PageStr & " 8 : " End If Case 3 If CurrPage=1 Then PageStr="9 7" ElseIf CurrPage=2 Then PageStr="9 7" Else PageStr="9 7 " End If If CurrPage=TotalPage Then PageStr=PageStr & " 8 :" Else PageStr=PageStr & " 8 : " End If case 4 n=0:startpage=1 pageStr=pageStr & "
    " & vbcrlf if (CurrPage>1) then pageStr=PageStr & "上一页" if (CurrPage<>TotalPage) then pageStr=PageStr & "下一页" pageStr=pageStr & "首 页" if (CurrPage>=7) then startpage=CurrPage-5 if TotalPage-CurrPage<5 Then startpage=TotalPage-10 If startpage<0 Then startpage=1 For J=startpage To TotalPage If J= CurrPage Then PageStr=PageStr & " " & J &"" Else PageStr=PageStr & " " & J &"" End If n=n+1 if n>10 then exit for Next pageStr=pageStr & "末页" pageStr=PageStr & " 总共" & TotalPage & "页
    " End Select If CBool(ShowTurnToFlag) = True and pagestyle<>4 Then PageStr = PageStr & " 转到:" End If GetPageList=PageStr &"
    " End Function '显示伪静态分页 Function GetStaticPageList(FileName,PageStyle,CurrPage,TotalPage, ShowTurnToFlag,Extension) Dim PageStr, I, J, SelectStr If ChkClng(PageStyle)=0 Then PageStyle=1 Select Case PageStyle Case 1 If CurrPage = 1 And CurrPage <> TotalPage Then PageStr = "首页 上一页 下一页 尾页" ElseIf CurrPage = 1 And CurrPage = TotalPage Then PageStr = "首页 上一页 下一页 尾页" ElseIf CurrPage = TotalPage And CurrPage <> 2 Then '对于最后一页刚好是第二页的要做特殊处理 PageStr = "首页 上一页 下一页 尾页" ElseIf CurrPage = TotalPage And CurrPage = 2 Then PageStr = "首页 上一页 下一页 尾页" ElseIf CurrPage = 2 Then PageStr = "首页 上一页 下一页 尾页" Else PageStr = "首页 上一页 下一页 尾页" End If Case 2 If CurrPage=1 Then PageStr="9 7" 'ElseIf CurrPage=2 Then ' PageStr="9 7" Else PageStr="9 7 " End If dim startpage,n startpage=1 if (CurrPage>=10) then startpage=(CurrPage\10-1)*10+CurrPage mod 10+2 For J=startpage To TotalPage If J= CurrPage Then PageStr=PageStr & " " & J &"" Else PageStr=PageStr & " " & J &"" End If n=n+1 if n>=10 then exit for Next If CurrPage=TotalPage Then PageStr=PageStr & " 8 :" Else PageStr=PageStr & " 8 : " End If Case 3 If CurrPage=1 Then PageStr="9 7" ElseIf CurrPage=2 Then PageStr="9 7" Else PageStr="9 7 " End If If CurrPage=TotalPage Then PageStr=PageStr & " 8 :" Else PageStr=PageStr & " 8 : " End If Case 4 n=0:startpage=1 pageStr=pageStr & "
    " & vbcrlf if (CurrPage>1) then pageStr=PageStr & "上一页" pageStr=pageStr & "首 页" if (CurrPage>=7) then startpage=CurrPage-5 if TotalPage-CurrPage<5 Then startpage=TotalPage-10 If startpage<=0 Then startpage=1 For J=startpage To TotalPage If J= CurrPage Then PageStr=PageStr & " " & J &"" Else PageStr=PageStr & " " & J &"" End If n=n+1 if n>=10 then exit for Next If TotalPage>10 Then If CurrPage=TotalPage Then pageStr=pageStr & "..." & TotalPage & "" Else pageStr=pageStr & "..." & TotalPage & "" End If End If if (CurrPage<>TotalPage) then pageStr=PageStr & "下一页" pageStr=PageStr & "
    " End Select If CBool(ShowTurnToFlag) = True and pageStyle<>4 Then PageStr = PageStr & " 转到:" End If GetStaticPageList=PageStr End Function '************************************************************************************* '函数名:GetClassID '作 用:生成新目录或频道的ID号,生成目录ID 年+10位随机 '参 数:无 '************************************************************************************* Public Function GetClassID() Do While True GetClassID = Year(Now()) & MakeRandom(10) If Conn.Execute("Select ID from KS_Class Where ID='" & GetClassID & "'").Eof Then Exit Do Loop End Function '取专题分类参数 Function GetSpecialClass(ClassID,FieldName) If Not IsObject(Application(SiteSN & "_SpecialClass")) then 'Dim Rs:Set Rs = Conn.Execute("Select ClassID,ClassName,ClassEname,Descript,FsoIndex From KS_SpecialClass Order By ClassID") 'Set Application(SiteSN & "_SpecialClass")=RsToxml(Rs,"row","root") 'Set Rs = Nothing Dim RS:Set Rs=conn.execute("PRO_GetSpecialClass") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "ClassID,ClassName,ClassEname,Descript,FsoIndex" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_SpecialClass")=RsToxml2(rsFieldsStr,DataArray_,"row","root") End If Dim Node:Set Node=Application(SiteSN&"_SpecialClass").documentElement.selectSingleNode("row[@classid=" & ClassID & "]/@" & Lcase(FieldName) & "") If Not Node Is Nothing Then GetSpecialClass=Node.text Set Node = Nothing End Function '载入供求类型 Sub LoadGQTypeToXml() If Not IsObject(Application(SiteSN & "_SupplyType")) then 'Dim Rs:Set Rs = Conn.Execute("Select TypeID,TypeName,TypeColor From KS_GQType Order By TypeID") 'Set Application(SiteSN & "_SupplyType")=RsToxml(Rs,"row","SupplyType") 'Set Rs = Nothing Dim RS:Set Rs=conn.execute("PRO_LoadGQTypeToXml") Dim rsFieldsStr,DataArray_:DataArray_ = rs.GetRows(-1) rs.close:Set Rs=Nothing rsFieldsStr = "TypeID,TypeName,TypeColor" rsFieldsStr = LCase(rsFieldsStr) Set Application(SiteSN&"_SupplyType")=RsToxml2(rsFieldsStr,DataArray_,"row","SupplyType") End If End Sub '************************************************************************************* '函数名:GetGQTypeName '作 用:获得供求的交易类别名称 '参 数:TypeID '************************************************************************************* Public Function GetGQTypeName(TypeID) If Not IsNumeric(TypeID) Then GetGQTypeName="":Exit Function LoadGQTypeToXml() Dim NodeName,NodeColor Set NodeName=Application(SiteSN & "_SupplyType").documentElement.SelectSingleNode("row[@typeid=" & TypeID & "]/@typename") If Not NodeName Is Nothing Then Set NodeColor=Application(SiteSN & "_SupplyType").documentElement.SelectSingleNode("row[@typeid=" & TypeID & "]/@typecolor") GetGQTypeName="" & NodeName.Text & "" End If End Function '返回供求交易类型列表 '参数:Flag:1-标签调用 0-添加信息时调用 Public Function ReturnGQType(SelID,Flag) Dim Node LoadGQTypeToXml() If Flag=1 Then ReturnGQType="" End If For Each Node In Application(SiteSN & "_SupplyType").DocumentElement.SelectNodes("row") If trim(SelID)=trim(node.SelectSingleNode("@typeid").text) Then ReturnGQType=ReturnGQType & "" else ReturnGQType=ReturnGQType & "" end if Next ReturnGQType=ReturnGQType & "" End Function '************************************************************************************* '函数名:GetInfoID '作 用:生成文章,图片或下载等的唯一ID '参 数:ChannelID--频道ID '************************************************************************************* Public Function GetInfoID(ChannelID) Dim TableNameStr,ID TableNameStr = "Select top 1 ProID From " & C_S(ChannelID,2) & " Where ProID='" Do While True ID = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Now(), "-", ""), " ", ""), ":", ""), "PM", ""), "AM", ""), "上午", ""), "下午", "") & MakeRandom(3) If Conn.Execute(TableNameStr & ID & "'").Eof Then Exit Do Loop GetInfoID=ID End Function '************************************************************************************* '函数名:ReplaceInnerLink '作 用:替换站内链接 '参 数:Content-待替换内容 '************************************************************************************* Public Function ReplaceInnerLink(ByVal Content) 'Content=HTMLCode(Content) If Not IsObject(Application(SiteSN & "_InnerLink")) then 'Dim Rs:Set Rs = Conn.Execute("Select Title,Url,OpenType,CaseTF,Times,Start From KS_InnerLink Where OpenTF=1 Order By ID") 'Set Application(SiteSN & "_InnerLink")=RecordsetToxml(Rs,"InnerLink","InnerLinkList") 'Set Rs = Nothing Dim RS:Set Rs=conn.execute("PRO_ReplaceInnerLink") Set Application(SiteSN&"_InnerLink")=RecordsetToxml2(Rs,"InnerLink","InnerLinkList") end if Dim Node,CaseTF,Times,Inti,DLocation,XLocation,StrReplace,CurrentTimes,SourceStr For Each Node In Application(SiteSN & "_InnerLink").DocumentElement.SelectNodes("InnerLink") CurrentTimes=0 Dim OpenTypeStr:OpenTypeStr = G_O_T_S(Node.selectSingleNode("@ks2").text) CaseTF=Cint(Node.selectSingleNode("@ks3").text) Times=Cint(Node.selectSingleNode("@ks4").text) Inti=ChkClng(Node.selectSingleNode("@ks5").text) StrReplace=Node.selectSingleNode("@ks0").text If Inti=0 Then Inti=1 If InStr(Inti,Content,StrReplace,CaseTF)>0 Then Do While instr(Inti,Content,StrReplace,CaseTF)<>0 Inti=instr(Inti,Content,StrReplace,CaseTF) If Inti<>0 then DLocation=instr(Inti,Content,">") '仅替换在><之间的关键字 XLocation=instr(Inti,Content,"<") If DLocation >= XLocation Then Content=left(Content,Inti-1) & ""&Node.selectSingleNode("@ks0").text&"" & mid(Content,Inti+len(StrReplace)) Inti=Inti+len(""&StrReplace&"") CurrentTimes=CurrentTimes+1 If Times<>-1 And CurrentTimes>= Times Then Exit Do Else Inti=Inti+len(StrReplace) End If End If Loop End if Next ReplaceInnerLink = Content End Function '============================================================= '函数作用:判断来源URL是否来自外部 '============================================================= Public Function CheckOuterUrl() On Error Resume Next Dim server_v1, server_v2 server_v1 = LCase(Trim(Request.ServerVariables("HTTP_REFERER"))) server_v2 = LCase(Trim(Request.ServerVariables("SERVER_NAME"))) CheckOuterUrl = True If Mid(server_v1,8,len(server_v2))=server_v2 Then CheckOuterUrl=False End Function '加密 Function Encrypt(ecode) dim texts,i for i=1 to len(ecode) texts=texts & chr(asc(mid(ecode,i,1))+3) next Encrypt = texts End Function '解密 Function Decrypt(dcode) If IsNul(dcode) then exit function dim texts,i for i=1 to len(dcode) texts=texts & chr(asc(mid(dcode,i,1))-3) next Decrypt=texts End Function '匹配 img src,结果以|隔开 Function GetImgSrcArr(strng) If strng="" Or IsNull(strng) Then GetImgSrcArr="":Exit Function Dim regEx,Match,Matches,values Set regEx = New RegExp regEx.Pattern = "src\=.+?\.(gif|jpg)" regEx.IgnoreCase = true regEx.Global = True Set Matches = regEx.Execute(strng) For Each Match in Matches if instr(lcase(Match.Value),"fileicon")=0 then values=values&Match.Value&"|" end if Next GetImgSrcArr = Replace(Replace(Replace(Replace(values,"'",""),"""",""),"src=",""),Setting(2),"") If GetImgSrcArr<>"" Then GetImgSrcArr = left(GetImgSrcArr,len(GetImgSrcArr)-1) End Function '取得Request.Querystring 或 Request.Form 的值 Public Function G(Str) 'G = Replace(Replace(Replace(Replace(Trim(Request(Str)), "'", ""), """", ""),"%",""),"*","") G = Replace(Replace(Replace(Replace(Trim(Request(Str)), "'", ""), """", ""),"",""),"","") End Function Function DelSql(Str) Dim SplitSqlStr,SplitSqlArr,I SplitSqlStr="%|dbcc|alter|drop|*|and |exec|or |insert|select|delete|update|count |master|truncate|declare|char|mid|chr|set |where|xp_cmdshell" SplitSqlArr = Split(SplitSqlStr,"|") For I=LBound(SplitSqlArr) To Ubound(SplitSqlArr) If Instr(LCase(Str),SplitSqlArr(I))>0 Then Die "" End if Next DelSql = Str End Function '取得Request.Querystring 或 Request.Form 的值 Public Function S(Str) S = DelSql(Replace(Replace(Replace(Trim(Request(Str)), "'", ""), """", ""),"%","")) End Function '读Cookies值 Public Function C(Str) 'If "ModelPower" = Str Or "PowerList" = Str Then 'C=DelSql(Session(Str)) 'Else C=DelSql(Request.Cookies(SiteSN)(Str)) 'End if End Function '取得QueryString,或Form参数集合,参数NoCollect表示不收集的字段,多个用英文逗号隔开 Function QueryParam(NoCollect) Dim Param,R For Each r In Request.QueryString If FoundInArr(NoCollect,R,",")=false Then If Request.QueryString(r)<>"" Then If Param="" Then Param=r & "=" & Server.UrlEncode(Trim(Request.QueryString(r))) Else Param=Param & "&" & r & "=" & Server.UrlEncode(Trim(Request.QueryString(r))) End If End If End If Next ' If Param<>"" Then QueryParam=Param:Exit Function For Each r In Request.Form If FoundInArr(NoCollect,R,",")=false Then If Request.Form(r)<>"" Then If Param="" Then Param=r & "=" & Server.UrlEncode(Trim(Request.Form(r))) Else Param=Param & "&" & r & "=" & Server.UrlEncode(Trim(Request.Form(r))) End If End If End If Next QueryParam=Param End Function '进行脚本过滤 Function CheckScript(byVal Content) If IsNul(Content) Then Exit Function Dim oRegExp,oMatch,spamCount Set oRegExp = New Regexp oRegExp.IgnoreCase = True oRegExp.Global = True oRegExp.pattern ="" Content=oRegExp.replace(Content,"") Set oRegExp=Nothing CheckScript=Content End Function '关闭采集数据库对象 Public Sub CloseConnItem() On Error Resume Next If IsObject(ConnItem) Then ConnItem.Close:Set ConnItem = Nothing End If End Sub '文章自动分页 '参数:Content-文章内容 SplitPageStr-文章分隔线 PerPageLen-每页大约字符数 Function AutoSplitPage(Content,SplitPageStr,maxPagesize) Dim sContent,ss,i,IsCount,c,iCount,strTemp,Temp_String,Temp_Array sContent=Content If maxPagesize<100 Or Len(sContent)") sContent=Replace(sContent, ">", "<>>") sContent=Replace(sContent, "<", "<<>") sContent=Replace(sContent, """, "<">") sContent=Replace(sContent, "'", "<'>") If sContent<>"" and maxPagesize<>0 and InStr(1,sContent,SplitPageStr)=0 then IsCount=True:Temp_String="" For i= 1 To Len(sContent) c=Mid(sContent,i,1) If c="<" Then IsCount=False ElseIf c=">" Then IsCount=True Else If IsCount=True Then 'If Abs(Asc(c))>255 Then ' iCount=iCount+2 'Else iCount=iCount+1 'End If If iCount>=maxPagesize And i|i>|strong|div|span") then Temp_String=Temp_String & Trim(CStr(i)) & "," iCount=0 End If End If End If End If Next If Len(Temp_String)>1 Then Temp_String=Left(Temp_String,Len(Temp_String)-1) Temp_Array=Split(Temp_String,",") For i = UBound(Temp_Array) To LBound(Temp_Array) Step -1 ss = Mid(sContent,Temp_Array(i)+1) If Len(ss) > 100 Then sContent=Left(sContent,Temp_Array(i)) & SplitPageStr & ss Else sContent=Left(sContent,Temp_Array(i)) & ss End If Next End If sContent=Replace(sContent, "< >", " ") sContent=Replace(sContent, "<>>", ">") sContent=Replace(sContent, "<<>", "<") sContent=Replace(sContent, "<">", """) sContent=Replace(sContent, "<'>", "'") AutoSplitPage=sContent End Function '结合以上函数使用 Private Function CheckPagination(strTemp,strFind) Dim i,n,m_ingBeginNum,m_intEndNum Dim m_strBegin,m_strEnd,FindArray strTemp=LCase(strTemp) strFind=LCase(strFind) If strTemp<>"" and strFind<>"" then FindArray=split(strFind,"|") For i = 0 to Ubound(FindArray) m_strBegin="<"&FindArray(i) m_strEnd ="0 n=instr(n+1,strTemp,m_strBegin) m_ingBeginNum=m_ingBeginNum+1 Loop n=0 do while instr(n+1,strTemp,m_strEnd)<>0 n=instr(n+1,strTemp,m_strEnd) m_intEndNum=m_intEndNum+1 Loop If m_intEndNum=m_ingBeginNum then CheckPagination=True Else CheckPagination=False Exit Function End If Next Else CheckPagination=False End If End Function Public Function HTMLEncode(fString) If Not IsNull(fString) then fString = ClearBadChr(fString) fString = Replace(fString, "&", "&") fString = Replace(fString, "'", "'") fString = Replace(fString, ">", ">") fString = Replace(fString, "<", "<") fString = Replace(fString, Chr(32), " ") fString = Replace(fString, Chr(9), " ") fString = Replace(fString, Chr(34), """) fString = Replace(fString, Chr(39), "'") fString = Replace(fString, Chr(13), "") 'fString = Replace(fString, " ", " ") 'fString = Replace(fString, Chr(10), "
    ") HTMLEncode = fString End If End Function Function ClearBadChr(str) If Str<>"" Then Dim re:Set re=new RegExp re.IgnoreCase =True re.Global=True re.Pattern="(on(load|click|dbclick|mouseover|mouseout|mousedown|mouseup|mousewheel|keydown|submit|change|focus)=""[^""]+"")" str = re.Replace(str, "") 're.Pattern="((name|id|class)=""[^""]+"")" 'str = re.Replace(str, "") re.Pattern = "(]*?>([\w\W]*?)<\/s+cript>)" str = re.Replace(str, "") re.Pattern = "(]*?>([\w\W]*?)<\/iframe>)" str = re.Replace(str, "") re.Pattern = "(

     <\/p>)" str = re.Replace(str, "") Set re=Nothing ClearBadChr = str End If End Function Public Function HTMLCode(HtmlStr) If Not IsNul(HtmlStr) then 'HtmlStr = Replace(HtmlStr, " ", " ") HtmlStr = Replace(HtmlStr, """, Chr(34)) HtmlStr = Replace(HtmlStr, "'", Chr(39)) HtmlStr = Replace(HtmlStr, "{", Chr(123)) HtmlStr = Replace(HtmlStr, "}", Chr(125)) HtmlStr = Replace(HtmlStr, "$", Chr(36)) HtmlStr = Replace(HtmlStr, "&", "&") 'HtmlStr = Replace(HtmlStr, vbCrLf, "") HtmlStr = Replace(HtmlStr, ">", ">") HtmlStr = Replace(HtmlStr, "<", "<") HTMLCode = HtmlStr End If End Function Public Function IsObjInstalled(strClassString) On Error Resume Next IsObjInstalled = False Err = 0 Dim xTestObj:Set xTestObj = Server.CreateObject(strClassString) If 0 = Err Then IsObjInstalled = True Set xTestObj = Nothing Err = 0 End Function Public Function IsExpired(strClassString) On Error Resume Next IsExpired = True Err = 0 Dim xTestObj:Set xTestObj = Server.CreateObject(strClassString) If 0 = Err Then Select Case strClassString Case "Persits.Jpeg" If xTestObjResponse.Expires > Now Then IsExpired = False End If Case "wsImage.Resize" If InStr(xTestObj.errorinfo, "已经过期") = 0 Then IsExpired = False End If Case "SoftArtisans.ImageGen" xTestObj.CreateImage 500, 500, RGB(255, 255, 255) If Err = 0 Then IsExpired = False End If End Select End If Set xTestObj = Nothing Err = 0 End Function Public Function ExpiredStr(I) Dim ComponentName(3) ComponentName(0) = "Persits.Jpeg" ComponentName(1) = "wsImage.Resize" ComponentName(2) = "SoftArtisans.ImageGen" ComponentName(3) = "CreatePreviewImage.cGvbox" If IsObjInstalled(ComponentName(I)) Then If IsExpired(ComponentName(I)) Then ExpiredStr = ",但已过期" Else ExpiredStr = "" End If ExpiredStr = " √支持" & ExpiredStr Else ExpiredStr = "×不支持" End If End Function '======================================会员相关函数==================================== '取得会员组选项--下拉列表 参数:Selected--默认选项 Public Function GetUserGroup_Option(Selected) 'Dim RSObj:Set RSObj=Server.CreateObject("Adodb.Recordset") 'RSObj.Open "Select ID,GroupName From KS_UserGroup",Conn,1,1 'Do While Not RSObj.Eof 'IF Selected=RSObj(0) Then 'GetUserGroup_Option=GetUserGroup_Option & "" 'Else 'GetUserGroup_Option=GetUserGroup_Option & "" 'End If 'RSObj.MoveNext 'Loop 'RSObj.Close:Set RSObj=Nothing Dim RSObj:Set RSObj=conn.execute("PRO_GetUserGroup_Option") If Not RSObj.Eof Then dim Total_,jj,SQL,ID_,GroupName_ SQL=RSObj.GetRows(-1) RSObj.Close : Set RSObj=Nothing Total_=Ubound(SQL,2) For jj = 0 To Total_ ID_ = SQL(0,jj) GroupName_ = SQL(1,jj) IF Selected=ID_ Then GetUserGroup_Option=GetUserGroup_Option & "" Else GetUserGroup_Option=GetUserGroup_Option & "" End If next else RSObj.Close : Set RSObj=Nothing End If End Function '取得会员组选项--多选列表 参数:SelectArr--默认选择项以","隔开,RowNum--每行显示选项数 Public Function GetUserGroup_CheckBox(OptionName,SelectArr,RowNum) Dim n:n=0 'Dim RSObj:Set RSObj=Server.CreateObject("Adodb.Recordset") 'IF RowNum<=0 Then RowNum=3 'RSObj.Open "Select ID,GroupName From KS_UserGroup",Conn,1,1 'GetUserGroup_CheckBox="" 'Do While Not RSObj.Eof 'GetUserGroup_CheckBox=GetUserGroup_CheckBox & "" 'For N=1 To RowNum 'GetUserGroup_CheckBox=GetUserGroup_CheckBox & "" 'RSObj.MoveNext 'If RSObj.Eof Then Exit For 'Next 'GetUserGroup_CheckBox=GetUserGroup_CheckBox & "" 'If RSObj.Eof Then Exit Do 'Loop 'GetUserGroup_CheckBox=GetUserGroup_CheckBox & "
    " 'If FoundInArr(SelectArr,RSObj(0),",")<>0 Then 'GetUserGroup_CheckBox=GetUserGroup_CheckBox & "  " 'Else 'GetUserGroup_CheckBox=GetUserGroup_CheckBox & "  " 'End IF 'GetUserGroup_CheckBox=GetUserGroup_CheckBox & "
    " 'RSObj.Close:Set RSObj=Nothing IF RowNum<=0 Then RowNum=3 Dim RSObj:Set RSObj=conn.execute("PRO_GetUserGroup_Option") If Not RSObj.Eof Then dim Total_,jj,SQL,ID_,GroupName_ SQL=RSObj.GetRows(-1) RSObj.Close : Set RSObj=Nothing Total_=Ubound(SQL,2) GetUserGroup_CheckBox="" GetUserGroup_CheckBox=GetUserGroup_CheckBox & "" For jj = 0 To Total_ ID_ = SQL(0,jj) GroupName_ = SQL(1,jj) GetUserGroup_CheckBox=GetUserGroup_CheckBox & "" Next GetUserGroup_CheckBox=GetUserGroup_CheckBox & "" GetUserGroup_CheckBox=GetUserGroup_CheckBox & "
    " If FoundInArr(SelectArr,ID_,",")<>0 Then GetUserGroup_CheckBox=GetUserGroup_CheckBox & "  " Else GetUserGroup_CheckBox=GetUserGroup_CheckBox & "  " End IF GetUserGroup_CheckBox=GetUserGroup_CheckBox & "
    " else RSObj.Close : Set RSObj=Nothing End If End Function '取得用户组名称 Public Function GetUserGroupName(GroupID) On Error Resume Next 'GetUserGroupName=Conn.Execute("Select GroupName From KS_UserGroup Where ID=" & GroupID)(0) GetUserGroupName=Conn.Execute("PRO_GetUserGroupName " & GroupID)(0) if err then GetUserGroupName="" End Function '会员投稿文章,图片,下载等增加积分,发送站内短信操作 '参数ChannelID-频道ID,UserName---用户名称,InfoTitle---投稿的主题 Public Sub SignUserInfoOK(ChannelID,UserName,InfoTitle,InfoID) IF Not IsNumeric(ChannelID) Then Exit Sub Dim ClientName,GroupID,RSObj 'Set RSObj=Conn.Execute("Select top 1 RealName,GroupID From KS_User Where UserName='" & UserName & "'") Set RSObj=Conn.Execute("PRO_SignUserInfoOK '" & UserName & "'") IF Not RSObj.Eof Then ClientName=RSObj(0):If ClientName="" Then ClientName=UserName GroupID=RSObj(1) RSObj.Close:Set RSObj=Nothing Dim ScoreRate:ScoreRate=ChkClng(U_S(GroupID,3)) Dim PointRate:PointRate=ChkClng(U_S(GroupID,4)) Dim MoneyRate:MoneyRate=ChkClng(U_S(GroupID,5)) '成功则发送站内通知信件 Dim Sender:Sender=Setting(0) Dim Title:Title="恭喜,您发表的" & C_S(ChannelID,3) & "[" & InfoTitle & "]已通过审核!!!" Dim Message:Message="" & C_S(ChannelID,3) & "标题:" & InfoTitle &" 已通过审核!
    " If Conn.Execute("Select top 1 * From KS_LogMoney Where UserName='" & UserName & "' and ChannelID=" & ChannelID & " and InfoID=" & InfoID).Eof And C_S(ChannelID,18)*MoneyRate<>0 Then '没有记录才给增加金钱 If C_S(ChannelID,18)>0 Then Message = Message & "获得金钱:" & C_S(ChannelID,18)*MoneyRate & " 元人民币
    " ElseIf C_S(ChannelID,18)<0 Then Message = Message & "消耗金钱:" & Abs(C_S(ChannelID,18))*MoneyRate & " 元人民币
    " End IF End If If Conn.Execute("Select top 1 * From KS_LogPoint Where UserName='" & UserName & "' and ChannelID=" & ChannelID & " and InfoID=" & InfoID & " and ContributeFlag=1").Eof And C_S(ChannelID,19)*PointRate<>0 Then If C_S(ChannelID,19)>0 Then Message = Message & "获得" & Setting(45) & ":" & C_S(ChannelID,19)*PointRate & " " & Setting(46) & Setting(45) & "
    " ElseIf C_S(ChannelID,19)<0 Then Message = Message & "消耗" & Setting(45) & ":" & Abs(C_S(ChannelID,19))*PointRate & " " & Setting(46) & Setting(45) & "
    " End If End If If Conn.Execute("Select top 1 * From KS_LogScore Where UserName='" & UserName & "' and ChannelID=" & ChannelID & " and InfoID=" & InfoID).Eof And C_S(ChannelID,20)*ScoreRate<>0 Then '没有记录才给增加积分 If C_S(ChannelID,20)>0 Then Message = Message & "获得积分:" & C_S(ChannelID,20)*ScoreRate & " 分积分
    " ElseIf C_S(ChannelID,20)<0 Then Message = Message & "消耗积分:" & Abs(C_S(ChannelID,20))*ScoreRate & " 分积分
    " End If End If Message = Message & "
    备注:此信息由系统自动发布,请不要回复!!!" If C_S(ChannelID,19)<0 Then Call PointInOrOut(ChannelID,InfoID,UserName,2,-C_S(ChannelID,19)*PointRate,"系统","发表" & C_S(ChannelID,3) & "[" & InfoTitle & "]产生",1) Else Call PointInOrOut(ChannelID,InfoID,UserName,1,C_S(ChannelID,19)*PointRate,"系统","发表" & C_S(ChannelID,3) & "[" & InfoTitle & "]产生",1) End If If C_S(ChannelID,20)<0 Then Call ScoreInOrOut(UserName,2,-C_S(ChannelID,20)*ScoreRate,"系统","发表" & C_S(ChannelID,3) & "[" & InfoTitle & "]产生",ChannelID,InfoID) Else Call ScoreInOrOut(UserName,1,C_S(ChannelID,20)*ScoreRate,"系统","发表" & C_S(ChannelID,3) & "[" & InfoTitle & "]产生",ChannelID,InfoID) End If If C_S(ChannelID,18)<0 Then Call MoneyInOrOut(UserName,ClientName,-C_S(ChannelID,18)*MoneyRate,4,2,SqlNowString,"0","系统","发表" & C_S(ChannelID,3) & "[" & InfoTitle & "]产生",ChannelID,InfoID,0) Else Call MoneyInOrOut(UserName,ClientName,C_S(ChannelID,18)*MoneyRate,4,1,SqlNowString,"0","系统","发表" & C_S(ChannelID,3) & "[" & InfoTitle & "]产生",ChannelID,InfoID,0) End If If ChkClng(U_S(GroupID,10))=1 Then Call SendInfo(UserName,Sender,Title,Message) Else RSObj.Close:Set RSObj=Nothing End IF End Sub '功能:会员点券明细出入函数 '参数:Channelid-模块ID,InfoID-信息ID,UserName-用户名,InOrOutFlag-操作类型1收入2支出,Point-交易点数,User-操作员,Descript-操作备注 Public Function PointInOrOut(ChannelID,InfoID,UserName,InOrOutFlag,Point,User,Descript,ContributeFlag) If Not IsNumeric(InOrOutFlag) Or Not IsNumeric(Point) Or Point=0 Then PointInOrOut=false:Exit Function Dim PointParam,CurrPoint If InOrOutFlag=1 Then PointParam="Set Point=Point+" & Point ElseIF InOrOutFlag=2 Then PointParam="Set Point=Point-" & Point Else PointInOrOut=false:Exit Function End If If (Conn.Execute("Select top 1 * From KS_LogPoint Where UserName='" & UserName & "' and ChannelID=" & ChannelID & " and InfoID=" & InfoID & " And InOrOutFlag=" & InOrOutFlag).Eof) Or (ChannelID=0 And InfoID=0) or ContributeFlag=0 Then On Error Resume Next Conn.Execute("Update KS_User " & PointParam & " Where UserName='" & UserName & "'") CurrPoint=Conn.Execute("Select top 1 Point From KS_User Where UserName='" & UserName & "'")(0) If IsObject(Session(SiteSN&"UserInfo")) Then Session(SiteSN&"UserInfo").DocumentElement.SelectSingleNode("row").SelectSingleNode("@point").Text=currPoint Conn.Execute("Insert into KS_LogPoint(ChannelID,InfoID,UserName,InOrOutFlag,Point,Times,[User],Descript,Adddate,IP,CurrPoint,ContributeFlag) values(" & ChannelID & "," & InfoID & ",'" & UserName & "',"& InOrOutFlag & "," & Point & ",1,'" & replace(User,"'","""") & "','" & replace(Descript,"'","""") & "'," & SqlNowString & ",'" & replace(getip,"'","""") & "'," & CurrPoint & "," & ContributeFlag & ")") End If IF Err Then PointInOrOut=false Else PointInOrOut=true End Function '功能:会员积分明细出入函数 '参数:UserName-用户名,InOrOutFlag-操作类型1收入2支出,Score-交易点数,User-操作员,Descript-操作备注 Public Function ScoreInOrOut(UserName,InOrOutFlag,Score,User,Descript,ChannelID,InfoID) If Not IsNumeric(InOrOutFlag) Or Not IsNumeric(Score) Or Score=0 Then ScoreInOrOut=false:Exit Function Dim ScoreParam,CurrScore If InOrOutFlag=1 Then ScoreParam="Set Score=Score+" & Score '判断有没有到达每天增加的总限 If ChkClng(Setting(165))<>0 Then Dim TodayScore:TodayScore=ChkClng(Conn.Execute("select sum(Score) from ks_logscore where InOrOutFlag=1 and year(adddate)=year(" & SQLNowString & ") and month(adddate)=month(" & SQLNowString & ") and day(adddate)=day(" & SQLNowString & ") and username='" & UserName & "'")(0)) If TodayScore>=ChkClng(Setting(165)) Then Exit Function End If ElseIF InOrOutFlag=2 Then ScoreParam="Set Score=Score-" & Score Else ScoreInOrOut=false:Exit Function End If If (Conn.Execute("Select top 1 * From KS_LogScore Where UserName='" & UserName & "' and ChannelID=" & ChannelID & " and InfoID=" & InfoID & " And InOrOutFlag=" & InOrOutFlag).Eof) Or (ChannelID=0 And InfoID=0) Then On Error Resume Next Conn.Execute("Update KS_User " & ScoreParam & " Where UserName='" & UserName & "'") CurrScore=Conn.Execute("Select top 1 Score From KS_User Where UserName='" & UserName & "'")(0) If IsObject(Session(SiteSN&"UserInfo")) Then Session(SiteSN&"UserInfo").DocumentElement.SelectSingleNode("row").SelectSingleNode("@score").Text=currscore Conn.Execute("Insert into KS_LogScore(UserName,InOrOutFlag,Score,CurrScore,[User],Descript,Adddate,IP,ChannelID,InfoID,[Times]) values('" & UserName & "',"& InOrOutFlag & "," & Score & ","&CurrScore & ",'" & replace(User,"'","""") & "','" & replace(Descript,"'","""") & "'," & SqlNowString & ",'" & replace(getip,"'","""") & "'," & ChannelID &"," & InfoID &",1)") End If IF Err Then ScoreInOrOut=false Else ScoreInOrOut=true End Function '功能:资金明细出入函数 '参数:UserName-用户名,ClientName-客户姓名,Money-金钱,MoneyType-类型,InOrOutFlag-操作类型1收入2支出,PayTime-汇款日期,OrderID-订单号,Inputer-操作员,Remark-操作备注,MustIn -强行写入 1是 0否 Public Function MoneyInOrOut(UserName,ClientName,Money,MoneyType,InorOutFlag,PayTime,OrderID,Inputer,Remark,ChannelID,InfoID,MustIn) If Not IsNumeric(InOrOutFlag) Or Not IsNumeric(Money) Or Money="0" Then MoneyInOrOut=false:Exit Function Dim MoneyParam,CurrMoney If InOrOutFlag=1 Then MoneyParam="Set [Money]=[Money]+" & Money ElseIF InOrOutFlag=2 Then MoneyParam="Set [Money]=[Money]-" & Money Else MoneyInOrOut=false:Exit Function End If If (Conn.Execute("Select top 1 * From KS_LogMoney Where UserName='" & UserName & "' and ChannelID=" & ChannelID & " and InfoID=" & InfoID & " And IncomeOrPayOut=" & InOrOutFlag).Eof) Or (ChannelID=0 And InfoID=0) Or MustIn=1 Then On Error Resume Next Conn.Execute("Update KS_User " & MoneyParam & " Where UserName='" & UserName & "'") CurrMoney=Conn.Execute("Select top 1 Money From KS_User Where UserName='" & UserName & "'")(0) If IsObject(Session(SiteSN&"UserInfo")) Then Session(SiteSN&"UserInfo").DocumentElement.SelectSingleNode("row").SelectSingleNode("@money").Text=currmoney Conn.Execute("Insert into KS_LogMoney([UserName],[ClientName],[Money],[MoneyType],[IncomeOrPayOut],[OrderID],[Remark],[PayTime],[LogTime],[Inputer],[IP],[CurrMoney],[ChannelID],[InfoID],[Times]) values('" & UserName & "','" & ClientName & "'," & Money & "," & MoneyType & ","& InOrOutFlag & ",'" & OrderID & "','" & replace(Remark,"'","""") & "'," & SqlNowString & "," &SqlNowString & ",'" & replace(inputer,"'","""") & "','" & replace(getip,"'","""") & "'," & CurrMoney & "," & ChannelID & "," & InfoID & ",1)") End If IF Err Then MoneyInOrOut=false Else MoneyInOrOut=true End Function '会员有效期明细出入函数 '参数:UserName,InOrOutFlag,Edays,User,Descript Function EdaysInOrOut(UserName,InOrOutFlag,Edays,User,Descript) If Not IsNumeric(InOrOutFlag) Or Not IsNumeric(Edays) Or Edays=0 Then EdaysInOrOut=false:Exit Function Conn.Execute("insert into KS_LogEdays(UserName,InOrOutFlag,Edays,[user],descript,adddate,ip) values('" & UserName & "'," & InOrOutFlag & "," & Edays & ",'" & user & "','" & replace(descript,"'","""") & "'," & SqlNowString & ",'" & getip & "')") IF Err Then EdaysInOrOut=false Else EdaysInOrOut=true End Function '发送站内信息 '参数Incept--接收者,Sender-发送者,title--主题,Content--信件内容 Public Sub SendInfo(Incept,Sender,title,Content) Conn.Execute("insert Into KS_Message(Incept,Sender,Title,Content,SendTime,Flag,IsSend,DelR,DelS) values('" & Incept & "','" & Sender & "','" & replace(Title,"'","""") & "','" & replace(Content,"'","""") & "'," & SqlNowString & ",0,1,0,0)") End Sub '过滤非法字符 Public Function FilterIllegalChar(ByVal Content) If IsNul(Content) Then Exit Function Dim SplitStrArr,K:SplitStrArr=split(Setting(55),vbCrlf) For K=0 To Ubound(SplitStrArr) If Not IsNul(SplitStrArr(K)) Then Content=Replace(Content,Split(SplitStrArr(K),"=")(0),Split(SplitStrArr(K),"=")(1)) End If Next FilterIllegalChar=Content End Function '分页SQL语句生成代码 Function GetPageSQL(tblName,fldName,PageSize,PageIndex,OrderType,strWhere,fieldIds) Dim strTemp,strSQL,strOrder '根据排序方式生成相关代码 if OrderType=0 then strTemp=">(select max([" & fldName & "])" strOrder=" order by [" & fldName & "] asc" else strTemp="<(select min([" & fldName & "])" strOrder=" order by [" & fldName & "] desc" end if '若是第1页则无须复杂的语句 if PageIndex=1 then strTemp="" if strWhere<>"" then strTemp = " where " + strWhere strSQL = "select top " & PageSize & " " & fieldIds & " from [" & tblName & "]" & strTemp & strOrder else '若不是第1页,构造SQL语句 strSQL="select top " & PageSize & " " & fieldIds & " from [" & tblName & "] where [" & fldName & "]" & strTemp & _ " from (select top " & (PageIndex-1)*PageSize & " [" & fldName & "] from [" & tblName & "]" if strWhere<>"" then strSQL=strSQL & " where " & strWhere end if strSQL=strSQL & strOrder & ") as tblTemp)" if strWhere<>"" then strSQL=strSQL & " And " & strWhere end if strSQL=strSQL & strOrder end if GetPageSQL=strSQL End Function '正则表表达式验证函数 patrn-正则表达式 strng-需要验证的字符串 Function RegExpTest(patrn, strng) Dim regEx, retVal ' 建立变量。 Set regEx = New RegExp ' 建立正则表达式。 regEx.Pattern = patrn ' 设置模式。 regEx.IgnoreCase = False ' 设置是否区分大小写。 retVal = regEx.Test(strng) ' 执行搜索测试。 RegExpTest = retVal '返回不尔值,不符合就返回false,符合为true End Function '手机号验证 Function IsValidMobile(mobile_p) 'if RegExpTest("(^(013|014|015|018|13|14|15|18|18)\d{9}$)", mobile_p) then if RegExpTest("(^(13|14|15|17|18)\d{9}$)", mobile_p) then IsValidMobile = true Else IsValidMobile = false End If End Function '高速执行查询语句 Function execSql(Sql_p) Dim RS Set RS=Conn.Execute(Sql_p) Set execSql = RS End Function '************获取远程获得远程HTML文件源码 start**************************** function getHTTPPage(url) On Error Resume Next dim http set http=Server.createobject("Msxml2.XMLHTTP") Http.open "GET",url,false Http.send() if Http.readystate<>4 then exit function getHTTPPage=bytes2BSTR(Http.responseBody) set http=nothing if err.number<>0 then err.Clear end function Function bytes2BSTR(vIn) dim strReturn dim i,ThisCharCode,NextCharCode strReturn = "" For i = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn,i,1)) If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn,i+1,1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) i = i + 1 End If Next bytes2BSTR = strReturn End Function '************获取远程获得远程HTML文件源码 end **************************** '去掉省份名称中关键词 Function delShengKeyWord(Sheng_p) If IsNull(Sheng_p) Or ""=Sheng_p Then Exit function End if Sheng_p = Trim(Sheng_p)'去掉字符串两边空格 If Len(Sheng_p)>2 Then Sheng_p = Replace(Sheng_p,"特别行政区","") Sheng_p = Replace(Sheng_p,"维吾尔","") Sheng_p = Replace(Sheng_p,"自治区","") Sheng_p = Replace(Sheng_p,"壮族","") Sheng_p = Replace(Sheng_p,"回族","") Sheng_p = Replace(Sheng_p,"省","") Sheng_p = Replace(Sheng_p,"市","") End If delShengKeyWord = Sheng_p '返回字符串 End Function '去掉城市名称中关键词 Function delShiKeyWord(shi_p) If IsNull(shi_p) Or ""=shi_p Then Exit function End If shi_p = Trim(shi_p)'去掉字符串两边空格 If Len(shi_p)>2 Then shi_p = Replace(shi_p,"布依族苗族自治州","") shi_p = Replace(shi_p,"省直辖级行政单位.","") shi_p = Replace(shi_p,"土家族苗族自治州","") shi_p = Replace(shi_p,"土家族苗族自治县","") shi_p = Replace(shi_p,"苗族土家族自治县","") shi_p = Replace(shi_p,"傣族景颇族自治州","") shi_p = Replace(shi_p,"蒙古族藏族自治州","") shi_p = Replace(shi_p,"南苗族侗族自治州","") shi_p = Replace(shi_p,"藏族羌族自治州","") shi_p = Replace(shi_p,"壮族苗族自治州","") shi_p = Replace(shi_p,"省直辖行政单位","") shi_p = Replace(shi_p,"柯尔克孜自治州","") shi_p = Replace(shi_p,"朝鲜族自治州","") shi_p = Replace(shi_p,"傈僳族自治州","") shi_p = Replace(shi_p,"哈萨克自治州","") shi_p = Replace(shi_p,"土家族自治县","") shi_p = Replace(shi_p,"傣族自治州","") shi_p = Replace(shi_p,"白族自治州","") shi_p = Replace(shi_p,"回族自治州","") shi_p = Replace(shi_p,"蒙古自治州","") shi_p = Replace(shi_p,"藏族自治州","") shi_p = Replace(shi_p,"彝族自治州","") shi_p = Replace(shi_p,"郭勒盟","") shi_p = Replace(shi_p,"哈尼族","") shi_p = Replace(shi_p,"直辖市","") shi_p = Replace(shi_p,"市辖区","") shi_p = Replace(shi_p,"地区","") shi_p = Replace(shi_p,"区","") shi_p = Replace(shi_p,"市","") shi_p = Replace(shi_p,"县","") End If delShiKeyWord = shi_p '返回字符串 End Function '====================================================================================== '标记关联产品的内容是否有更新 Function update_product_isNew(KS_productID) KS_productID = ChkClng(KS_productID) If 0 <> KS_productID Then 'execSql("update ks_product set KS_isNew=1 where id=" & KS_productID ) Conn.Execute("exec PRO_update_product_isNew " & KS_productID ) End If End Function '标记关联品牌的内容是否有更新 Function update_PPB_isNew(ks_ppId) ks_ppId = ChkClng(ks_ppId) If 0 <> ks_ppId Then 'execSql("update new.KS_U_ppb set KS_isNew=1 where id=" & ks_ppId) Conn.Execute("exec PRO_update_PPB_isNew " & ks_ppId ) End If End Function Sub getDSCX(productid_P) Dim productid_:productid_ = KS.ChkClng(productid_P) Dim RSObj:Set RSObj=Server.CreateObject("ADODB.RECORDSET") RSObj.Open "SELECT top 1 ks_product,ks_beginTime,ks_endTime,ks_num,ks_Price,ks_shoufuPrice,ks_Status,ks_url from [KS_U_dscx] where id=" & productid_ ,conn,1,1 If Not RSObj.EOF Then Application(ks.SiteSN&"_DSCX_ks_product" & productid_) = RSObj("ks_product") Application(ks.SiteSN&"_DSCX_ks_beginTime" & productid_) = RSObj("ks_beginTime") Application(ks.SiteSN&"_DSCX_ks_endTime" & productid_) = RSObj("ks_endTime") Application(ks.SiteSN&"_DSCX_ks_num" & productid_) = RSObj("ks_num") Application(ks.SiteSN&"_DSCX_ks_Price" & productid_) = RSObj("ks_Price") Application(ks.SiteSN&"_DSCX_ks_shoufuPrice" & productid_) = RSObj("ks_shoufuPrice") Application(ks.SiteSN&"_DSCX_ks_Status" & productid_) = RSObj("ks_Status") Application(ks.SiteSN&"_DSCX_ks_url" & productid_) = RSObj("ks_url") End If End Sub '************************************************** '函数名:getBeyondImgUrl '作 用:获得文本第一张图片URL '参 数:LocalFile 本地文件 '************************************************** Public Function getBeyondImgUrl(ReplaceContent) Dim re, BeyondFile, BFU, SaveFileName,SaveFileList Set re = New RegExp re.IgnoreCase = True re.Global = True re.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\){1}((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*\/)((\S)+[.]{1}(gif|jpg|png|bmp)))" Set BeyondFile = re.Execute(ReplaceContent) Set re = Nothing 'SaveFileList = BeyondFile(0) SaveFileList = "" For Each BFU In BeyondFile If "" = SaveFileList Then SaveFileList=BFU End If Next getBeyondImgUrl = SaveFileList End Function '解析json Dim scriptCtrl Function parseJSON(str) If Not IsObject(scriptCtrl) Then Set scriptCtrl = Server.CreateObject("MSScriptControl.ScriptControl") scriptCtrl.Language = "JScript" scriptCtrl.AddCode "Array.prototype.get = function(x) { return this[x]; }; var result = null;" End If scriptCtrl.ExecuteStatement "result = " & str & ";" Set parseJSON = scriptCtrl.CodeObject.result End Function ' post获取数据函数 public function post_https(post_url) dim https set https = server.createobject("msxml2.xmlhttp") with https .open "get", post_url, false .setrequestheader "content-type","application/json" .send post_https = .responsebody end With post_https = bytestobstr(post_https,"UTF-8") set https = nothing end function ' 转换编码 function bytestobstr(body,cset) dim objstream set objstream = server.createobject("adodb.stream") objstream.type = 1 objstream.mode = 3 objstream.open 'if lenb(body)>0 then objstream.write body 'end If objstream.position = 0 objstream.type = 2 objstream.charset = cset bytestobstr = objstream.readtext objstream.close set objstream = nothing end function End Class %> <% '**************************************************** 'Newmotor.com.cn '**************************************************** Dim KS Set KS=New PublicCls Dim ChannelID,ID,Hits,RS,SqlStr,HitsByDay,HitsByWeek,HitsByMonth,Action,HitsByYear,LastHitsTime,SQL,currentTime,startHitsTime_ByDay,startHitsTime_ByWeek,startHitsTime_ByMonth,startHitsTime_ByYear Dim currenthour currenthour = hour(now()) If currenthour > 19 Or currenthour < 2 Then 'ks.die "" End If ChannelID=KS.ChkClng(KS.S("M")) ID = KS.ChkClng(KS.S("ID")) Action=KS.G("Action") currentTime = Now() 'If conn.execute("select count(Channelid) from dbo.KS_Channel where Channelid=" & ChannelID )(0)=0 Then ' ks.die "无效参数!" 'End If If ID = 0 Or ChannelID=0 Then Hits = 0 Else Hits = Conn.Execute("select hits from ks_wdxt where ID="& ID)(0) 'If 1 = ChannelID Then ' SqlStr = "SELECT top 1 Hits,HitsByDay,HitsByWeek,HitsByMonth,LastHitsTime,HitsByYear,startHitsTime_ByDay,startHitsTime_ByWeek,startHitsTime_ByMonth,startHitsTime_ByYear FROM [" & KS.C_S(ChannelID,2) & "] Where ID=" & ID 'Else ' SqlStr = "SELECT top 1 Hits,HitsByDay,HitsByWeek,HitsByMonth,LastHitsTime FROM [" & KS.C_S(ChannelID,2) & "] Where ID=" & ID 'End If 'Set Rs=conn.execute(SqlStr) 'If RS.bof And RS.EOF Then ' rs.Close:Set rs = Nothing ' Hits = 0 'Else ' SQL=RS.GetRows(1) ' RS.Close : Set RS=Nothing ' Hits = SQL(0,0) ' Erase Sql 'ASP用Erase方法对动态和静态数组释放内存 'End If End If Hits = Hits + 1 Response.Write "document.write('" & Hits & "');" Conn.Execute("update [ks_wdxt] set Hits="& Hits &" Where ID=" & ID) 'If 1 = ChannelID Or 2 = ChannelID Or 5 = ChannelID Or 7 = ChannelID Or 113 = ChannelID Or 116 = ChannelID Or 120 = ChannelID Then 'Conn.Execute("update [" & KS.C_S(ChannelID,2) & "] set Hits="& Hits &",HitsByDay=" & HitsByDay & ",HitsByWeek=" & HitsByWeek & ",HitsByMonth=" & HitsByMonth & ",LastHitsTime='" & currentTime &"',HitsByYear="& HitsByYear &",startHitsTime_ByYear='"& startHitsTime_ByYear &"',startHitsTime_ByWeek='"& startHitsTime_ByWeek &"',startHitsTime_ByMonth='"& startHitsTime_ByMonth &"',startHitsTime_ByDay='"& startHitsTime_ByDay &"' Where ID=" & ID) 'Else 'Conn.Execute("update [" & KS.C_S(ChannelID,2) & "] set Hits="& Hits &",HitsByDay=" & HitsByDay & ",HitsByWeek=" & HitsByWeek & ",HitsByMonth=" & HitsByMonth & ",LastHitsTime='" & currentTime&"' Where ID=" & ID) 'End If 'Conn.Execute("Update [KS_ItemInfo] Set Hits=" & Hits & ",HitsByDay=" & HitsByDay & ",HitsByWeek=" & HitsByWeek & ",HitsByMonth=" & HitsByMonth & ",LastHitsTime='" & currentTime&"' Where channelid=" & ChannelID & " and InfoID=" & ID) 'End If Call CloseConn() Set KS=Nothing %>