I have installed the insertFlash package into my Umbraco, however, when I select the macro for my template, I am asked to select the file. I want the flash file to be a dynamic choice from the Content section.
Inserting my macro into a template looks like this :
I tried adding an Umbraco page field as a value for mediaFile like this <umbraco:Macro mediaFile="1620" flashWidth="1024" flashHeight="768" Alias="InsertFlash" runat="server"></umbraco:Macro>
But that didnt work.
I think I will have to edit the XSLT file, but not sure what to change. my XSLT file looks like this:
What version of Umbraco are you currently using? In the "Developer" setting you can find the macro and make it possible to insert it into a rich text editor so you can insert the flash files from within the content section. There is a "Insert macro" option in the rich text editor field. When doing this you'll be able to fill in the different parameters in a dialogue window.
I hope this makes sense.
May I ask why you need flash btw? I'm just wondering if there is a better way of doing what you need to achieve :)
I am using version v6.0.6. I will try what you have asked.
The purpose for using flash is that I'm using Umbraco as a CMS for client who has an interactive kiosk. They create animated attract screens usually in flash, and these attract screens will be updated quite frequently. I give my client only access to the Content and Media section of Umbraco.
The macro works, but I can only select the flash file once inserting the macro, I am aiming to make this dynamic from the Content section.
You're welcome - How did you imagine it would work? Remember to mark the issue as solved btw so others who come across it can jump straight to the solution if they come across the same issue.
I added a richtext editor property to the template, and selected the macro from the content section, rather than from the templates section. This actually works out better as the customer can upload a different file type, add text and images etc so I am happy with that.
Dynamic Parameters in XSLT
I have installed the insertFlash package into my Umbraco, however, when I select the macro for my template, I am asked to select the file. I want the flash file to be a dynamic choice from the Content section.
Inserting my macro into a template looks like this :
<umbraco:Macro mediaFile="1620" flashWidth="1024" flashHeight="768" Alias="InsertFlash" runat="server"></umbraco:Macro>
I tried adding an Umbraco page field as a value for mediaFile like this <umbraco:Macro mediaFile="1620" flashWidth="1024" flashHeight="768" Alias="InsertFlash" runat="server"></umbraco:Macro>
But that didnt work.
I think I will have to edit the XSLT file, but not sure what to change. my XSLT file looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:randomTools="http://www.umbraco.org/randomTools"
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 randomTools umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets ">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:variable name="mediaFile" select="/macro/mediaFile/*"/>
<xsl:variable name="fileURL" select="/macro/fileURL"/>
<xsl:variable name="width" select="/macro/flashWidth"/>
<xsl:variable name="height" select="/macro/flashHeight"/>
<xsl:variable name="cssId" select="/macro/cssId"/>
<xsl:variable name="urlParameters" select="/macro/urlParameters"/>
<xsl:if test="$mediaFile != '' or $fileURL != ''">
<xsl:variable name="trueFileURL">
<xsl:choose>
<xsl:when test="$mediaFile != ''"><xsl:value-of select="$mediaFile/data[@alias = 'umbracoFile'] | $mediaFile/umbracoFile"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$fileURL"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="finalFileURL">
<xsl:choose>
<xsl:when test="$urlParameters != ''"><xsl:value-of select="concat($trueFileURL, $urlParameters)"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$trueFileURL"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="finalCssId">
<xsl:choose>
<xsl:when test="string($cssId) != ''"><xsl:value-of select="$cssId"/></xsl:when>
<xsl:otherwise><xsl:value-of select="concat( 'ts-', randomTools:GetRandom() )"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="insertFlash">
<xsl:with-param name="finalFileURL" select="$finalFileURL"></xsl:with-param>
<xsl:with-param name="width" select="$width"></xsl:with-param>
<xsl:with-param name="height" select="$height"></xsl:with-param>
<xsl:with-param name="finalCssId" select="$finalCssId"></xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="insertFlash">
<xsl:param name="finalFileURL"/>
<xsl:param name="width"/>
<xsl:param name="height"/>
<xsl:param name="finalCssId"/>
<div id="{$finalCssId}">
<xsl:text> </xsl:text>
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js">
<xsl:text> </xsl:text>
</script>
<script type="text/javascript">
<![CDATA[
var flashvars = {};
var params = {};
var attributes = {};
var path = "]]><xsl:value-of select="$finalFileURL" /><![CDATA[";
var cssId = "]]><xsl:value-of select="$finalCssId" /><![CDATA[";
var width = "]]><xsl:value-of select="$width" /><![CDATA[";
var height = "]]><xsl:value-of select="$height" /><![CDATA[";
swfobject.embedSWF( path, cssId, width, height, "9.0.0", false, flashvars, params, attributes);
]]>
</script>
</xsl:template>
<msxml:script language="c#" implements-prefix="randomTools">
<msxml:assembly href="../bin/umbraco.dll"/>
<![CDATA[
//Basic idea from http://our.umbraco.org/wiki/reference/xslt/snippets/getting-a-series-of-unique-random-numbers
/// <summary>
/// Gets a random integer that falls between the specified limits
/// </summary>
/// <returns>A random integer within the specified range</returns>
public static int GetRandom() {
Random r = umbraco.library.GetRandom();
int returnedNumber = 0;
lock (r)
{
returnedNumber = r.Next();
}
return returnedNumber;
}
]]>
</msxml:script>
</xsl:stylesheet>
Can anybody please help?
Hi Jason
What version of Umbraco are you currently using? In the "Developer" setting you can find the macro and make it possible to insert it into a rich text editor so you can insert the flash files from within the content section. There is a "Insert macro" option in the rich text editor field. When doing this you'll be able to fill in the different parameters in a dialogue window.
I hope this makes sense.
May I ask why you need flash btw? I'm just wondering if there is a better way of doing what you need to achieve :)
/Jan
Hi Jan
I am using version v6.0.6. I will try what you have asked.
The purpose for using flash is that I'm using Umbraco as a CMS for client who has an interactive kiosk. They create animated attract screens usually in flash, and these attract screens will be updated quite frequently. I give my client only access to the Content and Media section of Umbraco.
The macro works, but I can only select the flash file once inserting the macro, I am aiming to make this dynamic from the Content section.
Hi Jason
Ok, but then you should be able to make it work like I described above :)
Looking forward to hear if you succeed - Otherwise please let me know and I'll help you even further.
/Jan
Thanks Jan that worked, not the way I imagined it to work, but it will do the job.
Thanks for your help.
Hi Jason
You're welcome - How did you imagine it would work? Remember to mark the issue as solved btw so others who come across it can jump straight to the solution if they come across the same issue.
/Jan
I added a richtext editor property to the template, and selected the macro from the content section, rather than from the templates section. This actually works out better as the customer can upload a different file type, add text and images etc so I am happy with that.
is working on a reply...