Package com.dotmarketing.portlets.templates.design.servlets

Source Code of com.dotmarketing.portlets.templates.design.servlets.PreviewDesignTemplateServlet

package com.dotmarketing.portlets.templates.design.servlets;

import com.dotmarketing.beans.Host;
import com.dotmarketing.business.APILocator;
import com.dotmarketing.business.web.UserWebAPI;
import com.dotmarketing.business.web.WebAPILocator;
import com.dotmarketing.exception.DotDataException;
import com.dotmarketing.exception.DotRuntimeException;
import com.dotmarketing.exception.DotSecurityException;
import com.dotmarketing.portlets.templates.model.Template;
import com.dotmarketing.util.VelocityUtil;
import com.liferay.portal.PortalException;
import com.liferay.portal.SystemException;
import com.liferay.portal.model.User;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;

/**
* Servlet implementation class PreviewDesignTemplate
*
* @author Graziano Aliberti - Engineering Ingegneria Informatica S.p.a
*         <p/>
*         May 7, 2012 - 12:22:31 PM
*/
public class PreviewDesignTemplateServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doGet ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
        doPost( request, response );
    }

    protected void doPost ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
        try {

            String bodyTemplate = request.getParameter( "bodyTemplateHTML" );
            if ( bodyTemplate == null ) return;

            String theme = request.getParameter( "theme" );
            String templateTitle = request.getParameter( "title" );
            String themeName = request.getParameter( "themeName" );
            String hostId = request.getParameter( "hostId" );

            request.setAttribute( "designedBody", bodyTemplate );
            request.setAttribute( "title", templateTitle );
            /*
            String headerCheck = request.getParameter("headerCheck");
            String footerCheck = request.getParameter("footerCheck");
      boolean isHeader = UtilMethods.isSet(headerCheck) && headerCheck.equals("true");
      boolean isFooter = UtilMethods.isSet(footerCheck) && footerCheck.equals("true");
      */

            UserWebAPI uWebAPI = WebAPILocator.getUserWebAPI();
            User user = uWebAPI.getLoggedInUser( request );

            String themeHostId = APILocator.getFolderAPI().find( theme, user, false ).getHostId();
            String themePath;
            if ( themeHostId.equals( hostId ) ) {
                themePath = Template.THEMES_PATH + themeName + "/";
            } else {
                Host themeHost = APILocator.getHostAPI().find( themeHostId, user, false );
                themePath = "//" + themeHost.getHostname() + Template.THEMES_PATH + themeName + "/";
            }

            /*
            // get the imported files
            List<PreviewFileAsset> savedFiles = new ArrayList<PreviewFileAsset>();

            // get the preview body with the imported files (js and/or css)
            StringBuffer endBody = DesignTemplateUtil.getPreviewBody(bodyTemplate,savedFiles, themePath, isHeader, isFooter );

            // get the container's list
            List<Container> containers = PreviewTemplateUtil.getContainers(endBody);

            //replace the text
            for(Container c : containers){
                String identifier = c.getIdentifier();
                // if the container isn't into the header or into the footer than we insert the mock content...
                if(c.getMaxContentlets()>0)
                    endBody = new StringBuffer(endBody.toString().replace("#parseContainer('"+identifier+"')", PreviewTemplateUtil.getMockBodyContent()));
                else //...else the container's code
                    endBody = new StringBuffer(endBody.toString().replace("#parseContainer('"+identifier+"')", c.getCode()));
            }
            */

            StringBuilder sb = new StringBuilder();
            //Setting some theme variables
            sb.append( "#set ($dotTheme = $templatetool.themeByPath(\"" ).append( themePath ).append( "\",\"" ).append( hostId ).append( "\"))" );
            sb.append( "#set ($dotThemeLayout = $templatetool.themeLayout(\"" ).append( "null" ).append( "\"," ).append( true ).append( "))" );
            //Merging our template
            sb.append( "$velutil.mergeTemplate(\"$dotTheme.templatePath\")" );

            // parse
            StringWriter parsedBody = new StringWriter();
            org.apache.velocity.context.Context context = VelocityUtil.getWebContext( request, response );
            VelocityUtil.getEngine().evaluate( context, parsedBody, "", sb.toString() );

            PrintWriter out = response.getWriter();
            out.print( parsedBody );

        } catch ( DotDataException e ) {
            e.printStackTrace();
        } catch ( DotSecurityException e ) {
            e.printStackTrace();
        } catch ( DotRuntimeException e ) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch ( PortalException e ) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch ( SystemException e ) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
TOP

Related Classes of com.dotmarketing.portlets.templates.design.servlets.PreviewDesignTemplateServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.