7

Tridion2009SP1とXSLTテンプレートを使用しています

真新しいマルチメディアコンポーネント(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")公開するバージョンを決定するためにメジャーバージョンを指定することは可能ですが、マイナーバージョンを指定できないため、あまり役に立ちません

4

1 に答える 1

2

最近、XSLT テンプレートをあまり扱っていないので、お役に立てるかどうかわかりません。とにかく、これはXSLT でのみ発生するのか、それとも他のテンプレートでも発生するのかを確認できますか? XSLT でのみ発生する場合はバグに直面している可能性がありますが、他のすべての言語で発生する場合は単に「設計による」可能性があり、拡張要求を開く以外にできることはあまりありません。

私は最近、任意のアイテムのバージョン 0 (tcm:1-23-16-v0) を要求すると、Tridion が現在のユーザーが読み取ることを許可されているアイテムの最新バージョン (マイナー バージョン (C#) を含む) を返すことを発見しました。多分あなたはそれを試してみることができますか?

于 2012-02-23T12:00:30.470 に答える