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

中间件编程

开发平台:

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. <!-- #include file="../../c_option.asp" -->
  16. <!-- #include file="../../function/c_function.asp" -->
  17. <!-- #include file="../../function/c_system_lib.asp" -->
  18. <!-- #include file="../../function/c_system_base.asp" -->
  19. <!-- #include file="../../function/c_system_plugin.asp" -->
  20. <!-- #include file="c_sapper.asp" -->
  21. <%
  22. Call System_Initialize()
  23. '检查非法链接
  24. Call CheckReference("")
  25. '检查权限
  26. If BlogUser.Level>1 Then Call ShowError(6)
  27. If CheckPluginState("PluginSapper")=False Then Call ShowError(48)
  28. BlogTitle = "编辑插件信息"
  29. %>
  30. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  31. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%=ZC_BLOG_LANGUAGE%>" lang="<%=ZC_BLOG_LANGUAGE%>">
  32. <head>
  33. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  34. <meta http-equiv="Content-Language" content="<%=ZC_BLOG_LANGUAGE%>" />
  35. <meta name="robots" content="noindex,nofollow"/>
  36. <link rel="stylesheet" rev="stylesheet" href="../../CSS/admin.css" type="text/css" media="screen" />
  37. <link rel="stylesheet" rev="stylesheet" href="images/style.css" type="text/css" media="screen" />
  38. <script language="JavaScript" src="../../script/common.js" type="text/javascript"></script>
  39. <script language="JavaScript" src="../../script/jquery.tabs.pack.js" type="text/javascript"></script>
  40. <link rel="stylesheet" href="../../CSS/jquery.tabs.css" type="text/css" media="print, projection, screen">
  41. <!--[if lte IE 7]>
  42. <link rel="stylesheet" href="../../CSS/jquery.tabs-ie.css" type="text/css" media="projection, screen">
  43. <![endif]-->
  44. <title><%=BlogTitle%></title>
  45. </head>
  46. <body>
  47. <script language="javascript">
  48. $(document).ready(function(){
  49. $("#divMain2").tabs({ fxFade: true, fxSpeed: 'fast' });
  50. });
  51. </script>
  52. <div id="divMain">
  53. <div class="Header">Plugin Sapper - 插件信息编辑 - 编辑插件的 Plugin.xml 信息文档. <a href="help.asp#editinfo" title="编辑插件信息页帮助">[页面帮助]</a></div>
  54. <%Call SapperMenu("0")%>
  55. <%
  56. Action=Request.QueryString("act")
  57. SelectedPlugin=Request.QueryString("Plugin")
  58. Response.Write "<div>"
  59. Response.Flush
  60. If Action="" Then
  61. Response.Write "<p id=""loading"">正在载入插件信息, 请稍候...  如果长时间停止响应, 请 <a href=""javascript:window.location.reload();"" title=""点此重试"">[点此重试]</a></p>"
  62. Response.Flush
  63. Call EditXMLPackInfo()
  64. Response.Write "<script language=""JavaScript"" type=""text/javascript"">document.getElementById('loading').style.display = 'none';</script>"
  65. End If
  66. If Action="save" Then
  67. Response.Write "<div id=""divMain2"">"
  68. Response.Write "<p id=""loading2"">正在写入插件信息, 请稍候...  如果长时间停止响应, 请 <a href=""javascript:window.location.reload();"" title=""点此重试"">[点此重试]</a></p>"
  69. Response.Flush
  70. Dim Pack_Error
  71. Pack_Error=0
  72. If SelectedPlugin="" Then
  73. Response.Write "<p><font color=""red""> × 插件的名称为空.</font></p>"
  74. Pack_Error=Pack_Error+1
  75. Else
  76. Response.Write "<p class=""status-box""><font color=""Navy"">正在保存XML...</font><p>"
  77. Response.Flush
  78. Dim ZipPathFile
  79. Dim TS_startime,TS_endtime
  80. '打包文件目录与生成文件名
  81. ZipPathFile = BlogPath & "PLUGIN" & SelectedPlugin & "Plugin.xml"
  82. '开始打包
  83. CreateXml(ZipPathFile)
  84. End If
  85. If Pack_Error = 0 Then
  86. Call SetBlogHint(True,Empty,Empty)
  87. Response.Write "<p class=""status-box""><font color=""Navy""> √ 插件信息保存完成. 如果您的浏览器没能自动跳转, 请 <a href=""PluginDetail.asp?Plugin="& Server.URLEncode(SelectedPlugin) &""">[点击这里]</a>.</font></p>"
  88. Response.Write "<script>setTimeout(""self.location.href='PluginDetail.asp?Plugin="& Server.URLEncode(SelectedPlugin) &"'"",1000);</script>"
  89. Else
  90. Call SetBlogHint(False,Empty,Empty)
  91. Response.Write "<p class=""status-box""><font color=""red""> × 插件信息保存失败. "
  92. Response.Write "<a href=""javascript:history.back(-1)"" title=""返回上一个页面""><span>[返回]</span></a> 或 <a href=""javascript:window.location.reload();"" title=""返回资源列表页""><span>[重试]</span></a></font></p>"
  93. End If
  94. Response.Write "</div>"
  95. Response.Write "<script language=""JavaScript"" type=""text/javascript"">document.getElementById('loading2').style.display = 'none';</script>"
  96. End If
  97. Response.Write "</div>"
  98. %>
  99. </div>
  100. </body>
  101. </html>
  102. <%
  103. '编辑XML安装包内的信息
  104. Sub EditXMLPackInfo()
  105. On Error Resume Next
  106. Dim objXmlFile,strXmlFile
  107. Dim fso
  108. Set fso = CreateObject("Scripting.FileSystemObject")
  109. If fso.FileExists(BlogPath & "/PLUGIN/" & SelectedPlugin & "/" & "Plugin.xml") Then
  110. strXmlFile =BlogPath & "/PLUGIN/" & SelectedPlugin & "/" & "Plugin.xml"
  111. Set objXmlFile=Server.CreateObject("Microsoft.XMLDOM")
  112. objXmlFile.async = False
  113. objXmlFile.ValidateOnParse=False
  114. objXmlFile.load(strXmlFile)
  115. If objXmlFile.readyState=4 Then
  116. If objXmlFile.parseError.errorCode <> 0 Then
  117. Else
  118. 'Plugin_ID=SelectedPlugin
  119. Plugin_ID=objXmlFile.documentElement.selectSingleNode("id").text
  120. Plugin_Name=objXmlFile.documentElement.selectSingleNode("name").text
  121. Plugin_URL=objXmlFile.documentElement.selectSingleNode("url").text
  122. Plugin_Note=objXmlFile.documentElement.selectSingleNode("note").text
  123. Plugin_Author_Name=objXmlFile.documentElement.selectSingleNode("author/name").text
  124. Plugin_Author_Url=objXmlFile.documentElement.selectSingleNode("author/url").text
  125. Plugin_Author_Email=objXmlFile.documentElement.selectSingleNode("author/email").text
  126. Plugin_Type=objXmlFile.documentElement.selectSingleNode("type").text
  127. Plugin_Path=objXmlFile.documentElement.selectSingleNode("path").text
  128. Plugin_Include=objXmlFile.documentElement.selectSingleNode("include").text
  129. Plugin_Level=objXmlFile.documentElement.selectSingleNode("level").text
  130. Plugin_Adapted=objXmlFile.documentElement.selectSingleNode("adapted").text
  131. Plugin_Version=objXmlFile.documentElement.selectSingleNode("version").text
  132. Plugin_PubDate=objXmlFile.documentElement.selectSingleNode("pubdate").text
  133. Plugin_Modified=objXmlFile.documentElement.selectSingleNode("modified").text
  134. Plugin_Name=TransferHTML(Plugin_Name,"[html-format]")
  135. Plugin_Author_Name=TransferHTML(Plugin_Author_Name,"[html-format]")
  136. End If
  137. Set objXmlFile=Nothing
  138. End If
  139. Else
  140. Plugin_ID=SelectedPlugin
  141. Plugin_Name=SelectedPlugin
  142. Plugin_URL=Empty
  143. Plugin_Note=Empty
  144. Plugin_Author_Name=Empty
  145. Plugin_Author_Url=Empty
  146. Plugin_Author_Email=Empty
  147. Plugin_Type="outline"
  148. Plugin_Path="main.asp"
  149. Plugin_Include="include.asp"
  150. Plugin_Level="1"
  151. Plugin_Adapted="Z-Blog 1.8"
  152. Plugin_Version=Empty
  153. Plugin_PubDate=Date()
  154. Plugin_Modified=Date()
  155. End If
  156. Set fso = nothing
  157. Err.Clear
  158. Response.Write "<form method=""post"" action=""Xml_Edit.asp?act=save&Plugin="& SelectedPlugin &""">"
  159. Response.Write "<div id=""divMain2"">"
  160. Call GetBlogHint()
  161. %>
  162. <ul>
  163. <li class="tabs-selected"><a href="#fragment-1"><span>插件信息</span></a></li>
  164. <li><a href="#fragment-2"><span>作者信息</span></a></li>
  165. <li><a href="#fragment-3"><span>插件系统信息</span></a></li>
  166. </ul>
  167. <%
  168. Response.Write "<div class=""tabs-div"" id=""fragment-1"">"
  169. Response.Write "<p>※插件ID: (插件ID应为插件文件夹名称, 由编辑器自动完成填写, 不可修改.)</p><p><input name=""PluginID"" style=""width:99%"" type=""text"" value="""&SelectedPlugin&""" readonly /></p><p></p>"
  170. Response.Write "<p>※插件名称:</p><p><input name=""PluginName"" style=""width:99%"" type=""text"" value="""&Plugin_Name&""" /></p><p></p>"
  171. Response.Write "<p>※插件的发布页面地址: (带 http:// 等协议名的页面地址, 以方便使用者获取更多的插件发布信息)</p><p><input name=""PluginURL"" style=""width:99%"" type=""text"" value="""&Plugin_URL&""" /></p><p></p>"
  172. Response.Write "<p>※插件简介 (可以使用 &lt;br /&gt; 换行, 可以使用 html 标签):</p><p><textarea name=""PluginNote"" style=""width:99%"" rows=""5"">"&Plugin_Note&"</textarea></p><p></p>"
  173. Response.Write "<p>※适用的 Z-Blog 版本: (要求写法: ""Z-Blog 1.8 Spirit"")</p><p><input name=""PluginAdapted"" style=""width:99%"" type=""text"" value="""&Plugin_Adapted&""" /></p><p></p>"
  174. Response.Write "<p><b>以下信息对查找插件可用更新极为重要, 建议在每次升级插件后更新这些信息!</a></b></p><hr />"
  175. Response.Write "<p>※插件的版本号:</p><p><input name=""PluginVersion"" style=""width:99%"" type=""text"" value="""&Plugin_Version&""" /></p><p></p>"
  176. Response.Write "<p>※您的插件的发布日期: (日期标准格式:"""&Date()&""")</p><p><input name=""PluginPubDate"" style=""width:99%"" type=""text"" value="""&Plugin_PubDate&""" /></p><p></p>"
  177. Response.Write "<p>※最后修改日期: (日期标准格式:"""&Date()&""")</p><p><input name=""PluginModified"" style=""width:99%"" type=""text"" value="""&Plugin_Modified&""" /></p><p></p>"
  178. Response.Write "</div>"
  179. Response.Write "<div class=""tabs-div"" id=""fragment-2"">"
  180. Response.Write "<p>※作者名称:</p><p><input name=""PluginAuthor_Name"" style=""width:99%"" type=""text"" value="""&Plugin_Author_Name&""" /></p><p></p>"
  181. Response.Write "<p>※作者网址:</p><p><input name=""PluginAuthor_URL"" style=""width:99%"" type=""text"" value="""&Plugin_Author_Url&""" /></p><p></p>"
  182. Response.Write "<p>※作者 Email:</p><p><input name=""PluginAuthor_Email"" style=""width:99%"" type=""text"" value="""&Plugin_Author_Email&""" /></p><p></p>"
  183. Response.Write "</div>"
  184. Response.Write "<div class=""tabs-div"" id=""fragment-3"">"
  185. Response.Write "<p>※插件类型: (挂上接口为 ""inline"", 挂入接口为 ""outline"".)</p><p><input name=""PluginType"" style=""width:99%"" type=""text"" value="""&Plugin_Type&""" /></p><p></p>"
  186. Response.Write "<p>※插件路径: (插件首页, 如 ""main.asp"".)</p><p><input name=""PluginPath"" style=""width:99%"" type=""text"" value="""&Plugin_Path&""" /></p><p></p>"
  187. Response.Write "<p>※插件 Include 文件: 如 (""include.asp"".)</p><p><input name=""PluginInclude"" style=""width:99%"" type=""text"" value="""&Plugin_Include&""" /></p><p></p>"
  188. Response.Write "<p>※插件权限: ( ""1"" 为管理员, ""2"" 为高级用户. 以此类推...)</p><p><input name=""PluginLevel"" style=""width:99%"" type=""text"" value="""&Plugin_Level&""" /></p><p></p>"
  189. Response.Write "</div>"
  190. Response.Write "<hr /><p><b>修改 ID 为 "&Plugin_ID&" 的插件的信息文档. <a href=""help.asp#pluginxml"">[关于插件信息文档 (Plugin.xml)]</a></b></p>"
  191. Response.Write "<p><b>这些信息将被 (按插件信息文档规范版本 0.1) 保存为 Plugin.xml 文件, 该文件将位于插件目录内. <a href=""help.asp#editinfo"">[如何编辑插件信息]</a></b></p><hr />"
  192. Response.Write "<p><input type=""submit"" class=""button"" value=""完成编辑并保存信息"" id=""btnPost"" 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>"
  193. Response.Write "</form>"
  194. Response.Write "</div>"
  195. End Sub
  196. '创建一个空的XML文件,为写入文件作准备
  197. Sub CreateXml(FilePath)
  198. 'On Error Resume Next
  199. '程序开始执行时间
  200. TS_startime=timer()
  201. Dim XmlDoc,Root,xRoot
  202. Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
  203. XmlDoc.async = False
  204. XmlDoc.ValidateOnParse=False
  205. Set Root = XmlDoc.createProcessingInstruction("xml","version='1.0' encoding='utf-8' standalone='yes'")
  206. XmlDoc.appendChild(Root)
  207. Set xRoot = XmlDoc.appendChild(XmlDoc.CreateElement("Plugin"))
  208. xRoot.setAttribute "version",XML_Pack_Ver
  209. Set xRoot = Nothing
  210. '写入文件信息
  211. Dim Plugin_Author
  212. Dim XMLcdata
  213. Set Plugin_ID = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("id"))
  214. Plugin_ID.Text = SelectedPlugin
  215. Set Plugin_ID=Nothing
  216. Set Plugin_Name = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("name"))
  217. Plugin_Name.Text = Request.Form("PluginName")
  218. Set Plugin_Name=Nothing
  219. Set Plugin_URL = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("url"))
  220. Plugin_URL.Text = Request.Form("PluginURL")
  221. Set Plugin_URL=Nothing
  222. Set Plugin_Note = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("note"))
  223. Plugin_Note.Text = Replace(Replace(Request.Form("PluginNote"),vbCr,""),vbLf,"")
  224. Set Plugin_Note=Nothing
  225. Set Plugin_Author = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("author"))
  226. Set Plugin_Author_Name = Plugin_Author.AppendChild(XmlDoc.CreateElement("name"))
  227. Plugin_Author_Name.Text = Request.Form("PluginAuthor_Name")
  228. Set Plugin_Author_Name=Nothing
  229. Set Plugin_Author_URL = Plugin_Author.AppendChild(XmlDoc.CreateElement("url"))
  230. Plugin_Author_URL.Text = Request.Form("PluginAuthor_URL")
  231. Set Plugin_Author_URL=Nothing
  232. Set Plugin_Author_Email = Plugin_Author.AppendChild(XmlDoc.CreateElement("email"))
  233. Plugin_Author_Email.Text = Request.Form("PluginAuthor_Email")
  234. Set Plugin_Author_Email=Nothing
  235. Set Plugin_Author=Nothing
  236. Set Plugin_Type = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("type"))
  237. Plugin_Type.Text = Request.Form("PluginType")
  238. Set Plugin_Type=Nothing
  239. Set Plugin_Path = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("path"))
  240. Plugin_Path.Text = Request.Form("PluginPath")
  241. Set Plugin_Path=Nothing
  242. Set Plugin_Include = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("include"))
  243. Plugin_Include.Text = Request.Form("PluginInclude")
  244. Set Plugin_Include=Nothing
  245. Set Plugin_Level = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("level"))
  246. Plugin_Level.Text = Request.Form("PluginLevel")
  247. Set Plugin_Level=Nothing
  248. Set Plugin_Adapted = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("adapted"))
  249. Plugin_Adapted.Text = Request.Form("PluginAdapted")
  250. Set Plugin_Adapted=Nothing
  251. Set Plugin_Version = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("version"))
  252. Plugin_Version.Text = Request.Form("PluginVersion")
  253. Set Plugin_Version=Nothing
  254. Set Plugin_PubDate = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("pubdate"))
  255. Plugin_PubDate.Text = Request.Form("PluginPubDate")
  256. Set Plugin_PubDate=Nothing
  257. Set Plugin_Modified = XmlDoc.SelectSingleNode("//Plugin").AppendChild(XmlDoc.CreateElement("modified"))
  258. Plugin_Modified.Text = Request.Form("PluginModified")
  259. Set Plugin_Modified=Nothing
  260. XmlDoc.Save(FilePath)
  261. Set Root = Nothing
  262. Set XmlDoc = Nothing
  263. 'If Err.Number<>0 Then Pack_Error=Pack_Error+1
  264. Err.Clear
  265. '程序结束时间
  266. TS_endtime=timer()
  267. Dim TS_PageTime
  268. TS_PageTime=FormatNumber((TS_endtime-TS_startime),3)
  269. If left(TS_PageTime,1)="." Then TS_PageTime="0" & TS_PageTime
  270. Response.Write("<p>页面执行时间:" & TS_PageTime & "秒</p>")
  271. End Sub
  272. Call System_Terminate()
  273. If Err.Number<>0 Then
  274. Call ShowError(0)
  275. End If
  276. %>