Forums

Home » Liferay Portal » English » 3. Development

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Zsolt Vilhelm
Is it possible to pass form data from template to portlet?
September 6, 2011 2:10 AM
Answer

Zsolt Vilhelm

Rank: New Member

Posts: 16

Join Date: August 30, 2011

Recent Posts

Hello!

What I would like to know, is that If I have a form, hardcoded in my template... is it possible to somehow pass the form data to , lets say a search portlet?
The action url should be something like this:
<liferay-portlet:actionURL portletName="stdSearchPortlet_WAR_stdSearchPortlet_INSTANCE_NJ2w"/>
but i belive it's not gonna work if I embed it into a template......

Thanks in advance!
Christianto Sahat
RE: Is it possible to pass form data from template to portlet?
September 6, 2011 2:40 AM
Answer

Christianto Sahat

Rank: Regular Member

Posts: 174

Join Date: September 24, 2007

Recent Posts

Should be possible with PortletURLFactory instance.

This instance is set as one of Velocity's variables, so you can use it in your template.

 1
 2
 3#set ( $target_layout_plid = 1089)
 4#set ( $search_portlet_name = "3_instance_3f01" );
 5
 6#set ($search_portlet_url = $portletURLFactory.create($request, $search_portlet_name, $themeDisplay.getPlid(), "ACTION_PHASE"))
 7                               
 8$search_portlet_url.setWindowState("normal")
 9$search_portlet_url.setPortletMode("view")
10$search_portlet_url.setParameter("userId", "$userId")
11
12<form method="POST" action = "$search_portlet_url.toString()" name="sign_up">
13Name : <input type="text" name="my_name" />
14<input value="Sign Up" type="submit">
15</form>
Nitu Saksena
RE: Is it possible to pass form data from template to portlet?
September 6, 2011 2:41 AM
Answer

Nitu Saksena

Rank: New Member

Posts: 11

Join Date: February 1, 2011

Recent Posts

Hi Zsolt,

Do you mean velocity template? or Web content template?
Zsolt Vilhelm
RE: Is it possible to pass form data from template to portlet?
September 6, 2011 2:49 AM
Answer

Zsolt Vilhelm

Rank: New Member

Posts: 16

Join Date: August 30, 2011

Recent Posts

Velocity!
Nitu Saksena
RE: Is it possible to pass form data from template to portlet?
September 6, 2011 2:57 AM
Answer

Nitu Saksena

Rank: New Member

Posts: 11

Join Date: February 1, 2011

Recent Posts

You could set actionURL on your component in the .vm file using JavaSrcipt.

Eg:

1<a href="" onclick="submitURL()" id="id">Search</a>


Here, the portlet containing the definition of submitURL() must be loaded before this statement as shown below:
1
2    $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false")
3    #set($locRenderedPortletContent = $theme.runtime("yourSearch_WAR_portlet", "", $velocityPortletPreferences.toString()))
4    $locRenderedPortletContent
5    $velocityPortletPreferences.reset()
6    #end


The code in the portlet to set the URL could be as mentioned below:

 1   
 2<portlet:renderURL name="searchURL" var="searchURL" >
 3    <portlet:param name="action" value="xyz" />
 4</portlet:renderURL>
 5
 6
 7<script type="text/javascript">
 8function submitURL(){
 9        document.getElementById("id").href='<%=searchURL%>';
10    }
11</script>


Hope this helps.

BR
Zsolt Vilhelm
RE: Is it possible to pass form data from template to portlet?
September 6, 2011 3:18 AM
Answer

Zsolt Vilhelm

Rank: New Member

Posts: 16

Join Date: August 30, 2011

Recent Posts

I'm new to liferay. Could you please tell me , what exactly :
#set ( $target_layout_plid = 1089) is? Thanks