sorting - 如何在 Hybris 中隐藏特定页面的排序选项
问题描述
我有 3 个 SolrSorts:
- 关联
- AZ
- ZA
在搜索页面上,应该有 3 种可用的全部。但在类别页面上只有 AZ 和 ZA。那么如何在类别页面上隐藏相关性排序呢?
我已经覆盖了DefaultSolrProductSearchService类,但没有什么可以帮助我。我认为spring.xml中应该有类似配置的东西?
解决方案
如果您想从后端进行配置,以便明天您可以从 HMC/backoffice 隐藏特定页面的另一个字段,那么您需要从模型到后端到前端进行大量更改。但是如果你想简单地硬编码这个需求,你可以在前端轻松处理。像这样...
- 修改searchresultsgridcomponent.jsp以将附加标志传递给 pagination.tag。这有助于我们识别搜索页面与类别页面。
请注意,您可以在该文件中找到两个nav:paginationisSearchPage="${true}"
引用,请使用.
<nav:pagination top="true" supportShowPaged="${isShowPageAllowed}" supportShowAll="${isShowAllAllowed}" searchPageData="${searchPageData}" searchUrl="${searchPageData.currentQuery.url}" numberPagesShown="${numberPagesShown}" isSearchPage="${true}"/>
对searchresultslistcomponent.jsp重复上述步骤
在 pagination.tag 中,取消
isSearchPage
属性并在此标志的帮助下处理呈现登录的排序选项。
像这样的东西
<%@ attribute name="isSearchPage" required="false" type="java.lang.Boolean" %>
<c:set var="isSeachPg" value="${empty isSearchPage ? false : isSearchPage}"/>
让我们只允许搜索页面的相关性。
<select id="sortOptions${top ? '1' : '2'}" name="sort" class="form-control">
<option disabled><spring:theme code="${themeMsgKey}.sortTitle"/></option>
<c:forEach items="${searchPageData.sorts}" var="sort">
<c:if test="${isSeachPg || (not isSeachPg && fn:escapeXml(sort.code) != 'relevance')}">
<option value="${fn:escapeXml(sort.code)}" ${sort.selected? 'selected="selected"' : ''}>
<c:choose>
<c:when test="${not empty sort.name}">
${fn:escapeXml(sort.name)}
</c:when>
<c:otherwise>
<spring:theme code="${themeMsgKey}.sort.${sort.code}"/>
</c:otherwise>
</c:choose>
</option>
</c:if>
</c:forEach>
</select>
推荐阅读
- javascript - 检查用户浏览器是否支持 getBoundingClientRect() 函数
- recursion - f# function to calculate n! faculty
- c - segmentation fault (cored dumped)
- javascript - 在 WebGL 中翻译 3d 对象
- mathjax - Displaying rational numbers using Mathjax
- docker - Docker绑定挂载模式强制为只读
- php - Websockets 仅在 localhost 中工作,而不是在登台或生产服务器中工作
- html - 如何在 vanilla nodeJS 中提供静态文件
- python - python中涉及复利计算的round问题
- java - 如何对这个数组进行升序排序?