How to create new site programmaticly in liferay with validation

Create site in liferay :

<%@page import="javax.portlet.PortletPreferences"%>
<%@page import="com.liferay.portal.kernel.util.ParamUtil"%>
<%@page import="com.liferay.portal.kernel.util.HtmlUtil"%>
<%@page import="com.liferay.portal.kernel.util.StringPool"%>
<%@page import="com.liferay.portal.kernel.util.UnicodeProperties"%>
<%@page import="com.liferay.portal.service.LayoutSetPrototypeServiceUtil"%>
<%@page import="com.liferay.portal.model.LayoutSetPrototype"%>
<%@page import="com.liferay.portal.service.GroupLocalServiceUtil"%>
<%@page import="java.util.List"%>
<%@page import="com.liferay.portal.kernel.bean.BeanParamUtil"%>
<%@page import="com.liferay.portal.theme.ThemeDisplay"%>
<%@page import="com.liferay.portal.model.Group"%>
<%@page import="com.liferay.portal.kernel.util.WebKeys"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>
<%@ taglib uri="http://liferay.com/tld/theme"  prefix="theme"%>
<%@taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
 <%@taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>
<%@taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %>

<portlet:defineObjects />
<theme:defineObjects/>

<%

PortletPreferences commonpref = renderRequest.getPreferences();
String commonvalue = (String)commonpref.getValue("commonvalue", "Hello! Welcome to our portal.");
//Group group = (Group)request.getAttribute("site.group");
//Group liveGroup = (Group)request.getAttribute("site.liveGroup");
LayoutSetPrototype layoutSetPrototype = (LayoutSetPrototype)request.getAttribute("site.layoutSetPrototype");
//boolean showPrototypes = GetterUtil.getBoolean(request.getAttribute("site.showPrototypes"));

long companyid=company.getCompanyId();
String languageid=user.getLanguageId();



long liveGroupId = 0;
//Group group = (Group)request.getAttribute(WebKeys.);
List<Group> objgroup=GroupLocalServiceUtil.getGroups(0, GroupLocalServiceUtil.getGroupsCount());
Group group=objgroup.get(0);
long groupId = BeanParamUtil.getLong(group, request, "groupId");

System.out.println("Here are group :"+group);
Group stagingGroup = null;

Group liveGroup = null;

if (group != null) {
    if (group.isStagingGroup()) {
        liveGroup = group.getLiveGroup();

        stagingGroup = group;
    }
    else {
        liveGroup = group;

        if (group.hasStagingGroup()) {
            stagingGroup = group.getStagingGroup();
        }
    }
}
    liveGroupId = liveGroup.getGroupId();
    System.out.println("Here are livegroup id :"+liveGroupId);
    request.setAttribute("group", group);
%>
<%=commonvalue %>
<portlet:actionURL var="creatURL" name="Create">
<portlet:param name="viewJSP" value="/html/business/view.jsp"></portlet:param>

</portlet:actionURL>

<aui:form action="<%=creatURL %>" method="post">

<liferay-ui:error key="sitename" message="The site you has enter already eits" />
<aui:input name="commonvalue" type="hidden" value="<%=commonvalue %>"/>
<aui:input name="liveGroupId" type="hidden" value="<%=liveGroupId%>" />
<aui:input name="companyid" type="hidden" value="<%=companyid%>" />
<aui:input name="languageid" type="hidden" value="<%=languageid%>" />
<aui:input name="groupId" type="hidden" value="<%= groupId %>" />
<aui:input name="group" type="hidden" value="<%= group %>" />
<aui:input name="sitename" label="Enter Site" type="text" value="">
<aui:validator name="required"></aui:validator></aui:input>
<aui:input name="discription" label="Enter site discription" type="textarea" value="">
</aui:input>



 <aui:button type="submit" value="Create site" ></aui:button>
 </aui:form>

Here are action file:

package com.business.awaz;

