Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Claus Nedergaard 62 posts 104 karma points
    Jan 09, 2013 @ 08:49
    Claus Nedergaard
    0

    media picker adds numbers til file name

    Using the generic media picker and standard getmedia to retrieve contents of a media folder the media picker adds this: 160608611png to the file name.

    I'm on umb 4.11. DAMP is installed btw. 

    <img src="/media/6773/peterbyg.png160608611png"

    Clues anyone?

  • Chriztian Steinmeier 2800 posts 8791 karma points MVP 8x admin c-trib
    Jan 09, 2013 @ 08:59
    Chriztian Steinmeier
    0

    Hi Claus,

    Yes - what you're seeing is the text() value of the XML you get from the GetMedia() call (e.g. with <xsl:value-of />), which looks something like this:

    <Image id="1200">
        <umbracoFile>/media/6773/peterbyg.png</umbracoFile>
        <umbracoWidth>160</umbracoWidth>
        <umbracoHeight>60</umbracoHeight>
        <umbracoBytes>8611</umbracoBytes>
        <umbracoExtension>png</umbracoExtension>
    </Image>

     

    To get the values from the XML in an efficient way, do something like this:

    <xsl:template match="/">
        <!-- Make sure an image was picked -->
        <xsl:if test="normalize-space($currentPage/pickerAlias)">
            <!-- Get the XML -->
            <xsl:variable name="mediaNode" select="umbraco.library:GetMedia($currentPage/pickerAlias, false())" />
    
            <!-- Process the Image -->
            <xsl:apply-templates select="$mediaNode[not(error)]" />
        </xsl:if>
    </xsl:template>
    
    <!-- Template for an Image -->
    <xsl:template match="Image">
        <img src="{umbracoFile}" width="{umbracoWidth}" height="{umbracoHeight}" />
    </xsl:template>
    
    <!-- Other templates... -->
    <xsl:template match="File | Folder">
        <!-- Do something -->
    </xsl:template>

    Hope that helps :-)

    /Chriztian

  • Chriztian Steinmeier 2800 posts 8791 karma points MVP 8x admin c-trib
    Jan 09, 2013 @ 09:02
    Chriztian Steinmeier
    0

    Just saw that you're using DAMP - if you're usin the "Store full media XML", then you can skip the GetMedia() call and set the mediaNode variable like this instead:

    <xsl:variable name="mediaNode" select="$currentPage/pickerAlias//Image" />

    /Chriztian

  • Claus Nedergaard 62 posts 104 karma points
    Jan 09, 2013 @ 10:19
    Claus Nedergaard
    0

    Actually I'm using the built-in 'old' media picker for this property with this xslt:

    <xsl:variable name="mediaFolderId" select="($currentPage/ancestor-or-self::*/mediaFolderId)" />   
    <xsl:output method="xml" omit-xml-declaration="yes"/>
    <xsl:template match="/">         
    <xsl:if test="$mediaFolderId != ''">         
    <ul id="scroller">
                 <xsl:for-each select="umbraco.library:GetMedia($mediaFolderId, 1)/Image">
                     <li>
    <xsl:element name="img">
          <xsl:attribute name="src">                                                         
    <xsl:value-of select="umbraco.library:GetMedia($mediaFolderId, 1)/Image"/>
    </xsl:attribute>
    </xsl:element>
           </li> </xsl:for-each>
    </ul>
    </xsl:if>
  • Claus Nedergaard 62 posts 104 karma points
    Jan 09, 2013 @ 10:47
    Claus Nedergaard
    0

    On the media type Image I noticed the [mediaLinks] property - what is that used for?

  • Claus Nedergaard 62 posts 104 karma points
    Jan 09, 2013 @ 11:03
    Claus Nedergaard
    0

    Duh! Feel dumb now!! The reason for the added numbers to the media was I used getMedia and not urlencode.

    Everything is fine now with these lines.

    <xsl:variable name="mediaFolderId" select="($currentPage/ancestor-or-self::*/mediaFolderId)" />
     <xsl:output method="xml" omit-xml-declaration="yes"/>
    <xsl:template match="/">
        <xsl:if test="$mediaFolderId != ''">
             <ul id="scroller">
                    <xsl:for-each select="umbraco.library:GetMedia($mediaFolderId, 1)/Image">    <li>
    <xsl:element name="img"> <xsl:attribute name="src">                                                             
          <xsl:value-of select="umbraco.library:UrlEncode(umbracoFile)"/>
    </xsl:attribute></xsl:element>   </li>   </xsl:for-each>         </ul>
  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies