如何使用剃刀在Umbraco的图像文件夹中显示图像?
问题描述:
几乎所有关于如何使用图像库显示图像的例子都在xslt上,但是Umbraco 5.0不再支持xslt了。如何使用剃刀在Umbraco的图像文件夹中显示图像?
这里是什么,我需要在XSLT的例子:
<xsl:param name="currentPage"/>
<xsl:template match="/">
<xsl:variable name="image" select="macro/imageFolderAlias"/>
<xsl:variable name="mediaFolderID" select="number($currentPage/*[name() = $image])" />
<xsl:if test="$mediaFolderID > 0">
<ol>
<xsl:variable name="mediaNode" select="umbraco.library:GetMedia($mediaFolderID, 1)" />
<xsl:for-each select="$mediaNode//Image [@nodeTypeAlias ='Image']">
<li>
<a>
<xsl:attribute name="href"><xsl:value-of select="current()/umbracoFile"/></xsl:attribute>
<h4><xsl:value-of select="current()/altText"/></h4>
<img >
<xsl:attribute name="src"><xsl:value-of select="concat(substring(current()/umbracoFile, 0, string-length(current()/umbracoFile) - string-length(current()/umbracoExtension)), '_thumb.jpg')"/></xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="current()/altText"/></xsl:attribute>
</img>
</a>
</li>
</xsl:for-each>
</ol>
</xsl:if>
</xsl:template>
应该是什么在剃刀等价?
FYI:imageFolderAlias是一个参数。
感谢
答
我回答我的问题,因为是关于一把umbraco和XSLT剃刀转换资料太少。
这里的答案代码:
@using umbraco.cms.businesslogic.media;
@using uComponents.Core;
@using uComponents.Core.uQueryExtensions;
@{
var parameter = @Parameter.imageFolderAlias;
var folderId = Convert.ToInt32(@Model.GetProperty(@parameter).Value);
if (@folderId > 0)
{
Media startMedia = new Media(@folderId);
@: <ol>
var mediaNode = umbraco.library.GetMedia(folderId, true);
foreach(Media m in startMedia.GetChildMedia())
{
string umbracoImageFileName = @m.getProperty("umbracoFile").Value.ToString();
string umbracoImageExtension = @m.getProperty("umbracoExtension").Value.ToString();
var thumnail = String.Concat(@umbracoImageFileName.Substring(0, (@umbracoImageFileName.Length - @umbracoImageExtension.Length - 1)),"_thumb.jpg");
@: <li>
@: <a href="@umbracoImageFileName">
@: <h4> @m.getProperty("altText").Value </h4>
@: <img src="@thumnail" alt="@m.getProperty("altText").Value" />
@: </a>
@: </li>
}
@: </ol>
}
}
你应该根据你的必需品适应它。
采取了一些代码HERE
非常感谢!我几天来一直在努力完成这个简单的任务,如果我能够不止一次地投票,我会! – daddywoodland 2013-06-23 12:57:20