Следующая Предыдущая навигация в новостной статье для umbraco - PullRequest
0 голосов
/ 04 февраля 2011

Это сводит меня с ума (пытался сделать это довольно долго)

Я пытаюсь заставить работать некоторый xpath-код, который будет отображать следующую и предыдущую ссылки, которые приведут вас к следующему элементу newsItem и, как только он попадет на параметр newsItem4, следующая кнопка исчезнет.

<newsArea>
  <newsItem1></newsItem1>   <----- currentPage
  <newsItem2></newsItem2>
  <newsItem3></newsItem3>
  <newsItem4></newsItem4>
</newsArea>

Я могу перечислить все элементы новостей, в то время как на новость с

  <xsl:for-each select="$currentPage/../*">
   <h2><xsl:value-of select="@nodeName"/></h2>
  </xsl:for-each>

и я могу сосчитать сколько у меня предметов

<xsl:value-of select="count($currentPage/../*)-1"/>

но я не знаю, как перейти к следующему элементу новостей или как сказать ему, когда прекратить показывать следующий узел, когда он подходит к концу newsItems (один пример просто перепутался с другим уровнем)

Любая помощь будет очень признательна.

Спасибо

Тим

Ответы [ 2 ]

1 голос
/ 07 февраля 2011

Взгляните на пример подкачки из этого поста в блоге: http://www.nibble.be/?p=11

Это должно дать вам представление о том, как это работает.Вы всегда можете установить размер своей страницы на 1.

Кроме того, есть пакет, основанный на этом методе: http://our.umbraco.org/projects/developer-tools/paging-xslt

, который должен помочь вам выбрать правильный путь.

0 голосов
/ 14 февраля 2011

Вы можете легко создать макрос «Навигация по страницам» для добавления в конец любого шаблона, который вам нужен, XSLT будет выглядеть следующим образом:

<xsl:template match="/">
  <!-- if there's a previous page -->
  <xsl:if test="$currentPage/preceding-sibling::*[1]">
    <a href="{umbraco.library:NiceUrl($currentPage/preceding-sibling::*[1]/@id)}">&lt; Prev</a>
  </xsl:if>
  <!-- if there's next and previous, show divider -->
  <xsl:if test="$currentPage/preceding-sibling::*[1] and $currentPage/following-sibling::*[1]">
    <xsl:text> | </xsl:text>
  </xsl:if>
  <!-- if there's a next page -->
  <xsl:if test="$currentPage/following-sibling::*[1]">
    <a href="{umbraco.library:NiceUrl($currentPage/following-sibling::*[1]/@id)}">Next &gt;</a>
  </xsl:if>
</xsl:template>
...