<%@ include file="/util/setup_editlist_header.jsp" %> xml <%@ page import="java.util.*,revize.data.*, revize.servlet.*, revize.db.*,revize.store.*, idetix.util.StringUtils, revize.RevizeConstants, revize.*, java.net.*" %> <% /* * * * * * * * * * * * * LINK MANAGER PROCESSING * * * * * * * * * * * * * This page is called from mainFrame.linkCreateLinkRecord() - step 2 with mode: 'linkrecord' or 'templaterecord' (mode: 'url' if checking for template instance) Its purpose is to create a record and return the recordid. Depending on the scenario, it may be called multiple times. A new link and/or dependent template module record will be created. ---------------------------------------------------------------------------*/ String mode = StringUtils.getParameter(request,"mode"); // these parameters only set when called from mainFrame.linkCreateLinkRecord String webspace = StringUtils.getParameter(request,"webspace"); String template = StringUtils.getParameter(request,"template"); String module = StringUtils.getParameter(request,"module"); String linkid = StringUtils.getParameter(request,"linkid"); String filename = StringUtils.getParameter(request,"filename"); String set = StringUtils.getParameter(request,"set"); String rte = StringUtils.getParameter(request,"rte"); // these parameters only set after this calls itself String url = StringUtils.getParameter(request,"url"); url = StringUtils.replaceAll(url,"\\","\\\\"); String overwrite_file= StringUtils.getParameter(request,"overwrite_file"); String absoluteurl = StringUtils.getParameter(request,"absoluteurl"); absoluteurl = StringUtils.replaceAll(absoluteurl,"\\","\\\\"); String reloadurl = "linkmanager_xml.jsp?"+"mode="+mode+"&webspace="+webspace+"&template="+template+"&module="+module+"&linkid="+linkid; reloadurl=reloadurl+"&filename="+filename+"&set="+set+"&rte="+rte; revize.publish.TemplateInstance ti = null; DataStore ds = DataStoreFactory.createDefault(webspace); Module m = null; String templatename = ""; String linkfilename=""; int recordid = -1; String tosectionid = ""; String revizeServerProtocol = ""; String revizeServerName = ""; String revizeServerPort= ""; String revizeServer = ""; boolean isRevizeServerUrl = false; boolean isValidUrl = true; boolean RevizePage = true; boolean RevizeChannelUrl = false; boolean isPoundInUrl = false; String relativePath = ""; boolean fileExists = false; String other = ""; String hashStr = ""; String my_revizechannelurl=""; revize.db.TemplateInstanceDB tiDB = new revize.db.TemplateInstanceDB(webspace); if (filename.indexOf("/") == 0) filename = filename.substring(1); //----- Create a link or dependent module record if (mode.indexOf("record") != -1) { LinkManager lm = new LinkManager(webspace); int linkidInt = Integer.valueOf(linkid).intValue(); //If Other template instances using this file if(module.equals("links")) { fileExists = lm.fileNameExistsInLinksModule(module,filename); } else { fileExists = tiDB.fileNameExists(filename); } //----- Create new dependent module record; return linkid and url. if (!fileExists && (overwrite_file.equals("yes") || !lm.fileNameExists(template,filename,linkidInt))) { lm.createDependentRecord( template, module, filename, linkidInt ); linkid = new Integer(lm.getRecordId()).toString(); url = lm.getUrl(); } else if(!fileExists && !lm.fileNameExists( template, filename, Integer.valueOf(linkid).intValue() )) { lm.createDependentRecord( template, module, filename, Integer.valueOf(linkid).intValue()); linkid = new Integer(lm.getRecordId()).toString(); url = lm.getUrl(); } else { linkid = "-1"; } } else if (mode.equals("url") || mode.equals("urltemplate")) { String otrUrl = ""; String chkUrl = url; int pipe_idx = chkUrl.indexOf(" "); /* if (pipe_idx != -1){ otrUrl = chkUrl.substring(pipe_idx,chkUrl.length()); if(otrUrl.length()>0) other = otrUrl.substring(1,otrUrl.length()); chkUrl = chkUrl.substring(0,pipe_idx); } */ String url1= chkUrl; //String url1= url; int pound_idx = url1.indexOf("#"); if(url1.toLowerCase().indexOf("javascript:")==0 || url1.toLowerCase().indexOf("mailto:") ==0 || pound_idx == 0) { //linkfilename = url1; RevizePage = false; absoluteurl=url1; } else { if (pound_idx > 0 ) { hashStr = url1.substring(pound_idx,url1.length()); url1 = url1.substring(0,pound_idx); isPoundInUrl = true; //System.out.println("is pound URL true"); } // Check if relative url is entered ti = tiDB.getTemplateInstanceForUrl(url1); //Iterate over all the channels. Check if absolute url is entered if(ti == null) { List channels = ds.readChannels(); Iterator itr = channels.iterator(); while(itr.hasNext()) { Channel c = (Channel)itr.next(); String baseurl = c.getBaseUrl(); if(url.length() <= baseurl.length()) continue; String desc = c.getDescription(); if(desc.equalsIgnoreCase("Revize Server Output Channel")) my_revizechannelurl=baseurl; if(baseurl != null && !baseurl.equals("")) { int idx = url.indexOf(baseurl); if (idx == 0) { if(baseurl.endsWith("/")) relativePath = url1.substring(baseurl.length()); else relativePath = url1.substring(baseurl.length()+1); ti=tiDB.getTemplateInstanceForUrl(relativePath); if(ti != null) { System.out.println("TemplateInstance:" + ti.getTemplateId() + " mid:" + ti.getLinkedModuleId() + " rid:" + ti.getLinkedRecordId() ); tosectionid = ""; m = ds.readModule(ti.getLinkedModuleId()); templatename = ds.readTemplate(ti.getTemplateId()).getLabel(); recordid = ti.getLinkedRecordId(); url =""; if (m != null) { String where = m.getLabel() + "._recordid=" + recordid; String options = "report,recordid=" + recordid; if (rz.isvalidfield(m.getLabel(),"linktosectionid")) tosectionid = rz.fetch(m.getLabel(),"linktosectionid",options);//,where); } linkfilename = relativePath; break; } } } } } else { linkfilename= url1; templatename = ds.readTemplate(ti.getTemplateId()).getLabel(); recordid = ti.getLinkedRecordId(); } if(!isPoundInUrl) { //System.out.println("TemplateInstance:" + ti.getTemplateId() + " mid:" + ti.getLinkedModuleId() + " rid:" + ti.getLinkedRecordId() ); if(ti != null) { tosectionid = ""; m = ds.readModule(ti.getLinkedModuleId()); templatename = ds.readTemplate(ti.getTemplateId()).getLabel(); recordid = ti.getLinkedRecordId(); url =""; if (m != null) { String where = m.getLabel() + "._recordid=" + recordid; String options = "report,recordid=" + recordid; if (rz.isvalidfield(m.getLabel(),"linktosectionid")) tosectionid = rz.fetch(m.getLabel(),"linktosectionid",options);//,where); } } else { String new_absoluteurl = absoluteurl; RevizePage = false; revizeServerProtocol = System.getProperty(RevizeProperties.WEB_SERVER_PROTOCOL); revizeServerName = System.getProperty(RevizeProperties.WEB_SERVER_NAME); revizeServerPort = System.getProperty(RevizeProperties.WEB_SERVER_PORT); revizeServer = revizeServerProtocol + "://" + revizeServerName; if (revizeServerPort.equals("80") == false) revizeServer += ":" + revizeServerPort; if (revizeServer.endsWith("/")) revizeServer = revizeServer.substring(0,revizeServer.length()-1); if((absoluteurl.endsWith(".html") || absoluteurl.endsWith(".htm") || absoluteurl.endsWith(".jsp") || absoluteurl.endsWith(".asp") ||absoluteurl.endsWith(".aspx") || absoluteurl.endsWith(".php")) && absoluteurl.indexOf(revizeServer) >= 0 ) { int idx1= my_revizechannelurl.lastIndexOf("/"); if (idx1 >= 0) { url = absoluteurl.substring(idx1+1); url = "../"+url; } isRevizeServerUrl = true; } try { URL thisurl = new URL(new_absoluteurl); URLConnection urlConn = thisurl.openConnection(); urlConn.connect(); // below line needed to drop connections java.io.InputStream stream = urlConn.getInputStream(); } catch(Exception e) { isValidUrl = false; } } } else if(isPoundInUrl && ti == null) // if it's not a revize managed page { RevizePage = false; //isRevizeServerUrl = true; try { URL thisurl = new URL(absoluteurl); URLConnection urlConn = thisurl.openConnection(); urlConn.connect(); // below line needed to drop connections java.io.InputStream stream = urlConn.getInputStream(); } catch(Exception e) { isValidUrl = false; } } } } %>
<%= rz.tracestack %>