import java.io.IOException;
import java.util.List;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletModeException;
import javax.portlet.ReadOnlyException;
import javax.portlet.ValidatorException;
import javax.portlet.WindowStateException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.servlet.SessionErrors;
import com.liferay.portal.kernel.util.HtmlUtil;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.kernel.util.UnicodeProperties;
import com.liferay.portal.model.Group;
import com.liferay.portal.model.LayoutConstants;
import com.liferay.portal.model.LayoutSet;
import com.liferay.portal.model.LayoutSetPrototype;

 import com.liferay.portal.service.GroupServiceUtil;

import com.liferay.portal.service.GroupLocalServiceUtil;
import com.liferay.portal.service.LayoutServiceUtil;
import com.liferay.portal.service.LayoutSetLocalServiceUtil;
import com.liferay.portal.service.LayoutSetPrototypeServiceUtil;
import com.liferay.portal.service.ServiceContext;
import com.liferay.portal.service.ServiceContextFactory;
import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;

import javax.portlet.PortletPreferences;
//import com.liferay.portlet.sites.util.SitesUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;



/**
 * Portlet implementation class Business
 */
public class Business extends MVCPortlet {
    public void fiveplan(ActionRequest fiveplanrequest,ActionResponse fiveplanresponse) throws ReadOnlyException, ValidatorException, IOException, PortletModeException, WindowStateException
    {
        String fiveplane=fiveplanrequest.getParameter("basicplan");   
       
        PortletPreferences fiveplanpref=fiveplanrequest.getPreferences();
                
        if(fiveplane !=null)
        {
            fiveplanpref.setValue("commonvalue", fiveplane);
            fiveplanpref.store();   
           
            fiveplanresponse.setRenderParameter("jspPage","/html/business/createsite.jsp");
           
        }


    }
   
       
   
