Liferay Portal has a JavaScript library that allows the creation of portletURLs inside your JavaScript code. Something like:
<input type="button" value="<liferay-ui:message key="cancel" />" onclick="<portlet:namespace/>_back();"/> <script type="text/javascript"> function <portlet:namespace/>_back() { var backURL = Liferay.PortletURL.createRenderURL(); backURL.setPortletId(""); backURL.setParameter("networkId", ${networkId}); backURL.setPortletMode("view"); location.href = backURL; } </script>
All the available methods are (as in Liferay 5.2.3):
- setCopyCurrentRenderParameters: function(copyCurrentRenderParameters);
- setDoAsUserId: function(doAsUserId);
- setEncrypt: function(encrypt);
- setEscapeXML: function(escapeXML);
- setLifecycle: function(lifecycle);
- setName: function(name);
- setParameter: function(key, value);
- setPlid: function(plid);
- setPortletConfiguration: function(portletConfiguration);
- setPortletId: function(portletId);
- setPortletMode: function(portletMode);
- setResourceId: function(resourceId);
- setSecure: function(secure);
- setWindowState: function(windowState);
- toString: function();
And you can create any portlet URL:
- var actionURL = Liferay.PortletURL.createActionURL(); // (‘ACTION_PHASE’);
- var renderURL = Liferay.PortletURL.createRenderURL(); // (‘RENDER_PHASE’);
- var resourceURL = Liferay.PortletURL.createResourceURL(); // (‘RESOURCE_PHASE’);
- var permissionURL = Liferay.PortletURL.createPermissionURL(portletResource, modelResource, modelResourceDescription, resourcePrimKey);
Have a look at the library in
liferay-portal-src-5.2.3/portal-web/docroot/html/js/liferay/portlet_url.js
Popularity: 39% [?]

