Tridion Content Delivery может хранить несколько вариантов одного и того же мультимедийного компонента. Каждый такой вариант имеет идентификатор, который его идентифицирует, а вариант без идентификатора (или в более новых версиях #def# в качестве идентификатора) известен как вариант по умолчанию.
Когда вы ссылаетесь на изображение из DWT, оно автоматически добавляется как элемент в пакет, когда механизм рендеринга выполняет ваш DWT. Затем этот элемент обрабатывается TBB по умолчанию «Опубликовать двоичные файлы в пакете», который является частью действий по завершению по умолчанию. Опубликовать двоичные файлы в пакете TBB публикует двоичные файлы, вызывая для них AddBinary
— вы можете убедиться в этом, просмотрев исходный код большинства стандартных TBB, который был опубликован на форуме Tridion здесь (требуется авторизация).
appliedTemplateUri = new TcmUri(item.Properties[Item.ItemPropertyTemplateUri]);
...
engine.AddBinary(itemUri, appliedTemplateUri, targetStructureGroup,
data, fileName);
Вызываемый метод AddBinary
определен в TOM.NET CHM как:
public abstract string AddBinary(
TcmUri componentUri,
TcmUri templateUri,
TcmUri targetLocation,
byte[] data,
string fileName
)
- componentUri Мультимедийный компонент, к которому относится этот элемент.
- templateUri Шаблон, в контексте которого выполняется этот вызов AddBinary (используется как идентификатор варианта)
- targetLocation Местоположение для публикации двоичного файла (если значение равно null, публикуйте по стандартному пути).
- data Двоичные данные для публикации
- fileName Имя файла для публикации в
Итак, как вы можете видеть в последнем вызове AddBinary
, Публикация двоичных файлов в TBB пакета использует свойство (см. здесь если вы никогда не слышали о Item.Properties
), чтобы определить, какой вариант опубликовать (и опубликовать двоичный файл как вариант по умолчанию, если свойство отсутствует).
Со всеми этими знаниями задача становится довольно простой: вы должны убедиться, что в пакете для вашей MMC есть два бинарных элемента, каждый из которых имеет другое значение свойства Item.ItemPropertyTemplateUri
.
Image Resizer TBB по умолчанию заменяет двоичное содержимое элемента, размер которого изменяется, и не задает это свойство. Таким образом, наименьшее количество кода, которое вам придется написать, — это либо TBB препроцессора, который дублирует элемент, либо TBB постпроцессора, который повторно добавляет элемент. В обоих случаях TBB также должен будет установить свойство «магия».
Полезные ссылки:
person
Frank van Puffelen
schedule
20.07.2012