    public void Create(ActionRequest actionRequest ,ActionResponse res) throws Exception
    {
           
        try {
            String sitename=actionRequest.getParameter("sitename");
             String findsitename="";
              List<Group> siteobj=GroupLocalServiceUtil.getGroups(0, GroupLocalServiceUtil.getGroupsCount());
                for(int k=0;k<siteobj.size();k++)
                {
               
                    if(sitename.equals(siteobj.get(k).getName()))
                    {
                        //SessionErrors.add(actionRequest, "sitename");
                        findsitename=siteobj.get(k).getName();
                    }
           
                }
             String commonvalue=actionRequest.getParameter("commonvalue");

                long liveGroupId = Long.parseLong(actionRequest.getParameter("liveGroupId"));
                long companyid=Long.parseLong(actionRequest.getParameter("companyid"));
                String languageid=actionRequest.getParameter("languageid");
                String discription=actionRequest.getParameter("discription");
                System.out.println("Here is domain name"+sitename);
                System.out.println("Here is group name"+liveGroupId);
                int type = ParamUtil.getInteger(actionRequest, "type");
                String friendlyURL = ParamUtil.getString(actionRequest, "friendlyURL");
                System.out.println("Friendlay URL is :"+friendlyURL);
                ServiceContext serviceContext = ServiceContextFactory.getInstance(Group.class.getName(), actionRequest);
                Group liveGroup = null;
                String oldFriendlyURL = null;
                String oldStagingFriendlyURL = null;
                long privateLayoutSetPrototypeId = ParamUtil.getLong(actionRequest, "privateLayoutSetPrototypeId");
                long publicLayoutSetPrototypeId = ParamUtil.getLong(actionRequest, "publicLayoutSetPrototypeId");
                System.out.println("Here are private id: :"+privateLayoutSetPrototypeId);
                System.out.println("Here are public id: :"+publicLayoutSetPrototypeId);
                System.out.println("Here are servicecontext id: :"+serviceContext);
                ServiceContext serviceContexta = new ServiceContext();
                Group liveGroups = null;
                       
               List<LayoutSetPrototype> layoutSetPrototypes = LayoutSetPrototypeServiceUtil.search(companyid, Boolean.TRUE, null);
                            String uuid=null;
                            for (LayoutSetPrototype curLayoutSetPrototype : layoutSetPrototypes)
                                {
                                UnicodeProperties settingsProperties = curLayoutSetPrototype.getSettingsProperties();
                                String servletContextName = settingsProperties.getProperty("customJspServletContextName", StringPool.BLANK);
                                String name=HtmlUtil.escape(curLayoutSetPrototype.getName(languageid));
                                System.out.println("hi this is :"+ curLayoutSetPrototype.getLayoutSetPrototypeId());
                   
                                  if(commonvalue.equals(name))
                                      {
                                    uuid=  curLayoutSetPrototype.getUuid();
                                      }
                                      name="";
                                }
                                 
                                  if(!uuid.equals(""))
                                  {
                                        
                                     if(findsitename.equals(""))       
                                     
                                     {                                   
                                    GroupServiceUtil.addGroup(sitename,discription, 1, friendlyURL, true, true ,serviceContext);

                                    Group groupobj=GroupLocalServiceUtil.fetchGroup(companyid, sitename);
                                    long groupid=groupobj.getGroupId();
                                   System.out.println("Site is creates");
                                   LayoutSet layoutsets=LayoutSetLocalServiceUtil.getLayoutSet(groupid,false);
                           
                                   layoutsets.setLayoutSetId(layoutsets.getLayoutSetId());
                                   layoutsets.setGroupId(layoutsets.getGroupId());
                                   layoutsets.setCompanyId(layoutsets.getCompanyId());
                                   layoutsets.setCreateDate(layoutsets.getCreateDate());
                                   layoutsets.setModifiedDate(layoutsets.getModifiedDate());
                                   layoutsets.setPrivateLayout(layoutsets.getPrivateLayout());
                                   layoutsets.setLogo(layoutsets.getLogo());
                                   layoutsets.setLogoId(layoutsets.getLogoId());
                                   layoutsets.setThemeId(layoutsets.getThemeId());
                                   layoutsets.setColorSchemeId(layoutsets.getColorSchemeId());
                                   layoutsets.setWapThemeId(layoutsets.getWapThemeId());
                                   layoutsets.setWapColorSchemeId(layoutsets.getWapColorSchemeId());
                                   layoutsets.setCss(layoutsets.getCss());
                                   layoutsets.setPageCount(1);
                                   layoutsets.setSettings(layoutsets.getSettings());
                                   layoutsets.setLayoutSetPrototypeUuid(uuid);
                                   layoutsets.setLayoutSetPrototypeLinkEnabled(true);
                               
                                   LayoutSetLocalServiceUtil.updateLayoutSet(layoutsets);
       


                           
                                   boolean privateLayout = ParamUtil.getBoolean(actionRequest, "privateLayout");
                                   long parentLayoutId = ParamUtil.getLong(actionRequest, "parentLayoutId");
                                   String name1 = ParamUtil.getString(actionRequest, "name", "home");
                                   String title = StringPool.BLANK;
                                  String description = StringPool.BLANK;
                         
                                   boolean hidden = false;
                                   String friendlyURL1 = StringPool.BLANK;
                           

                                   ServiceContext serviceContext1 = ServiceContextFactory.getInstance(actionRequest);
                                   System.out.println("Service cintext is "+serviceContext1);
                           
                                   System.out.println("Here are new site id"+groupid);
                   
                                  LayoutServiceUtil.addLayout(groupid, false ,parentLayoutId ,name1 ,title ,description ,LayoutConstants.TYPE_PORTLET ,false ,friendlyURL1,serviceContext);
                                  res.setRenderParameter("jspPage", "/html/business/createsite.jsp");
                           
                                         }
                                    else
                                    {
                                   
                                    SessionErrors.add(actionRequest, "sitename");
                                  
                                   
                                    }
                                             
                                        
                                  }
       
             }
        catch (SystemException e) {
            // TODO Auto-generated catch block
                            e.printStackTrace();
        }   
       
    }
   
}

No comments:

Post a Comment