📄 managetemplates.java
字号:
// $Id: ManageTemplates.java,v 1.4 2002/04/04 08:13:24 pmartin Exp $//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .////// ManageTemplates//// 01.04.2001 AK added in jahia.// 17.05.2001 NK Integrate License Check.//package org.jahia.admin.templates;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import org.jahia.bin.*;import org.jahia.utils.*;import org.jahia.utils.properties.*;import org.jahia.registries.*;import org.jahia.exceptions.*;import org.jahia.params.*;import org.jahia.data.webapps.*;import org.jahia.data.applications.*;import org.jahia.services.sites.JahiaSite;import org.jahia.data.templates.*;import org.jahia.services.database.*;import org.jahia.services.usermanager.*;import org.jahia.services.templates_deployer.*;import org.jahia.services.sites.*;import org.jahia.services.pages.*;import org.jahia.security.license.*;/** * desc: This class is used by the administration to manage * all the templates you've on your Jahia portal. You can add a * template, edit, change the visibility of the template and edit * its options. You can also view non-installed templates. * * Copyright: Copyright (c) 2002 * Company: Jahia Ltd * * @author Khue N'Guyen * @author Alexandre Kraft * @version 1.0 */public class ManageTemplates{ private static final String CLASS_NAME = JahiaAdministration.CLASS_NAME; private static final String JSP_PATH = JahiaAdministration.JSP_PATH; private static ServletContext context; private JahiaSite site; private JahiaUser user; private ServicesRegistry sReg; private LicenseKey mLicenseKey; /** * Default constructor. * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. * @param context Servlet context. */ public ManageTemplates( HttpServletRequest request, HttpServletResponse response, HttpSession session, ServletContext context ) throws Throwable { this.context = context; mLicenseKey = Jahia.getLicenseKey(); if ( mLicenseKey == null ){ // set request attributes... request.setAttribute("jahiaDisplayMessage", "Invalid License Key"); // redirect... JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); return; } userRequestDispatcher( request, response, session ); } // end constructor /** * This method is used like a dispatcher for user requests. * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void userRequestDispatcher( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws Throwable { String operation = request.getParameter("sub"); sReg = ServicesRegistry.getInstance(); // check if the user has really admin access to this site... user = (JahiaUser) session.getAttribute( ParamBean.SESSION_USER ); site = (JahiaSite) session.getAttribute( ParamBean.SESSION_SITE ); if ( site != null && user != null && sReg != null ){ if ( JahiaSiteTools.getAdminGroup(site).isMember(user) ){ // set the new site id to administrate... request.setAttribute( "site", site ); if(operation.equals("display")) { displayTemplateList( request, response, session ); } else if(operation.equals("displaynewlist")) { displayNewTemplateList( request, response, session ); } else if(operation.equals("details")) { displayNewTemplateDetail( request, response, session ); } else if(operation.equals("edit")) { editTemplate( request, response, session ); } else if(operation.equals("options")) { editTemplateOption( request, response, session ); } else if(operation.equals("add")) { addTemplate( request, response, session ); } else if(operation.equals("swap")) { processSwap( request, response, session ); } } else { //System.out.println(" --> no admin access on this site <--"); request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } } else { request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } } // userRequestDispatcher //------------------------------------------------------------------------- /** * Display a list of the templates. * * @author NK * @param request Servlet request. * @param response Servlet response. * @param session HttpSession object. */ private void displayTemplateList( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws Throwable { try { JahiaPageTemplateService pageTempServ = sReg.getJahiaPageTemplateService(); if ( pageTempServ == null ){ throw new JahiaException( "Unavailable Services", "Unavailable Services", JahiaException.SERVICE_ERROR, JahiaException.ERROR ); } Enumeration enum = pageTempServ.getPageTemplates (site.getID(), false); request.setAttribute("templList", enum); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "manage_templates.jsp" ); } catch ( JahiaException je ){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } } // end displayTemplateList //------------------------------------------------------------------------- /** * Display the edit form for a single template. * * @author NK * @param request Servlet request. * @param response Servlet response. * @param session HttpSession object. */ private void editTemplate( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws Throwable { try { JahiaPageTemplateService pageTempServ = sReg.getJahiaPageTemplateService(); JahiaTemplatesDeployerService tempDepServ = sReg.getJahiaTemplatesDeployerService(); JahiaSitesService sitesServ = sReg.getJahiaSitesService(); JahiaPageService pageServ = sReg.getJahiaPageService(); if ( pageTempServ == null || tempDepServ == null || sitesServ == null || pageServ == null ){ throw new JahiaException( "Unavailable Services", "Unavailable Services", JahiaException.SERVICE_ERROR, JahiaException.ERROR ); } // get paramater String strVal = request.getParameter("templid"); if ( strVal != null ){ int id = Integer.parseInt(strVal); JahiaPageDefinition templ = pageTempServ.lookupPageTemplate (id); // this is here so it doesn't overwrite the value set after critical pages check... request.setAttribute("canDelete", Boolean.TRUE ); if ( templ != null ){ String subAction = (String) request.getParameter("subaction"); // Override subAction if we are performing a template swap before // template deletion Integer processedSwap = (Integer)request.getAttribute("processedSwap"); if ( processedSwap != null && processedSwap.intValue() == 1 ) { subAction = "confirmdelete"; } if ( subAction == null ){ subAction = ""; } if ( subAction.equals("delete") ) { String undeploy = (String)request.getParameter("undeploy"); if ( undeploy != null ){ tempDepServ.undeploy(templ); } pageTempServ.deletePageTemplate(templ.getID()); displayTemplateList(request,response,session); return; } else if ( subAction.equals("confirmdelete") ) { // check if some pages are using this template (in the CURRENT site) Vector pageIDs = pageServ.getPageIDsInSite(site.getID()); List criticalPages = new ArrayList(); int mTemplID = templ.getID(); for (int i=0; i<pageIDs.size(); i++) { int pageID = ((Integer)pageIDs.get(i)).intValue(); try { JahiaPage page = (JahiaPage) pageServ.lookupPage(pageID); int templateID = page.getPageTemplateID(); if (templateID == mTemplID) { criticalPages.add(page); } } catch (Throwable t) { // } } if (!criticalPages.isEmpty()) { request.setAttribute("processedSwap", null); displaySwap (request, response, session, criticalPages, templ); return; } request.setAttribute("currAction", "confirmdelete"); } else if ( subAction.equals("swap") ) { // process requested template swapping for a set of pages... processSwap (request, response, session); } else if ( subAction.equals("save") ) { String templName = (String)request.getParameter("templName"); String visible_status = (String)request.getParameter("visible_status"); if (templName != null && (templName.trim().length()>0) ){ templ.setName(templName); } if ( visible_status != null ){ templ.setAvailable(true); String isDefault = (String)request.getParameter("isDefault"); if ( isDefault != null ){ site.setDefaultTemplateID(templ.getID()); } else { site.setDefaultTemplateID(-1); } } else { templ.setAvailable(false); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -