2010-02-19 20 views
2

現在,當我設置通過xslt渲染呈現的Sitecore中的項目的發佈限制時,xslt將只輸出看起來不太好的空塊在網站上。Sitecore - xslt渲染 - 當沒有已發佈的版本可用時隱藏

這是我使用的渲染我的Sitecore的項目的XSLT代碼:

 <xsl:for-each select="$item[sc:fld('__created',.)]"> 
    <xsl:for-each select="sc:Split('Agenda-items',$item)"> 
     <xsl:variable name="thisitem" select="sc:Split('Agenda-items',$item)" /> 
     <xsl:variable name="loopitem" select="sc:item(text(),.)" /> 
     <xsl:if test="$item[sc:fld('__created',.)]"> 

     <div class="agendaItem"> 
      <div class="agendaDatum"> 
      <span class="agendaDag"> 
       <sc:date field="Begindatum" format="dd" select="$loopitem" /> 
      </span> 
      <span class="agendaMaand"> 
       <sc:date field="Begindatum" format="MMM" select="$loopitem" /> 
      </span> 
      </div> 
      <div class="agendaTekst"> 
      <sc:link select="$loopitem" title="" class="rood"> 
       <sc:text field="Titel" select="$loopitem" /> 
      </sc:link> 
      <br /> 
      <span class="agendaUitleg"> 
       <xsl:value-of select="stringutil:Clip(sc:field('Intro',$loopitem), 60, 1)"/>&#160; 
      </span> 
      </div> 
     </div> 
     </xsl:if> 
    </xsl:for-each> 
    </xsl:for-each> 

我要的是檢查wheter項目在上下文中可用的語言版本,是不是被限制所示在當前日期。例如:

這是2010年2月12日,我有一個項目是限制發佈從2010年2月11日,直到2010年2月16日。現在它不會顯示,這是我想要的。但不是不顯示我的跨度和div,它只會填充空信息。這導致空塊的網站這是一種醜惡的:

Empty :/ http://www.bibliotheekmb.nl/images/emptycellblocks.png

所以這個塊的最上面的一個項目顯示了一個項目,而它的被公佈的限制。我怎樣才能在xslt中手工處理?

的Sitecore的演示XSLT菜譜說:

<xsl:for-each select="$sc_currentitem/item[sc:fld('__created',.)]"> 
<!--the context element is an item with a version in the context language--> 
</xsl:for-each> 

這是與上下文中的語言版本選擇項目,但不工作我想要的東西。

回答

3

請記住,雖然所引用的項目未發佈,但它仍然以「guid」形式存在於「議程項目」字段中,因此當您拆分字段時,將有四個項目進行迭代通過但只有三個項目在數據庫中。

爲了確保存在中列出的數據庫,只有項目添加如果測試以下內容:

<xsl:for-each select="sc:Split('Agenda-items',$item)"> 
    <xsl:if test="sc:item(.,.) !=''"> 
    <xsl:variable name="thisitem" select="sc:Split('Agenda-items',$item)" /> 
    <xsl:variable name="loopitem" select="sc:item(text(),.)" /> 
    <!-- other processing --> 
    <xsl:if> 
</xsl:for-each> 
+0

但因爲我沒有東西叫$ SC:項目我不能對變量進行測試。我仍然沒有解決這個問題:/ ... – Younes 2010-02-26 10:17:53

+1

對不起,$ sc:項目是一個錯誤,它應該是sc:我已經對項目進行了修改 – 2010-02-26 16:29:26