www.gusucode.com > 全球营销软件站整站源码4月最新数据 4.0源码程序 > 801wyxqf\adminadmin\sys\admin_class.asp
<!--#include file="../../conn.asp"--> <!--#include file="../inc/setup.asp"--> <!--#include file="../inc/const.asp"--> <!--#include file="../inc/check.asp"--> <% Admin_header '===================================================================== ' 软件名称:801w软件代理系统 ' 当前版本:801wAsp 801w cn 801w com ' 文件名称:admin_main.asp ' 更新日期:2010-2-16 ' 官方网站:801w代理系统(www.801w.cn www.801w.com) QQ:274667447 '===================================================================== ' Copyright 2003-2010 801w.cn - All Rights Reserved. ' 801wasp is a trademark of 801w.cn '===================================================================== If ChannelID=0 Then ChannelID=1 Dim strClassDir,ClassDir,HtmlFileDir,ChannelDir,ChannelPath Dim moduleidu ChannelDir = NewAsp.ChannelDir ChannelPath = Newasp.InstallDir & ChannelDir moduleidu = NewAsp.modules Select Case NewAsp.modules Case 1:Directory = "article" Case 2:Directory = "soft" Case 3:Directory = "shop" Case 4:Directory = "flash" Case Else Directory = "article" End Select %> <script language = "JavaScript"> function BatchAddClass(){ if(document.myform.BatchID.checked==true){ document.myform.BatchClassName.disabled=false; document.myform.ClassName.disabled=true; BatchClass.style.display=''; } else{ document.myform.BatchClassName.disabled=true; document.myform.ClassName.disabled=false; BatchClass.style.display='none'; } } function ClassSetting(n){ if (n == 1){ ClassSetting1.style.display='none'; ClassSetting2.style.display=''; ClassSetting3.style.display=''; } else{ ClassSetting1.style.display=''; ClassSetting2.style.display='none'; ClassSetting3.style.display='none'; } } </script> <table class="table1" cellspacing="1" cellpadding="3" align="center" border="0"> <tr> <td class="tableline linetitle" width="200" align="left">分类管理</td> <td class="tableline" width="*" align="right"><a href="?ChannelID=<%=ChannelID%>">分类管理首页</a> | <a href="?action=add&ChannelID=<%=ChannelID%>">新建分类</a> | <a href="?action=orders&ChannelID=<%=ChannelID%>">一级分类排序</a> | <a href="?action=classorders&ChannelID=<%=ChannelID%>">N级分类排序</a> | <a href="?action=resume&ChannelID=<%=ChannelID%>"><font color="blue">分类恢复</font> | <a href="../<%=Directory%>/admin_list.asp?ChannelID=<%=ChannelID%>"><font color="red"><%=NewAsp.ModuleName%>管理</font></a> </td> </tr> </table> <% Dim Action,Directory If Not ChkAdmin("Class_"&ChannelID) Then Call Transfer_error() End If Action = LCase(Request("action")) Select Case LCase(Action) Case "savenew" Call savenew() Case "savedit" Call savedit() Case "add" Call ClassAdd() Case "edit" Call ClassEdit() Case "del" Call DelClass() Case "deldir" Call DelClassDir() Case "orders" Call orders() Case "neworders" Call updateorders() Case "restore" Call RestoreClass() Case "classorders" Call classorders() Case "newclassorders" Call updateclassorders() Case "resume" Call ResumeClass() Case Else Call showmain() End Select If FoundErr = True Then ReturnError(ErrMsg) End If Admin_footer SaveLogInfo(AdminName) NewAsp.PageEnd Sub showmain() Dim Rs,SQL,i,iCount,lCount,AddContentLink iCount=1:lCount=2 AddContentLink = "../"&Directory&"/admin_post.asp?action=add&ChannelID=" & ChannelID & "&classid=" Response.Write " <table id=""tablehovered"" align=""center"" class=""tableborder"" cellspacing=""1"" cellpadding=""2"">" Response.Write " <tr>" Response.Write " <th noWrap width=""3%"">分类ID</th>" Response.Write " <th width=""40%"">分类名称</th>" Response.Write " <th width=""35%"">管理选项</th>" Response.Write " <th noWrap width=""10%"">连接性质</th>" Response.Write "</tr>" & vbNewLine 'If Not IsObject(Conn) Then ConnectionDatabase SQL = "SELECT * FROM NC_Classify WHERE ChannelID="& ChannelID &" ORDER BY rootid,orders" Set Rs = NewAsp.CreateAXObject("ADODB.Recordset") Rs.Open SQL, Conn, 1, 1 NewAsp.SqlQueryNum = NewAsp.SqlQueryNum + 1 If Rs.BOF And Rs.EOF Then Response.Write " <tr> <td align=""center"" colspan=""4"" class=""tablerow"&iCount&""">您还没有添加任何分类!</td></tr>" End If i = 0 Do While Not Rs.EOF If (i mod 2) = 0 Then iCount=1:lCount=2 Else iCount=2:lCount=1 Response.Write " <tr>" Response.Write " <td class=""tablerow"&iCount&" hovered"">" Response.Write Rs("classid") Response.Write "</td>" Response.Write " <td class=""tablerow"&iCount&" hovered"">" Response.Write " " If Rs("depth") = 1 Then Response.Write " <font color=""#666666"">├</font>" If Rs("depth") > 1 Then For i = 2 To Rs("depth") Response.Write " <font color=""#666666"">│</font>" Next Response.Write " <font color=""#666666"">├</font> " End If If Rs("parentid") = 0 Then Response.Write ("<b>") Response.Write NewAsp.ReadFontMode(Rs("classname"),Rs("ColorModes"),Rs("FontModes")) If Rs("child") > 0 Then Response.Write "(" & Rs("child") & ")" Response.Write " </td>" & vbNewLine Response.Write " <td class=""tablerow"&iCount&" hovered"" align=""center"">" Response.Write "<a href=""?action=add&ChannelID="&ChannelID&"&editid=" Response.Write Rs("classid") Response.Write """>添加分类</a>" Response.Write " | <a href=""?action=edit&ChannelID="&ChannelID&"&editid=" Response.Write Rs("classid") Response.Write """>编辑分类</a>" Response.Write " |" Response.Write " " If Rs("child") < 1 Then Response.Write " <a href=""?action=del&ChannelID="&ChannelID&"&editid=" Response.Write Rs("classid") Response.Write """ onclick=""return confirm('删除将包括该分类的所有文章,确定删除吗?')"">删除分类</a>" Else Response.Write " <a href=""#"" onclick=""return confirm('该分类含有下属分类,必须先删除其下属分类方能删除本分类!')"">" Response.Write " 删除分类</a>" End If Response.Write " | <a href=""" Response.Write AddContentLink Response.Write Rs("classid") Response.Write """>添加内容</a>" 'Response.Write " <a href=""admin_classify.asp?action=deldir&ChannelID="&ChannelID&"&editid=" 'Response.Write Rs("classid") 'Response.Write """ onclick=""{if(confirm('删除此分类目录的同时将删除此目录下面全部的子目录和HTML文件!\n\n您确定要删除此分类目录吗?')){return true;}return false;}""><font color=red>删除分类目录</font>" 'Response.Write " " Response.Write " </td>" & vbNewLine Response.Write " <td align=""center"" class=""tablerow"&iCount&" hovered"">" If Rs("TurnLink") <> 0 Then Response.Write "<font color=red>转向连接</font>" Else Response.Write "<font color=blue>系统连接</font>" End If Response.Write " </td>" & vbNewLine Response.Write "</tr>" & vbNewLine Rs.movenext i = i + 1 Loop Rs.Close Set Rs = Nothing Response.Write " <tr>" Response.Write "<td colspan=""4"" class=""tablerow"&lCount&""">" Response.Write " </td>" Response.Write "</tr></form>" Response.Write "</table>" End Sub Sub ClassAdd() Dim NewClassID Dim Rs,SQL,i,TitleColor SQL = "SELECT MAX(ClassID) FROM NC_Classify" Set Rs = NewAsp.Execute(SQL) If Rs.BOF And Rs.EOF Then NewClassID = 1 Else NewClassID = Rs(0) + 1 End If If IsNull(NewClassID) Then NewClassID = 1 Rs.Close %> <table id="tablehovered1" border="0" align="center" cellpadding="3" cellspacing="1" class="tableborder"> <tr> <th colspan="2">添加分类</th> </tr> <form name="myform" method="POST" action="?action=savenew"> <input type="hidden" name="NewClassID" value="<%=NewClassID%>"> <input type="hidden" name="ChannelID" value="<%=ChannelID%>"> <tr> <td width="20%" class="tablerow1"><strong>分类名称:</strong></td> <td width="80%" class="tablerow1"> <input type="text" name="ClassName" id="ClassName" size="35"> </td> </tr> <tr> <td class="tablerow2"><strong>分类标题模式:</strong></td> <td class="tablerow2">颜色: <select size="1" name="ColorModes"> <option value="0">请选择颜色</option> <% TitleColor = "," & NewAsp.MainSetting(48) TitleColor = Split(TitleColor, ",") For i = 1 To UBound(TitleColor) Response.Write ("<option style=""background-color:"& TitleColor(i) &";color: "& TitleColor(i) &""" value='"& i &"'>"& TitleColor(i) &"</option>") Next %> </select> 字体: <select size="1" name="FontModes"> <option value="0">请选择字体</option> <option value="1">粗体</option> <option value="2">斜体</option> <option value="3">下划线</option> <option value="4">粗体+斜体</option> <option value="5">粗体+下划线</option> <option value="6">斜体+下划线</option> </select></td> </tr> <tr> <td class="tablerow1"><strong>分类注释:</strong></td> <td class="tablerow1"> <input type="text" name="Readme" size="60"> </td> </tr> <tr> <td class="tablerow2"><strong>所属分类:</strong></td> <td class="tablerow2"> <% Response.Write " <select name=""class"">" Response.Write "<option value=""0"">做为一级分类</option>" SQL = "SELECT classid,depth,ClassName FROM NC_Classify WHERE ChannelID = "& ChannelID &" ORDER BY rootid,orders" Set Rs = NewAsp.Execute(SQL) Do While Not Rs.EOF Response.Write "<option value=""" & Rs("classid") & """ " If Request("editid") <> "" And CLng(Request("editid")) = Rs("classid") Then Response.Write "selected" Response.Write ">" If Rs("depth") = 1 Then Response.Write " ├ " If Rs("depth") > 1 Then For i = 2 To Rs("depth") Response.Write " │" Next Response.Write " ├ " End If Response.Write Rs("ClassName") & "</option>" & vbCrLf Rs.movenext Loop Rs.Close Response.Write "</select>" Set Rs = Nothing %> </td> </tr> <tr> <td class="tablerow1"><strong>连接目标:</strong></td> <td class="tablerow1"> <input type="radio" value="0" checked name="LinkTarget"> 本窗口打开 <input type="radio" name="LinkTarget" value="1"> 新窗口打开</td> </tr> <tr> <td class="tablerow2"><strong>是否转向连接:</strong></td> <td class="tablerow2"> <input type="radio" name="TurnLink" value="0" checked onClick="ClassSetting(1)"> 否 <input type="radio" name="TurnLink" value="1" onClick="ClassSetting(2)"> 是</td> </tr> <tr> <td class="tablerow1"><strong>分类目录:</strong></td> <td class="tablerow1"><input type="text" name="ClassDir" size="15" value="sort0<%=NewClassID%>"> <br><font color=blue>一级分类相对于此频道目录,N级分类相对于上级分类目录,可以是多级目录,如:html/asp请认真填写。</font></td> </tr> <tr id="ClassSetting1" style="display:none"> <td class="tablerow2"><strong>转向连接URL:</strong></td> <td class="tablerow2"><input type="text" name="TurnLinkUrl" size="45" value="<%=NewAsp.MainDomain%>"></td> </tr> <tr id="ClassSetting2" style="display:"> <td class="tablerow2"><strong>用户组:</strong></td> <td class="tablerow2"><select size="1" name="UserGroup"> <% Set Rs = NewAsp.Execute("SELECT GroupName,Grades FROM NC_UserGroup ORDER BY Groupid") Do While Not Rs.EOF Response.Write Chr(9) & Chr(9) & "<option value=""" & Rs("Grades") & """" If Rs("Grades") = 0 Then Response.Write " selected" Response.Write ">" Response.Write Rs("GroupName") Response.Write "</option>" & vbCrLf Rs.movenext Loop Set Rs = Nothing %> </select></td> </tr> <tr> <td class="tablerow1"> </td> <td class="tablerow1"> <p align="center"><input type="button" onclick="javascript:history.go(-1)" value="返回上一页" name="B1" class=button> <input type="submit" value="保存设置" name="B2" class="button"></td> </tr> </form> </table> <% End Sub Sub ClassEdit() Dim Rs,SQL,RsObj,i,TitleColor Set Rs = NewAsp.Execute("SELECT * FROM NC_Classify WHERE ChannelID = " & ChannelID & " And ClassID = " & Request("editid")) If Rs.BOF And Rs.EOF Then FoundErr = True ErrMsg = "数据库出现错误,没有此站点栏目!" Rs.Close Set Rs = Nothing Exit Sub End If %> <table id="tablehovered1" border="0" align="center" cellpadding="3" cellspacing="1" class="tableborder"> <tr> <th colspan="2">编辑分类</th> </tr> <form name="myform" method="POST" action="?action=savedit"> <input type="hidden" name="editid" value="<%=Request("editid")%>"> <input type="hidden" name="ChannelID" value="<%=ChannelID%>"> <tr> <td width="20%" class="tablerow1"><strong>分类名称:</strong></td> <td width="80%" class="tablerow1"> <input type="text" name="ClassName" id="ClassName" size="35" value="<%=Rs("ClassName")%>"> </td> </tr> <tr> <td class="tablerow2"><strong>分类标题模式:</strong></td> <td class="tablerow2">颜色: <select size="1" name="ColorModes"> <option value="0"<%If Rs("ColorModes") = 0 Then Response.Write (" selected")%>>请选择颜色</option> <% TitleColor = "," & NewAsp.MainSetting(48) TitleColor = Split(TitleColor, ",") For i = 1 To UBound(TitleColor) Response.Write ("<option style=""background-color:"& TitleColor(i) &";color: "& TitleColor(i) &""" value='"& i &"'") If Rs("ColorModes") = i Then Response.Write (" selected") Response.Write (">"& TitleColor(i) &"</option>") Next %> </select> 字体: <select size="1" name="FontModes"> <option value="0"<%If Rs("FontModes") = 0 Then Response.Write (" selected")%>>请选择字体</option> <option value="1"<%If Rs("FontModes") = 1 Then Response.Write (" selected")%>>粗体</option> <option value="2"<%If Rs("FontModes") = 2 Then Response.Write (" selected")%>>斜体</option> <option value="3"<%If Rs("FontModes") = 3 Then Response.Write (" selected")%>>下划线</option> <option value="4"<%If Rs("FontModes") = 4 Then Response.Write (" selected")%>>粗体+斜体</option> <option value="5"<%If Rs("FontModes") = 5 Then Response.Write (" selected")%>>粗体+下划线</option> <option value="6"<%If Rs("FontModes") = 6 Then Response.Write (" selected")%>>斜体+下划线</option> </select></td> </tr> <tr> <td class="tablerow1"><strong>分类注释:</strong></td> <td class="tablerow1"> <input type="text" name="Readme" size="60" value="<%=Rs("Readme")%>"> </td> </tr> <tr> <td class="tablerow2"><strong>所属分类:</strong></td> <td class="tablerow2"> <% Response.Write " <select name=""class"">" Response.Write "<option value=""0"">做为一级分类</option>" SQL = "SELECT classid,depth,ClassName FROM NC_Classify WHERE ChannelID = "& ChannelID &" ORDER BY rootid,orders" Set RsObj = NewAsp.Execute(SQL) Do While Not RsObj.EOF Response.Write "<option value=""" & RsObj("classid") & """ " If CLng(Rs("parentid")) = RsObj("classid") Then Response.Write "selected" Response.Write ">" If RsObj("depth") = 1 Then Response.Write " ├ " If RsObj("depth") > 1 Then For i = 2 To RsObj("depth") Response.Write " │" Next Response.Write " ├ " End If Response.Write RsObj("ClassName") & "</option>" & vbCrLf RsObj.movenext Loop RsObj.Close Response.Write "</select>" Set RsObj = Nothing %> </td> </tr> <tr> <td class="tablerow1"><strong>连接目标:</strong></td> <td class="tablerow1"> <input type="radio" value="0" name="LinkTarget"<%If Rs("LinkTarget") = 0 Then Response.Write " checked"%>> 本窗口打开 <input type="radio" name="LinkTarget" value="1"<%If Rs("LinkTarget") = 1 Then Response.Write " checked"%>> 新窗口打开</td> </tr> <tr> <td class="tablerow2"><strong>是否转向连接:</strong></td> <td class="tablerow2"> <input type="radio" name="TurnLink" value="0" onClick="ClassSetting(1)"<%If Rs("TurnLink") = 0 Then Response.Write " checked"%>> 否 <input type="radio" name="TurnLink" value="1" onClick="ClassSetting(2)"<%If Rs("TurnLink") = 1 Then Response.Write " checked"%>> 是</td> </tr> <tr> <td class="tablerow1"><strong>分类目录:</strong></td> <td class="tablerow1"><input type="text" name="ClassDir" size="15" value="<%=Rs("ClassDir")%>"> <font color="red">相对于此频道目录,请不要随意修改,一但修改需要生成所有的HTML文件;谨用!</font></td> </tr> <tr id="ClassSetting1"<%If Rs("TurnLink") = 0 Then Response.Write " style=""display:none"""%>> <td class="tablerow2"><strong>转向连接URL:</strong></td> <td class="tablerow2"><input type="text" name="TurnLinkUrl" size="45" value="<%=Rs("TurnLinkUrl")%>"></td> </tr> <tr id="ClassSetting2"<%If Rs("TurnLink") <> 0 Then Response.Write " style=""display:none"""%>> <td class="tablerow2"><strong>用户组:</strong></td> <td class="tablerow2"><select size="1" name="UserGroup"> <% Set RsObj = NewAsp.Execute("SELECT GroupName,Grades FROM NC_UserGroup ORDER BY Groupid") Do While Not RsObj.EOF Response.Write Chr(9) & Chr(9) & "<option value=""" & RsObj("Grades") & """" If Rs("UserGroup") = RsObj("Grades") Then Response.Write " selected" Response.Write ">" Response.Write RsObj("GroupName") Response.Write "</option>" & vbCrLf RsObj.movenext Loop Set RsObj = Nothing %> </select></td> </tr> <tr> <td class="tablerow1"> </td> <td class="tablerow1"> <p align="center"><input type="button" onclick="javascript:history.go(-1)" value="返回上一页" name="B1" class=button> <input type="submit" value="保存设置" name="B2" class="button"></td> </tr> </form> </table> <% Set Rs = Nothing End Sub Sub CheckSave() If Trim(Request("classname")) = "" Then ErrMsg = ErrMsg + "<li>请输入分类名称。</li>" Founderr = True End If If Not IsNumeric(Request("class")) Then ErrMsg = ErrMsg + "<li>请选择所属分类。</li>" Founderr = True End If If Trim(Request("Readme")) = "" Then ErrMsg = ErrMsg + "<li>请输入分类说明。</li>" Founderr = True End If If Trim(Request.Form("TurnLink")) = "" Then ErrMsg = ErrMsg + "<li>转向连接的URL不能为空。</li>" Founderr = True End If If Trim(Request.Form("LinkTarget")) = "" Then ErrMsg = ErrMsg + "<li>请选择连接目标。</li>" Founderr = True End If If Trim(Request.Form("ColorModes")) = "" Then ErrMsg = ErrMsg + "<li>请选择标题颜色。</li>" Founderr = True End If If Trim(Request.Form("FontModes")) = "" Then ErrMsg = ErrMsg + "<li>请选择标题字体。</li>" Founderr = True End If If CInt(Request.Form("TurnLink")) = 1 Then If Request("TurnLinkUrl") = "" Then ErrMsg = ErrMsg + "<li>转向连接的URL不能为空。</li>" Founderr = True End If Else If Request("UserGroup") = "" Then ErrMsg = ErrMsg + "<li>请选择用户组。</li>" Founderr = True End If End If If Len(Request.Form("ChannelName")) => 25 Then FoundErr = True ErrMsg = ErrMsg + "<li>分类名称名称不能超过50个字符!</li>" End If If Len(Request.Form("Readme")) => 200 Then FoundErr = True ErrMsg = ErrMsg + "<li>栏目注释不能超过200个字符!</li>" End If If Len(Request.Form("ClassDir")) = 0 And Request.Form("TurnLink") = 0 Then FoundErr = True ErrMsg = ErrMsg + "<li>分类目录不能为空!</li>" End If strClassDir = Replace(Replace(Replace(Request.Form("ClassDir"), "\","/"), " ",""), "'","") If strClassDir="" Then FoundErr = True ErrMsg = ErrMsg + "<li>目录名不能为空!</li>" End If If Right(strClassDir, 1) <> "/" Then strClassDir = strClassDir Else strClassDir = Left(strClassDir,Len(strClassDir)-1) End If If Left(strClassDir, 1) = "/" Then FoundErr = True ErrMsg = ErrMsg + "<li>目录前面不能有“/”,请认真填写分类目录!</li>" End If End Sub Sub savenew() Dim classid,rootid,ParentID,depth,orders Dim Maxrootid,ParentStr,ChildStr,neworders Dim Rs,SQL '保存添加分类信息 CheckSave If Founderr = True Then Exit Sub If Request("class") <> "0" Then SQL = "SELECT rootid,classid,depth,orders,ParentStr,TurnLink,HtmlFileDir FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("class") Set Rs = NewAsp.Execute (SQL) rootid = Rs(0) ParentID = Rs(1) depth = Rs(2) orders = Rs(3) If depth + 1 > 20 Then ErrMsg = "<li>本系统限制最多只能有20级子分类</li>" Founderr = True Exit Sub End If If Rs("TurnLink") = 1 Then ErrMsg = "<li>该分类是外部连接,您不能指定该分类作为所属分类</li>" Founderr = True Exit Sub End If ParentStr = Rs(4) HtmlFileDir = Rs("HtmlFileDir") Rs.Close Else SQL = "SELECT MAX(rootid) FROM NC_Classify WHERE ChannelID = "& ChannelID Set Rs = NewAsp.Execute (SQL) Maxrootid = Rs(0) + 1 If IsNull(Maxrootid) Then Maxrootid = 1 Rs.Close End If SQL = "SELECT classid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & NewAsp.ChkNumeric(Request("newclassid")) Set Rs = NewAsp.Execute (SQL) If Not (Rs.EOF And Rs.BOF) Then ErrMsg = "<li>您不能指定和别的分类一样的序号。</li>" Founderr = True Exit Sub Else classid = Request("newclassid") End If Rs.Close Set Rs = NewAsp.CreateAXObject("adodb.recordset") SQL = "SELECT * FROM NC_Classify" Rs.Open SQL, Conn, 1, 3 Rs.addnew If Request("class") <> "0" Then Rs("depth") = depth + 1 Rs("rootid") = rootid Rs("parentid") = Request.Form("class") HtmlFileDir = HtmlFileDir & strClassDir & "/" If ParentStr = "0" Then Rs("ParentStr") = Request.Form("class") Else Rs("ParentStr") = ParentStr & "," & Request.Form("class") End If Else Rs("depth") = 0 Rs("rootid") = Maxrootid Rs("parentid") = 0 Rs("ParentStr") = 0 HtmlFileDir = strClassDir & "/" End If Rs("ChannelID") = ChannelID Rs("ColorModes") = Trim(Request.Form("ColorModes")) Rs("FontModes") = Trim(Request.Form("FontModes")) Rs("child") = 0 Rs("ChildStr") = Trim(Request.Form("newclassid")) Rs("LinkTarget") = Trim(Request.Form("LinkTarget")) Rs("TurnLink") = Trim(Request.Form("TurnLink")) Rs("TurnLinkUrl") = Trim(Request.Form("TurnLinkUrl")) Rs("UserGroup") = Trim(Request.Form("UserGroup")) Rs("HtmlFileDir") = Trim(HtmlFileDir) Rs("ClassDir") = Trim(strClassDir) Rs("classid") = NewAsp.ChkNumeric(Request.Form("newclassid")) Rs("orders") = NewAsp.ChkNumeric(Request.Form("newclassid")) Rs("classname") = Trim(Request.Form("classname")) Rs("readme") = Trim(Request.Form("readme")) Rs("ShowCount") = 0 Rs("isUpdate") = 1 Rs("AdsCode") = "|||||||||||||||" Rs.Update Rs.Close If Request("class") <> "0" Then Dim nClassID ParentStr = ParentStr & "," & Request.Form("class") nClassID = Trim(Request.Form("newclassid")) SQL = "SELECT classid,ParentStr,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid in (" & ParentStr & ")" Set Rs = NewAsp.Execute (SQL) Do While Not Rs.EOF ChildStr = Rs("ChildStr") & "," & nClassID NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='"&ChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rs("classid")) Rs.movenext Loop Rs.Close End If Dim LocalPath If CInt(NewAsp.IsCreateHtml) <> 0 And CInt(Request.Form("TurnLink")) = 0 Then LocalPath = NewAsp.InstallDir & ChannelDir & HtmlFileDir 'NewAsp.CreatPathEx(LocalPath) End If CheckAndFixClass 0,1 Call RemoveCache SucMsg = "<li>恭喜您!分类添加成功。</li>" Set Rs = Nothing Succeed(SucMsg) End Sub Sub savedit() Dim newclassid,Maxrootid,ParentID,depth,Child Dim ParentStr,rootid,iparentid,iParentStr Dim trs,brs,mrs,Rsc,Rss,k Dim nParentStr,mParentStr,ParentSql,ChildStr,nChildStr Dim ArrChildStr,ii,ClassCount Dim Rs,SQL,i '保存编辑分类信息 If CLng(Request("editid")) = CLng(Request("class")) Then ErrMsg = "<li>所属分类不能指定自己</li>" Founderr = True Exit Sub End If CheckSave If Founderr = True Then Exit Sub If CLng(Request("class")) <> 0 Then HtmlFileDir = NewAsp.Execute("SELECT HtmlFileDir FROM [NC_Classify] WHERE ChannelID = "& ChannelID &" And classid=" & Request("class"))(0) HtmlFileDir = HtmlFileDir & strClassDir & "/" End If Set Rs = NewAsp.CreateAXObject("adodb.recordset") SQL = "SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("editid") Rs.Open SQL, Conn, 1, 3 newclassid = Rs("classid") ParentID = Rs("parentid") iparentid = Rs("parentid") ParentStr = Rs("ParentStr") ChildStr = Rs("ChildStr") ClassDir = Rs("ClassDir") depth = Rs("depth") Child = Rs("child") rootid = Rs("rootid") If CLng(Request("class")) = 0 Then HtmlFileDir = strClassDir & "/" End If If Child <> 0 And LCase(ClassDir) <> LCase(strClassDir) Then ErrMsg = "<li>对不起!该分类中有下属分类不能修改分类目录!</li>" Founderr = True Exit Sub End If If Child <> 0 And ParentID <> Clng(Request("class")) Then ErrMsg = "<li>对不起!该分类中有下属分类不能移动,请先移动其下属分类。</li>" Founderr = True Exit Sub End If If ParentID = 0 Then If CLng(Request("class")) <> 0 Then Set trs = NewAsp.Execute("SELECT rootid,TurnLink FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("class")) If rootid = trs(0) Then ErrMsg = "<li>您不能指定该分类的下属分类作为所属分类</li>" Founderr = True Exit Sub End If If trs(1) = 1 Then ErrMsg = "<li>该分类是外部连接,您不能指定该分类作为所属分类</li>" Founderr = True Exit Sub End If End If Else Set trs = NewAsp.Execute("SELECT classid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%' and classid=" & Request("class")) If Not (tRs.EOF And tRs.BOF) Then ErrMsg = "<li>您不能指定该分类的下属分类作为所属分类</li>" Founderr = True Exit Sub End If End If If ParentID = 0 Then ParentID = Rs("classid") iparentid = 0 End If Rs("classname") = Trim(Request.Form("classname")) Rs("readme") = Trim(Request.Form("readme")) Rs("ColorModes") = Trim(Request.Form("ColorModes")) Rs("FontModes") = Trim(Request.Form("FontModes")) Rs("LinkTarget") = Trim(Request.Form("LinkTarget")) Rs("TurnLink") = Trim(Request.Form("TurnLink")) Rs("TurnLinkUrl") = Trim(Request.Form("TurnLinkUrl")) Rs("UserGroup") = Trim(Request.Form("UserGroup")) Rs("ClassDir") = Trim(strClassDir) Rs("HtmlFileDir") = Trim(HtmlFileDir) Rs("isUpdate") = 1 Rs.Update Rs.Close Set Rs = Nothing Set mrs = NewAsp.Execute("SELECT MAX(rootid) FROM NC_Classify WHERE ChannelID="& ChannelID) Maxrootid = mrs(0) + 1 '假如更改了所属分类 '需要更新其原来所属分类信息,包括深度、父级ID、分类数、排序 '需要更新当前所属分类信息 If CLng(ParentID) <> CLng(Request("class")) And Not (iparentid = 0 And CInt(Request("class")) = 0) Then '如果原来不是一级分类改成一级分类 If iparentid > 0 And CInt(Request("class")) = 0 Then '如果不是一级分类改成一级分类,更新子分类数据 '开始更新子分类 'ChildStr = "," & ChildStr Set Rsc = NewAsp.Execute ("SELECT classid,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid in (" & ParentStr & ")") Do While Not Rsc.EOF ArrChildStr = Split(Rsc("ChildStr"), ",") nChildStr = "" For ii = 0 to Ubound(ArrChildStr) If ArrChildStr(ii) <> ChildStr Then nChildStr = nChildStr & ArrChildStr(ii) & Chr(32) End If Next nChildStr = Replace(Trim(nChildStr), Chr(32), ",") 'nChildStr = Replace(Rsc("ChildStr"), ChildStr, "") NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='" & nChildStr & "' WHERE ChannelID = "& ChannelID &" And classid = " & Rsc("classid")) Rsc.movenext Loop Rsc.Close Set Rsc = Nothing '更新子分类结束 '--------------------------------------------------- '更新当前分类数据 NewAsp.Execute ("UPDATE NC_Classify set depth=0,orders=0,rootid=" & Maxrootid & ",parentid=0,ParentStr='0' WHERE classid=" & newclassid) ParentStr = ParentStr & "," Set Rs = NewAsp.Execute("SELECT COUNT(ClassID) FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%'") ClassCount = Rs(0) If IsNull(ClassCount) Then ClassCount = 1 Else ClassCount = ClassCount + 1 End If '更新其原来所属分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child-" & ClassCount & " WHERE ChannelID = "& ChannelID &" And classid=" & iparentid) '更新其原来所属分类数据,排序相当于剪枝而不需考虑 For i = 1 To depth '得到其父类的父类的ID Set Rs = NewAsp.Execute("SELECT parentid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & iparentid) If Not (Rs.EOF And Rs.BOF) Then iparentid = Rs(0) NewAsp.Execute ("UPDATE NC_Classify SET child=child-" & ClassCount & " WHERE ChannelID = "& ChannelID &" And classid=" & iparentid) End If Next If Child > 0 Then '更新其下属分类数据 '有下属分类,排序不需考虑,更新下属分类深度和一级排序ID(rootid)数据 '更新当前分类数据 i = 0 Set Rs = NewAsp.Execute("SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr LIKE '%" & ParentStr & "%'") Do While Not Rs.EOF i = i + 1 mParentStr = Replace(Rs("ParentStr"), ParentStr, "") NewAsp.Execute ("UPDATE NC_Classify SET depth=depth-" & depth & ",rootid=" & Maxrootid & ",ParentStr='" & mParentStr & "' WHERE ChannelID = "& ChannelID &" And classid=" & Rs("classid")) Rs.movenext Loop End If '------------------------------------------------------ ElseIf iparentid > 0 And CInt(Request("class")) > 0 Then '将一个分类移动到其他分类下 '开始更新子分类 'ChildStr = "," & ChildStr Set Rsc = NewAsp.Execute ("SELECT classid,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid in (" & ParentStr & ")") Do While Not Rsc.EOF ArrChildStr = Split(Rsc("ChildStr"), ",") nChildStr = "" For ii = 0 to Ubound(ArrChildStr) If ArrChildStr(ii) <> ChildStr Then nChildStr = nChildStr & ArrChildStr(ii) & Chr(32) End If Next nChildStr = Replace(Trim(nChildStr), Chr(32), ",") 'nChildStr = Replace(Rsc("ChildStr"), ChildStr, "") NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='" & nChildStr & "' WHERE ChannelID = "& ChannelID &" And classid = " & Rsc("classid")) Rsc.movenext Loop Rsc.Close Set Rsc = Nothing '更新子分类结束 '----------------------------------------------------------- '获得所指定的分类的相关信息 Set trs = NewAsp.Execute("SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & NewAsp.ChkNumeric(Request("class"))) '得到其下属分类数 ParentStr = ParentStr & "," Set Rs = NewAsp.Execute("SELECT COUNT(ClassID) FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%'") ClassCount = Rs(0) If IsNull(ClassCount) Then ClassCount = 1 '在获得移动过来的分类数后更新排序在指定分类之后的分类排序数据 NewAsp.Execute ("UPDATE NC_Classify SET orders=orders + " & ClassCount & " + 1 WHERE rootid=" & trs("rootid") & " and orders>" & trs("orders") & "") '更新当前分类数据 NewAsp.Execute ("UPDATE NC_Classify SET depth=" & trs("depth") & "+1,orders=" & trs("orders") & "+1,rootid=" & trs("rootid") & ",ParentID=" & NewAsp.ChkNumeric(Request("class")) & ",ParentStr='" & trs("ParentStr") & "," & trs("classid") & "' WHERE ChannelID = "& ChannelID &" And classid=" & newclassid) i = 1 '如果有则更新下属分类数据 '深度为原有深度加上当前所属分类的深度 Set Rs = NewAsp.Execute("SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%' ORDER BY orders") Do While Not Rs.EOF i = i + 1 iParentStr = trs("ParentStr") & "," & trs("classid") & "," & Replace(Rs("ParentStr"), ParentStr, "") NewAsp.Execute ("UPDATE NC_Classify SET depth=depth+" & trs("depth") & "-" & depth & "+1,orders=" & trs("orders") & "+" & i & ",rootid=" & trs("rootid") & ",ParentStr='" & iParentStr & "' WHERE ChannelID = "& ChannelID &" And classid=" & Rs("classid")) Rs.movenext Loop ParentID = Request("class") If rootid = trs("rootid") Then '在同一分类下移动 '更新所指向的上级分类数,i为本次移动过来的分类数 '更新其父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child+" & i & " WHERE ChannelID = "& ChannelID &" And (not ParentID=0) and classid=" & ParentID) For k = 1 To trs("depth") '得到其父类的父类的分类ID Set Rs = NewAsp.Execute("SELECT parentid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And (not ParentID=0) and classid=" & ParentID) If Not (Rs.EOF And Rs.BOF) Then ParentID = Rs(0) '更新其父类的父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child+" & i & " WHERE ChannelID = "& ChannelID &" And (not ParentID=0) and classid=" & ParentID) End If Next '更新其原父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child-" & i & " WHERE ChannelID = "& ChannelID &" And (not ParentID=0) and classid=" & iparentid) '更新其原来所属分类数据 For k = 1 To depth '得到其原父类的父类的分类ID Set Rs = NewAsp.Execute("SELECT parentid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And (not ParentID=0) and classid=" & iparentid) If Not (Rs.EOF And Rs.BOF) Then iparentid = Rs(0) '更新其原父类的父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child-" & i & " WHERE ChannelID = "& ChannelID &" And (not ParentID=0) and classid=" & iparentid) End If Next Else '更新所指向的上级分类数,i为本次移动过来的分类数 '更新其父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child+" & i & " WHERE ChannelID = "& ChannelID &" And classid=" & ParentID) For k = 1 To trs("depth") '得到其父类的父类的分类ID Set Rs = NewAsp.Execute("SELECT parentid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & ParentID) If Not (Rs.EOF And Rs.BOF) Then ParentID = Rs(0) '更新其父类的父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child+" & i & " WHERE ChannelID = "& ChannelID &" And classid=" & ParentID) End If Next '更新其原父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child-" & i & " WHERE ChannelID = "& ChannelID &" And classid=" & iparentid) For k = 1 To depth '得到其原父类的父类的分类ID Set Rs = NewAsp.Execute("SELECT parentid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & iparentid) If Not (Rs.EOF And Rs.BOF) Then iparentid = Rs(0) '更新其原父类的父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child-" & i & " WHERE ChannelID = "& ChannelID &" And classid=" & iparentid) End If Next End If '----------------------------------------------- '开始更新子分类 SQL = "SELECT classid,parentid,ParentStr,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("class") Set Rss = NewAsp.Execute (SQL) If Rss("parentid") <> 0 Then '如果是一级分类移动到其它一级分类的子分类 nChildStr = Rss("ChildStr") & "," & NewAsp.ChkNumeric(Request("editid")) NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='"&nChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rss("classid")) SQL = "SELECT classid,ParentStr,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid in (" & Rss("ParentStr") & ")" Set Rsc = NewAsp.Execute (SQL) Do While Not Rsc.EOF nChildStr = Rsc("ChildStr") & "," & NewAsp.ChkNumeric(Request("editid")) NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='"&nChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rsc("classid")) Rsc.movenext Loop Rsc.Close Set Rsc = Nothing Else '如果是一级分类移动到其它一级分类,执行以下更新 nChildStr = Rss("ChildStr") & "," & NewAsp.ChkNumeric(Request("editid")) NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='"&nChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rss("classid")) End If Rss.Close Set Rss = Nothing '更新子分类结束 Else '如果原来是一级分类改成其他分类的下属分类 '更新一级分类的子分类 '开始更新子分类 SQL = "SELECT classid,parentid,ParentStr,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & CLng(Request("class")) Set Rss = NewAsp.Execute (SQL) If Rss("parentid") <> 0 Then '如果是一级分类移动到其它一级分类的子分类 nChildStr = Rss("ChildStr") & "," & ChildStr NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='"&nChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rss("classid")) SQL = "SELECT classid,ParentStr,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid in (" & Rss("ParentStr") & ")" Set Rsc = NewAsp.Execute (SQL) Do While Not Rsc.EOF nChildStr = Rsc("ChildStr") & "," & ChildStr NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='"&nChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rsc("classid")) Rsc.movenext Loop Rsc.Close Set Rsc = Nothing Else '如果是一级分类移动到其它一级分类,执行以下更新 nChildStr = Rss("ChildStr") & "," & ChildStr NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='"&nChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rss("classid")) End If Rss.Close Set Rss = Nothing '更新子分类结束 '--------------------------------------------------- '得到所指定的分类的相关信息 Set trs = NewAsp.Execute("SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & CLng(Request("class"))) Set Rs = NewAsp.Execute("SELECT COUNT(ClassID) FROM NC_Classify WHERE ChannelID = "& ChannelID &" And rootid=" & rootid) ClassCount = Rs(0) Rs.Close '更新所指向的上级分类数,i为本次移动过来的分类数 ParentID = Request("class") '更新其父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child+" & ClassCount & " WHERE ChannelID = "& ChannelID &" And classid=" & ParentID) For k = 1 To trs("depth") '得到其父类的父类的分类ID Set Rs = NewAsp.Execute("SELECT parentid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & ParentID) If Not (Rs.EOF And Rs.BOF) Then ParentID = Rs(0) '更新其父类的父类分类数 NewAsp.Execute ("UPDATE NC_Classify SET child=child+" & ClassCount & " WHERE ChannelID = "& ChannelID &" And classid=" & ParentID) End If Next '在获得移动过来的分类数后更新排序在指定分类之后的分类排序数据 NewAsp.Execute ("UPDATE NC_Classify SET orders=orders + " & ClassCount & " + 1 WHERE ChannelID = "& ChannelID &" And rootid=" & trs("rootid") & " and orders>" & trs("orders") & "") i = 0 Set Rs = NewAsp.Execute("SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" And rootid=" & rootid & " ORDER BY orders") Do While Not Rs.EOF i = i + 1 If Rs("parentid") = 0 Then If trs("ParentStr") = "0" Then ParentStr = trs("classid") Else ParentStr = trs("ParentStr") & "," & trs("classid") End If NewAsp.Execute ("UPDATE NC_Classify SET depth=depth+" & trs("depth") & "+1,orders=" & trs("orders") & "+" & i & ",rootid=" & trs("rootid") & ",ParentStr='" & ParentStr & "',parentid=" & CLng(Request("class")) & " WHERE ChannelID = "& ChannelID &" And classid=" & Rs("classid")) Else If trs("ParentStr") = "0" Then ParentStr = trs("classid") & "," & Rs("ParentStr") Else ParentStr = trs("ParentStr") & "," & trs("classid") & "," & Rs("ParentStr") End If NewAsp.Execute ("UPDATE NC_Classify SET depth=depth+" & trs("depth") & "+1,orders=" & trs("orders") & "+" & i & ",rootid=" & trs("rootid") & ",ParentStr='" & ParentStr & "' WHERE ChannelID = "& ChannelID &" And classid=" & Rs("classid")) End If Rs.movenext Loop '------------------------------------ End If End If Set Rs = Nothing Set mrs = Nothing Set trs = Nothing Dim LocalPath If CInt(NewAsp.IsCreateHtml) > 0 And CInt(Request.Form("TurnLink")) = 0 Then LocalPath = NewAsp.InstallDir & ChannelDir & HtmlFileDir 'NewAsp.CreatPathEx(LocalPath) End If CheckAndFixClass 0,1 Call RemoveCache SucMsg = "<li>恭喜您!分类修改成功。</li>" Succeed(SucMsg) End Sub Sub DelClass() Dim ChildStr,nChildStr Dim Rss,Rsc Dim Rs,SQL On Error Resume Next Set Rs = NewAsp.Execute("SELECT ParentStr,child,depth,parentid,HtmlFileDir,UseHtml FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & NewAsp.ChkNumeric(Request("editid"))) If Not (Rs.EOF And Rs.BOF) Then If Rs(1) > 0 Then ErrMsg = "<li>该分类含有下属分类,请删除其下属分类后再进行删除本分类的操作</li>" Founderr = True Exit Sub End If HtmlFileDir = Rs(4) 'UseHtml = Rs(5) If Rs(3) > 0 Then ChildStr = "," & NewAsp.ChkNumeric(Request("editid")) SQL = "SELECT classid,ParentStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & NewAsp.ChkNumeric(Request("editid")) Set Rss = NewAsp.Execute (SQL) SQL = "SELECT classid,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid in (" & Rss("ParentStr") & ")" Set Rsc = NewAsp.Execute (SQL) Do While Not Rsc.EOF nChildStr = Replace(Rsc("ChildStr"), ChildStr, "") NewAsp.Execute ("UPDATE NC_Classify SET ChildStr='"&nChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rsc("classid")) Rsc.movenext Loop Rsc.Close Set Rsc = Nothing Set Rss = Nothing End If If Rs(2) > 0 Then NewAsp.Execute ("UPDATE NC_Classify set child=child-1 WHERE ChannelID = "& ChannelID &" And classid in (" & Rs(0) & ")") End If SQL = "DELETE FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & NewAsp.ChkNumeric(Request("editid")) NewAsp.Execute (SQL) Call DelRelated End If Set Rs = Nothing NewAsp.Execute("UPDATE NC_Classify SET child=0 WHERE ChannelID="& ChannelID &" And child<0") CheckAndFixClass 0,1 Call RemoveCache Succeed ("恭喜您!分类删除成功。") End Sub Sub ResumeClass() CheckAndFixClass 0,1 Response.Redirect Request.ServerVariables("HTTP_REFERER") End Sub Sub CheckAndFixClass(ParentID,orders) Dim Rs,Child,ParentStr If ParentID=0 Then NewAsp.Execute("UPDATE NC_Classify SET Depth=0,ParentStr='0' WHERE ChannelID="& ChannelID &" And ParentID=0") End If Set Rs=NewAsp.Execute("SELECT classid,rootid,ParentStr,Depth FROM NC_Classify WHERE ChannelID="& ChannelID &" And ParentID="&ParentID&" ORDER BY rootid,orders") Do while Not Rs.EOF If Rs(2)<>"0" Then ParentStr=Rs(2)&","&Rs(0) Else ParentStr=Rs(0) End If Conn.Execute "UPDATE NC_Classify SET Depth="&Rs(3)+1&",ParentStr='"&ParentStr&"',rootid="&rs(1)&" WHERE ChannelID="& ChannelID &" And ParentID="&Rs(0)&"",Child NewAsp.Execute("UPDATE NC_Classify SET Child="&Child&",orders="&orders&" WHERE ChannelID="& ChannelID &" And classid="&Rs(0)&"") orders=orders+1 CheckAndFixClass Rs(0),orders Rs.MoveNext Loop Set Rs=Nothing End Sub Sub DelRelated() On Error Resume Next SELECT Case moduleidu Case 1 NewAsp.Execute("DELETE NC_Comment FROM NC_Article A INNER JOIN NC_Comment C ON C.PostID=A.ArticleID WHERE A.ChannelID = "& ChannelID &" And A.classid=" & CLng(Request("editid"))) NewAsp.Execute("DELETE FROM NC_Article WHERE ChannelID = "& ChannelID &" And classid=" & CLng(Request("editid"))) Case 2 NewAsp.Execute ("DELETE NC_DownAddress FROM NC_SoftList A INNER JOIN NC_DownAddress D ON D.SoftID=A.SoftID WHERE A.ChannelID = "& ChannelID &" And A.classid=" & CLng(Request("editid"))) NewAsp.Execute ("DELETE NC_Comment FROM NC_SoftList A INNER JOIN NC_Comment C ON C.PostID=A.SoftID WHERE A.ChannelID = "& ChannelID &" And A.classid=" & CLng(Request("editid"))) NewAsp.Execute ("DELETE FROM NC_SoftList WHERE ChannelID = "& ChannelID &" And classid=" & CLng(Request("editid"))) Case 3 NewAsp.Execute("DELETE NC_Comment FROM NC_ShopList A INNER JOIN NC_Comment C ON C.PostID=A.ShopID WHERE A.ChannelID = "& ChannelID &" And A.classid=" & CLng(Request("editid"))) NewAsp.Execute("DELETE FROM NC_ShopList WHERE ChannelID = "& ChannelID &" And classid=" & CLng(Request("editid"))) Case 5 NewAsp.Execute("DELETE NC_Comment FROM NC_FlashList A INNER JOIN NC_Comment C ON C.PostID=A.flashid WHERE A.ChannelID = "& ChannelID &" And A.classid=" & CLng(Request("editid"))) NewAsp.Execute("DELETE FROM NC_FlashList WHERE ChannelID = "& ChannelID &" And classid=" & CLng(Request("editid"))) End SELECT NewAsp.FolderDelete(NewAsp.InstallDir & ChannelDir & HtmlFileDir) End Sub Sub DelClassDir() On Error Resume Next Set Rs = NewAsp.Execute("SELECT HtmlFileDir FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & CLng(Request("editid"))) If Not (Rs.EOF And Rs.BOF) Then NewAsp.FolderDelete(NewAsp.InstallDir & ChannelDir & Rs("HtmlFileDir")) End If Succeed ("恭喜您!分类目录删除成功。") End Sub Sub orders() Dim Rs,SQL,i,iCount,lCount Response.Write " <table id=""tablehovered"" border=""0"" cellspacing=""1"" cellpadding=""3"" align=""center"" class=""tableborder"">" & vbCrLf Response.Write " <tr>" & vbCrLf Response.Write " <th colspan=""2"">分类一级分类重新排序修改(请在相应分类的排序表单内输入相应的排列序号) </th>" Response.Write " </tr>" & vbCrLf i=0:iCount=1:lCount=1 SQL = "SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentID=0 ORDER BY RootID" Set Rs = NewAsp.Execute (SQL) If Rs.BOF And Rs.EOF Then ErrMsg = "<li>还没有相应的" & NewAsp.ModuleName & "分类。</li>" Founderr = True Exit Sub Else Do While Not Rs.EOF If (i mod 2) = 0 Then iCount=1:lCount=2 Else iCount=2:lCount=1 Response.Write "<form action=""?action=neworders"" method=""post""><tr>" & vbCrLf Response.Write " <td class=""tablerow"&iCount&" hovered"" align=""right"">" Response.Write Rs("classname") & "</td>" & vbCrLf Response.Write "<td class=""tablerow"&iCount&" hovered""><input type=""hidden"" name=""ChannelID"" value=""" & ChannelID & """><input type=""text"" name=""OrderID"" size=""4"" value=""" & Rs("rootid") & """><input type=""hidden"" name=""cID"" value=""" & Rs("rootid") & """> <input type=""submit"" name=""submit2"" class=""button"" value=""修 改""></td></tr></form>" & vbCrLf Rs.movenext i=i+1 Loop End If Rs.Close Set Rs = Nothing Response.Write " <tr><td class=""tablerow"&lCount&""" colspan=""2"">" & vbCrLf Response.Write " <font color=""red"">请注意,这里一定<B>不能填写相同的序号</B>,否则非常难修复!</font></td>" & vbCrLf Response.Write " </tr>" & vbCrLf Response.Write "</table>" & vbCrLf End Sub Sub updateorders() Dim cID Dim OrderID Dim ClassName Dim Rs cID = Replace(Request.Form("cID"), "'", "") OrderID = Replace(Request.Form("OrderID"), "'", "") Set Rs = NewAsp.Execute("SELECT classid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And rootid=" & OrderID) If Rs.BOF And Rs.EOF Then Succeed ("恭喜您!设置成功,请返回。") NewAsp.Execute ("UPDATE NC_Classify SET rootid=" & OrderID & " WHERE ChannelID = "& ChannelID &" And rootid=" & cID) Else ErrMsg = "<li>请不要和其他分类设置相同的序号</li>" Founderr = True Exit Sub End If Call RemoveCache Set Rs = Nothing End Sub Sub classorders() Dim Rs,i,SQL,iCount,lCount,n Dim trs Dim uporders Dim doorders n=0:iCount=1:lCount=2 Response.Write " <table id=""tablehovered"" border=""0"" cellspacing=""1"" cellpadding=""2"" class=""tableborder"" align=""center"">" & vbCrLf Response.Write " <tr>" & vbCrLf Response.Write " <th colspan=""2"">分类N级分类重新排序修改(请在相应分类的排序表单内输入相应的排列序号)" Response.Write " </th>" Response.Write " </tr>" & vbCrLf Set Rs = NewAsp.CreateAXObject("Adodb.recordset") SQL = "SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" ORDER BY RootID,orders" Rs.Open SQL, Conn, 1, 1 If Rs.BOF And Rs.EOF Then Response.Write "还没有相应的分类。" Else Do While Not Rs.EOF If (n mod 2) = 0 Then iCount=1:lCount=2 Else iCount=2:lCount=1 Response.Write "<form action=""?action=newclassorders&ChannelID=" & ChannelID & """ method=""post""><tr><td width=""50%"" class=""tablerow"&iCount&" hovered"">" & vbCrLf If Rs("depth") = 1 Then Response.Write " <font color=""#666666"">├</font>" If Rs("depth") > 1 Then For i = 2 To Rs("depth") Response.Write " <font color=""#666666"">│</font>" Next Response.Write " <font color=""#666666"">├</font> " End If If Rs("parentid") = 0 Then Response.Write ("<b>") Response.Write Rs("classname") If Rs("child") > 0 Then Response.Write "(" & Rs("child") & ")" Response.Write "</td><td width=""50%"" class=""tablerow"&iCount&" hovered"">" & vbCrLf If Rs("ParentID") > 0 Then Set trs = NewAsp.Execute("SELECT COUNT(*) FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentID=" & Rs("ParentID") & " And orders<" & Rs("orders") & "") uporders = trs(0) If IsNull(uporders) Then uporders = 0 Set trs = NewAsp.Execute("SELECT COUNT(*) FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentID=" & Rs("ParentID") & " And orders>" & Rs("orders") & "") doorders = trs(0) If IsNull(doorders) Then doorders = 0 If uporders > 0 Then Response.Write "<select name=""uporders"" size=""1""><option value=""0"">↑</option>" & vbCrLf For i = 1 To uporders Response.Write "<option value=""" & i & """>↑" & i & "</option>" & vbCrLf Next Response.Write "</select>" End If If doorders > 0 Then If uporders > 0 Then Response.Write " " Response.Write "<select name=""doorders"" size=""1""><option value=""0"">↓</option>" & vbCrLf For i = 1 To doorders Response.Write "<option value=""" & i & """>↓" & i & "</option>" & vbCrLf Next Response.Write "</select>" & vbCrLf End If If doorders > 0 Or uporders > 0 Then Response.Write "<input type=""hidden"" name=""editID"" value=""" & Rs("classid") & """> <input type=""submit"" name=""submit2"" class=""button"" value=""修 改"">" & vbCrLf End If Else Response.Write " " End If Response.Write "</td></tr></form>" & vbCrLf uporders = 0 doorders = 0 Rs.movenext n=n+1 Loop End If Rs.Close Set Rs = Nothing Response.Write "</table>" End Sub Sub updateclassorders() Dim ParentID,orders,ParentStr,Child Dim uporders,doorders,oldorders Dim trs,ii Dim Rs,i If Not IsNumeric(Request("editID")) Then ErrMsg = ErrMsg & "<li>非法的参数!</li>" Founderr = True Exit Sub End If If Request("ChannelID") = "" Then ErrMsg = ErrMsg & "<li>非法的系统参数!</li>" Founderr = True Exit Sub End If If Request("uporders") <> "" And Not CInt(Request("uporders")) = 0 Then If Not IsNumeric(Request("uporders")) Then ErrMsg = ErrMsg & "<li>非法的参数!</li>" Founderr = True Exit Sub ElseIf CInt(Request("uporders")) = 0 Then ErrMsg = ErrMsg & "<li>请选择要提升的数字!</li>" Founderr = True Exit Sub End If Set Rs = NewAsp.Execute("SELECT ParentID,orders,ParentStr,child FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & NewAsp.ChkNumeric(Request("editID"))) ParentID = Rs(0) orders = Rs(1) ParentStr = Rs(2) & "," & NewAsp.ChkNumeric(Request("editID")) Child = Rs(3) i = 0 If Child > 0 Then Set Rs = NewAsp.Execute("SELECT COUNT(*) FROM NC_Classify WHERE ChannelID="& ChannelID &" And ParentStr like '%" & ParentStr & "%'") oldorders = Rs(0) Else oldorders = 0 End If Set Rs = NewAsp.Execute("SELECT classid,orders,child,ParentStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentID=" & ParentID & " and orders<" & orders & " ORDER BY orders desc") Do While Not Rs.EOF i = i + 1 If CInt(Request("uporders")) >= i Then If Rs(2) > 0 Then ii = 0 Set trs = NewAsp.Execute("SELECT classid,orders FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & Rs(3) & "," & Rs(0) & "%' ORDER BY orders") If Not (tRs.EOF And tRs.BOF) Then Do While Not tRs.EOF ii = ii + 1 NewAsp.Execute ("UPDATE NC_Classify SET orders=" & orders & "+" & oldorders & "+" & ii & " WHERE ChannelID = "& ChannelID &" And classid=" & trs(0)) trs.movenext Loop End If End If NewAsp.Execute ("UPDATE NC_Classify SET orders=" & orders & "+" & oldorders & " WHERE ChannelID = "& ChannelID &" And classid=" & Rs(0)) If CInt(Request("uporders")) = i Then uporders = Rs(1) End If orders = Rs(1) Rs.movenext Loop NewAsp.Execute ("UPDATE NC_Classify SET orders=" & uporders & " WHERE ChannelID = "& ChannelID &" And classid=" & NewAsp.ChkNumeric(Request("editID"))) If Child > 0 Then i = uporders Set Rs = NewAsp.Execute("SELECT classid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%' ORDER BY orders") Do While Not Rs.EOF i = i + 1 NewAsp.Execute ("UPDATE NC_Classify SET orders=" & i & " WHERE ChannelID = "& ChannelID &" And classid=" & Rs(0)) Rs.movenext Loop End If Set Rs = Nothing Set trs = Nothing ElseIf Request("doorders") <> "" Then If Not IsNumeric(Request("doorders")) Then ErrMsg = ErrMsg & "<li>非法的参数!</li>" Founderr = True Exit Sub ElseIf CInt(Request("doorders")) = 0 Then ErrMsg = ErrMsg & "<li>请选择要下降的数字!</li>" Founderr = True Exit Sub End If Set Rs = NewAsp.Execute("SELECT ParentID,orders,ParentStr,child FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("editID")) ParentID = Rs(0) orders = Rs(1) ParentStr = Rs(2) & "," & NewAsp.ChkNumeric(Request("editID")) Child = Rs(3) i = 0 If Child > 0 Then Set Rs = NewAsp.Execute("SELECT COUNT(*) FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%'") oldorders = Rs(0) Else oldorders = 0 End If Set Rs = NewAsp.Execute("SELECT classid,orders,child,ParentStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentID=" & ParentID & " and orders>" & orders & " ORDER BY orders") Response.Write "<li>"&ChannelID&" 错误参数!</li>" Do While Not Rs.EOF i = i + 1 If CInt(Request("doorders")) >= i Then If Rs(2) > 0 Then ii = 0 Set trs = NewAsp.Execute("SELECT classid,orders FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & Rs(3) & "," & Rs(0) & "%' ORDER BY orders") If Not (tRs.EOF And tRs.BOF) Then Do While Not tRs.EOF ii = ii + 1 NewAsp.Execute ("UPDATE NC_Classify set orders=" & orders & "+" & ii & " WHERE ChannelID = "& ChannelID &" And classid=" & trs(0)) trs.movenext Loop End If End If NewAsp.Execute ("UPDATE NC_Classify SET orders=" & orders & " WHERE ChannelID = "& ChannelID &" And classid=" & Rs(0)) If CInt(Request("doorders")) = i Then doorders = Rs(1) End If orders = Rs(1) Rs.movenext Loop NewAsp.Execute ("UPDATE NC_Classify SET orders=" & doorders & " WHERE ChannelID = "& ChannelID &" And classid=" & NewAsp.ChkNumeric(Request("editID"))) If Child > 0 Then i = doorders Set Rs = NewAsp.Execute("SELECT classid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%' ORDER BY orders") Do While Not Rs.EOF i = i + 1 NewAsp.Execute ("UPDATE NC_Classify SET orders=" & i & " WHERE ChannelID = "& ChannelID &" And classid=" & Rs(0)) Rs.movenext Loop End If End If Set Rs = Nothing Set trs = Nothing Call RemoveCache Response.redirect "?action=classorders&ChannelID=" & ChannelID Response.End End Sub Sub RestoreClass() Dim Rs,i i = 0 Set Rs = NewAsp.Execute("SELECT classid FROM NC_Classify WHERE ChannelID="& ChannelID &" ORDER BY rootid,orders") Do While Not Rs.EOF i = i + 1 NewAsp.Execute ("UPDATE NC_Classify SET rootid=" & i & ",depth=0,orders=0,ParentID=0,ParentStr='0',child=0, ChildStr='"&Rs(0)&"' WHERE ChannelID = "& ChannelID &" And classid=" & Rs(0)) Rs.movenext Loop Set Rs = Nothing Call RemoveCache Succeed("<li>复位成功,请返回做分类归属设置。</li>") End Sub Sub RemoveCache() Application(NewAsp.CacheName &"_classlist_" & ChannelID)=Null Application(NewAsp.CacheName &"_ChildID_" & ChannelID)=Null 'NewAsp.DelCache "classmenu_"&ChannelID RemoveAppCache "classmenu_"&ChannelID RemoveLabelCache NewAsp.modules End Sub %>