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 中所述的默认配置。
我正在使用 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 queryDefault 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 中所述的默认配置。