我们使用带有 XSLT 模板的 Tridion 2009 SP1
一个全新的多媒体组件 (v0.0) 及其上传的二进制文件将在首次保存时正确发布到预览站点(二进制的发布由
tbbPublishMultimedia
模板完成,如下所示)。
多媒体组件将作为次要修订版本 v0.1 进入工作流程,并且在工作流程中(在“准备版内容项”处)可以编辑组件,并且可以根据需要由作者将二进制文件重新上传到组件中。
每次将 v0.x 组件保存在工作流中(如 v0.1、v0.2、v0.3、v0.4 等)时,组件的最新“工作流中”版本及其二进制文件都会正确发布到预览网站。
每次多媒体组件被批准发布时,它都会离开工作流程并成为一个新的主要版本(例如 v1.0.... 或 v2.0、v3.0 等)。
如果随后编辑并重新保存了主要版本,它将成为新的次要修订版本(egv1.1),然后将重新发布到预览站点(其二进制文件也是如此),然后重新进入工作流程。
然而,虽然 Tridion 正确发布了实际多媒体组件的最新次要修订版本(例如 v1.1),但它似乎只发布了它包含的二进制文件的最后一个主要版本(例如 v1.0 版本)。有趣的是,它似乎确实发布了该二进制文件的最新 v1.1 元数据(即文件类型和文件大小),而不是二进制文件本身。
总之,如果多媒体组件是 v0.x,Tridion 似乎会发布二进制文件的最新次要/修订“工作流程中”版本,但一旦存在主要版本,它只会发布二进制文件的最后一个主要版本(本质上是重新进入工作流程之前的版本)。
反正就是这个样子……
<xsl:template name="tbbPublishMultimedia">
<xsl:if test="string(//tcm:Type)='Multimedia'">
<xsl:variable name="binaryid"
select="string(//tcm:Component/@ID)"/>
<xsl:element name="tcm:MultimediaPublishedFileName">
<xsl:value-of select="tcmse:PublishBinary($binaryid)"/>
</xsl:element>
</xsl:if>
</xsl:template>
注意...在上面的模板中,可以将主要版本指定为tcmse:PublishBinary parameter
例如concat($binaryid,"-v2")
确定要发布的版本,但是因为它不允许您指定次要版本,所以这并没有太大帮助