2012-06-27 32 views
0

我有一個用Umbraco構建的網站,它有一個帶有幾個小部件設置的邊欄。我需要設置它,以使其中一個小部件(以XSLT的形式完成)僅顯示在某個頁面上。我已經看過使用xsl:if test和matches並且無法弄清楚。如何只在Umbraco CMS的某些頁面上顯示一段模板?

+0

那麼問題是什麼?我看不到一個。 –

+0

問題是標題你可能看不懂? – cstrouse

+0

cstrouse:我可以閱讀和閱讀標題,這對我沒有任何意義 - 你的意思是「一塊模板」?我希望這個問題的內容能夠澄清 - 但這是不合理的期望。沒有指定源XML文檔,也沒有指定的轉換結果。沒有任何XSLT代碼。沒有告訴我們這個「它」是什麼,你只能說明你「無法弄清楚」的事實。 –

回答

1

你走在正確的軌道上,但養成了包括你已經試過的問題(代碼等)的習慣。

快速+骯髒的方法

找出你頁面(在內容部分的節點的屬性選項卡上找到)的ID,並使用下面的代碼:

<xsl:if test="$currentPage/@id = 1234"> 
    <!-- your widget here --> 
</xsl:if> 

清潔方法

總是試圖建立你的代碼是可擴展的,例如你可能fin d您希望在未來將該小部件包含在另一個頁面中,或者將您的內容從分段部署到生產可能會涉及節點ID在您不知情的情況下發生變化(不經常發生但可能發生)。

屬性添加到有問題(我們稱之爲showMyFancyWidget)爲真/假數據類型的頁面,在內容部分輕彈它然後使用下面的代碼:

<xsl:if test="$currentPage/showMyFancyWidget = 1"> 
    <!-- your widget here --> 
</xsl:if> 

此代碼將爲Umbraco v4.5.1起作用。不太確定v5,但是現在已經停止支持v4.7