2010-11-30 7 views
0

J'essaie de générer la taille correcte pour les fichiers PDF qui ont été téléchargés. Mais la seule sortie est 0 - qu'est-ce que je fais mal?Umbraco sortie de la taille de fichier

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]> 
<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxml="urn:schemas-microsoft-com:xslt" 
    xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:umbraco.contour="urn:umbraco.contour" 
    exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets umbraco.contour "> 

<xsl:output method="xml" omit-xml-declaration="yes" /> 

<xsl:param name="currentPage"/> 

<xsl:variable name="documentTypeAlias" select="string('PdfItem')"/> 

<xsl:variable name="size" select="@currentpage/data [@alias = 'umbracoBytes']" /> 
<xsl:variable name="sizeAndSuffix"> 
     <xsl:choose> 
       <xsl:when test="$size &gt;= 1073741824"> 
         <xsl:value-of select="format-number($size div 1073741824,'#,###')"/> 
         <xsl:text>GB</xsl:text> 
       </xsl:when> 
       <xsl:when test="$size &gt;= 1048576"> 
         <xsl:value-of select="format-number($size div 1048576,'#,###')"/> 
         <xsl:text>MB</xsl:text> 
       </xsl:when> 
       <xsl:when test="$size &gt;= 1024"> 
         <xsl:value-of select="format-number($size div 1024,'#,###')"/> 
         <xsl:text>KB</xsl:text> 
       </xsl:when> 
       <xsl:when test="$size &gt; 0 and $size &lt; 1024"> 
         <xsl:value-of select="format-number($size div 0,'#,###')"/> 
         <xsl:text> Bytes</xsl:text> 
       </xsl:when> 
       <xsl:otherwise> 
         <xsl:text>0 Bytes</xsl:text> 
       </xsl:otherwise> 
     </xsl:choose> 
</xsl:variable> 

<xsl:template match="/"> 
<xsl:for-each select="$currentPage/node [@nodeTypeAlias = $documentTypeAlias and string(data [@alias='umbracoNaviHide']) != '0']"> 
    <div class="pdf"> 
     <a> 
<xsl:attribute name="class">pdfmenu</xsl:attribute> 
<xsl:attribute name="href"><xsl:value-of select="umbraco.library:GetMedia(./data[@alias='pdf'], 0)/data [@alias = 'umbracoFile']"/></xsl:attribute> 


      <strong><xsl:value-of select="@nodeName"/><span> 
      (<xsl:value-of select="$sizeAndSuffix"/>)</span></strong> 
      <em><xsl:value-of select="data [@alias = 'PDFBeskrivelse']"/></em> 
     <img> 
     <xsl:attribute name="src"><xsl:value-of select="data [@alias = 'PDFBillede']"/></xsl:attribute> 
     <xsl:attribute name="alt"></xsl:attribute> 
     <xsl:attribute name="height">200</xsl:attribute> 
     <xsl:attribute name="width">141</xsl:attribute> 
     </img> 
     </a>   
    </div> 


</xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 
+0

Toujours sortir 0 octets – Daniel

+0

Sans savoir ce que vous passez en paramètre 'currentPage', vous obtiendrez seulement des devinettes. –

+0

@Alejandro C'est une variable communément connue dans Umbraco, donc les gens qui connaissent Umbraco savent ce que cela signifie :-) – sebastiaan

Répondre

0

D'accord, j'ai déplacer la variable de taille dans la boucle for-each, car elle varie selon le fichier et quelques fautes de frappe fixe:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:stylesheet [ 
    <!ENTITY nbsp "&#x00A0;"> 
]> 
<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxml="urn:schemas-microsoft-com:xslt" 
    xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:umbraco.contour="urn:umbraco.contour" 
    exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets umbraco.contour "> 

    <xsl:output method="xml" omit-xml-declaration="yes" /> 

    <xsl:param name="currentPage"/> 

    <xsl:variable name="documentTypeAlias" select="string('PdfItem')"/> 

    <xsl:template match="/"> 
    <xsl:for-each select="$currentPage/node [@nodeTypeAlias = $documentTypeAlias and string(data [@alias='umbracoNaviHide']) != '0']"> 
     <xsl:if test="string(data [@alias = 'pdf']) != ''"> 

     <xsl:variable name="size" select="umbraco.library:GetMedia(data[@alias='pdf'], 0)/data [@alias = 'umbracoFile']" /> 

     <xsl:variable name="sizeAndSuffix"> 
      <xsl:choose> 
      <xsl:when test="$size &gt;= 1073741824"> 
       <xsl:value-of select="format-number($size div 1073741824,'#,###')"/> 
       <xsl:text>GB</xsl:text> 
      </xsl:when> 
      <xsl:when test="$size &gt;= 1048576"> 
       <xsl:value-of select="format-number($size div 1048576,'#,###')"/> 
       <xsl:text>MB</xsl:text> 
      </xsl:when> 
      <xsl:when test="$size &gt;= 1024"> 
       <xsl:value-of select="format-number($size div 1024,'#,###')"/> 
       <xsl:text>KB</xsl:text> 
      </xsl:when> 
      <xsl:when test="$size &gt; 0 and $size &lt; 1024"> 
       <xsl:value-of select="format-number($size div 0,'#,###')"/> 
       <xsl:text> Bytes</xsl:text> 
      </xsl:when> 
      <xsl:otherwise> 
       <xsl:text>0 Bytes</xsl:text> 
      </xsl:otherwise> 
      </xsl:choose> 
     </xsl:variable> 

     <div class="pdf"> 
      <a> 
      <xsl:attribute name="class">pdfmenu</xsl:attribute> 
      <xsl:attribute name="href"> 
       <xsl:value-of select="umbraco.library:GetMedia(data[@alias='pdf'], 0)/data [@alias = 'umbracoFile']"/> 
      </xsl:attribute> 

      <strong> 
       <xsl:value-of select="@nodeName"/> 
       <span> 
       (<xsl:value-of select="$sizeAndSuffix"/>) 
       </span> 
      </strong> 
      <em> 
       <xsl:value-of select="data [@alias = 'PDFBeskrivelse']"/> 
      </em> 
      <img> 
       <xsl:attribute name="src"> 
       <xsl:value-of select="data [@alias = 'PDFBillede']"/> 
       </xsl:attribute> 
       <xsl:attribute name="alt"></xsl:attribute> 
       <xsl:attribute name="height">200</xsl:attribute> 
       <xsl:attribute name="width">141</xsl:attribute> 
      </img> 
      </a> 
     </div> 

     </xsl:if> 
    </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

Cela devrait faire l'affaire.

+0

Toujours sortir 0 octets. – Daniel

+0

Désolé, a corrigé la réponse! – sebastiaan

Questions connexes