Thursday, September 27, 2012

Organizations or Communities, which one should I use?

The concept of Organization, Community, groups have been extended in Liferay 6.1, providing a greater flexibility and customization. Below is the link from Liferay official site which explains this in a simple yet practical manner.
Organizations or Communities, which one should I use? The final answer

Thursday, July 12, 2012

Liferay: Disable portlet border

Aim: Disable border for all portlets

Solution:

The easiest way to do this is using theme. Open liferay-look-and-feel.xml  add to it below line to achieve the purpose by default for all portlets.

<theme id="myTheme" name="myTheme">
       <settings>
            <setting key="portlet-setup-show-borders-default" value="false" />
        </settings>
</theme>

Liferay: Inter portlet service access


Friday, June 22, 2012

Liferay: Invoke a servlet from portlet

Goal: 

To call a servlet from portlet deployed in liferay 6.

Solution:

 Step 1: Create a servlet

 public class myServlet extends HttpServlet {
  public void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
     System.out.println ("inside servlet");
     response.sendRedirect(portal_url); //url of portal page
  }
}

myServlet.java is a simple servlet class in which service() method serves the purpose of redirecting the control back to portal page. portal_url is the actual absolute URL where the servlet should redirect after processing.

Step 2: Configuring web descriptor

Go to portlet web.xml and make an entry like below:
<servlet>
        <servlet-name>myAction</servlet-name>
        <servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class>
        <init-param>
            <param-name>servlet-class</param-name>
            <param-value>com.rdg.portlet
.myServlet</param-value>
        </init-param>
        <init-param>
            <param-name>sub-context</param-name>
            <param-value>
myAction</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>


In the above web descriptor com.liferay.portal.kernel.servlet.PortalDelegateServlet serves to redirect any request coming to "http://localhost:8080/myAction" to service() method of com.rdg.portlet.myServlet and will redirect back to the liferay portal url.

Step 3: Creating portlet action class to redirect to the servlet

public class myPortletAction extends MVCPortlet {
  public void redirectMe(ActionRequest actionRequest,
            ActionResponse actionResponse) throws IOException, PortletException {


    actionResponse.sendRedirect("http://localhost:8080/myAction");
 }
}

So when a form is submitted to the action and control is sent to redirectMe() method, it redirects the request to "http://localhost:8080/myAction" for further processing.



Monday, June 18, 2012

AUI: Refresh on popup close button

To referesh the parent window while closing a AUI pop in liferay, use the following code:
window.myDialog = new A.Dialog(
            {
     on: {
      close: function() {
      document.location.href='<%=oncloseURL%>';
     }

    },
                title: title,
                centered: true,
    resizable: false,
    draggable: false,
    modal: true,
    width: 800,
    height:550,
   
       
            }
        )