2015-08-30 77 views
1

我正在處理的存儲庫的要求之一是從用戶界面獲得Advanced Search選項。自從DSpace 4起,Discovery分面/過濾搜索&默認情況下已啓用,如前面提到的here,我只是在導航中放置了一個鏈接指向Advanced Search鏈接到http://myrepository.org/discover。現在我的目標是在用戶點擊Advanced Search鏈接時取消搜索結果。如何覆蓋發現搜索結果

如何覆蓋搜索結果,如果沒有查詢字符串(例如,如果用戶直接轉到/discover頁面並且沒有選擇小平面),它將只顯示如下圖所示,而不顯示搜索結果和Now showing items ...和分頁divs。

我使用DSpace的5.3版幻影2主題

enter image description here

這是我曾嘗試:

<xsl:template match="dri:list[@id='aspect.discovery.SimpleSearch.list.search-results-repository']"> 
    <xsl:variable name="query-string" select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='request'][@qualifier='queryString']"/> 
    <xsl:if test="$query-string!=''"> 
     <xsl:apply-templates /> 
    </xsl:if> 
</xsl:template> 

上面總是抑制搜索結果我是否有查詢的代碼字符串與否。

編輯

我有,我在我的答案中使用的模板匹配的問題。排序選項的樣式已被刪除。

enter image description here

有人可以幫助我提高我的代碼,這樣它不會刪除的排序選項的造型?默認排序選項應該是這樣的:

enter image description here

我不知道爲什麼使用該模板匹配刪除的排序選項的樣式。如果我使用<xsl:apply-templates/><xsl:apply-templates select="."/>而不是<xsl:copy-of select="."/>,它不會返回我想要實現的結果。

任何意見將不勝感激。提前致謝。

回答

1

經過template match的多次嘗試,我終於實現了我想要展示的東西。這是我用來實現我的目標的template match

<xsl:template match="dri:div[@id='aspect.discovery.SimpleSearch.div.search-results']"> 
    <xsl:if test="contains(@pageURLMask,'query') or contains(@pageURLMask,'filter')"> 
     <xsl:copy-of select="."/> 
    </xsl:if> 
</xsl:template> 

我不知道,也不確定這是否可靠。當我直接進入/discover頁面時,我已經測試過這個,沒有顯示搜索結果,我也嘗試點擊搜索按鈕,而不在搜索表單中輸入任何值。

這個答案有一個小問題。請參閱我上面更新的帖子。

這是解決我有關排序選項樣式問題的代碼。

<xsl:template match="dri:div[@id='aspect.discovery.SimpleSearch.div.search-results']"> 
    <xsl:choose> 
    <xsl:when test="contains(@pageURLMask,'query') or contains(@pageURLMask,'filter')"> 
     <xsl:apply-templates select="dri:div[@id='aspect.discovery.SimpleSearch.div.masked-page-control']/node()"/> 
     <xsl:copy> 
       <xsl:apply-templates select="node()|@*"/> 
      </xsl:copy> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:call-template name="no-search-results"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 

<xsl:template name="no-search-results" match="dri:div[@id='aspect.discovery.SimpleSearch.div.masked-page-control']"/>