Umbraco XSLT выбирает подузлы элемента новостей независимо от текущей страницы - PullRequest
0 голосов
/ 21 июля 2010

Мне нужно сказать;Я довольно зеленый в xslt, так что, скорее всего, это главная проблема;тем не менее был на нем часами и не может получить его.Я хочу заполнить колонку в моем основном шаблоне 5 самыми последними новостями.Эти новостные элементы должны отображаться независимо от текущей страницы.Я пробовал это:

  <xsl:template match="/">
    <xsl:for-each select="umbraco.library:GetXmlNodeById(1075)/child::node">
        <p>
          <strong>
            <xsl:value-of select="header"/>
          </strong>
       </p>
    </xsl:for-each>
  </xsl:template>

Где, на данный момент, 1075 - это мой шаблон новостей.Я попробовал это просто: GetXmlNodeById(1076)/node (где 1076) - мой шаблон NewsItem.Я пробовал это с помощью ID узла из дерева контента, но не повезло ..

Кто-нибудь может мне здесь помочь?Я застрял, и я искал высоко и низко на Google, форумах и документации, но я, скорее всего, здесь упускаю что-то важноеTIA!

PS Использование Umbraco 4.5 BTW

1 Ответ

2 голосов
/ 22 июля 2010

Это должно вывести текущий и дочерний узлы.

<xsl:copy-of select="umbraco.library:GetXmlNodeById(1075)"/>

В Umbraco 4.5 схема изменилась с / node [@ nodeTypeAlias ​​= 'News'] на / News [@isDoc]

http://blog.leekelleher.com/2010/04/02/working-with-xslt-using-new-xml-schema-in-umbraco-4-1/

Так что ваш xslt должен выглядеть как

<xsl:template match="/">
    <ul>
        <xsl:for-each select="umbraco.library:GetXmlNodeById(1075)/News [@isDoc]">
            <li><a href="{umbraco.library:NiceUrl(@id)}"><xsl:value-of select="@nodeName"/></a></li>
       </xsl:for-each>
    </ul>
</xsl:template>
...