2012-06-05 6 views
4

При размещении портлета облака тегов liferay на странице нажатие на ссылки в облаке тегов будет просто отображать результат на той же странице, если и только если у меня есть портлет издателя активов на на той же странице.Link Liferay тег ссылки на другую страницу

Что бы я хотел, так это то, что когда я нажимаю ссылку в облаке тегов, она должна выводить меня на другую страницу, показывающую результаты, например. страницу результатов поиска.

Есть ли способ сделать это, используя стандартные компоненты? Или мне нужно написать собственный портлет облака тегов для поддержки этой функции?

ответ

3

Вам не нужно создавать новый портлет. Выполните следующие шаги:

1) Используя крючки, измените ссылки, созданные в портлете облака тегов для тегов. Вместо текущей компоновки переадресовывайте на указанную страницу (например, если вы находитесь на странице/web/guest/tag, тогда вся ссылка тегов начинается с/web/guest/tag? ..... Сделайте это в/Интернет/гость/поиск? ....)

2) на странице поиска, положить издатель активов

Итак, теперь, когда вы нажимаете любую ссылку тега, он будет идти на странице поиска, начиная с этой страницы имеет издателя активов, он считывает все параметры из URL-адреса запроса и из сеанса, и он отображает результаты на странице поиска.

+1

Отлично, это было то, что я искал. Создал крючок jsp override для html/taglib/ui/asset_tags_navigation/page.jsp 'code' String newURL ="/web/guest/tagdisplay "+ portletURL.substring (pURL.indexOf ("? ")); sb.append (newURL); //sb.append(portletURL.toString()); 'code' –

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 %> 
Смежные вопросы