⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 managetemplates.java

📁 java 写的一个新闻发布系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            PropertiesManager properties =  new PropertiesManager( Jahia.getJahiaPropertiesFileName() );            request.setAttribute("warningMsg","");            JahiaSite site = (JahiaSite)request.getAttribute("site");            String subAction 	= (String)request.getParameter("subaction");            String templName 	= (String)request.getParameter("templName");            String rootFolder 	= (String)request.getParameter("rootFolder");            if ( rootFolder == null ){                rootFolder = File.separator;            }            String fileName 	= (String)request.getParameter("fileName");            String isAvailable 	= (String)request.getParameter("isAvailable");            request.setAttribute("templName",JahiaTools.replaceNullString(templName,""));            request.setAttribute("rootFolder",JahiaTools.replaceNullString(rootFolder,""));            request.setAttribute("fileName",JahiaTools.replaceNullString(fileName,""));            if ( isAvailable != null ){                request.setAttribute("isAvailable",new Integer(1));            } else {                request.setAttribute("isAvailable",new Integer(0));            }            if ( subAction != null && subAction.equals("save") && canAddNew ){                if ( templName == null || (templName.length()<=0)                     || fileName == null || (fileName.length()<=0) ) {                    request.setAttribute("warningMsg","Please complete requested informations (*)");                } else {                    // save definition in db                    String path = this.context.getRealPath(properties.getProperty("jahiaTemplatesDiskPath") );                    while ( rootFolder.startsWith("/")                            || rootFolder.startsWith("\\")                            || rootFolder.startsWith(".") ){                        rootFolder = rootFolder.substring(1,rootFolder.length());                    }                    while ( rootFolder.endsWith("/")                            || rootFolder.endsWith("\\") ){                        rootFolder = rootFolder.substring(0,rootFolder.length()-1);                    }                    // check if the file really exist                    StringBuffer tempFullPath = new StringBuffer (1024);                    tempFullPath.append(path);                    tempFullPath.append(File.separator);                    tempFullPath.append(site.getSiteKey());                    tempFullPath.append(File.separator);                    tempFullPath.append(rootFolder);                    tempFullPath.append(File.separator) ;                    tempFullPath.append(fileName) ;                    if ( !JahiaTools.checkFileNameCaseSensitive(tempFullPath.toString()) ){                        request.setAttribute("warningMsg","Jahia cannot find the file "                                                + fileName + " in the folder " + rootFolder);                    } else if ( rootFolder.startsWith(".") ){                        request.setAttribute("warningMsg","The template folder is not valid ");                    } else {                        StringBuffer buff = new StringBuffer (1024);                        buff.append(properties.getProperty("jahiaTemplatesDiskPath"));                        buff.append(site.getSiteKey());                        buff.append("/") ;                        if ( !rootFolder.equals("") ){                            buff.append(rootFolder);                            buff.append("/") ;                        }                        buff.append(fileName) ;                        String sourcePath = JahiaTools.replacePattern(buff.toString(),"\\","/");                        JahiaPageDefinition def = pageTempServ.getPageTemplateBySourcePath(site.getID(),sourcePath);                        if ( def == null || !def.getSourcePath().equals(sourcePath) ){                            pageTempServ.createPageTemplate (                                        site.getID(),                                        templName,                                        sourcePath,                                        (isAvailable != null),                                        "",      	// no image                                        site.getAclID() );                            request.setAttribute("warningMsg","The template "                                                + fileName + " has been successfully added in Jahia");                        } else {                            request.setAttribute("warningMsg",                            "This template is already registered in Jahia");                        }                    }                }            }            JahiaAdministration.doRedirect(request,response,session,JSP_PATH + "template_add.jsp");        } catch ( JahiaException je ){            request.setAttribute("jahiaDisplayMessage",                                    "An error occured while processing your request");            JahiaAdministration.doRedirect( request,                                            response,                                            session,                                            JSP_PATH + "menu.jsp" );        }    } // end addTemplate    protected String getTemplatesContext(HttpSession session){        String templatesContext = null;        // try to get from session        templatesContext = (String)session.getAttribute(CLASS_NAME + "jahiaTemplatesDiskPath");        if ( templatesContext == null ){            PropertiesManager props =  new PropertiesManager( Jahia.getJahiaPropertiesFileName() );            if ( props!= null ){                templatesContext = (String)props.getProperty("jahiaTemplatesDiskPath");                if ( templatesContext != null ){                    session.setAttribute(CLASS_NAME + "jahiaTemplatesDiskPath", templatesContext);                }            }        }        return templatesContext;    }    /**     * Display a custom version of the pages settings view, using doRedirect().     * This form prompts the user to choose an alternative template for any pages     * currently referenced.     *     * @author  Alexandre Kraft     * @author  Mikha雔 Janson     *     * @param   request       Servlet request.     * @param   response      Servlet response.     * @param   session       Servlet session for the current user.     * @param   criticalPages an <code>List</code> of <code>JahiaPage</code> objects referencing the template we want to delete.     * @param   templ          a reference to the template we want to delete.     */    private void displaySwap( HttpServletRequest    request,                              HttpServletResponse   response,                              HttpSession           session,                              List                  criticalPages,                              JahiaPageDefinition   templ )    throws IOException, ServletException    {        try {            // get all pages id...            JahiaPageBaseService pageService       = JahiaPageBaseService.getInstance();            // get all pages infos...            Vector        allPagesInfosVector      = new Vector();            Vector        allTemplatesVector       = new Vector();            for (int i=0; i<criticalPages.size(); i++) {                JahiaPage page = (JahiaPage) criticalPages.get(i);                allPagesInfosVector.add (page);            }            // get homepage id for the current site...            Integer homePageID = new Integer( site.getHomePageID() );            // retrieve previous form values...            Integer basePageID           = (Integer) request.getAttribute(CLASS_NAME + "basePageID");            Integer baseTemplateID       = (Integer) request.getAttribute(CLASS_NAME + "baseTemplateID");            // get only visible templates            Enumeration completeTemplatesEnumeration =  ServicesRegistry.getInstance().getJahiaPageTemplateService().getPageTemplates (site.getID(), true);            // exclude the template we want to delete...            while (completeTemplatesEnumeration.hasMoreElements()) {                JahiaPageDefinition template = (JahiaPageDefinition) completeTemplatesEnumeration.nextElement();                if(template.getID() != templ.getID()) {                    allTemplatesVector.add (template);                }            }            Enumeration allTemplatesEnumeration = allTemplatesVector.elements();            // set default values...            if(basePageID == null)     {  basePageID     =  new Integer(0);  }            if(baseTemplateID == null) {  baseTemplateID =  new Integer(0);  }            if(homePageID == null)     {  homePageID     =  new Integer(0);  }            // set all pages infos into an enumeration and redirect...            request.setAttribute("homePageID",                homePageID);            request.setAttribute("basePageID",                basePageID);            request.setAttribute("baseTemplateID",            baseTemplateID);            request.setAttribute("allTemplatesEnumeration",   allTemplatesEnumeration);            request.setAttribute("allPagesInfosEnumeration",  allPagesInfosVector.elements());            request.setAttribute("totalCriticalPages",        new Integer(criticalPages.size()));            request.setAttribute("templ",                     templ);            JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "template_cleanpages.jsp" );            // reset message...            session.setAttribute(CLASS_NAME + "jahiaDisplayMessage",  Jahia.COPYRIGHT);        } catch (JahiaException je) {        }    } // end displaySwap    /**     * Process requested template swapping to remove references     * to a given template from a page before deleteing the template.     *     * @author  Mikha雔 Janson     *     * @param   request       Servlet request.     * @param   response      Servlet response.     * @param   session       Servlet session for the current user.     */    protected void processSwap( HttpServletRequest   request,                                HttpServletResponse  response,                                HttpSession          session )    throws Throwable    {        int       idPage            =  0;        int       idTemplate        =  0;        String    idPageString      =  "";        String    idTemplateString  =  (String) request.getParameter("templateid").trim();        String[]  pageIDs           =  request.getParameterValues( "pageids" );        List      errors            =  new ArrayList();        JahiaPage page              =  null;        boolean   valid             = true;        // check form validity...        if ((pageIDs == null) || (pageIDs.length < 1)) {            valid = false;            errors.add("Please choose at least one page.");        }        if (idTemplateString.equals("0")) {            valid = false;            errors.add("Please choose a template.");        }        if (!valid) {            request.setAttribute("manageTemplatesErrors", errors);            idTemplate = 0;        } else {            try {                idTemplate  = Integer.parseInt(idTemplateString);            } catch (NumberFormatException nfe) {                // FIXME - Mik : TEMPORARY...                session.setAttribute(CLASS_NAME + "jahiaDisplayMessage",  "Invalid template reference.");            }        }        // get form values...        if (pageIDs != null) {            String titlePage = "";            for (int i = 0; i < pageIDs.length; i++) {                idPageString  = pageIDs[i];                try {                    idPage    = Integer.parseInt(idPageString);                    if (!swapTemplate(idPage, idTemplate)) {                        titlePage = sReg.getJahiaPageService().lookupPage(idPage).getTitle();                        errors.add("Couldn't change templates for page "+ titlePage);                    }                } catch (Exception e) {                    //                }            }        }        request.setAttribute("processedSwap", new Integer(1));        editTemplate (request, response, session);    } // end processSwap    /**     * Perform a template swap on a page     *     * @author  Mikhael Janson     *     * @param   idPage        the ID of the page we want to update     * @param   idTemplate    the ID of the template we want to assign this page     */    private boolean swapTemplate( int idPage, int idTemplate )    {        boolean   out  = false;        JahiaPage page = null;        try {            JahiaPageService pageServ = ServicesRegistry.getInstance()                                                        .getJahiaPageService();            if ( idPage != 0 && idTemplate != 0 ){                page =  pageServ.lookupPage(idPage);                if ( page != null ){                    // set new settings for this JahiaPage...                    page.setPageTemplateID (idTemplate);                    page.commitChanges (true);                    // FIXME - mik : CHECK IF THE PAGE HAS CHANGED TEMPLATES, AND THE TEMPLATE IS VALID...                    out = true;                }            }        } catch ( JahiaException je ){            //        }        return out;    } // end swapTemplate} // end ManageTemplates

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -