PageRenderTime 28ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/Wap/Show.asp

https://github.com/joechen2010/health
ASP | 369 lines | 339 code | 9 blank | 21 comment | 2 complexity | 3629c2bee6ab227a624257045123a7d9 MD5 | raw file
  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
  2. <%
  3. Option Explicit
  4. '********************************
  5. '* 程序功能:内容页
  6. '* 演示地址: http://wap.kesion.com/
  7. '********************************
  8. Response.ContentType="text/vnd.wap.wml"
  9. Response.Charset="utf-8"
  10. Response.Write "<?xml version=""1.0"" encoding=""utf-8""?>" &vbcrlf
  11. Response.Write "<!DOCTYPE wml PUBLIC ""-//WAPFORUM//DTD WML 1.1//EN"" ""http://www.wapforum.org/DTD/wml_1.1.xml"">" &vbcrlf
  12. %>
  13. <!--#include file="Conn.asp"-->
  14. <!--#include file="KS_Cls/Kesion.CommonCls.asp"-->
  15. <!--#include file="KS_Cls/Kesion.Label.CommonCls.asp"-->
  16. <%
  17. Dim KSCls
  18. Set KSCls = New InfoCls
  19. KSCls.Kesion()
  20. Set KSCls = Nothing
  21. Class InfoCls
  22. Private KS,KSRFObj
  23. Private RS,SQLStr,DomainStr,UserLoginTF,ID,ChannelID,PayTF
  24. Private InfoPurview,ReadPoint,ChargeType,PitchTime,ReadTimes,ClassPurview,UserName
  25. Private strContent,FileContent
  26. Private Sub Class_Initialize()
  27. Set KS=New PublicCls
  28. Set KSRFObj = New Refresh
  29. End Sub
  30. 'Call Kesion()
  31. Private Sub Class_Terminate()
  32. Call CloseConn()
  33. Set KS=Nothing
  34. End Sub
  35. Public Sub Kesion()
  36. strContent=false
  37. DomainStr=KS.GetDomain
  38. UserLoginTF=Cbool(KSUser.UserLoginChecked)
  39. ID=KS.ChkClng(KS.S("ID"))
  40. ChannelID=KS.ChkClng(KS.S("ChannelID"))
  41. PayTF=KS.S("PayTF")
  42. IF ID=0 Then Exit Sub
  43. Select Case KS.C_S(ChannelID,6)
  44. Case 1
  45. SqlStr= "Select top 1 a.*,ClassPurview,DefaultArrGroupID,DefaultReadPoint,DefaultChargeType,DefaultPitchTime,DefaultReadTimes From " & KS.C_S(ChannelID,2) & " a inner join KS_Class b on a.tid=b.id Where a.ID=" & ID
  46. Case 2
  47. SqlStr= "Select top 1 a.*,ClassPurview,ClassID,DefaultArrGroupID,DefaultReadPoint,DefaultChargeType,DefaultPitchTime,DefaultReadTimes From " & KS.C_S(ChannelID,2) & " a inner join ks_class b on a.tid=b.id Where a.ID=" & ID
  48. Case 3
  49. SqlStr= "Select top 1 * from "&KS.C_S(ChannelID,2)&" Where ID=" & ID
  50. Case 5
  51. SqlStr= "Select top 1 * from "&KS.C_S(ChannelID,2)&" Where verific=1 And ID=" & ID
  52. Case 7
  53. SqlStr= "Select * from KS_Movie Where verific=1 And ID=" & ID
  54. Case 8
  55. SqlStr= "Select b.WapTemplateID,a.* From KS_GQ a inner join KS_Class b on a.Tid=b.ID where a.ID=" & ID
  56. End Select
  57. Set RS=Server.CreateObject("Adodb.Recordset")
  58. RS.Open SqlStr,Conn,1,3
  59. IF RS.Eof And RS.Bof Then
  60. RS.Close:Set RS=Nothing
  61. Select Case KS.C_S(ChannelID,6)
  62. Case "1","2","3"
  63. Call KS.ShowError("系统提示!","系统提示!<br/>您要查看的" & KS.C_S(ChannelID,3) & "已删除。或是您非法传递注入参数!")
  64. Case "5"
  65. Call KS.ShowError("系统提示!","系统提示!<br/>您要查看的" & KS.C_S(ChannelID,3) & "已删除或是未通过暂停销售!")
  66. Case "7"
  67. Call KS.ShowError("系统提示!","系统提示!<br/>您要观看的影片已删除。或是没有通过审核!")
  68. Case "8"
  69. Call KS.ShowError("系统提示!","系统提示!<br/>您要查看的信息已删除。或是您非法传递注入参数!")
  70. End Select
  71. Else
  72. Call FCls.SetContentInfo(ChannelID,RS("Tid"),RS("ID"))
  73. Select Case KS.C_S(ChannelID,6)
  74. '=======================================================
  75. Case 1
  76. If RS("Verific")<>1 And UserLoginTF=False And KSUser.UserName<>RS("Inputer") Then
  77. Call KS.ShowError("系统提示!","对不起,该" & KS.C_S(ChannelID,3) & "还没有通过审核!")
  78. End If
  79. InfoPurview=Cint(RS("InfoPurview"))
  80. ReadPoint=Cint(RS("ReadPoint"))
  81. ChargeType=Cint(RS("ChargeType"))
  82. PitchTime=Cint(RS("PitchTime"))
  83. ReadTimes=Cint(RS("ReadTimes"))
  84. ClassPurview=Cint(RS("ClassPurview"))
  85. UserName=RS("Inputer")
  86. '增加用户查看文章次数
  87. Conn.Execute("UPDATE " & KS.C_S(ChannelID,2) & " SET Hits=Hits+1 WHERE ID="&ID)
  88. Call PowerLimit()
  89. FileContent = KSRFObj.LoadTemplate(RS("WapTemplateID"))
  90. FileContent = KSRFObj.KSLabelReplaceAll(FileContent)
  91. If InStr(FileContent,"[KS_Charge]")=0 Then
  92. Dim HtmlLabel,HtmlLabelArr,I
  93. HtmlLabel = KSRFObj.GetFunctionLabel(FileContent,"{=GetArticleContent")
  94. HtmlLabelArr=Split(HtmlLabel,"@@@")
  95. For I=0 To Ubound(HtmlLabelArr)
  96. FileContent = Replace(FileContent,HtmlLabelArr(I),"[KS_Charge]"&HtmlLabelArr(I)&"[/KS_Charge]")
  97. Next
  98. End If
  99. '替换文章内容页标签为内容
  100. FileContent = KSRFObj.ReplaceNewsContent(ChannelID,RS, FileContent, "")
  101. If strContent<>"True" Then
  102. Dim ChargeContent:ChargeContent=KS.CutFixContent(FileContent, "[KS_Charge]", "[/KS_Charge]", 0)
  103. FileContent=Replace(FileContent,"[KS_Charge]" & ChargeContent &"[/KS_Charge]",strContent)
  104. Else
  105. FileContent=Replace(FileContent,"[KS_Charge]","")
  106. FileContent=Replace(FileContent,"[/KS_Charge]","")
  107. End If
  108. '=======================================================
  109. Case 2
  110. If RS("Verific")<>1 And UserLoginTF=False And KSUser.UserName<>RS("Inputer") Then
  111. Call KS.ShowError("系统提示!","对不起,该" & KS.C_S(ChannelID,3) & "还没有通过审核!")
  112. End If
  113. InfoPurview=Cint(RS("InfoPurview"))
  114. ReadPoint=Cint(RS("ReadPoint"))
  115. ChargeType=Cint(RS("ChargeType"))
  116. PitchTime=Cint(RS("PitchTime"))
  117. ReadTimes=Cint(RS("ReadTimes"))
  118. ClassPurview=Cint(RS("ClassPurview"))
  119. RS("Hits") = RS("Hits") + 1
  120. If DateDiff("D", RS("LastHitsTime"), Now()) <= 0 Then
  121. RS("HitsByDay") = RS("HitsByDay") + 1
  122. Else
  123. RS("HitsByDay") = 1
  124. End If
  125. If DateDiff("ww", RS("LastHitsTime"), Now()) <= 0 Then
  126. RS("HitsByWeek") = RS("HitsByWeek") + 1
  127. Else
  128. RS("HitsByWeek") = 1
  129. End If
  130. If DateDiff("m", RS("LastHitsTime"), Now()) <= 0 Then
  131. RS("HitsByMonth") = RS("HitsByMonth") + 1
  132. Else
  133. RS("HitsByMonth") = 1
  134. End If
  135. RS("LastHitsTime") = Now()
  136. RS.Update
  137. Call PowerLimit()
  138. FileContent = KSRFObj.LoadTemplate(RS("WapTemplateID"))
  139. FileContent = KSRFObj.KSLabelReplaceAll(FileContent)
  140. If Cbool(strContent)=true Then
  141. FileContent = KSRFObj.ReplacePictureContent(ChannelID,RS, FileContent, GetPictureByPage(ID,ChannelID,RS("PicUrls")))
  142. Else
  143. FileContent = KSRFObj.ReplacePictureContent(ChannelID,RS, FileContent,"")
  144. FileContent = Replace(FileContent,"{$GetPictureByPage}",strContent)
  145. End If
  146. '=======================================================
  147. Case 3
  148. FileContent = KSRFObj.LoadTemplate(RS("WapTemplateID"))
  149. FileContent = KSRFObj.KSLabelReplaceAll(FileContent)
  150. FileContent = KSRFObj.ReplaceDownLoadContent(ChannelID,RS, FileContent)
  151. '=======================================================
  152. Case 5
  153. FileContent = KSRFObj.LoadTemplate(RS("WapTemplateID"))
  154. FileContent = KSRFObj.KSLabelReplaceAll(FileContent)
  155. FileContent = KSRFObj.ReplaceProductContent(ChannelID,RS, FileContent)
  156. Case 7
  157. FileContent = KSRFObj.LoadTemplate(RS("WapTemplateID"))
  158. FileContent = KSRFObj.KSLabelReplaceAll(FileContent)
  159. FileContent = KSRFObj.ReplaceMovieContent(ChannelID,RS, FileContent)
  160. Case 8
  161. FileContent = KSRFObj.LoadTemplate(RS(0))
  162. FileContent = KSRFObj.KSLabelReplaceAll(FileContent)
  163. FileContent = KSRFObj.ReplaceGQContent(ChannelID,RS, FileContent)
  164. End Select
  165. FileContent = KS.GetEncodeConversion(FileContent)
  166. Response.Write FileContent
  167. RS.Close:Set RS=Nothing
  168. End If
  169. End Sub
  170. Sub PowerLimit()
  171. If InfoPurview=2 or ReadPoint>0 Then
  172. IF UserLoginTF=False Then
  173. Call GetNoLoginInfo'登录
  174. Else
  175. IF KS.FoundInArr(RS("ArrGroupID"),KSUser.GroupID,",")=False and readpoint=0 Then
  176. strContent="<br/><b>对不起,你所在的用户组没有查看本" & KS.C_S(ChannelID,3) & "的权限!</b><br/>"
  177. Else
  178. Call PayPointProcess()
  179. End If
  180. End If
  181. ElseIF InfoPurview=0 And (ClassPurview=1 or ClassPurview=2) Then
  182. If UserLoginTF=False Then
  183. Call GetNoLoginInfo'登录
  184. Else
  185. '============继承栏目收费设置时,读取栏目收费配置===========
  186. ReadPoint=Cint(RS("DefaultReadPoint"))
  187. ChargeType=Cint(RS("DefaultChargeType"))
  188. PitchTime=Cint(RS("DefaultPitchTime"))
  189. ReadTimes=Cint(RS("DefaultReadTimes"))
  190. '============================================================
  191. If ClassPurview=2 Then
  192. IF KS.FoundInArr(RS("DefaultArrGroupID"),KSUser.GroupID,",")=False Then
  193. strContent="<br/><b>对不起,你所在的用户组没有查看的权限!</b><br/>"
  194. Else
  195. Call PayPointProcess()
  196. End If
  197. Else
  198. Call PayPointProcess()
  199. End If
  200. End If
  201. Else
  202. Call PayPointProcess()
  203. End If
  204. End Sub
  205. '收费扣点处理过程
  206. Sub PayPointProcess()
  207. Dim UserChargeType:UserChargeType=KSUser.ChargeType
  208. If (Cint(ReadPoint)>0 or InfoPurview=2 or (InfoPurview=0 And (ClassPurview=1 Or ClassPurview=2))) And KSUser.UserName<>UserName Then
  209. If UserChargeType=1 Then
  210. Select Case ChargeType
  211. Case 0:Call CheckPayTF("1=1")
  212. Case 1:Call CheckPayTF("datediff(" & DataPart_H &",AddDate," & SqlNowString & ")<" & PitchTime)
  213. Case 2:Call CheckPayTF("Times<" & ReadTimes)
  214. Case 3:Call CheckPayTF("datediff(" & DataPart_H &",AddDate," & SqlNowString & ")<" & PitchTime & " or Times<" & ReadTimes)
  215. Case 4:Call CheckPayTF("datediff(" & DataPart_H &",AddDate," & SqlNowString & ")<" & PitchTime & " and Times<" & ReadTimes)
  216. Case 5:Call PayConfirm()
  217. End Select
  218. Elseif UserChargeType=2 Then
  219. If KSUser.GetEdays <=0 Then
  220. strContent="<br/>对不起,你的账户已过期 "&KSUser.GetEdays&" 天,此文需要在有效期内才可以查看!<br/><br/>"
  221. strContent=strContent&"充值有效期方法<br/>"
  222. strContent=strContent&"1.请用购买到神州行充值卡充值,点击进入<a href=""User/User_CardOnline.asp?"&KS.WapValue&""">神州行充值...</a><br/>"
  223. Else
  224. Call GetContent()
  225. End If
  226. Else
  227. Call GetContent()
  228. End If
  229. Else
  230. Call GetContent()
  231. End IF
  232. End Sub
  233. '检查是否过期,如果过期要重复扣点券
  234. '返回值 过期返回 true,未过期返回false
  235. Sub CheckPayTF(Param)
  236. Dim SqlStr:SqlStr="Select top 1 Times From KS_LogPoint Where ChannelID=" & ChannelID & " And InfoID=" & ID & " And InOrOutFlag=2 and UserName='" & KSUser.UserName & "' And (" & Param & ") Order By ID"
  237. Dim RS:Set RS=Server.CreateObject("ADODB.RECORDSET")
  238. RS.Open SqlStr,Conn,1,3
  239. IF RS.Eof And RS.Bof Then
  240. Call PayConfirm()
  241. Else
  242. RS.Movelast
  243. RS(0)=RS(0)+1
  244. RS.Update
  245. Call GetContent()
  246. End IF
  247. RS.Close:Set RS=nothing
  248. End Sub
  249. Sub PayConfirm()
  250. If UserLoginTF=false Then Call GetNoLoginInfo():Exit Sub
  251. If ReadPoint<=0 Then Call GetContent():Exit Sub
  252. If Cint(KSUser.Point)<ReadPoint Then
  253. strContent="<br/>对不起,你的可用"&KS.Setting(45)&"不足!阅读本文需要 "&ReadPoint&" "&KS.Setting(46)&KS.Setting(45)&",你还有"&KSUser.Point&" "&KS.Setting(46)&KS.Setting(45)&"!<br/><br/>"
  254. strContent=strContent&"购买"&KS.Setting(45)&"方法<br/>"
  255. strContent=strContent&"请用购买到神州行充值卡充值你的"&KS.Setting(45)&",点击进入<a href=""User/User_CardOnline.asp?"&KS.WapValue&""">神州行充值...</a><br/>"
  256. Else
  257. If PayTF="yes" Then
  258. IF Cbool(KS.PointInOrOut(ChannelID,RS("ID"),KSUser.UserName,2,ReadPoint,"系统","阅读收费"&KS.C_S(ChannelID,3)&":<br/>"&RS("Title")))=True Then
  259. '支付投稿者提成
  260. Dim PayPoint:PayPoint=(ReadPoint*KS.C_C(RS("Tid"),11))/100
  261. If PayPoint>0 Then
  262. Call KS.PointInOrOut(ChannelID,RS("ID"),RS("Inputer"),1,PayPoint,"系统",KS.C_S(ChannelID,3) & "“" & RS("Title") & "”的提成")
  263. End If
  264. Call GetContent()
  265. End If
  266. Else
  267. strContent="<br/>阅读本文需要消耗 "&ReadPoint&" "&KS.Setting(46)&KS.Setting(45)&",你目前尚有"&KSUser.Point&""&KS.Setting(46)&KS.Setting(45)&"可用,阅读本文后,您将剩下"&KSUser.Point-ReadPoint&" "&KS.Setting(46)&KS.Setting(45)&"<br/>"
  268. strContent=strContent&"你确实愿意花"&ReadPoint&" "&KS.Setting(46)&KS.Setting(45)&"来阅读此文吗?<br/>"
  269. strContent=strContent&"<a href=""Show.asp?ChannelID="&ChannelID&"&amp;ID="&ID&"&amp;PayTF=yes&amp;"&KS.WapValue&""">我愿意</a> "
  270. strContent=strContent&"<a href=""Show.asp?ChannelID="&ChannelID&"&amp;ID="&ID&"&amp;"&KS.WapValue&""">我不愿意</a><br/>"
  271. End If
  272. End If
  273. End Sub
  274. Sub GetNoLoginInfo()
  275. strContent="<br/>对不起,你还没有登录,本文至少要求本站的注册会员才可查看!<br/>"
  276. strContent=strContent&"如果你还没有注册,请<a href=""User/Reg/?../../Show.asp?ChannelID="&ChannelID&"&amp;ID="&ID&""">点此注册</a>吧!<br/>"
  277. strContent=strContent&"如果您已是本站注册会员,赶紧<a href=""User/Login/?../../Show.asp?ChannelID="&ChannelID&"&amp;ID="&ID&""">点此登录</a>吧!<br/>"
  278. End Sub
  279. Sub GetContent()
  280. strContent=true
  281. End Sub
  282. '**************************************************
  283. '函数名:GetPictureByPage
  284. '作 用:取出查看图片内容(上一页、下一页方式)
  285. '**************************************************
  286. Function GetPictureByPage(ID,ChannelID,PhotoContent)
  287. On Error Resume Next
  288. Dim CurrPage,PicUrlsArr,TotalPage,Cols,Tpage,PageStr,n,C
  289. CurrPage=KS.ChkClng(KS.S("Page"))
  290. If CurrPage<=0 Then CurrPage=1
  291. PicUrlsArr = Split(PhotoContent, "|||")
  292. TotalPage = Cint(UBound(PicUrlsArr) + 1)
  293. Cols=KS.ChkClng(KS.S("Cols"))
  294. If Cols<=0 Then Cols=2
  295. If ((Ubound(PicUrlsArr)+1) Mod cols)=0 Then
  296. Tpage=(Ubound(PicUrlsArr)+1)\cols
  297. Else
  298. Tpage=(Ubound(PicUrlsArr)+1)\cols + 1
  299. End If
  300. If TPage<>1 Then
  301. If CurrPage=1 Then
  302. PageStr = PageStr & "每页显:"
  303. If Cols=2 Then
  304. PageStr = PageStr & "2 "
  305. Else
  306. PageStr = PageStr & "<a href=""Show.asp?ID="&ID&"&ChannelID="&ChannelID&"&Cols=2&"&KS.WapValue&""" >2</a> "
  307. End If
  308. If Cols=4 Then
  309. PageStr = PageStr & "4 "
  310. Else
  311. PageStr = PageStr & "<a href=""Show.asp?ID="&ID&"&ChannelID="&ChannelID&"&Cols=4&"&KS.WapValue&""" >4</a> "
  312. End If
  313. If Cols=6 Then
  314. PageStr = PageStr & "6"
  315. Else
  316. PageStr = PageStr & "<a href=""Show.asp?ID="&ID&"&ChannelID="&ChannelID&"&Cols=6&"&KS.WapValue&""" >6</a>"
  317. End If
  318. PageStr = PageStr & KS.C_S(ChannelID,4)&"<br/>"
  319. End If
  320. End If
  321. If TotalPage > 2 Then
  322. If KS.BusinessVersion = 1 Then
  323. PageStr = PageStr & "【<a href=""Plus/PhotoBroadcast.asp?ID="&ID&"&ChannelID="&ChannelID&"&"&KS.WapValue&""">自动播放</a>】<br/>"
  324. End if
  325. End if
  326. If KS.ChkClng(KS.S("Page"))<=1 Then
  327. n=0
  328. Else
  329. n=cols*(CurrPage-1)
  330. End If
  331. For c=1 To Cols
  332. If n<=Ubound(PicUrlsArr) Then
  333. dim url:url=Split(PicUrlsArr(n),"|")(2)
  334. if left(url,1)="/" then url=right(url,len(url)-1)
  335. if lcase(left(url),4)<>"http" then url=KS.Setting(2) & KS.Setting(3) & url
  336. PageStr = PageStr & "<img src="""&url&""" alt="""" /><br/>"
  337. PageStr = PageStr & Split(PicUrlsArr(n),"|")(0) & "<br/><a href="""&url&""">下载</a><br/>"
  338. Else
  339. PageStr = PageStr & ""
  340. End If
  341. n=n+1
  342. Next
  343. Dim startpage,k
  344. startpage=1:k=0
  345. If TPage<>1 Then
  346. If (CurrPage>=10) Then startpage=(CurrPage\10-1)*10+CurrPage Mod 10+2
  347. If CurrPage <>tpage Then
  348. PageStr = PageStr & "<a href=""Show.asp?ID="&ID&"&ChannelID="&ChannelID&"&Cols="&Cols&"&Page="&currpage+1&"&"&KS.WapValue&""">下页</a> "
  349. End If
  350. PageStr = PageStr & "<a href=""Show.asp?ID="&ID&"&ChannelID="&ChannelID&"&Cols="&Cols&"&page="&tpage&"&"&KS.WapValue&""" >末页</a> "
  351. PageStr = PageStr & "<a href=""Show.asp?ID="&ID&"&ChannelID="&ChannelID&"&Cols="&Cols&"&"&KS.WapValue&""" >首页</a> "
  352. If CurrPage<>1 Then
  353. PageStr = PageStr & "<a href=""Show.asp?ID="&ID&"&ChannelID="&ChannelID&"&Cols="&Cols&"&Page="&CurrPage-1&"&"&KS.WapValue&""">上页</a> "
  354. End If
  355. PageStr = PageStr & "<br/>本"&KS.C_S(ChannelID,3)&"共 "&TPage&"/"&CurrPage&"页"
  356. End If
  357. GetPictureByPage=PageStr
  358. End Function
  359. End Class
  360. %>