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

中间件编程

开发平台:

HTML/CSS

  1. <%@ CODEPAGE=65001 %>
  2. <%
  3. '///////////////////////////////////////////////////////////////////////////////
  4. '// 插件应用:    1.8 Pre Terminator 及以上版本, 其它版本的Z-blog未知
  5. '// 插件制作:    haphic(http://haphic.com/)
  6. '// 备    注:    插件管理插件
  7. '// 最后修改:   2008-6-28
  8. '// 最后版本:    1.2
  9. '///////////////////////////////////////////////////////////////////////////////
  10. %>
  11. <% Option Explicit %>
  12. <% On Error Resume Next %>
  13. <% Response.Charset="UTF-8" %>
  14. <% Response.Buffer=True %>
  15. <% Server.ScriptTimeout=99999999 %>
  16. <!-- #include file="../../c_option.asp" -->
  17. <!-- #include file="../../function/c_function.asp" -->
  18. <!-- #include file="../../function/c_system_lib.asp" -->
  19. <!-- #include file="../../function/c_system_base.asp" -->
  20. <!-- #include file="../../function/c_system_plugin.asp" -->
  21. <!-- #include file="c_sapper.asp" -->
  22. <%
  23. Call System_Initialize()
  24. '检查非法链接
  25. Call CheckReference("")
  26. '检查权限
  27. If BlogUser.Level>1 Then Call ShowError(6)
  28. If CheckPluginState("PluginSapper")=False Then Call ShowError(48)
  29. BlogTitle = "将插件打包"
  30. %>
  31. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  32. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%=ZC_BLOG_LANGUAGE%>" lang="<%=ZC_BLOG_LANGUAGE%>">
  33. <head>
  34. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  35. <meta http-equiv="Content-Language" content="<%=ZC_BLOG_LANGUAGE%>" />
  36. <meta name="robots" content="noindex,nofollow"/>
  37. <link rel="stylesheet" rev="stylesheet" href="../../CSS/admin.css" type="text/css" media="screen" />
  38. <link rel="stylesheet" rev="stylesheet" href="images/style.css" type="text/css" media="screen" />
  39. <title><%=BlogTitle%></title>
  40. </head>
  41. <body>
  42. <div id="divMain">
  43. <div class="Header">Plugin Sapper - 插件导出 - 导出插件为 ZPI 文件. <a href="help.asp#exportzpi" title="如何导出插件为 ZPI 文件">[页面帮助]</a></div>
  44. <%Call SapperMenu("0")%>
  45. <div id="divMain2">
  46. <%
  47. Action=Request.QueryString("act")
  48. SelectedPlugin=Request.QueryString("plugin")
  49. SelectedPluginName=Request.QueryString("pluginname")
  50. If Action <> "pack" Then Call GetBlogHint()
  51. Response.Write "<div>"
  52. Response.Flush
  53. If Action="view" Then
  54. Call ViewXMLPackInfo()
  55. End If
  56. If Action="" Then
  57. Response.Write "<p id=""loading"">正在载入插件信息, 请稍候...  如果长时间停止响应, 请 <a href=""javascript:window.location.reload();"" title=""点此重试"">[点此重试]</a></p>"
  58. Response.Flush
  59. Call EditXMLPackInfo()
  60. Response.Write "<script language=""JavaScript"" type=""text/javascript"">document.getElementById('loading').style.display = 'none';</script>"
  61. End If
  62. If Action="pack" Then
  63. Dim Pack_Error
  64. Pack_Error=0
  65. If SelectedPlugin="" Then
  66. Response.Write "<p><font color=""red""> × 插件的名称为空.</font></p>"
  67. Pack_Error=Pack_Error+1
  68. Else
  69. Response.Write "<p id=""loading2"">正在打包插件, 请稍候...  如果长时间停止响应, 请 <a href=""javascript:window.location.reload();"" title=""点此重试"">[点此重试]</a></p>"
  70. Response.Write "<p class=""status-box"">正在打包插件...<p>"
  71. Response.Flush
  72. Dim ZipPathDir,ZipPathFile,Pack_PluginDir
  73. Dim TS_startime,TS_endtime
  74. '打包文件目录与生成文件名
  75. ZipPathDir = BlogPath & "PLUGIN" & LCase(SelectedPlugin)
  76. If right(ZipPathDir,1)<>"" Then ZipPathDir=ZipPathDir&""
  77. Pack_PluginDir = SelectedPlugin
  78. If right(Pack_PluginDir,1)<>"" Then Pack_PluginDir=Pack_PluginDir &""
  79. If Request.Form("PubOrBack")="Pub" Then 
  80. ZipPathFile = BlogPath & "PLUGINPluginSapperExport" & SelectedPlugin & ".zpi"
  81. Pack_Error=Pack_Error+DeleteFile(ZipPathFile)
  82. ElseIf Request.Form("PubOrBack")="Bak" Then
  83. Dim BakNum
  84. BakNum = 0
  85. Do
  86. BakNum = BakNum + 1
  87. ZipPathFile=BlogPath & "PLUGINPluginSapperExport" & SelectedPlugin & "_Bak("& Cstr(BakNum) & ").zpi"
  88. Loop Until FileExists(ZipPathFile)=False
  89. Else
  90. Response.Write "<p><font color=""red""> × 导出设置错误.</font></p>"
  91. ZipPathFile = BlogPath & "PLUGINPluginSapperExport" & SelectedPlugin & ".xml"
  92. Pack_Error=Pack_Error+1
  93. End If
  94. '开始打包
  95. CreateXml(ZipPathFile)
  96. Response.Write "<script language=""JavaScript"" type=""text/javascript"">document.getElementById('loading2').style.display = 'none';</script>"
  97. End If
  98. If Pack_Error = 0 Then
  99. If Request.Form("PubOrBack")="Pub" Then 
  100. Response.Write "<p class=""status-box""> √ 插件打包完成, 并保存在主机上, 名称为: """ & SelectedPlugin & ".zpi"". 如果您的浏览器没能自动跳转, 请 <a href=""Xml_Pack.asp?act=view&amp;plugin="& Server.URLEncode(SelectedPlugin) &"&amp;pluginname="& Server.URLEncode(SelectedPlugin) &""">[点击这里]</a>.</p>"
  101. Response.Write "<script>setTimeout(""self.location.href='Xml_Pack.asp?act=view&plugin="& Server.URLEncode(SelectedPlugin) &"&pluginname="& Server.URLEncode(SelectedPlugin) &"'"",3000);</script>"
  102. ElseIf Request.Form("PubOrBack")="Bak" Then
  103. Response.Write "<p class=""status-box""> √ 插件打包完成, 并保存在主机上, 名称为: """ & SelectedPlugin & "_Bak("& Cstr(BakNum) & ").zpi"". 如果您的浏览器没能自动跳转, 请 <a href=""Xml_Pack.asp?act=view&amp;plugin="& Server.URLEncode(SelectedPlugin & "_Bak("& Cstr(BakNum) & ")") &"&amp;pluginname="& Server.URLEncode(SelectedPlugin) &""">[点击这里]</a>.</p>"
  104. Response.Write "<script>setTimeout(""self.location.href='Xml_Pack.asp?act=view&plugin="& Server.URLEncode(SelectedPlugin & "_Bak("& Cstr(BakNum) & ")") &"&pluginname="& Server.URLEncode(SelectedPlugin) &"'"",3000);</script>"
  105. Else
  106. Response.Write "<p class=""status-box""><font color=""red""> × 这种情况不可能发生. </font></p>"
  107. End If
  108. Else
  109. Response.Write "<p class=""status-box""><font color=""red""> × 插件打包失败. "
  110. Response.Write "<a href=""javascript:history.back(-1)"" title=""返回上一个页面""><span>[返回]</span></a> 或 <a href=""javascript:window.location.reload();"" title=""重试一下""><span>[重试]</span></a></font></p>"
  111. End If
  112. End If
  113. Response.Write "</div>"
  114. %>
  115. </div>
  116. </div>
  117. </body>
  118. </html>
  119. <%
  120. '预览XML安装包内的信息
  121. Sub ViewXMLPackInfo()
  122. On Error Resume Next
  123. If InStr(UCase(Request.ServerVariables("HTTP_USER_AGENT")),UCase("Opera"))>0 Then '如果是Opera浏览器
  124. Response.Write "<p class=""download-box""><a href=""Export/"& SelectedPlugin & ".ZPI"" title=""右键另存为下载此 ZPI 文件"">[右键点击这里, 选择 ""链接另存为...(Save Link As...)""  保存此 ZPI 文件 - " & SelectedPlugin & ".zpi - 到本地]</a></p>"
  125. Else
  126. Response.Write "<p class=""download-box""><a href=""Xml_Download.asp?plugin="& Server.URLEncode(SelectedPlugin & ".zpi") &""" title=""左键点击下载此 ZPI 文件"">[左键点击这里下载此 ZPI 文件 - " & SelectedPlugin & ".zpi - 到本地]</a>"
  127. End If
  128. Dim objXmlFile,strXmlFile
  129. Dim fso
  130. Set fso = CreateObject("Scripting.FileSystemObject")
  131. If fso.FileExists(BlogPath & "PLUGIN/PluginSapper/Export/" & SelectedPlugin & ".zpi") Then
  132. strXmlFile =BlogPath & "PLUGIN/PluginSapper/Export/" & SelectedPlugin & ".zpi"
  133. Set objXmlFile=Server.CreateObject("Microsoft.XMLDOM")
  134. objXmlFile.async = False
  135. objXmlFile.ValidateOnParse=False
  136. objXmlFile.load(strXmlFile)
  137. If objXmlFile.readyState=4 Then
  138. If objXmlFile.parseError.errorCode <> 0 Then
  139. Else
  140. Plugin_Author_Name=objXmlFile.documentElement.selectSingleNode("author/name").text
  141. Plugin_Author_Url=objXmlFile.documentElement.selectSingleNode("author/url").text
  142. Plugin_Author_Email=objXmlFile.documentElement.selectSingleNode("author/email").text
  143. Plugin_ID=objXmlFile.documentElement.selectSingleNode("id").text
  144. Plugin_Name=objXmlFile.documentElement.selectSingleNode("name").text
  145. Plugin_URL=objXmlFile.documentElement.selectSingleNode("url").text
  146. Plugin_PubDate=objXmlFile.documentElement.selectSingleNode("pubdate").text
  147. Plugin_Note=objXmlFile.documentElement.selectSingleNode("note").text
  148. Plugin_Adapted=objXmlFile.documentElement.selectSingleNode("adapted").text
  149. Plugin_Version=objXmlFile.documentElement.selectSingleNode("version").text
  150. Plugin_Modified=objXmlFile.documentElement.selectSingleNode("modified").text
  151. End If
  152. Set objXmlFile=Nothing
  153. End If
  154. Response.Write "<div class=""PluginDetail"">"
  155. Response.Write "<p>以下为 ZPI 文件中所包含的信息:</p><hr />"
  156. Response.Write "<p><b>ID:</b> " & Plugin_ID & "</p>"
  157. Response.Write "<p><b>名称:</b> " & Plugin_Name & "</p>"
  158. If Plugin_URL<>Empty Then Response.Write "<p><b>网址:</b> <a href=""" & Plugin_URL & """ target=""_blank"" title=""插件发布地址"">" & Plugin_URL & "</a></p>"
  159. If Plugin_Author_Url=Empty Then
  160. Response.Write "<p><b>作者:</b> " & Plugin_Author_Name & "</p>"
  161. Else
  162. Response.Write "<p><b>作者:</b> <a href=""" & Plugin_Author_Url & """ target=""_blank"" title=""作者主页"">" & Plugin_Author_Name & "</a></p>"
  163. End If
  164. If Plugin_Author_Email<>Empty Then Response.Write "<p><b>邮箱:</b> <a href=""mailto:" & PluginAuthor_Email & """ title=""作者邮箱"">" & Plugin_Author_Email & "</a></p>"
  165. Response.Write "<p><b>发布:</b> " & Plugin_PubDate & "</p>"
  166. Response.Write "<p><b>简介:</b> " & Plugin_Note & "</p><br />"
  167. Response.Write "<p><b>适用:</b> " & Plugin_Adapted & "</p>"
  168. Response.Write "<p><b>版本:</b> " & Plugin_Version & "</p>"
  169. Response.Write "<p><b>修正:</b> " & Plugin_Modified & "</p><hr />"
  170. Response.Write "</div>"
  171. Response.Write "<p><form id=""edit"" name=""edit"" method=""get"" action=""#"">"
  172. Response.Write "<p><input onclick=""self.location.href='PluginList.asp';"" type=""button"" class=""button"" value=""返回插件管理"" title=""返回插件管理页"" /></p>"
  173. Response.Write "</form></p>"
  174. Else
  175. Response.Write "<p><font color=""red""> × 无法找到插件包. </p>"
  176. End If
  177. Set fso = nothing
  178. Err.Clear
  179. End Sub
  180. '编辑XML安装包内的信息
  181. Sub EditXMLPackInfo()
  182. On Error Resume Next
  183. Dim objXmlFile,strXmlFile
  184. Dim fso
  185. Set fso = CreateObject("Scripting.FileSystemObject")
  186. If fso.FileExists(BlogPath & "/PLUGIN/" & SelectedPlugin & "/" & "Plugin.xml") Then
  187. strXmlFile =BlogPath & "/PLUGIN/" & SelectedPlugin & "/" & "Plugin.xml"
  188. Set objXmlFile=Server.CreateObject("Microsoft.XMLDOM")
  189. objXmlFile.async = False
  190. objXmlFile.ValidateOnParse=False
  191. objXmlFile.load(strXmlFile)
  192. If objXmlFile.readyState=4 Then
  193. If objXmlFile.parseError.errorCode <> 0 Then
  194. Else
  195. Plugin_Author_Name=objXmlFile.documentElement.selectSingleNode("author/name").text
  196. Plugin_Author_Url=objXmlFile.documentElement.selectSingleNode("author/url").text
  197. Plugin_Author_Email=objXmlFile.documentElement.selectSingleNode("author/email").text
  198. Plugin_ID=objXmlFile.documentElement.selectSingleNode("id").text
  199. Plugin_Name=objXmlFile.documentElement.selectSingleNode("name").text
  200. Plugin_URL=objXmlFile.documentElement.selectSingleNode("url").text
  201. Plugin_PubDate=objXmlFile.documentElement.selectSingleNode("pubdate").text
  202. Plugin_Note=objXmlFile.documentElement.selectSingleNode("note").text
  203. Plugin_Adapted=objXmlFile.documentElement.selectSingleNode("adapted").text
  204. Plugin_Version=objXmlFile.documentElement.selectSingleNode("version").text
  205. Plugin_Modified=objXmlFile.documentElement.selectSingleNode("modified").text
  206. Plugin_Author_Name=TransferHTML(Plugin_Author_Name,"[html-format]")
  207. Plugin_Name=TransferHTML(Plugin_Name,"[html-format]")
  208. End If
  209. Set objXmlFile=Nothing
  210. End If
  211. Response.Write "<form id=""edit"" name=""edit"" method=""post"">"
  212. Response.Write "<p><b>请指定 ZPI 文件中所包含的插件信息, 仅用于基于 Z-blog 1.8 的插件. <a href=""help.asp#aboutzpi"">[什么是 ZPI 文件?]</a></b></p><hr />"
  213. Response.Write "<p>※插件ID: (插件ID应为插件信息文档中的ID, 此处不可修改.)</p><p><input name=""PluginID"" style=""width:99%"" type=""text"" value="""&Plugin_ID&""" readonly /></p><p></p>"
  214. Response.Write "<p>※插件名称:</p><p><input name=""PluginName"" style=""width:99%"" type=""text"" value="""&Plugin_Name&""" /></p><p></p>"
  215. Response.Write "<p>※插件的发布页面: (强列建议填写, 以方便使用者在安装插件前能看到作者的发布页面, 从而获得更多的发布信息.)</p><p><input name=""PluginURL"" style=""width:99%"" type=""text"" value="""&Plugin_URL&""" /></p><p></p>"
  216. Response.Write "<p>※插件简介 (可以使用 &lt;br /&gt; 换行, 可以使用 html 标签):</p><p><textarea name=""PluginNote"" style=""width:99%"" rows=""5"">"&Plugin_Note&"</textarea></p><p></p>"
  217. Response.Write "<p><b>以下信息从插件信息文档 Plugin.xml 中读取且必须与之保持一致, 此处不可修改. <a href=""Xml_Edit.asp?plugin=" & Server.URLEncode(SelectedPlugin) & """ title=""编辑插件信息文档-Plugin.xml"">[编辑插件信息文档]</a></b></p><br />"
  218. Response.Write "<p>※插件适用的 Z-Blog 版本: (写法应为: ""Z-Blog 1.8 Spirit"")</p><p><input name=""PluginAdapted"" style=""width:99%"" type=""text"" value="""&Plugin_Adapted&""" readonly /></p><p></p>"
  219. Response.Write "<p>※插件的修订版本号:</p><p><input name=""PluginVersion"" style=""width:99%"" type=""text"" value="""&Plugin_Version&""" readonly /></p><p></p>"
  220. Response.Write "<p>※插件的发布日期: (日期标准格式应为:"""&Date()&""")</p><p><input name=""PluginPubDate"" style=""width:99%"" type=""text"" value="""&Plugin_PubDate&""" readonly /></p><p></p>"
  221. Response.Write "<p>※插件的最后修改日期: (日期标准格式应为:"""&Date()&""")</p><p><input name=""PluginModified"" style=""width:99%"" type=""text"" value="""&Plugin_Modified&""" readonly /></p><p></p>"
  222. Response.Write "<p>※插件作者:</p><p><input name=""AuthorName"" style=""width:99%"" type=""text"" value="""&Plugin_Author_Name&""" readonly /></p><p></p>"
  223. Response.Write "<p>※插件作者主页:</p><p><input name=""AuthorURL"" style=""width:99%"" type=""text"" value="""&Plugin_Author_Url&""" readonly /></p><p></p>"
  224. Response.Write "<p>※插件作者 Eamil:</p><p><input name=""AuthorEmail"" style=""width:99%"" type=""text"" value="""&Plugin_Author_Email&""" readonly /></p><p></p>"
  225. Response.Write "<p><b>插件将被按 Z-Blog 插件专用安装包 Version 0.1 打包成 ZPI 文件, 并保存在 TS 插件的 Export 目录下.</b></p><hr />"
  226. Response.Write "<p><input name=""PubOrBack"" type=""radio"" value=""Pub"" checked=""checked""/> 这次导出是为了<b>发布</b> (导出的文件名必须为 <b>"& SelectedPlugin &".zpi</b>)<br /><input name=""PubOrBack"" type=""radio"" value=""Bak""/> 这次导出是为了<b>备份</b> (导出的文件名为 <b>"& SelectedPlugin &"_Bak(n).zpi</b> 的形式)</p><hr />"
  227. Response.Write "<p><input type=""submit"" class=""button"" value=""确认信息并打包插件"" id=""btnPost"" onclick='document.getElementById(""edit"").action=""Xml_Pack.asp?act=pack&plugin="& SelectedPlugin &""";' title=""确认信息并打包插件"" /> <input onclick=""self.location.href='PluginList.asp';"" type=""button"" class=""button"" value=""取消并返回插件管理"" title=""取消并返回插件管理页"" />  <input onclick=""window.scrollTo(0,0);"" type=""button"" class=""button"" value=""TOP"" title=""返回页面顶部"" /></p>"
  228. Response.Write "</form>"
  229. Else
  230. Response.Write "<form id=""edit"" name=""edit"" method=""post"">"
  231. Response.Write "该插件信息不完全, 不是标准的 Z-Blog 插件, 被打包器拒绝导出! <a href=""javascript:history.back(-1)"" title=""返回上一个页面""><span>[此此返回]</span></a>"
  232. Response.Write "</form>"
  233. End If
  234. Set fso = nothing
  235. Err.Clear
  236. End Sub
  237. '遍历目录内的所有文件以及文件夹
  238. Sub LoadData(DirPath)
  239. On Error Resume Next
  240. Dim XmlDoc
  241. Dim fso            'fso对象
  242. Dim objFolder      '文件夹对象
  243. Dim objSubFolders  '子文件夹集合
  244. Dim objSubFolder   '子文件夹对象
  245. Dim objFiles       '文件集合
  246. Dim objFile        '文件对象
  247. Dim objStream
  248. Dim pathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream
  249. Dim PathNameStr
  250. Set fso=server.CreateObject("scripting.filesystemobject")
  251. Set objFolder=fso.GetFolder(DirPath)'创建文件夹对象
  252. Response.Write("<p>打包目录: "& Replace(DirPath,BlogPath,"") &"...</p>")
  253. Response.flush
  254. Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
  255. XmlDoc.async = False
  256. XmlDoc.ValidateOnParse=False
  257. XmlDoc.load (ZipPathFile)
  258. '写入每个文件夹路径
  259. Set Xfolder = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("folder"))
  260. Set Xfpath = Xfolder.AppendChild(XmlDoc.CreateElement("path"))
  261. Xfpath.text = replace(DirPath,ZipPathDir,Pack_PluginDir)
  262. Response.Write "<blockquote><font color=""Teal"">"
  263. Set objFiles=objFolder.Files
  264. for each objFile in objFiles
  265. If lcase(DirPath & objFile.name) <> lcase(Request.ServerVariables("PATH_TRANSLATED")) Then
  266. PathNameStr = DirPath & "" & objFile.name
  267. Response.Write Replace(PathNameStr,BlogPath,"") & "<br />"
  268. Response.flush
  269. '================================================
  270. '写入文件的路径及文件内容
  271.    Set Xfile = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("file"))
  272.    Set Xpath = Xfile.AppendChild(XmlDoc.CreateElement("path"))
  273.    Xpath.text = replace(PathNameStr,ZipPathDir,Pack_PluginDir)
  274.    '创建文件流读入文件内容,并写入XML文件中
  275.    Set objStream = Server.CreateObject("ADODB.Stream")
  276.    objStream.Type = 1
  277.    objStream.Open()
  278.    objStream.LoadFromFile(PathNameStr)
  279.    objStream.position = 0
  280.    
  281.    Set Xstream = Xfile.AppendChild(XmlDoc.CreateElement("stream"))
  282.    Xstream.SetAttribute "xmlns:dt","urn:schemas-microsoft-com:datatypes"
  283.    '文件内容采用二制方式存放
  284.    Xstream.dataType = "bin.base64"
  285.    Xstream.nodeTypedValue = objStream.Read()
  286.    
  287.    Set objStream=Nothing
  288.    Set Xpath = Nothing
  289.    Set Xstream = Nothing
  290.    Set Xfile = Nothing
  291.   '================================================
  292. end if
  293. next
  294. Response.Write "</font></blockquote>"
  295. XmlDoc.Save(ZipPathFile)
  296. Set Xfpath = Nothing
  297. Set Xfolder = Nothing
  298. Set XmlDoc = Nothing
  299. '创建的子文件夹对象
  300. Set objSubFolders=objFolder.Subfolders
  301. '调用递归遍历子文件夹
  302. for each objSubFolder in objSubFolders
  303. pathname = DirPath & objSubFolder.name & ""
  304. LoadData(pathname)
  305. next
  306. Set objFolder=Nothing
  307. Set objSubFolders=Nothing
  308. Set fso=Nothing
  309. If Err.Number<>0 Then Pack_Error=Pack_Error+1
  310. Err.Clear
  311. End Sub
  312. '创建一个空的XML文件,为写入文件作准备
  313. Sub CreateXml(FilePath)
  314. On Error Resume Next
  315. '程序开始执行时间
  316. TS_startime=timer()
  317. Dim XmlDoc,Root,xRoot
  318. Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
  319. XmlDoc.async = False
  320. XmlDoc.ValidateOnParse=False
  321. Set Root = XmlDoc.createProcessingInstruction("xml","version='1.0' encoding='utf-8'")
  322. XmlDoc.appendChild(Root)
  323. Set xRoot = XmlDoc.appendChild(XmlDoc.CreateElement("root"))
  324. xRoot.setAttribute "version",XML_Pack_Ver
  325. xRoot.setAttribute "type",XML_Pack_Type
  326. xRoot.setAttribute "for",XML_Pack_Version
  327. Set xRoot = Nothing
  328. '写入文件信息
  329. Dim Author,AuthorName,AuthorURL,AuthorEmail
  330. Set Plugin_ID = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("id"))
  331. Plugin_ID.Text = Request.Form("PluginID")
  332. Set Plugin_ID=Nothing
  333. Set Plugin_Name = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("name"))
  334. Plugin_Name.Text = Request.Form("PluginName")
  335. Set Plugin_Name=Nothing
  336. Set Plugin_URL = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("url"))
  337. Plugin_URL.Text = Request.Form("PluginURL")
  338. Set Plugin_URL=Nothing
  339. Set Plugin_PubDate = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("pubdate"))
  340. Plugin_PubDate.Text = Request.Form("PluginPubDate")
  341. Set Plugin_PubDate=Nothing
  342. Set Plugin_Adapted = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("adapted"))
  343. Plugin_Adapted.Text = Request.Form("PluginAdapted")
  344. Set Plugin_Adapted=Nothing
  345. Set Plugin_Version = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("version"))
  346. Plugin_Version.Text = Request.Form("PluginVersion")
  347. Set Plugin_Version=Nothing
  348. Set Plugin_Modified = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("modified"))
  349. Plugin_Modified.Text = Request.Form("PluginModified")
  350. Set Plugin_Modified=Nothing
  351. Set Plugin_Note = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("note"))
  352. Plugin_Note.Text = Replace(Replace(Request.Form("PluginNote"),vbCr,""),vbLf,"")
  353. Set Plugin_Note=Nothing
  354. Set Author = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("author"))
  355. Set AuthorName = Author.AppendChild(XmlDoc.CreateElement("name"))
  356. AuthorName.Text = Request.Form("AuthorName")
  357. Set AuthorName=Nothing
  358. Set AuthorURL = Author.AppendChild(XmlDoc.CreateElement("url"))
  359. AuthorURL.Text = Request.Form("AuthorURL")
  360. Set AuthorURL=Nothing
  361. Set AuthorEmail = Author.AppendChild(XmlDoc.CreateElement("email"))
  362. AuthorEmail.Text = Request.Form("AuthorEmail")
  363. Set AuthorEmail=Nothing
  364. Set Author=Nothing
  365. XmlDoc.Save(FilePath)
  366. Set Root = Nothing
  367. Set XmlDoc = Nothing
  368. If Err.Number<>0 Then Pack_Error=Pack_Error+1
  369. Err.Clear
  370. LoadData(ZipPathDir)
  371. '程序结束时间
  372. TS_endtime=timer()
  373. Dim TS_PageTime
  374. TS_PageTime=FormatNumber((TS_endtime-TS_startime),3)
  375. If left(TS_PageTime,1)="." Then TS_PageTime="0" & TS_PageTime
  376. Response.Write("<p>页面执行时间:" & TS_PageTime & "秒</p>")
  377. End Sub
  378. Call System_Terminate()
  379. If Err.Number<>0 Then
  380. Call ShowError(0)
  381. End If
  382. %>