簡體   English   中英

Umbraco XSLT宏問題

[英]Umbraco XSLT macro issue

我將XSLT視頻播放器宏從Umbraco 4.7.2站點復制到了另一個Umbraco 4.0站點。

宏是相同的,但是復制的宏不在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>

在更改XML模式之前,顯示的XSLT來自以前的Umbraco版本。

<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']"/>

這些行應該是

<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"/>

Umbraco Wiki上有關GetMedia的更多信息: http ://our.umbraco.org/wiki/reference/umbracolibrary/getmedia

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM