在umbraco中创建联系我们XSLT

时间:2014-06-23 19:54:00

标签: xslt umbraco

我正在尝试使用此代码选择此网站的所有网页,以及网址中是否有联系人。它会拉出那个特定的网址。我需要让它创建一个链接,其中包含for-each将会拉动的url值。

<xsl:for-each select="$currentPage/ancestor-or-self::* [@level=$level]/* [@isDoc and string(umbracoNaviHide) != '0'] [contains(@nodeName,'contact')]">        



           <xsl:value-of select="@nodeName"/>
</xsl:for-each>

2 个答案:

答案 0 :(得分:0)

在Umbraco中,url存储为url或niceurl(http://our.umbraco.org/wiki/reference/umbracolibrary/niceurl) - 节点名称通常用于生成它 - 但它不是一回事。

以下内容应该有效:

<xsl:variable name="siteRoot" select="$currentPage/ancestor-or-self::*[@level = 1]" />
<xsl:variable name="urlString" select="contact" />

<xsl:for-each select="$siteRoot//*[@isDoc][not(umbracoNaviHide = 1)][contains(umbraco.library:NiceUrl($currentPage/../@id), $urlString)]">
    <xsl:value-of select="@nodeName"/>
</xsl:for-each>

答案 1 :(得分:0)

  <xsl:variable name="siteRoot" select="$currentPage/ancestor-or-self::*[@level = 1]" />
<xsl:for-each select="$siteRoot">

  <xsl:element name="a">
    <xsl:attribute name="href">
      <xsl:value-of select="translate(@nodeName,'.','')"/>_contact.aspx
    </xsl:attribute>
    Contact Us
</xsl:element>
</xsl:for-each>

我刚刚接受了主页面名称并将_contact添加到了它。