7

我正在使用 liferay 搜索容器来显示信息列表,但在该 liferay 搜索容器中默认显示记录数,例如"Showing 2 results"。但就我而言,我不想显示这个。我怎样才能删除这个?还附上了搜索容器的图像。

在此处输入图像描述

欢迎提出建议。

4

4 回答 4

6

您可以按照Felix Christy的建议使用 Javascript 执行此操作:

以下是快速步骤:

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

    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 隐藏。这是一个想法,还没有尝试过,但我认为它会奏效。您可以使用themeDisplayJSP 页面上可用的对象来检索 portlet-id。

希望这可以帮助。

感谢Felix Christy通过 Javascript 提出解决方案。

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

于 2012-06-07T02:59:37.757 回答
4

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

如果你不想要这个,那么你必须使用钩子修改jsp页面。jsp 的名称是showing_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>
于 2012-06-06T07:24:23.780 回答
3

目前,hook(或 ext,如果你想要一个极端的解决方案)是你可以做到的唯一方法。覆盖showing_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 安装,它很可能会中断。挂钩是安全的出路。

于 2012-06-06T13:08:54.150 回答
3

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

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

以下是快速步骤:

  1. 转到所需页面的“管理页面”部分(您不想显示此文本的页面)
  2. 去 javascript 部分添加这个$('.taglib-page-iterator').hide();

这只有在您的主题中包含 jquery.js 时才有效。所以请这样做。

于 2012-06-06T08:56:17.810 回答