Copied to clipboard

Flag this post as spam?

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


  • Anna Gurova 9 posts 29 karma points
    Mar 23, 2011 @ 10:25
    Anna Gurova
    0

    Using asp:AdRotator in XSLT

    I'm trying to add a list of banners to my template.

    For it I created two document types: one for list itself and another for single banner. I added property for advertisement xml file into banner document type. This xml I placed in media.

    In my template I need to get following:

            <table>
                <tr><td> <asp:AdRotator runat="server" Target="_blank" AdvertisementFile="~/media/502/adds.xml"/>
                <tr> <td> <asp:AdRotator runat="server" Target="_self" AdvertisementFile="~/media/502/adds.xml"/>
                <tr> <td> <asp:AdRotator runat="server" Target="_self" AdvertisementFile="~/media/502/adds.xml"/>
            </table>

    I try to do the following:

    1. In my template I added

     <umbraco:macro alias="umbBunnersListItems" runat="server"></umbraco:macro>

    2. My macro uses xslt. I tried to write like this

      <?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:tagsLib="urn:tagsLib" xmlns:BlogLibrary="urn:BlogLibrary"
      exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets tagsLib BlogLibrary "
    >

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

    <xsl:template match="/">
        <table>
          <xsl:for-each select="umbraco.library:GetXmlNodeById(1164)/Bunner">
            <tr><td>
            <xsl:element name="asp:AdRotator">
                 <xsl:attribute name="runat">server</xsl:attribute>
                 <xsl:attribute name="Target">_blank</xsl:attribute>
                 <xsl:attribute name="AdvertisementFile">
                  <xsl:value-of select="./pathToXml"/>         
                 </xsl:attribute>
              </xsl:element>
             </td></tr>
          </xsl:for-each>
        </table> 
      </xsl:template>

     
    </xsl:stylesheet>

    but I get an error:

    System.Xml.Xsl.XslLoadException: "asp" .(Prefix "asp" not found)

      C:\inetpub\wwwroot\energotrade.ru\xslt\634364794739606274_temp.xslt(19,9).
    System.Xml.Xsl.XslCompiledTransform.LoadInternal(Object stylesheet, XsltSettings settings, XmlResolver stylesheetResolver)
    System.Xml.Xsl.XslCompiledTransform.Load(XmlReader stylesheet, XsltSettings settings, XmlResolver stylesheetResolver)
    umbraco.presentation.webservices.codeEditorSave.SaveXslt(String fileName, String oldName, String fileContents, Boolean ignoreDebugging) C:\Users\Administrator\Desktop\\Sources-binaries\Umbraco\umbraco 4.5\umbraco\presentation\umbraco\webservices\codeEditorSave.asmx.cs: 127

    Then I tried to add xmlns:asp="asp" in <xsl:element name="asp:AdRotator">, but this didn't help.

    Is there any way rto solve this problem? Or may be you can advise me another way to add banners dinamically to my template.



     

  • Richard Soeteman 4054 posts 12927 karma points MVP 2x
    Mar 23, 2011 @ 11:50
    Richard Soeteman
    0

    Hi Anna,

    the asp.net AdRotator is a server control. You can't use these controls in xslt. What you can do is create a usercontrol and use that as the macro. On the usercontrol you can put the AdRotator.And i think (not sure) you can use it in a Razor Macro also.

    Cheers,

    Richard

  • Anna Gurova 9 posts 29 karma points
    Mar 23, 2011 @ 16:10
    Anna Gurova
    0

    I created UserControl with AdvertisementFile public property - macro parameter.

    <umbraco:Macro AdvertisementFile="~/media/502/adds.xml" Alias="AddRotatorControl" runat="server"></umbraco:Macro>

    But I need AdvertisementFile to be set to property of object in my Content. 

  • 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