Wednesday 26 October 2016

Programatically Add the Site and Page in Liferay:


1) Create Custom Portlet

2) Create Custom Class add the code in Controller Class

@Override
    public void doView(RenderRequest renderRequest,
            RenderResponse renderResponse) throws IOException, PortletException {
        // TODO Auto-generated method stub
        ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
        ServiceContext serviceContext = new ServiceContext();
        serviceContext.setAddCommunityPermissions(true);
        serviceContext.setAddGuestPermissions(true);
        Group group=null;
        Layout layout = null;
        try{
            group=GroupLocalServiceUtil.getGroup(themeDisplay.getCompanyId(), "Hello");
            if(group.getName().equalsIgnoreCase("Hello")){
                System.out.println("Group already exists");
            }else{
                group = GroupServiceUtil.addGroup("Hello", "", GroupConstants.TYPE_SITE_PRIVATE, "", true, true, serviceContext);
                layout = LayoutLocalServiceUtil.addLayout(themeDisplay.getUserId(),group.getGroupId(), true, 0, "ShowCase", "", "", LayoutConstants.TYPE_PORTLET, false, "/showcase2/3", serviceContext);
                LayoutLocalServiceUtil.updateLayout(layout);
            }
           
           
           
        }
        catch(Exception e){
            e.printStackTrace();
        }
       
        super.doView(renderRequest, renderResponse);
       
    }





 

 

Embedded the WebContent in Theme:



Add the below code in portal_norma.vm file

<div class="journalContent">
        #set($groupId = $themeDisplay.getScopeGroupId())
        #set($languageId = $request.theme-display.language-id)
        #set($journalArticleLocal=$serviceLocator.findService('com.liferay.portlet.journal.service.JournalArticleLocalService'))
        #set($journalContentUtil =$utilLocator.findUtil('com.liferay.portlet.journalcontent.util.JournalContent'))
        #set($journalArticle = $journalArticleLocal.getArticle($groupId,"WELCOME"))
        #set($latestArticle= $journalArticleLocal.getLatestArticle($groupId,$journalArticle.getArticleId()))
        #set($journalArticleDisplay=$journalContentUtil.getDisplay($groupId, $latestArticle.getArticleId(),"",$themeDisplay.getLanguageId(),$themeDisplay))
        $journalArticleDisplay.getContent()
        $themeDisplay.getLanguageId()

</div>



Monday 24 October 2016

Embedding a Portlet in Theme :

 Add the below code in Portal-Normal.vm


<div class="lang-bar">
                        $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false")
                        #set($sampleLanguageTranslatorPortletId = "languagetranslator_WAR_sampleportlet")
                        $theme.runtime($sampleLanguageTranslatorPortletId ,"", $velocityPortletPreferences.toString())
                        $velocityPortletPreferences.reset()
                    </div>
languagetranslator_WAR_sampleportlet =  portletId value get it from Database Portlet table

select * from Portlet.

  Inter Portlet Communication (IPC) in Liferay 7.4 Public Render Parameter IPC: 1) Create a new module project -> SenderPortlet 2) In  Se...