📄 managehomepages.java
字号:
// $Id: ManageHomepages.java,v 1.6 2002/06/07 13:50:30 pmartin Exp $//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .////// ManageHomepages//// 18.12.2001 NK added in jahia.//package org.jahia.admin.homepages;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import org.jahia.bin.*;import org.jahia.params.*;import org.jahia.utils.*;import org.jahia.data.*;import org.jahia.services.usermanager.*; // Usermanager servicesimport org.jahia.services.sites.*; // Site servicesimport org.jahia.services.pages.*; // Pages servicesimport org.jahia.services.homepages.*; // Homepages servicesimport org.jahia.registries.*; // ServicesRegistryimport org.jahia.exceptions.*; // JahiaExceptionimport org.jahia.engines.copytree.CopyTree_Engine;/** * This class is used by the administration to manage homepages definitions. * * Copyright: Copyright (c) 2002 * Company: Jahia Ltd * * @author Khue Nguyen * @version 1.0 */public class ManageHomepages{ private static final String CLASS_NAME = ManageHomepages.class.getName(); private static final String JSP_PATH = JahiaAdministration.JSP_PATH; private static final String HTTP_FILES = "/jsp/jahia/engines"; private static final String JSP = "/jsp/jahia/administration/homepages/main.jsp?includejsp="; private static ServletContext context; private ServicesRegistry sReg; private JahiaSitesService siteServ; private JahiaHomepagesService hpServ; private JahiaSite site; private JahiaUser user; private Hashtable values = new Hashtable(); private String operation = ""; // current operation public static final String CHOOSEPAGE_LAUNCHER_LINK_SOURCEPAGE = "org.jahia.admin.ManageHomepages.link_sourcepage"; public static final String CHOOSEPAGE_LAUNCHER_NEW_DESTPAGE = "org.jahia.admin.ManageHomepages.new_destpage"; public static final String CHOOSEPAGE_LAUNCHER_COPY_DESTPAGE = "org.jahia.admin.ManageHomepages.copy_destpage"; public static final String CHOOSEPAGE_LAUNCHER_COPY_SOURCEPAGE = "org.jahia.admin.ManageHomepages.copy_sourcepage"; //-------------------------------------------------------------------------- /** * Default constructor. * @author Khue Nguyen * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. * @param context Servlet context. */ public ManageHomepages( HttpServletRequest request, HttpServletResponse response, HttpSession session, ServletContext context ) throws Throwable { this.context = context; sReg = ServicesRegistry.getInstance(); if (sReg == null) { displayError(request,response,"Service Registry is not available"); return; } siteServ = sReg.getJahiaSitesService(); hpServ = sReg.getJahiaHomepagesService(); if ( siteServ == null || hpServ == null ){ displayError(request,response,"Requested Services are not available"); return; } userRequestDispatcher( request, response, session ); } //-------------------------------------------------------------------------- /** * This method is used like a dispatcher for user requests. * @author Khue Nguyen * * @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 IOException,ServletException { // 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 ){ displayError(request,response,"Requested information not available."); return; } try { if ( JahiaSiteTools.getAdminGroup(site).isMember(user) ){ operation = request.getParameter("sub"); if(operation.equals("display")) { displayMain( request, response, session ); } else if(operation.equals("add")) { displayAdd( request, response, session ); } else if(operation.equals("detail")) { displayDetail( request, response, session ); } else if(operation.equals("options")) { displayOptions( request, response, session ); } } else { //System.out.println(" --> no admin access on this site <--"); displayError(request,response,"No admin access on this site"); } } catch ( Throwable t ){ t.printStackTrace(); displayError(request,response,"An error occured while processing your request"); } } /** * Forward the servlet request and servlet response objects, using the request * dispatcher (from the ServletContext). Note: please be careful, use only * context relative path. * * @param request servlet request. * @param response servlet response. * @param target target, context-relative path. * @exception IOException an I/O exception occured during the process. * @exception ServletException a servlet exception occured during the process. */ private void doRedirect( HttpServletRequest request, HttpServletResponse response, String target ) throws IOException, ServletException { try { request.setAttribute("currentSite",site); request.setAttribute("user",user); // check current operation if( request.getAttribute("operation") == null ) { request.setAttribute("operation", operation); } // check null warning msg if( request.getAttribute("warningMsg") == null ) { request.setAttribute("warningMsg", ""); } // check null jsp bottom message, and fill in if necessary... if( request.getAttribute("msg") == null ) { request.setAttribute("msg", Jahia.COPYRIGHT); } if( request.getAttribute("focus") == null ) { request.setAttribute("focus", "-none-"); } // check null configuration step title, and fill in if necessary... if( request.getAttribute("title") == null ) { request.setAttribute("title", "Manage Home pages"); } // set input values on request... request.setAttribute( "values", values ); // add http files path in request... request.setAttribute( "url", request.getContextPath() + HTTP_FILES ); // get browser entity... String userAgent = request.getHeader("user-agent"); Integer navigator = (userAgent.indexOf("IE")) != -1 ? new Integer(0) : new Integer(1); request.setAttribute("navigator", navigator); boolean isLynx = false; if(userAgent.indexOf("Lynx") != -1) { isLynx = true; } request.setAttribute("isLynx", new Boolean(isLynx)); // redirect! context.getRequestDispatcher( target ).forward( request, response ); } catch (IOException ie) { JahiaConsole.println(CLASS_NAME+".doRedirect() :" , "error " + ie.getMessage()); } catch (ServletException se) { JahiaConsole.println(CLASS_NAME+".doRedirect() :", "error " + se.getMessage()); } } //-------------------------------------------------------------------------- /** * Display the main admin page for homepage definitions. * * @author Khue Nguyen * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void displayMain( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException, JahiaException { // reset session session.setAttribute("homepageBean", null); Enumeration enum = hpServ.getHomepages(site); request.setAttribute("homepages",enum); // set the default action request.setAttribute("subAction","list"); // set the default step request.setAttribute("go","change"); doRedirect( request, response, JSP + "list" ); } //-------------------------------------------------------------------------- /** * Forward to error page. * * @author Khue Nguyen * * @param request Servlet request. * @param response Servlet response. * @param String the warning msg. */ private void displayError( HttpServletRequest request, HttpServletResponse response, String msg ) throws IOException, ServletException { request.setAttribute("warningMsg",msg); doRedirect( request, response, JSP + "error" ); } /*************************************************************************** * ADD SECTION * */ //-------------------------------------------------------------------------- /** * Display the add new homepage form. * * @author Khue Nguyen * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void displayAdd( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".displayAdd","Started"); JahiaHomepage hp = null; String go = request.getParameter("go"); if ( go == null ){ go = ""; //reset session session.setAttribute("homepageBean",null); } // set the default action request.setAttribute("subAction","add"); // set the default step if ( go.equals("") ) go = "change"; request.setAttribute("go",go); hp = (JahiaHomepage)session.getAttribute("homepageBean"); if ( hp == null ){ hp = hpServ.createHomepage( "", "", site.getSiteKey(), HomepageTypes.HOMEPAGE_LINK, new Hashtable(), 0 ); session.setAttribute("homepageBean",hp); } else { // default values String name = ""; int type = HomepageTypes.HOMEPAGE_LINK; String descr = ""; // retrieve submitted Data String value = request.getParameter("name"); if ( value != null ) name = value; value = request.getParameter("type"); if ( value != null ) type = Integer.parseInt(value); value = request.getParameter("descr"); if ( value != null ) descr = value; if ( hp.getType() != type ){ // type has changed ! Recreate a new Bean with correct type hp = hpServ.createHomepage( name, descr, site.getSiteKey(), type, new Hashtable(), 0 );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -