Over-riding 在 DSpace 中使用 xsl 的 DRI 模板

Over-riding DRI Templates using xsl in DSpace

我正在使用 DSpace 4.2 xmlui Mirage 主题。我想在搜索结果页面中隐藏 社区和 Collections

通过检查页面的 DRI 文档,我发现社区和 Collections 结果添加为:

<list id="aspect.discovery.SimpleSearch.list.comm-coll-result-list" n="comm-coll-result-list">

所以我尝试了 over-riding 主题 xsl 文件中的模板。

<xsl:template match="dri:list[@id='aspect.discovery.SimpleSearch.list.comm-coll-result-list']">
<!-- Over ride / remove the recent submissions box-->
</xsl:template>

但是页面中没有反映任何变化。我在这里做错了什么吗?我能够以类似的方式隐藏默认搜索框 over-riding 生成它的相应模板 div.I 注意到我想隐藏的 list 项目包含在另一个 div. over-ride 一个 DRI 元素是不可能的,除非它的标签是 div?

collection 和社区列表结果由以下 XSLT 显示:https://github.com/DSpace/DSpace/blob/master/dspace-xmlui/src/main/webapp/themes/dri2xhtml/structural.xsl#L3616-L3635

要通过 XSLT 更改显示,请尝试构建您自己的模板代码。

<xsl:template name="collectionSummaryList">
    <xsl:param name="handle"/>
    <xsl:param name="externalMetadataUrl"/>

    <xsl:variable name="metsDoc" select="document($externalMetadataUrl)"/>

    ...
</xsl:template>

如果您完全禁止显示这些结果,可能会使您的分页计数不可靠。从 SOLR 搜索结果中抑制 community/collection 结果可能更有意义。

您还可以在 [dspace]/config/spring/api/discovery.xml.

中添加 default filter query

Default filter queries are applied on all search operations & sidebarfacet clicks. One useful application of default filter queries is ensuring that all returned results are items. As a result, subcommunities and collections that are returned as results of the search operation, are filtered out.

相关行here,注意这个默认是禁用的。取消注释以使这项工作正常进行。

<property name="defaultFilterQueries">
<list>
    <value>search.resourcetype:2</value>
</list>

希望对您有所帮助。

更新

复制:

<property name="defaultFilterQueries">
    <list>
      <value>search.resourcetype:2</value>
    </list>
<property>

<bean id="homepageConfiguration" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype"> 中,因为它覆盖了 comment 中所述的默认配置。