<% Response.Buffer=true %> <% dim this_child_page_id dim pageObj dim ia_parent_id dim ia_sortorder parent_id = request.querystring("parent_id") '--------------------------------------------------- '-- First we find all this nodes decendants and '-- Remove all their records '--------------------------------------------------- call collectChildren(this_page_id) '--------------------------------------------------- '-- Now we remove all this pages records '--------------------------------------------------- call deleteAllPageRecords(this_page_id) '--------------------------------------------------- '-- Now we update the IA_Sortorder for this remaining siblings '--------------------------------------------------- call updateSiblingSortOrder(ia_parent_id,ia_sortorder) response.redirect("tree_update.asp?openNodes=" & session("openNodeString") & "&page_id=" & this_page_id & "&mode=deleteNode") function collectChildren(ia_parentid) strSQL = "SELECT ia_childid FROM ia WHERE ia_parentid = " & ia_parentid set rs = LoadRSFromDB(strSQL) if not rs.EOF then Do While not rs.EOF this_child_page_id = rs("ia_childid") call collectChildren(this_child_page_id) call deleteAllPageRecords(this_child_page_id) rs.MoveNext Loop end if rs.Close Set rs = Nothing end function function deleteAllPageRecords(del_page_id) set pageObj = new cPage call pageObj.getPage(del_page_id,session("securityLevel"),session("languageID"),"draft") ia_parent_id = pageObj.p_ia_parentid ia_sortorder = pageObj.p_ia_sortOrder call pageObj.getPageVersions(pageObj.p_id) for i=0 to ubound(pageObj.p_page_versions) if len(pageObj.p_page_versions(i)) > 0 then call pageObj.deletePageVersion(del_page_id, pageObj.p_page_versions(i), getCurrentDateTime()) end if next call pageObj.deletePage(del_page_id) end function function updateSiblingSortOrder(ia_parent_id,ia_sortorder) dim sibling_id dim sibling_Sortorder strSQL = "SELECT ia_childid, ia_sortorder from ia where ia_parentid = " & ia_parent_id & " AND ia_sortorder > " & ia_sortorder set rs = LoadRSFromDB(strSQL) if not rs.eof then Do While not rs.EOF sibling_id = rs("ia_childid") sibling_Sortorder = rs("ia_sortorder") - 1 updateSQL = "UPDATE ia Set ia_sortorder = " & sibling_Sortorder & " WHERE ia_childid = " & sibling_id RunSQL updateSQL rs.MoveNext loop end if rs.Close set rs = Nothing end function %>