我正在尝试从“精选”(Home / Featured / Article1,2,...,N)小节中的文章中获取文字和图片,但我没有得到图片。这个代码可以很好地从“特色”节点内的每篇文章中获取文本。
<xsl:if test="position() < $maxItems">
<h3><a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="newsTitle"/>
</a>
</h3>
<strong><xsl:value-of select="intro"/></strong>
<br/>
<small>
A: <xsl:value-of select="umbraco.library:FormatDateTime($currentPage/@updateDate, 'MMMM d, yyyy')"/>
Por: <xsl:value-of select="author"/>
</small>
</xsl:if>
它运作得很好。但我无法从文章中获取图像。我正在尝试这种方式,其中包括:
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:if test="count(./* [@isDoc]) > 0">
<img src="{concat(substring-before(./*/thumbnail,'.'), '_thumb.jpg')}"/>
</xsl:if>
</a>
我不知道该怎么做,我正在使用'Upload'属性作为元素,也使用'MediaPicker'(别名:'thumbnail'),所以,我一直在测试这些属性类型但是还没有得到任何东西。我只想将文章的图像(如果存在)放在从childnode检索到的文本旁边的主页上。
我会感激你的帮助。提前谢谢!
[Umbraco 6.1.3]
答案 0 :(得分:0)
这是一个例子:
<xsl:variable name="mediaId" select="number($currentPage/mediaId)" />
<xsl:if test="$mediaId > 0">
<xsl:variable name="mediaNode" select="umbraco.library:GetMedia($mediaId, 0)" />
<xsl:if test="$mediaNode/umbracoFile">
<img src="{$mediaNode/umbracoFile}" alt="[image]" height="{umbracoHeight}" width="{umbracoWidth}" />
</xsl:if>
</xsl:if>
答案 1 :(得分:0)
在你的情况下,这应该可以解决问题:
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:if test="$currentPage/thumbnail != ''">
<img src="{umbraco.library:GetMedia($currentPage/thumbnail, 0)/umbracoFile}"/>
</xsl:if>
</a>
请参阅this page以获取参考资料
答案 2 :(得分:0)
我认为错误是你需要选择一个属性,而不是一个节点。 您正在使用@isDoc属性,因此不会选择任何属性。
如上所述,“thumbnail”是数据类型“Upload”的节点上的属性(假设此处只有1个缩略图)(将路径的值保存为字符串):
<xsl:if test="string-length(./thumbnail) > 0">
<a href="{umbraco.library:NiceUrl(@id)}">
<img src="{concat(substring-before(./thumbnail,'.'), '_thumb.jpg')}"/>
</a>
</xsl:if>
或使用“media picker”数据类型(将media-item的nodeid保存为int):
<xsl:if test="string-length(./thumbnail) > 0">
<xsl:variable name="image" select="umbraco.library:GetMedia(./thumbnail,0)"/>
<a href="{umbraco.library:NiceUrl(@id)}">
<img src="{concat(substring-before($image/umbracoFile,'.'), '_thumb.jpg')}"/>
</a>
</xsl:if>
由于发布的其他代码工作正常,并且它没有使用$ currentPage,我假设此代码包含在模板中,或者您正在迭代一组节点。
我还会将link元素放在if语句中,并在创建链接之前检查缩略图是否可用,只是为了避免空链接元素。