2012-02-18 27 views
5

Chúng tôi đang xử lý xuất bản PDF bằng cách sử dụng Mẫu thành phần động được liên kết với giản đồ PDF, sau đó tạo Liên kết nhị phân nơi chúng tôi cần liên kết đến tệp PDF.Có nên hủy xuất bản một pdf được sử dụng trong một thành phần trên trang khiến trang bị hủy xuất bản không?

Chúng tôi nhận thấy rằng việc không xuất bản tệp PDF là liên kết thành phần bên trong thành phần được sử dụng trên trang đang kích hoạt trang bị hủy xuất bản.

Tôi biết chúng tôi có thể kiểm soát hành vi này bằng cách sử dụng Trình giải quyết tùy chỉnh, nhưng đây có phải là kết quả mong đợi không?

Hành vi này có thay đổi từ Tridion 2009 thành Tridion 2011 không?

Trả lời

6

BinaryLinks có nghĩa là được sử dụng cho "nội dung nhị phân nội tuyến", vì vậy những thứ thường được bao gồm bởi thuộc tính src.

<img src="..." /> 
<video width="320" height="240" controls="controls"> 
    <source src="movie.mp4" type="video/mp4" /> 
    <source src="movie.ogg" type="video/ogg" /> 
    Your browser does not support the video tag. 
</video> 

Đối với nội dung nhị phân nội tuyến này, trang sẽ không hiển thị chính xác mà không có nó. Biết rằng, Trang bị hủy xuất bản khi bạn hủy xuất bản MMC. Vì vậy, theo như tôi có thể nói điều này thực sự là hành vi mong đợi, mà đã không thay đổi trong một thời gian dài.

Lỗi là sử dụng MMC cho tệp PDF mà bạn muốn hiển thị dưới dạng siêu kết nối. Đối với bất cứ điều gì mà bạn muốn liên kết đến (để biến thành một < a href = "...") bạn nên sử dụng một ComponentLink (hoặc tất nhiên một PageLink của nó là một Trang).

+1

Điều chúng tôi nhận thấy là liên kết thành phần sẽ không giải quyết, vì PDF không thực sự xuất hiện trên trang ở bất kỳ nơi nào, nhưng thay vào đó được xuất bản lên máy chủ có Mẫu động. Tuy nhiên, một Liên kết nhị phân sẽ trả về một thẻ liên kết trỏ tới tệp PDF. –

+0

Bạn có thể cho chúng tôi biết mã/DWT về cách bạn xuất bản tệp nhị phân không? –

+0

Chúng tôi sử dụng phương pháp Thêm nhị phân, như sau: engine.AddBinary (binary.Id, template.Id, null, binary.BinaryContent.GetByteArray(), CreateUniqueBinaryName (binary)); –

4

Việc hủy xuất bản các mục được sử dụng bởi một thành phần nhị phân đã có trong năm 2009 (rất nhiều, vì vậy, nó thậm chí là một trong những câu hỏi của Tridion 2009 Business Analyst thi).

Tôi thấy xu hướng đang phát triển của những người sử dụng Bản trình bày thành phần động cho các tệp nhị phân của họ, bỏ qua tất cả tác dụng phụ này, nhưng để lại cho bạn khả năng có liên kết nhị phân xấu trên các trang của bạn.

Nếu bạn đi xuống tuyến đường DCP cho tệp nhị phân, hãy đảm bảo sử dụng Dynamic Linking (khá đơn giản để tạo trên CM bằng cách sử dụng "tridion: type = binary" trong đánh dấu neo của bạn).

+1

Tridion: type = "Binary" tạo liên kết hoạt động, nhưng vẫn có tác dụng phụ khiến trang bị hủy xuất bản khi Nhị phân là, vì nó chỉ tạo ra một thẻ BinaryLink như tôi có thể nói? Tài liệu nói rằng "Nếu bạn hủy xuất bản một thành phần, bất kỳ thành phần nào liên kết đến thành phần đó sẽ không được hủy xuất bản." Tôi đoán hành vi này là khác nhau cho nhị phân, vì vậy chúng tôi sẽ cần một giải quyết tùy chỉnh ở đây? –

+0

Vấn đề là bạn đang gọi AddBinary và không xuất bản một bản trình bày thành phần riêng biệt. Trình phân giải tùy chỉnh thực sự có vẻ tốt nhất và có thể đơn giản hơn việc tạo một PublishInstruction tùy chỉnh. –

+0

Nếu bạn sử dụng tridion: type = binary bạn thực sự mong muốn xuất bản nhị phân của bạn bằng các cách khác - DCP thường - thay vì sử dụng AddBinary hoặc bất kỳ biến thể nào khác của nó. Một Resolver tùy chỉnh hoặc gọi RenderCP từ bên trong DWT sẽ xử lý điều đó. –

Các vấn đề liên quan