include.asp
上传用户:saigedz
上传日期:2019-10-14
资源大小:997k
文件大小:11k
源码类别:

中间件编程

开发平台:

HTML/CSS

  1. <%
  2. '///////////////////////////////////////////////////////////////////////////////
  3. '// 插件应用:    1.8 Pre Terminator 及以上版本, 其它版本的Z-blog未知
  4. '// 插件制作:    haphic(http://haphic.com/)
  5. '// 备    注:    主题管理插件
  6. '// 最后修改:   2008-6-28
  7. '// 最后版本:    1.2
  8. '///////////////////////////////////////////////////////////////////////////////
  9. '注册插件
  10. Call RegisterPlugin("ThemeSapper","ActivePlugin_ThemeSapper")
  11. Function ActivePlugin_ThemeSapper() 
  12. '加上二级菜单项
  13. Call Add_Response_Plugin("Response_Plugin_ThemesMng_SubMenu",MakeSubMenu("获得更多主题","../plugin/ThemeSapper/Xml_List.asp","m-left",False))
  14. Call Add_Response_Plugin("Response_Plugin_ThemesMng_SubMenu",MakeSubMenu("从本地安装主题","../plugin/ThemeSapper/Xml_Upload.asp","m-left",False))
  15. Call Add_Response_Plugin("Response_Plugin_ThemesMng_SubMenu",MakeSubMenu("主题管理扩展","../plugin/ThemeSapper/ThemeList.asp","m-left",False))
  16. 'Action_Plugin_Admin_End
  17. Call Add_Action_Plugin("Action_Plugin_Admin_End","Call ThemeSapper_AutoChk()")
  18. 'Action_Plugin_ThemesMng_Begin
  19. Call Add_Action_Plugin("Action_Plugin_Admin_Begin","Call ThemeSapper_NewVersionFound()")
  20. End Function
  21. '卸载插件
  22. Function UnInstallPlugin_ThemeSapper()
  23. Call SetBlogHint_Custom("? 提示:您已停用 Theme Sapper, 这样将无法使用 ZTI 文件安装主题.")
  24. End Function
  25. Function ThemeSapper_NewVersionFound()
  26. On Error Resume Next
  27. Dim fso, f, f1, fc, s
  28. s=False
  29. Set fso = CreateObject("Scripting.FileSystemObject")
  30. Set f = fso.GetFolder(BlogPath & "/THEMES/")
  31. Set fc = f.SubFolders
  32. For Each f1 in fc
  33. If fso.FileExists(BlogPath & "/THEMES/" & f1.name & "/" & "verchk.xml") Then s=True
  34. Next
  35. Set fso = Nothing
  36. If s Then
  37. If Request.QueryString("act")="ThemesMng" Then
  38. Call SetBlogHint_Custom("? 提示:您安装的主题发现了可用更新, <a href="""& ZC_BLOG_HOST &"PLUGIN/ThemeSapper/Xml_ChkVer.asp"">[请点击这里查看].</a>")
  39. End If
  40. If Request.QueryString("act")="SiteInfo" Then
  41. Call Add_Response_Plugin("Response_Plugin_SiteInfo_SubMenu",MakeSubMenu("<font color=""red"">!! 发现主题的可用更新</font>","../PLUGIN/ThemeSapper/Xml_ChkVer.asp","m-left",False))
  42. End If
  43. End If
  44. End Function
  45. Function ThemeSapper_AutoChk()
  46. On Error Resume Next
  47. '程序开始
  48. Dim fso, f, f1, fc, s, t, m, n, e
  49. Dim objXmlVerChk
  50. Dim Resource_URL
  51. Resource_URL="http://download.rainbowsoft.org/Themes/"
  52. n=BlogPath & "/PLUGIN/ThemeSapper/Export/log.txt"
  53. s=LoadFromFile(n,"utf-8")
  54. If s="" Then
  55. e=True
  56. t="2008-6-18"
  57. Else
  58. e=False
  59. t=ThemeSapper_GetFileDatetime(n)
  60. End if
  61. If DateDiff("n",t,Now())>256 Then
  62. Set fso = CreateObject("Scripting.FileSystemObject")
  63. Set f = fso.GetFolder(BlogPath & "/THEMES/")
  64. Set fc = f.SubFolders
  65. For Each f1 in fc
  66. Set objXmlVerChk=New ThemeSapper_CheckVersionViaXML
  67. If fso.FileExists(BlogPath & "/THEMES/" & f1.name & "/" & "Theme.xml") Then
  68. objXmlVerChk.XmlDataLocal=(LoadFromFile(BlogPath & "/THEMES/" & f1.name & "/Theme.xml","utf-8"))
  69. If LCase(f1.name)=LCase(s) Then
  70. objXmlVerChk.XmlDataWeb=(ThemeSapper_getHTTPPage(Resource_URL & f1.name & "/verchk.xml"))
  71. If objXmlVerChk.UpdateNeeded Then
  72. Call SaveToFile(BlogPath & "/THEMES/" & f1.name & "/verchk.xml",objXmlVerChk.strXmlDataWeb,"utf-8",False)
  73. Else
  74. fso.DeleteFile(BlogPath & "/THEMES/" & f1.name & "/verchk.xml")
  75. End If
  76. e=True
  77. Else
  78. If e=True Then
  79. e=False
  80. Call SaveToFile(n,f1.name,"utf-8",False)
  81. Set objXmlVerChk=Nothing
  82. Exit For
  83. End If
  84. End If
  85. End If
  86. Set objXmlVerChk=Nothing
  87. Next
  88. If e=True Then
  89. Call fso.DeleteFile(n)
  90. End If
  91. Set fso = nothing
  92. Err.Clear
  93. End If
  94. End Function
  95. '*********************************************************
  96. ' 目的:    取得目标文件的修改时间
  97. '*********************************************************
  98. Function ThemeSapper_GetFileDatetime(strFullFileName)
  99. On Error Resume Next
  100. Dim objFSO,objFolder
  101. Set objFSO = CreateObject("Scripting.FileSystemObject")
  102. If objFSO.FileExists(strFullFileName) Then
  103.     Set objFolder = objFSO.GetFile(strFullFileName)
  104. ThemeSapper_GetFileDatetime = objFolder.DateLastModified
  105. set objFolder = nothing
  106. End If
  107. set objFSO = nothing
  108. If Err Then
  109. ThemeSapper_GetFileDatetime = False
  110. Err.Clear
  111. End If
  112. End Function
  113. '*********************************************************
  114. ' 目的:    取得目标网页的html代码
  115. '*********************************************************
  116. Function ThemeSapper_getHTTPPage(url)
  117. On Error Resume Next
  118. Dim Http,ServerConn
  119. Dim j
  120. For j=0 To 2
  121. Set Http=server.createobject("Msxml2.ServerXMLHTTP")
  122. Http.setTimeouts 5*1000,5*1000,4*1000,10*1000
  123. Http.open "GET",url,False
  124. Http.send()
  125. If Err Then
  126. Err.Clear
  127. Set http = Nothing
  128. ServerConn = False
  129. else
  130. ServerConn = true
  131. End If
  132. If ServerConn Then
  133. Exit For
  134. End If
  135. next
  136. If ServerConn = False Then
  137. ThemeSapper_getHTTPPage = False
  138. Exit Function
  139. End If
  140. If http.Status=200 Then
  141. ThemeSapper_getHTTPPage = Http.ResponseText
  142. Else
  143. ThemeSapper_getHTTPPage = False
  144. End If
  145. Set http=Nothing
  146. End Function
  147. '*********************************************************
  148. ' 目的:    校验版本信息类
  149. '*********************************************************
  150. Class ThemeSapper_CheckVersionViaXML
  151. Public strXmlDataWeb
  152. Public strXmlDataLocal
  153. Public Item_ID_Web
  154. Public Item_Name_Web
  155. Public Item_Url_Web
  156. Public Item_Version_Web
  157. Public Item_PubDate_Web
  158. Public Item_Modified_Web
  159. Public Item_ID_Local
  160. Public Item_Name_Local
  161. Public Item_Url_Local
  162. Public Item_Version_Local
  163. Public Item_PubDate_Local
  164. Public Item_Modified_Local
  165. Public Property Let XmlDataWeb(ByVal strXmlData) 
  166. Call LoadXmlData(strXmlData,"web")
  167. strXmlDataWeb=strXmlData
  168. End Property
  169. Public Property Let XmlDataLocal(ByVal strXmlData) 
  170. Call LoadXmlData(strXmlData,"local")
  171. strXmlDataLocal=strXmlData
  172. End Property
  173. Public Property Get UpdateNeeded    '逻辑待定
  174. On Error Resume Next
  175. If Item_PubDate_Web="Undefine" Then Item_PubDate_Web="2008-1-1"    '为旧版插件无此节点而定义, 否则会判断失误.
  176. If Item_PubDate_Local="Undefine" Then Item_PubDate_Local="2008-1-1"    '为旧版插件无此节点而定义, 否则会判断失误.
  177. If (DateDiff("d",Item_PubDate_Web,Item_PubDate_Local)>0 Or DateDiff("d",Item_Modified_Web,Item_Modified_Local)>0) Then
  178. UpdateNeeded=False
  179. ElseIf Item_Version_Web<>Item_Version_Local Or Item_PubDate_Local<>Item_PubDate_Web Or Item_Modified_Local<>Item_Modified_Web Then
  180. UpdateNeeded=True
  181. Else
  182. UpdateNeeded=False
  183. End If
  184. If (Item_ID_Web<>Item_ID_Local) Then UpdateNeeded=False
  185. Call ExportLog()
  186. End Property
  187. Public Property Get OutputResults
  188. If UpdateNeeded=True Then
  189. OutputResults="Theme Sapper 认为: 该主题<font color=""red""><b>需要</b></font>升级."
  190. Else
  191. OutputResults="Theme Sapper 认为: 该主题<font color=""green""><b>不需要</b></font>升级."
  192. End If
  193. End Property
  194. Private Function ExportLog()
  195. On Error Resume Next
  196. If Item_ID_Web="" Or Item_ID_Local="" Then Exit Function
  197. If UpdateNeeded=True Then
  198. Call CreateFile(BlogPath & "/THEMES/" & Item_ID_Web & "/verchk.xml",strXmlDataWeb,"utf-8")
  199. Call DeleteFile(BlogPath & "/THEMES/" & Item_ID_Web & "/error.log")
  200. ElseIf strXmlDataWeb=False Then
  201. Call CreateFile(BlogPath & "/THEMES/" & Item_ID_Local & "/error.log","Online-Support = "&strXmlDataWeb,"utf-8")
  202. Call DeleteFile(BlogPath & "/THEMES/" & Item_ID_Local & "/verchk.xml")
  203. Else
  204. Call DeleteFile(BlogPath & "/THEMES/" & Item_ID_Web & "/verchk.xml")
  205. Call DeleteFile(BlogPath & "/THEMES/" & Item_ID_Web & "/error.log")
  206. End If
  207. End Function
  208. Private Function DeleteFile(ByVal strFileName)
  209. On Error Resume Next
  210. Dim fso
  211. Set fso = Server.CreateObject("Scripting.FileSystemObject")
  212. fso.DeleteFile(strFileName)
  213. Set fso = Nothing
  214. Err.Clear
  215. End Function
  216. Private Function CreateFile(ByVal strFileName,strContent,strCharset)
  217. On Error Resume Next
  218. Dim objStream
  219. Set objStream = Server.CreateObject("ADODB.Stream")
  220. With objStream
  221. .Type = 2 'adTypeBinary=1, adTypeText=2
  222. .Mode = 3 'adModeReadWrite=3, adModeRead=1
  223. .Open
  224. .Charset = strCharset
  225. .Position = objStream.Size
  226. .WriteText = strContent
  227. .SaveToFile strFileName,2 'adSaveCreateNotExist=1, adSaveCreateOverWrite=2
  228. .Close
  229. End With
  230. Set objStream = Nothing
  231. Err.Clear
  232. End Function
  233. Private Function LoadXmlData(ByVal strXmlData,ByVal strLocation)
  234. On Error Resume Next
  235. LoadXmlData=False
  236. Dim objXmlFile
  237. Set objXmlFile=Server.CreateObject("Microsoft.XMLDOM")
  238. objXmlFile.async = False
  239. objXmlFile.ValidateOnParse=False
  240. objXmlFile.loadXML(strXmlData)
  241. If objXmlFile.readyState=4 Then
  242. If objXmlFile.parseError.errorCode = 0 Then
  243. If strLocation="web" Then
  244. Item_ID_Web=objXmlFile.documentElement.selectSingleNode("id").text
  245. Item_Name_Web=objXmlFile.documentElement.selectSingleNode("name").text
  246. Item_Url_Web=objXmlFile.documentElement.selectSingleNode("url").text
  247. Item_Version_Web=objXmlFile.documentElement.selectSingleNode("version").text
  248. Item_PubDate_Web=objXmlFile.documentElement.selectSingleNode("pubdate").text
  249. Item_Modified_Web=objXmlFile.documentElement.selectSingleNode("modified").text
  250. If Item_Version_Web="" Then Item_Version_Web="Undefine"
  251. If Item_PubDate_Web="" Then Item_PubDate_Web="Undefine"
  252. If Item_Modified_Web="" Then Item_Modified_Web="Undefine"
  253. ElseIf strLocation="local" Then
  254. Item_ID_Local=objXmlFile.documentElement.selectSingleNode("id").text
  255. Item_Name_Local=objXmlFile.documentElement.selectSingleNode("name").text
  256. Item_Url_Local=objXmlFile.documentElement.selectSingleNode("url").text
  257. Item_Version_Local=objXmlFile.documentElement.selectSingleNode("version").text
  258. Item_PubDate_Local=objXmlFile.documentElement.selectSingleNode("pubdate").text
  259. Item_Modified_Local=objXmlFile.documentElement.selectSingleNode("modified").text
  260. If Item_Version_Local="" Then Item_Version_Local="Undefine"
  261. If Item_PubDate_Local="" Then Item_PubDate_Local="Undefine"
  262. If Item_Modified_Local="" Then Item_Modified_Local="Undefine"
  263. End If
  264. LoadXmlData=True
  265. End If
  266. End If
  267. Set objXmlFile=Nothing
  268. Err.Clear
  269. End Function
  270. Private Sub Class_Initialize()
  271. Item_ID_Web=Empty : Item_ID_Local=Empty
  272. Item_Name_Web=Empty : Item_Name_Local=Empty
  273. Item_Url_Web=Empty : Item_Url_Local=Empty
  274. Item_Version_Web=Empty : Item_Version_Local=Empty
  275. Item_PubDate_Web=Empty : Item_PubDate_Local=Empty
  276. Item_Modified_Web=Empty : Item_Modified_Local=Empty
  277. End Sub
  278. End Class
  279. '*********************************************************
  280. %>