2013-12-16 97 views
0

我從Umbraco 4.7.2站點複製了XSLT視頻播放器宏到我們擁有的另一個Umbraco 4.0站點。Umbraco XSLT宏問題

宏是相同的,但複製的宏不在4.0中運行,它不會產生HTML或所有宏參數保存值的錯誤。

這兩個版本之間是否存在某些語法差異或者我犯了一個錯誤? XSLT不是我的母語,我更像是一個剃刀人。

有人能指出我的問題嗎?

XSLT代碼:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:Stylesheet [ 
<!ENTITY nbsp "&#x00A0;"> 
]> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxml="urn:schemas-microsoft-com:xslt" xmlns:umbraco.library="urn:umbraco.library" version="1.0" exclude-result-prefixes="msxml umbraco.library"> 
    <xsl:output method="xml" omit-xml-declaration="yes"/> 
    <xsl:param name="currentPage"/> 
    <!-- set up vars --> 
    <xsl:variable name="vidToPlay" select="/macro/vidToPlay"/> 
    <xsl:variable name="previewImage" select="/macro/previewImage"/> 
    <!-- END set up vars --> 
    <xsl:template match="/"> 
    <!-- start writing XSLT --> 
    <xsl:if test="$vidToPlay != '' and $previewImage != '' "> 
     <xsl:variable name="showMe" select="umbraco.library:GetMedia($vidToPlay/node/@id, 0)/data [@alias = 'umbracoFile']"/> 
     <xsl:variable name="preview" select="umbraco.library:GetMedia($previewImage/node/@id, 0)/data [@alias = 'umbracoFile']"/> 
     <video controls="" poster="{$preview}"> 
     <source src="{$showMe}" type="video/mp4"/> 
     <object width="640" height="360" type="application/x-shockwave-flash" data="/media/12209/player.swf"> 
      <!-- Firefox uses the `data` attribute above, IE/Safari uses the param below --> 
      <param name="movie" value="/media/12209/player.swf"/> 
      <param name="flashvars" value="controlbar=over&amp;file={$showMe}"/> 
     </object> 
     </video> 
    </xsl:if> 
    </xsl:template> 
</xsl:stylesheet> 
+0

你有什麼類型的錯誤?還是隻是沒有顯示任何錯誤和沒有輸出? – nrathaus

回答

0

的XSLT顯示是從以前的版本一把umbraco,XML模式改變之前。

<xsl:variable name="showMe" select="umbraco.library:GetMedia($vidToPlay/node/@id, 0)/data [@alias = 'umbracoFile']"/> 
<xsl:variable name="preview" select="umbraco.library:GetMedia($previewImage/node/@id, 0)/data [@alias = 'umbracoFile']"/> 

這些線路應該是從一把umbraco維基上GetMedia

<xsl:variable name="showMe" select="umbraco.library:GetMedia($vidToPlay/node/@id, 0)/umbracoFile"/> 
<xsl:variable name="preview" select="umbraco.library:GetMedia($previewImage/node/@id, 0)/umbracoFile"/> 

更多信息:http://our.umbraco.org/wiki/reference/umbracolibrary/getmedia