アンブラコ初心者です。たくさん調べましたが、探しているものが見つからないようです。
ホームページにスライダーのあるサイトがあります。スライダーは、そのdoctypeから「heroImage」画像を表示するという最終目標を持つ(ノードの子の)for-eachを使用しているマクロに座っています。このサイトに初心者として画像を投稿することはできませんが、私のコンテンツ構造は次のとおりです。
HOME
PORTFOLIO
- First Item
- Another Item
ABOUT
CONTACT US
Home、Portfolio、ABOUT、CONTACT USは「Landing Pages」ドキュメント タイプで、Portfolio の下の子 (最初のアイテムと別のアイテム) は「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 に依存していたため、検索クエリが不足しているように感じましたが、これは機能しませんでした。
これについて十分に説明していただければ幸いです。ご協力いただきありがとうございます。