Бинарный файл мультимедиа - для вспомогательной версии метаданные публикуются, а реальный бинарный файл - нет? - PullRequest
7 голосов
/ 23 февраля 2012

Мы используем Tridion 2009 SP1 с шаблонами XSLT

Новый мультимедийный компонент (v0.0) и его загруженный двоичный файл будут правильно опубликованы на сайте предварительного просмотра в тот момент, когда он был впервые сохранен (публикация двоичного файла выполняется с помощью шаблона tbbPublishMultimedia, показанного ниже).

Компонент мультимедиа войдет в рабочий процесс как второстепенная версия v0.1, а в рабочем процессе (в разделе «Подготовка элемента содержимого издания»)Компонент может быть отредактирован и двоичный файл повторно загружен в компонент автором по мере необходимости.

Каждый раз, когда компонент v0.x сохраняется в рабочем процессе (как v0.1, v0.2, v0.3, v0.4 и т. д.) последняя версия компонента «в рабочем процессе» и его двоичный файл будут правильно опубликованы на сайте предварительного просмотра.

Каждый раз, когда мультимедийный компонент утверждается для публикации, он покидает рабочий процесс и становитсяновая основная версия (например, v1.0 .... или v2.0, v3.0 и т. д.).

Если основная версия впоследствии редактируется и повторно сохраняется, она становится новой дополнительнойверсия ревизии (например, 1.1), затем она будет повторно опубликована на сайте предварительного просмотра (как и его двоичный файл), а затем снова войдет в рабочий процесс.

Однако, пока Tridion правильно публикует последнюю незначительную ревизиюверсия фактического мультимедийного компонента (например, v1.1), кажется, публикует только последнюю основную версию двоичного файла, который он содержит (например, версию v1.0).Интересно, что он, по-видимому, публикует последние метаданные v1.1 для этого двоичного файла (то есть тип файла и размер файла), но не сам двоичный файл.

Таким образом, Tridion, по-видимому, публикует последние незначительные / ревизииверсия двоичного файла «в рабочем процессе», если мультимедийный компонент v0.x, но если существует основная версия, он будет публиковать только последнюю основную версию двоичного файла (по существу, версию, до которой он повторно войдет в рабочий процесс).

Вот как это выглядит в любом случае ...

  <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"), чтобы определить, какая версияпубликовать, но так как он не позволяет указать минорную версию, чтобы это не очень помогло

1 Ответ

2 голосов
/ 23 февраля 2012

Я действительно мало что сделал с шаблонами XSLT в последнее время, не уверен, что смогу помочь.В любом случае, вы можете подтвердить, что это только с XSLT или это также происходит с другими шаблонами?Если это происходит только с XSLT, то вы можете столкнуться с ошибкой, в то время как если это происходит со всеми другими языками, то это может быть просто «разработано», и вы ничего не можете с этим поделать, кроме как открыть запрос на улучшение.

Недавно я обнаружил, что если я запрашиваю версию 0 (tcm: 1-23-16-v0) какого-либо элемента, Tridion вернет последнюю версию элемента, которую может прочитать текущий пользователь, включая второстепенные версии (вC #).Может быть, вы можете попробовать?

...