Copied to clipboard

Flag this post as spam?

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


  • Thomas Brinegar 84 posts 162 karma points
    Dec 19, 2013 @ 18:48
    Thomas Brinegar
    0

    Umbraco 7 Missing Extension

    I've been transferring a lot of our Umbraco 6.1.5 assets into a sandboxed copy of Umbraco 7. This is a fresh installation of Umbraco 7 but I have a page that makes use of the simple "lowercase" function using the syntax:

    Exslt.ExsltStrings:lowercase(node)
    

    The exact error I see occuring in the log is:

    Cannot find a script or an extension object associated with namespace 'urn:Exslt.ExsltStrings'
    

    Has anything changed in the latest version of Umbraco? How can I run a lowercase function in 7? Is this build missing this extension object?

    Thanks in advance for any assistance!

  • Thomas Brinegar 84 posts 162 karma points
    Dec 19, 2013 @ 18:49
    Thomas Brinegar
    0

    Looking at the stylesheet element I have identified a difference in this version when creating a 'clean' XSLT file:

    Umbraco 7 creates:

    <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:Examine="urn:Examine" exclude-result-prefixes="msxml umbraco.library Examine ">
    

    Where 6.1.5 created:

    <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" exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets ">
    
  • Thomas Brinegar 84 posts 162 karma points
    Dec 19, 2013 @ 19:04
    Thomas Brinegar
    0

    Was able to substitute the function with:

    <xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable>
    <xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
    <xsl:variable name="lcaseauthor" select="translate($currentPage/author,$upper,$lower)]"/>
    

    Is anyone else having issues posting to the forums? I've noticed the listing on the homepage is not showing to what category this post was made nor the author. On several attempts to update this post, the editor fails and in my browser console I see I am getting response code 500 (internal server error).

  • Chriztian Steinmeier 2798 posts 8788 karma points MVP 7x admin c-trib
    Dec 20, 2013 @ 02:01
    Chriztian Steinmeier
    0

    Hi Thomas,

    The EXSLT extensions were removed from core because many of them just didn't work - Here's an issue where it's discussed

    There should be a package available at some point that reinstalls them so someone like you can use those that actually did work, if needed. Depending on the way you're using the lowercase() function, there's a couple of alternatives for you to do. Can you show a little more context so we know what you're doing specifically?

    /Chriztian

  • Thomas Brinegar 84 posts 162 karma points
    Dec 23, 2013 @ 14:27
    Thomas Brinegar
    0

    Hey Chriztian,

    Thanks for your reply. I have found an alternative method, shown below. The need for the lowercase function was in making link URLs all lowercase and for setting the canonical values.

    <xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable>
    <xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
    <xsl:variable name="lcaseNodeWithValue" select="translate(nodeWithValue,$upper,$lower)"/>
    <xsl:value-of select="$lcaseNodeWithValue" />
    
  • Thomas Brinegar 84 posts 162 karma points
    Dec 23, 2013 @ 14:32
    Thomas Brinegar
    0

    Hey Chriztian, thanks for your reply. The need for the lowercase function had to deal with setting canonical link values for pages as well as keeping well-formed dynamic links in some sections of our site.

    I have found an alternate method shown below:

    <xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable>
    <xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
    <xsl:variable name="lcaseNodeWithValue" select="translate(nodeWithValue,$upper,$lower)"/>
    <xsl:value-of select="$lcaseNodeWithValue" />
    
  • Thomas Brinegar 84 posts 162 karma points
    Dec 23, 2013 @ 14:33
    Thomas Brinegar
    0

    Hey Chriztian, thanks for your reply. The need for the lowercase function had to deal with setting canonical link values for pages as well as keeping well-formed dynamic links in some sections of our site.

    I have found an alternate method shown below:

    <xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable>
    <xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
    <xsl:variable name="lcaseNodeWithValue" select="translate(nodeWithValue,$upper,$lower)"/>
    <xsl:value-of select="$lcaseNodeWithValue" />
    
  • Lee Kelleher 4020 posts 15802 karma points MVP 13x admin c-trib
    Jan 03, 2014 @ 00:55
    Lee Kelleher
    1

    After some prompting from Chriztian, we've got around to releasing the EXSLT extensions as a standalone package.

    It is available to download from here: http://our.umbraco.org//projects/website-utilities/exslt-redux

    Cheers,
    - Lee

Please Sign in or register to post replies

Write your reply to:

Draft