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

Search 如何在liferay搜索容器中隐藏显示结果文本?,search,liferay,liferay-6,Search,Liferay,Liferay 6,我正在使用liferay搜索容器显示信息列表,但在该liferay搜索容器中,默认情况下会显示记录数,如“显示2个结果”。但就我而言,我不想展示这个。我怎样才能删除这个?还附上了搜索容器的图像 欢迎您提出建议。这是因为您正在搜索容器中使用页面迭代器。当记录超过默认增量时,上面的消息将被替换为显示y-x-of-y-results以及页码和导航到下一页的控件 如果您不希望这样,那么您必须使用钩子修改jsp页面。jsp的名称显示了_x_results.jspf,下面的代码片段是您希望在其中修改的内容

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


欢迎您提出建议。

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

如果您不希望这样,那么您必须使用钩子修改jsp页面。jsp的名称显示了_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>

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

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

以下是快速步骤:

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

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

    您可以在此处找到最新的(LR 6.1GA)搜索容器属性:


    我不建议对客户端隐藏它,因为如果您决定升级Liferay安装,它很可能会崩溃。钩子是一种安全的方法。

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

    以下是快速步骤:

    • 转到所需页面的“管理页面”部分(您要访问的页面 不想显示此文本)
    • 转到javascript部分,添加以下与liferay捆绑的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本身中(注意我已经更改的方法和选择器),如:

      隐藏结果文本,但只有当页面的URL是要隐藏此结果文本的URL时,或者可以有条件检查要隐藏此结果文本的特定portlet时,才可以设置条件以检查隐藏

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

      希望这有帮助

      感谢您通过Javascript推荐解决方案


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

      是否可以通过某些属性或参数在portlet中更改它?因为如果我在hook中做了更改,那么它将应用于我项目中的每个搜索容器,但我只想在一个搜索容器中使用它……请您提供一些关于如何使用Jquery/Javascript实现这一点的详细信息。请您提供代码片段好吗..您可以使用Alloy UI而不是liferay附带的jQuery来完成这项工作。代替jQuery代码写入:var customA=AUI();customA.one('.taglib页面迭代器').hide();我还没有检查所提到的类是否正确,但这段代码可以工作。如果不想,不需要包含jQuery。同意Prakash的观点,Liferay不正式支持jQuery,合金与铝捆绑在一起Liferary@PrakashKu r代码工作正常…但一旦我刷新页面,显示结果的页面将再次显示..我已将我的注释转换为带有附加信息的答案。感谢您的回答..工作正常,但当页面加载1-2秒时,显示x结果div,然后威尔走了。你能告诉我为什么会这样吗?这是因为先加载div,然后隐藏它吗?是的,这是因为先加载html,然后运行javascript来隐藏它。我还可以考虑另一个解决方案,将对我的答案进行一点编辑。如果我将文档库放在portlet之上,还将面临另一个问题。然后在DocumentLibrary搜索容器中,它将隐藏显示x结果,但在我的portlet中,它将显示该结果。如何解决这个问题?您想隐藏该特定页面中所有portlet的结果行,或者只隐藏该页面中您自己的portlet的结果行,或者您想将结果行隐藏在您的portlet中的任何位置?我只想将结果行隐藏在我的portlet中的任何位置。现在在我的portlet上面有一个文档库portlet。所以当我测试你的代码时,我会面对这个问题。
      AUI().ready(        
      
          function(customA) {
              customA.all('.taglib-page-iterator').hide(); // this would hide **all** the elements which have the class "taglib-page-iterator"
          }
      );
      
      <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>