Ссылка на облако тегов Liferay на другую страницу
При размещении портлета облака тегов liferay на странице при щелчке по ссылкам в облаке тегов результат будет отображаться на той же странице только в том случае, если у меня есть портлет издателя ресурсов на той же странице.
Я хотел бы, чтобы при нажатии на ссылку в облаке тегов я перешел на другую страницу с результатами, например. страница результатов поиска.
Есть ли способ сделать это, используя стандартные компоненты? Или мне придется написать свой собственный портлет облака тегов для поддержки этой функции?
2 ответа
Вам не нужно создавать новый портлет. Пожалуйста, следуйте этим шагам
1) Используя хуки, измените ссылки, сгенерированные в портлете облака тегов для тегов. Вместо текущего макета перенаправьте на указанную страницу (например, если вы находитесь на странице /web/guest/tag, тогда ссылка на все теги будет начинаться с /web/guest/tag?..... Сделать это на / Интернет / гость / поиск?....)
2) на странице поиска разместите актив издателя
Так что теперь, когда вы нажимаете на любую ссылку тега, она переходит на страницу поиска, так как на этой странице есть издатель ресурсов, она считывает все параметры из URL-адреса запроса и из сеанса и отображает результаты на странице поиска.
Код для этого хука:
файл 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 %>