Over-riding DRI Templates using xsl in DSpace
我正在使用 DSpace 4.2 xmlui Mirage 主题。我想从搜索结果页面中隐藏社区和收藏集。
通过检查页面的 DRI 文档,我发现社区和集合结果添加为:
1 | <list id="aspect.discovery.SimpleSearch.list.comm-coll-result-list" n="comm-coll-result-list"> |
所以我尝试覆盖主题的
1 2 3 | <xsl:template match="dri:list[@id='aspect.discovery.SimpleSearch.list.comm-coll-result-list']"> <!-- Over ride / remove the recent submissions box--> </xsl:template> |
但页面中没有反映任何变化。我在这里做错了吗?通过覆盖生成它的相应 div 的模板,我能够以类似的方式隐藏默认搜索框。我注意到我要隐藏的
否则不可能覆盖 DRI 元素
您还可以在 [dspace]/config/spring/api/discovery.xml 中添加默认过滤器查询。
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.
这里的相关行,注意默认是禁用的。取消注释以使其正常工作。
1 2 3 4 | <property name="defaultFilterQueries"> <list> <value>search.resourcetype:2</value> </list> |
希望有帮助。
更新
复制:
1 2 3 4 5 | <property name="defaultFilterQueries"> <list> <value>search.resourcetype:2</value> </list> <property> |
在
集合和社区列表结果由以下 XSLT 显示:https://github.com/DSpace/DSpace/blob/master/dspace-xmlui/src/main/webapp/themes/dri2xhtml/structural.xsl# L3616-L3635
要通过 XSLT 更改显示,请尝试构建您自己的模板代码。
1 2 3 4 5 6 7 8 | <xsl:template name="collectionSummaryList"> <xsl:param name="handle"/> <xsl:param name="externalMetadataUrl"/> <xsl:variable name="metsDoc" select="document($externalMetadataUrl)"/> ... </xsl:template> |
如果您完全禁止显示这些结果,则可能会使您的分页计数不可靠。从 SOLR 搜索结果中隐藏社区/集合结果可能更有意义。