如何隐藏在liferay搜索容器中显示结果文本?

时间:2012-06-06 06:51:31

标签: search liferay liferay-6

我正在使用liferay搜索容器来显示信息列表,但在该liferay搜索容器中默认显示记录的数量,如“显示2个结果”。但在我的情况下,我不想显示这个。我该如何删除?还附上了搜索容器的图像。

enter image description here

欢迎提出建议。

4 个答案:

答案 0 :(得分:6)

您可以按照Felix Christy

的建议使用Javascript执行此操作

以下是快速步骤:

  • 转到所需页面的“管理页面”部分(您要访问的页面) 不想显示这个文字)
  • 转到javascript部分添加以下内容,它与liferay捆绑在一起的Alloy UI javascript框架:

    AUI().ready(        
    
        function(customA) {
            customA.all('.taglib-page-iterator').hide(); // this would hide **all** the elements which have the class "taglib-page-iterator"
        }
    );
    
  • 上面的javascript代码可以包含在自定义portlet的JSP本身中(注意我已更改的方法和选择器),如:

    <aui:script>
        AUI().ready(        
    
            function(customA) {
                customA.one('#my-portletID .taglib-page-iterator').hide(); // this would hide only **one** element (the first it finds) which has the css class "taglib-page-iterator" under an element with id="my-portletID".
            }
        );
    </aui:script>
    

通过Hook的另一种可能的解决方案:

你可以创建一个Sandeep Nair所提到的钩子来隐藏结果文本,但是你可以设置一个条件来检查只有当你想要隐藏它的页面的URL或者可以有检查要隐藏此结果文本的特定portlet的条件。

因此它可以正常用于其他页面和portlet,但会隐藏您的页面和您定义的某些portlet。这是一个想法,还没有尝试过,但我认为它会起作用。您可以使用JSP页面上可用的themeDisplay对象来检索portlet-id。

希望这有帮助。

感谢Felix Christy通过Javascript建议解决方案。

我想把我的评论转换成答案,以便更好地了解这个精彩社区的其他成员。

答案 1 :(得分:4)

这是因为您在搜索容器中使用了页面迭代器。当记录超过默认增量时,上面的消息将被替换为显示-x-of-y-results以及用于导航到下一页的页码和控件。

如果您不想要这个,那么您必须使用hook修改jsp页面。 jsp的名称是shows_x_results.jspf,后面的代码片段就是您要修改的内容。

<c:otherwise>
            <c:choose>
                <c:when test="<%= total != 1 %>">
                    <%= LanguageUtil.format(pageContext, "showing-x-results", numberFormat.format(total)) %>
                </c:when>
                <c:otherwise>
                    <%= LanguageUtil.format(pageContext, "showing-x-result", numberFormat.format(total)) %>
                </c:otherwise>
            </c:choose>
        </c:otherwise>

答案 2 :(得分:3)

为了删除某个特定页面的字符串,请在页面上放置一个jQuery / javascript,这将隐藏显示该文本的特定div / span。

在这种情况下,它不会显示在该页面上,但它将可用并将在其他地方呈现。

以下是快速步骤:

  1. 转到所需页面的“管理页面”部分(您不想显示此文本的页面)
  2. 转到javascript部分添加此$('.taglib-page-iterator').hide();
  3. 只有在主题中包含了jquery.js时,这才有效。所以请这样做。

答案 3 :(得分:3)

目前,hook(或者如果你想要一个极端的解决方案,则是ext)是你能做到的唯一方法。 覆盖shows_x_results.jspf片段并注释/删除不必要的内容。 可以通过portal-ext.properties配置的唯一“属性”是这些(LR 6.0.5)

    #
    # Set the available values for the number of entries to display per page. An
    # empty value, or commenting out the value, will disable delta resizing.
    # The default of 20 will apply in all cases.
    #
    # Always include 20, since it is the default page size when no delta is
    # specified. The absolute maximum allowed delta is 200.
    #
    search.container.page.delta.values=5,10,20,30,50,75

    #
    # Set the maximum number of pages available above and below the currently
    # displayed page.
    #
    search.container.page.iterator.max.pages=25

    #
    # Set this to false to remove the pagination controls above or below
    # results.
    #
    search.container.show.pagination.top=true
    search.container.show.pagination.bottom=true

您可以在此处找到最新的(LR 6.1GA)搜索容器属性:http://www.liferay.com/es/documentation/liferay-portal/6.1/user-guide/-/ai/search-container

我不建议将其从客户端隐藏,因为如果您决定升级Liferay安装,它很可能会中断。胡克是一个安全的出路。