views:

60

answers:

2

I am having trouble understanding the concept of portlets in a CMS.

Let's say I write a weather portlet to display current temperature. I build it, package it in a war, deploy the war in LifeRay.

Now I created a page, and I want to create 2 instances of the portlet I wrote. I want to display the weather in Seattle and the weather in Miami.

Can I do this? How do I pass the portlet a parameter to tell it which city to display?

+3  A: 

Portlet has so-called EDIT-mode. You can implement EDIT mode to show the form to choose which city you want to show the temperature for. Save this to portlet preferences. And when you will render the portlet in normal(VIEW) mode, look at the preferences for the city.

Jaromir Hamala
To expand on this - PortletPreferences can be scoped to the instance (LR default) or per-user - allowing the same code to render with different properties.
jayshao
+1  A: 

Another option is PortletConfig - which is generally configured in portlet.xml and is similar to Servlet init params. Preferences is probably your best bet.

If you're working in Liferay in particular, LR's model-builder infrastructure will get you much of this functionality including editing quick/cheap at the cost of cross-container portability. On the plus side it will integrate well with LR's (limited) RBAC which tends to be important in distributed content authoring environments

jayshao