显示另一个节点的图像

时间:2014-01-29 15:37:58

标签: xslt umbraco

我有一个首页,我需要在网站的新闻栏目中显示所选的新闻项目,包括图片。

我开始试图对标准图像进行简单的修改,并且很快就无处可去。

我已经确认图像直接在节点上通过currentpage显示时有效,但以下内容不起作用:

<xsl:param name="currentPage"/>
<xsl:template match="/">
  <xsl:variable name="mediaID" select="$currentPage/forsidenyhed/billede" />
  <xsl:value-of select="$currentPage/forsidenyhed" />
    <xsl:if test="string($mediaID) != ''">
      <xsl:variable name="media" select="umbraco.library:GetMedia($currentPage/forsidenyhed/billede, false)" />
          <xsl:if test="string($media) != ''">
            <div class="forsidebillede">
              <img src="{$media/umbracoFile}" alt="{$media/altText}" />
            </div>
          </xsl:if>
    </xsl:if>
</xsl:template>
</xsl:stylesheet>

输出值是包含我正在寻找的图像的节点的正确node-id。

编辑:对于任何遇到相同问题(umbraco cms)问题的人,我建议使用Razor宏代替XSLT。

1 个答案:

答案 0 :(得分:0)

以下代码提供了我正在寻找的功能:

@inherits umbraco.MacroEngines.DynamicNodeContext
@using umbraco.MacroEngines
@{
  dynamic settingsNode = Model.AncestorOrSelf();
  dynamic searchPageNode = new DynamicNode(settingsNode.forsidenyhed);
  dynamic mediaItem = new DynamicMedia(@searchPageNode.billede);
  }
<img src="@mediaItem.umbracoFile">