<% Response.Buffer=true %> <% 'Form values dim ia_parentid dim ia_parentDepth dim ia_parentChildren dim ia_sortorder dim pagePos dim newPageName dim newPageDepth dim newPageType dim newPagePermissionLevel dim VisualTemplateName dim show_on_nav dim template_id ia_parentid = request.form("ia_parentid") ia_parentDepth = request.form("ia_parentDepth") ia_parentChildren = request.form("ia_parentChildren") pagePos = request.form("pagePos") newPageName = request.form("newPageName") newPageType = request.form("newPageType") template_id = request.form("template_id") dim redirectString redirectString = "ia.asp?mode=AddNewPage&page_id=" & ia_parentid & "&ia_depth=" & ia_parentDepth & "&ia_children=" & ia_parentChildren & "&newPageName=" & newPageName & "&page_type=" & newPageType & "&errorMsg=" '-- Check a page name was added if len(newPageName) < 1 then response.Redirect(redirectString & "Please%20enter%20a%20title") end if '--If the template_id is "blank" use the editorial visual template if newPageType = "Template" then VisualTemplateName = request.form("visual_template") show_on_nav = request.form("show_on_nav") else if template_id = "blank" then VisualTemplateName = "editorial" show_on_nav = true else '--Check that we have a value for the selected template if len(template_id) < 1 then response.Redirect(redirectString & "Please%20select%20a%20page%20template") end if '-- set values here from template dim templateValues templateValues = split(template_id,"||") template_id = templateValues(0) show_on_nav = templateValues(1) VisualTemplateName = templateValues(2) end if end if '--Check the value of the selected template if len(template_id) < 1 then response.Redirect(redirectString & "Please%20select%20a%20page%20type") end if '--Check the value of the selected template if len(VisualTemplateName) < 1 then response.Redirect(redirectString & "Please%20select%20a%20visual%20template") end if '--Check for single quotes/apostrophes newPageName = SQLSafe(newPageName) Dim currentDate currentDate = getCurrentDateTime() Dim newPage_id '-- --------------------------------------------------------------------------- '-- Create a new record in the pages table '-- --------------------------------------------------------------------------- strSQL = "INSERT INTO pages (date_created,date_modified,show_on_nav,page_type) VALUES('" & currentDate & "','" & currentDate & "'," & show_on_nav & ",'" & newPageType & "');" RunSQL strSQL '--Now get the page_id of the record we have just created strSQL = "SELECT page_id FROM pages ORDER by date_created DESC LIMIT 1" set rs = LoadRSFromDB(strSQL) if not rs.EOF then newPage_id = rs("page_id") set rs = nothing '-- --------------------------------------------------------------------------- '-- Update the ia table '-- --------------------------------------------------------------------------- '-- This is where you need to know the position of the new page if pagePos = "last" then ia_sortOrder = cint(ia_parentChildren) + 1 else ia_sortOrder = 1 call updateSiblingsSortOrders(ia_parentid) end if '-- Establish the depth of the new page newPageDepth = ia_parentDepth + 1 '--Check what kind of page this is a assign permissions accordingly if newPageType = "Template" then newPagePermissionLevel = "t" elseif newPageType = "Folder" then newPagePermissionLevel = "f" else select case newPageDepth case 1 newPagePermissionLevel = "a" case 2 newPagePermissionLevel = "b" case else newPagePermissionLevel = "c" end select end if strSQL = "INSERT INTO ia (ia_parentid,ia_childid,ia_sortorder,ia_depth,page_permission_level) VALUES('" & ia_parentid &"','" & newPage_id & "','" & ia_sortOrder & "','" & newPageDepth & "','" & newPagePermissionLevel & "');" RunSQL strSQL '-- --------------------------------------------------------------------------- '-- Create a friendly URL for the new page '-- --------------------------------------------------------------------------- Dim friendlyURLString friendlyURLString = "" '-- Removed 22-02-08 'call createFriendlyURL(newPage_id,newPageName) '--Now update the page_info lookup table strSQL = "INSERT INTO page_info (page_id,visual_template,language_ID,page_title,page_status,friendly_url) VALUES('" & newPage_id & "','" & VisualTemplateName & "',1,'" & newPageName & "','1','" & friendlyURLString & "');" RunSQL strSQL '--Insert a record into the page_version table strSQL = "insert into page_version (page_id) values ('" & newPage_id & "');" RunSQL strSQL '-- --------------------------------------------------------------------------- '-- If we are creating a new document and using the template call the buildPageFromTemplate function '-- --------------------------------------------------------------------------- if not template_id = "blank" then dim page_version_id strSQL = "SELECT page_version_id from page_version where page_id = " & newPage_id & " order by page_version_id desc LIMIT 1" set pageRS = LoadRSFromDB(strSQL) if not pageRS.EOF then page_version_id = pageRS("page_version_id") end if call buildPageFromTemplate(newPage_id,page_version_id,template_id) end if response.redirect "tree_update.asp?openNodes=" & session("openNodeString") & "&page_id=" & ia_parentid & "&newPage_id=" & newPage_id & "&mode=addNewNode" '-- ---------------------------------------------------------------------------------- '-- Sub rountine to update the sortorder of the siblings if the new page goes in first '-- ---------------------------------------------------------------------------------- sub updateSiblingsSortOrders(ia_parentid) dim getSoSQL dim getSoRS dim setSoSQL dim setSoRS dim newSortOrder getSoSQL = "SELECT ia_childid, ia_sortorder from ia WHERE ia_parentid = " & ia_parentid & " ORDER BY ia_sortorder" set getSoRS = LoadRSFromDB(getSoSQL) if not getSoRS.EOF then do while not getSoRS.EOF newSortOrder = getSoRS("IA_SortOrder")+1 setSoSQL = "UPDATE ia SET ia_sortorder = " & newSortOrder &" WHERE ia_childid = " & getSoRS("ia_childid") RunSQL setSoSQL getSoRS.movenext loop end if Set rs = Nothing end sub %>