Umbraco 新手在这里。我研究了一吨,但似乎找不到我要找的东西。
我在主页上有一个带有滑块的站点,该滑块位于一个宏中,该宏使用一个 for-each(节点子级),最终目标是显示来自该文档类型的“heroImage”图像。我不能将图像作为新手发布到该网站,但这是我的内容结构:
HOME
PORTFOLIO
- First Item
- Another Item
ABOUT
CONTACT US
Home、Portfolio、ABOUT和CONTACT US是“Landing Pages”文档类型,Portfolio 下的子项(First Item和Another Item)是“Portfolio Entries”文档类型。下面是调用幻灯片宏的“登陆页面”上的代码。
投资组合条目具有以下字段:
- 英雄形象
- 图片
身体
幻灯片宏显然是那里的亮点。很容易。这是我的宏代码,您将在其中看到我正在尝试为每个“for-each”显示相关节点的 heroImage。
<xsl:template match="/">
<!-- slider -->
<div id="slideshow">
<div id="slider" class="nivoSlider">
<xsl:for-each select="umbraco.library:GetXmlNodeById(1081)/*[@isDoc and position() < 4]">
<xsl:variable name="mediaId" select="umbraco.library:GetMedia(@id, 'false')/data [@alias = 'umbracoFile']" />
<xsl:if test="$mediaId > 0">
<xsl:variable name="mediaNode" select="umbraco.library:GetMedia($mediaId, 0)" />
<xsl:if test="count($mediaNode/data) > 0 and string($mediaNode/data[@alias='umbracoFile']) != ''">
<img src="{$mediaNode/data[@alias='umbracoFile']}" alt="[image]" />
</xsl:if>
</xsl:if>
</xsl:for-each>
</div>
</div>
<!-- data-transition="slideInLeft" -->
<script type="text/javascript">
$(window).load(function() {
$('#slider').nivoSlider();
});
</script>
</xsl:template>
我觉得我很接近,并且用完了搜索查询,因为我发现的大多数解决方案都依赖于从宏的另一侧传递到宏的 imageId,这不起作用。
希望我已经对此进行了足够的解释,并提前感谢您的帮助!