<% Timeout(1) Server.ScriptTimeout = 10000 set con = server.createobject("ADODB.Connection") con.open Application("CString") con.CommandTimeout = 1000 Dim arrReOrder() i_ArrayIndex = 0 ReDim arrReOrder(4, i_ArrayIndex) strSQL = "SELECT MenuID, MenuOrder " & _ "FROM CMS_Menu " & _ "WHERE MenuSectionID = " & Session("MenuSectionID") & " AND " & _ "MainMenuID IS NULL " & _ "ORDER BY MenuOrder" Set rsOrder = con.execute(strSQL) do while not rsOrder.EOF i_MenuID = rsOrder("MenuID") i_MenuOrder = CInt(rsOrder("MenuOrder")) i_TMPMenuOrder = Request("MenuOrder_NULL_" & CStr(i_MenuOrder)) if i_TMPMenuOrder = Empty or Not IsNumeric(i_TMPMenuOrder) then Set rsOrder = Nothing con.Close set con = Nothing Response.Redirect("menu.asp?menuid=" & Server.URLEncode(Request("menuid")) & "&buster=" & Server.URLEncode(Now())) end if if CInt(i_TMPMenuOrder) <> i_MenuOrder then i_ArrayIndex = i_ArrayIndex + 1 ReDim Preserve arrReOrder(4, i_ArrayIndex) arrReOrder(0, i_ArrayIndex - 1) = i_MenuID arrReOrder(1, i_ArrayIndex - 1) = i_TMPMenuOrder arrReOrder(2, i_ArrayIndex - 1) = i_MenuOrder if CInt(i_TMPMenuOrder) > i_MenuOrder then arrReOrder(3, i_ArrayIndex - 1) = "<" else arrReOrder(3, i_ArrayIndex - 1) = ">" end if end if rsOrder.MoveNext Loop Set rsOrder = Nothing For i = 0 to UBound(arrReOrder, 2) - 1 if arrReOrder(3, i) = ">" then strSQL = "UPDATE CMS_Menu SET MenuOrder = MenuOrder + 1 WHERE MenuOrder >= " & arrReOrder(1, i) & " AND MenuOrder < " & arrReOrder(2, i) & " AND MainMenuID IS NULL" else strSQL = "UPDATE CMS_Menu SET MenuOrder = MenuOrder - 1 WHERE MenuOrder > " & arrReOrder(2, i) & " AND MenuOrder <= " & arrReOrder(1, i) & " AND MainMenuID IS NULL" end if con.execute strSQL strSQL = "UPDATE CMS_Menu SET MenuOrder = " & arrReOrder(1, i) & " WHERE MenuID = " & arrReOrder(0, i) & " AND MainMenuID IS NULL" con.execute strSQL Next if Request("menuid") <> Empty then arrTMP = Split(Request("menuid"), "|") For x = 1 to UBound(arrTMP) - 1 i_MainMenuID = arrTMP(x) i_ArrayIndex = 0 ReDim arrReOrder(4, i_ArrayIndex) strSQL = "SELECT MenuID, MenuOrder " & _ "FROM CMS_Menu " & _ "WHERE MenuSectionID = " & Session("MenuSectionID") & " AND " & _ "MainMenuID = " & i_MainMenuID & " " & _ "ORDER BY MenuOrder" Set rsOrder = con.execute(strSQL) do while not rsOrder.EOF i_MenuID = rsOrder("MenuID") i_MenuOrder = CInt(rsOrder("MenuOrder")) i_TMPMenuOrder = Request("MenuOrder_" & i_MainMenuID & "_" & CStr(i_MenuOrder)) if i_TMPMenuOrder = Empty or Not IsNumeric(i_TMPMenuOrder) then Set rsOrder = Nothing con.Close set con = Nothing Response.Redirect("menu.asp?menuid=" & Server.URLEncode(Request("menuid")) & "&buster=" & Server.URLEncode(Now())) end if if CInt(i_TMPMenuOrder) <> i_MenuOrder then i_ArrayIndex = i_ArrayIndex + 1 ReDim Preserve arrReOrder(4, i_ArrayIndex) arrReOrder(0, i_ArrayIndex - 1) = i_MenuID arrReOrder(1, i_ArrayIndex - 1) = i_TMPMenuOrder arrReOrder(2, i_ArrayIndex - 1) = i_MenuOrder if CInt(i_TMPMenuOrder) > i_MenuOrder then arrReOrder(3, i_ArrayIndex - 1) = "<" else arrReOrder(3, i_ArrayIndex - 1) = ">" end if end if rsOrder.MoveNext Loop Set rsOrder = Nothing For i = 0 to UBound(arrReOrder, 2) - 1 if arrReOrder(3, i) = ">" then strSQL = "UPDATE CMS_Menu SET MenuOrder = MenuOrder + 1 WHERE MenuOrder >= " & arrReOrder(1, i) & " AND MenuOrder < " & arrReOrder(2, i) & " AND MainMenuID = " & i_MainMenuID else strSQL = "UPDATE CMS_Menu SET MenuOrder = MenuOrder - 1 WHERE MenuOrder > " & arrReOrder(2, i) & " AND MenuOrder <= " & arrReOrder(1, i) & " AND MainMenuID = " & i_MainMenuID end if con.execute strSQL strSQL = "UPDATE CMS_Menu SET MenuOrder = " & arrReOrder(1, i) & " WHERE MenuID = " & arrReOrder(0, i) & " AND MainMenuID = " & i_MainMenuID con.execute strSQL Next Next end if con.Close set con = Nothing Response.Redirect("menu.asp?menuid=" & Server.URLEncode(Request("menuid")) & "&buster=" & Server.URLEncode(Now())) %>