Как отображать изображения в папке изображений в Umbraco, используя бритву? - PullRequest
0 голосов
/ 21 февраля 2012

Почти все примеры использования отображаемых изображений из галереи изображений более 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 Ответ

2 голосов
/ 21 февраля 2012

Я ответил на мой вопрос, поскольку так мало информации о преобразованиях 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>
  }
}

Вы должны адаптировать его в соответствии со своими потребностями.

Взял какой-то код у ЗДЕСЬ

...