Foren

Home » Liferay Portal » English » 3. Development

Kombinierte Ansicht Flache Ansicht Baumansicht
Threads [ Zurück | Nächste ]
toggle
Michel Wicky
how to get HttpServletRequest or PortletRequest from cms template
17. Januar 2013 12:14
Antwort

Michel Wicky

Rang: Regular Member

Nachrichten: 130

Eintrittsdatum: 2. Juli 2010

Neue Beiträge

Hi all, did somebody know how to get HttpServletRequest or PortletRequest from a velocity script in a web content template ?
Thx a lot.
Mika Koivisto
RE: how to get HttpServletRequest or PortletRequest from cms template
17. Januar 2013 16:05
Antwort

Mika Koivisto

LIFERAY STAFF

Rang: Liferay Legend

Nachrichten: 1505

Eintrittsdatum: 7. August 2006

Neue Beiträge

You can't unfortunately get access to either one in web content template because they are rendered in the service backend. You need to find another approach to what you are trying to accomplish.
Jelmer Kuperus
RE: how to get HttpServletRequest or PortletRequest from cms template
17. Januar 2013 23:00
Antwort

Jelmer Kuperus

Rang: Liferay Legend

Nachrichten: 1192

Eintrittsdatum: 10. März 2010

Neue Beiträge

You have access to an xml representation of the request. This xml document is available in the template as xmlRequest. It is documented on the wiki.

Note however that webcontent is usually cached and you'd have to disable caching in order to make use of this
Michel Wicky
RE: how to get HttpServletRequest or PortletRequest from cms template
17. Januar 2013 23:01
Antwort

Michel Wicky

Rang: Regular Member

Nachrichten: 130

Eintrittsdatum: 2. Juli 2010

Neue Beiträge

Ok i understand.

An another way is may be to use friendly URL like below:

#foreach ($userOrganization in $userOrganizations)
#if (!$userOrganization.isRoot() && $userOrganization.getParentOrganization().getGroupId() == 10698)
## debug $request.theme-display
## debug $getterUtil.getBoolean("false")
#set ($organizationFriendlyPath = $userOrganization.getGroup().getPathFriendlyURL($getterUtil.getBoolean("false"), $request.theme-display))
## debug $organizationFriendlyPath
#set ($organizationFriendlyURL = $userOrganization.getGroup().getFriendlyURL())
## debug $organizationFriendlyURL
#set ($OrganizationLink = "$organizationFriendlyPath$organizationFriendlyURL")
$OrganizationLink

<li><a href="${OrganizationLink}">$userOrganization.Name</a></li>

#end

Unfortunately, this statement don't execute correctly :
#set ($organizationFriendlyPath = $userOrganization.getGroup().getPathFriendlyURL($getterUtil.getBoolean("false"), $request.theme-display))

$request.theme-display seem not to be the right Type even I supposed it is RequestVars.getThemeDisplay, but may be it is not !?
Michel Wicky
RE: how to get HttpServletRequest or PortletRequest from cms template
17. Januar 2013 23:16
Antwort

Michel Wicky

Rang: Regular Member

Nachrichten: 130

Eintrittsdatum: 2. Juli 2010

Neue Beiträge

Thanks Jelmer, I need HttpServletRequest or PortletRequest to use one of them in $Request in the statement below:
#set ($myPlaceURL = $portletFactoryUtil.create($Request, "49", $userOrganization.getGroup().getDefaultPublicPlid(), "ACTION_PHASE"))

The goal is just to list some organization from a velocity script web content template with a link to each organization.

I already have everything (user, organization, group), i just need this parameter to finish the job. If i can't have it I have to find an another way to achieve this like may the second example i posted.

Thanks for your recommandation ...
Jelmer Kuperus
RE: how to get HttpServletRequest or PortletRequest from cms template
18. Januar 2013 01:33
Antwort

Jelmer Kuperus

Rang: Liferay Legend

Nachrichten: 1192

Eintrittsdatum: 10. März 2010

Neue Beiträge

You can't create links like that from a cms template because that would require access to the real request

You should pobably use javascript as i describe in this post
Michel Wicky
RE: how to get HttpServletRequest or PortletRequest from cms template
18. Januar 2013 10:20
Antwort

Michel Wicky

Rang: Regular Member

Nachrichten: 130

Eintrittsdatum: 2. Juli 2010

Neue Beiträge

Thank you a lot Jelmer, finally an information that will orient me correctly. I understand why javascript is the way to get these informations.
Hope I will able to achieve this.
Thx again.