如何使用剃须刀在Umbraco的图像文件夹中显示图像?

时间:2012-02-20 22:43:32

标签: xslt razor umbraco

几乎所有如何使用图库中显示图像的例子都是xslt,但是Umbraco 5.0不再支持xslt了。

以下是我在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 &gt; 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>

剃刀中应该有什么相同的东西?

仅供参考:imageFolderAlias是一个参数。

由于

1 个答案:

答案 0 :(得分:2)

我回答了我的问题,因为关于umbraco和xslt到razor变换的信息很少。

以下是答案代码:

@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获取一些代码