📄 homepagetool.java
字号:
//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .////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.engines.copytree.*;import org.jahia.exceptions.*;import org.jahia.params.*;import org.jahia.registries.*;import org.jahia.services.homepages.*;import org.jahia.services.pages.*;import org.jahia.services.sites.*;import org.jahia.utils.*;/** * desc: This class is used by the administration to choose an home page. * * Copyright: Copyright (c) 2002 * Company: Jahia Ltd * * @version 1.0 */public class HomePageTool{ private static final String CLASS_NAME = HomePageTool.class.getName(); private static final String JSP_PATH = JahiaAdministration.JSP_PATH; private JahiaSite jahiaSite; private String message = ""; public static final String ENGINE_LAUNCHER_NAME = CLASS_NAME; /** * Default constructor. * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session. */ public HomePageTool(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws Throwable { // get the current website. get the jahiaserver if it's null... jahiaSite = (JahiaSite)session.getAttribute(ParamBean.SESSION_SITE); // continue the execution of the request... requestDispatcher(request, response, session); } /** * This method is used like a dispatcher for home page tool requests. * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session. */ public void requestDispatcher(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws Throwable { String operation = request.getParameter("subaction"); try { if (operation.equals("display")) { displayHomePageTool(request, response, session); } else if (operation.equals("process")) { processHomePageTool(request, response, session); } } catch (Throwable t) { JahiaConsole.printe(CLASS_NAME + ".requestDispatcher", t); } } /** * 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, HttpSession session, String target ) throws IOException, ServletException { try { // 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", "Home Page Tool"); } // redirect! JahiaAdministration.doRedirect(request, response, session, target); } catch (IOException ie) { JahiaConsole.println(CLASS_NAME+".doRedirect() :" , "error " + ie.getMessage()); } catch (ServletException se) { JahiaConsole.println(CLASS_NAME+".doRedirect() :", "error " + se.getMessage()); } } private void displayHomePageTool(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".displayHomePageTool", "Started"); // get the home page JahiaHomepagesService homePageService = ServicesRegistry.getInstance().getJahiaHomepagesService(); Enumeration homePageEnumeration = homePageService.getHomepages(jahiaSite); request.setAttribute("homePageEnumeration", homePageEnumeration); // get all site pages id... JahiaPageBaseService pageService = JahiaPageBaseService.getInstance(); Vector allPagesIDVector = pageService.getPageIDsInSite(jahiaSite.getID(), org.jahia.services.pages.PageInfoInterface.TYPE_DIRECT); // get all site pages infos... ArrayList sitePages = new ArrayList(); Enumeration allPagesIDEnumeration = allPagesIDVector.elements(); while (allPagesIDEnumeration.hasMoreElements()) { Integer pageID = (Integer)allPagesIDEnumeration.nextElement(); sitePages.add((JahiaPage)pageService.lookupPageWhitoutTemplates(pageID.intValue())); } request.setAttribute("sitePages", sitePages); // get value from engineMap from the Tree Copy engine HashMap engineMap = (HashMap)session.getAttribute(ParamBean.SESSION_JAHIA_ENGINEMAP); if (engineMap != null) { // check if the Tree engine was opened for this source page String value = (String)engineMap.get(CopyTree_Engine.ENGINE_LAUNCHER_NAME); if (value != null && value.equals(ENGINE_LAUNCHER_NAME)) { // get the selected page request.setAttribute("pageID", engineMap.get(CopyTree_Engine.SOURCEPAGE_ID)); // reset engine map session.setAttribute(ParamBean.SESSION_JAHIA_ENGINEMAP, null); } } request.setAttribute("jahiaSite", jahiaSite); request.setAttribute("jspSource", JSP_PATH + "/homepages/popup/homepagetool.jsp"); session.setAttribute("jahiaDisplayMessage", Jahia.COPYRIGHT); request.setAttribute("message", message); doRedirect(request, response, session, JSP_PATH + "/adminpopup.jsp"); message = ""; } private void processHomePageTool(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".processHomePageTool", "Started"); String choice = request.getParameter("choice"); if (choice != null) { if (choice.equals("sitePage")) { String pageID = request.getParameter("pageID"); JahiaConsole.println(CLASS_NAME+".processHomePageTool.sitePage", "Site Page ID : " + pageID); if (pageID == null) { message = "Please select one site page"; } else { session.setAttribute("homePageID", new Integer(pageID)); session.setAttribute("homePageLabel", JahiaPageBaseService. getInstance().lookupPageWhitoutTemplates(Integer.parseInt(pageID)).getTitle()); request.setAttribute("suicide", ""); } } else if (choice.equals("removeHomePage")) { session.setAttribute("homePageID", new Integer(-1)); session.setAttribute("homePageLabel", "none"); request.setAttribute("suicide", ""); } else { // Home page definition JahiaHomepagesService homePageService = ServicesRegistry.getInstance().getJahiaHomepagesService(); String homePageDefID = request.getParameter("homePageDefID"); JahiaHomepage homePage = homePageService.getHomepage(Integer.parseInt(homePageDefID)); if (homePage.getType() == HomepageTypes.HOMEPAGE_LINK) { JahiaConsole.println(CLASS_NAME+".processHomePageTool.HOMEPAGE_LINK", "Home Page ID : " + homePageDefID); JahiaHomepageLink homePageLink = (JahiaHomepageLink)homePage; session.setAttribute("homePageID", new Integer(homePageLink.getPageID())); session.setAttribute("homePageLabel", JahiaPageBaseService. getInstance().lookupPageWhitoutTemplates(homePageLink.getPageID()).getTitle()); } else if (homePage.getType() == HomepageTypes.HOMEPAGE_NEW) { // } else if (homePage.getType() == HomepageTypes.HOMEPAGE_COPY) { // } request.setAttribute("suicide", ""); } } else { message = "Please choose one of the above radio boxes"; } displayHomePageTool(request, response, session); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -