链接Liferay标签云链接到不同的页面

时间:2012-06-05 09:46:09

标签: liferay portlet tag-cloud

将liferay标记云portlet放在页面上时,单击标记云中的链接只会在同一页面中呈现结果,当且仅当我在同一页面上有资产发布者portlet时。

我想要的是当我点击标签云中的链接时,它应该带我到显示结果的不同页面,例如。搜索结果页面。

有没有办法使用标准组件?或者我是否必须编写自己的标记云portlet来支持此功能?

2 个答案:

答案 0 :(得分:3)

您不必创建新的portlet。请按照以下步骤操作

1)通过使用挂钩,修改标签云portlet中为标签生成的链接。而不是当前的布局,重定向到指定的页面(例如,如果您在/ web / guest / tag页面,那么所有标签链接将从/ web / guest / tag开始?.....将此设置为/网/客体/搜索?....)

2)在搜索页面上,放置资产发布者

现在,当您点击任何标记链接时,它将进入搜索页面,因为此页面包含资产发布者,它会从请求网址和会话中读取所有参数,并会在搜索页面上显示结果

答案 1 :(得分:1)

此挂钩的代码:

档案liferay-hook.xml

<hook>
     <custom-jsp-dir>/META-INF/custom_jsps</custom-jsp-dir>
</hook>

档案/docroot/META-INF/custom_jsps/html/taglib/ui/asset_tags_navigation/page.jsp

<%@ include file="/html/taglib/ui/asset_tags_navigation/init.jsp" %>
<%@ taglib uri="<http://liferay.com/tld/util>"
prefix="liferay-util" %> 
<%@ page import="com.liferay.portal.kernel.util.StringUtil" %>
<%@ page import="com.liferay.portal.service.LayoutLocalServiceUtil"%>

<liferay-util:buffer var="html">
     <liferay-util:include page="/html/taglib/ui/asset_tags_navigation/page.portal.jsp"/> 
</liferay-util:buffer> 

<% Layout searchLayout =
LayoutLocalServiceUtil.getFriendlyURLLayout(scopeGroupId, false,
"/search"); 

html = StringUtil.replace(html,layout.getRegularURL(request),searchLayout.getRegularURL(request));
%> 
<%= html %>