2012-05-04 20 views
5

मैं एसडीएल ट्रिडियन 2011 एसपी 1 का उपयोग कर रहा हूं। मेरे पास घटक ए, बी और सी घटक हैं। & बीजब मैं एक विशिष्ट घटक प्रकाशित करता हूं तो मैं किस लिंक किए गए घटक प्रकाशित कर सकता हूं?

यदि मैं सी प्रकाशित करता हूं, तो घटक ए और बी दोनों प्रकाशित हो रहे हैं। लेकिन मैं केवल घटक ए प्रकाशित करना चाहता हूं।

कोई भी बता सकता है कि घटक बी को प्रकाशन से कैसे बाहर निकालना है?

उत्तर

8

अब तक मुझे पता है कि ऐसा करने का कोई आसान तरीका नहीं है। जब आप एक आइटम प्रकाशित करते हैं तो ट्रिडियन सभी संबंधित और लिंक किए गए आइटम को हल करता है और उन्हें प्रकाशित करता है।

आप ईवेंट सिस्टम या कस्टम रिज़ॉल्यूवर का उपयोग कर सकते हैं जो आप पूछ रहे हैं। यह लिंक मदद कर सकता है: http://nunolinhares.blogspot.com/2011/10/tridion-publisher-and-custom-resolvers.html

3

आप एपीआई से प्रकाशित कर रहे हैं, तो आप false करने के लिए ResolveInstruction की IncludeComponentLinks संपत्ति सेट कर सकते हैं, या, के रूप में बप्पी बताया ईवेंट हैंडलर में ऐसा

+1

वह कर सकता था, लेकिन इसका मतलब यह होगा कि केवल घटक सी प्रकाशित किया जाएगा। घटक सी प्रकाशित करते समय वह घटक ए को भी प्रकाशित करना चाहता है, लेकिन घटक बी नहीं। मुझे लगता है कि एक संकल्प पूरा करने का एकमात्र तरीका है। –

10

क्या आप अनुभव कर रहे डिफ़ॉल्ट है ट्रिडियन का व्यवहार यह डिज़ाइन द्वारा है, यह सुनिश्चित करने के लिए कि जब आप किसी घटक में सामग्री बदलते हैं, तो इसे प्रकाशित करने से वेबसाइट पर उस सामग्री के सभी उदाहरण अपडेट हो जाएंगे।

अन्य उत्तर के रूप में सुझाव है कि आप इस व्यवहार एक कस्टम रिज़ॉल्वर का उपयोग कर बदल सकते हैं:

using Tridion.ContentManager; 
using Tridion.ContentManager.CommunicationManagement; 
using Tridion.ContentManager.ContentManagement; 
using Tridion.ContentManager.Publishing; 
using Tridion.ContentManager.Publishing.Resolving; 

public class UpdateResolvedItems : IResolver 
{ 
     public void Resolve(
      IdentifiableObject item, 
      ResolveInstruction instruction, 
      PublishContext context, 
      Tridion.Collections.ISet<ResolvedItem> resolvedItems) 
     { 
      foreach (ResolvedItem resolvedItem in resolvedItems) 
      { 
      // Check resolved items, and remove accordingly 
      } 
     } 
} 

कोड उपरोक्त उदाहरण दर्शाता है आप एक संग्रह बुलाया resolvedItems तक पहुँच प्राप्त कर सकते हैं। यह प्रकाशित होने के कारण वस्तुओं की एक सूची है, जब तक कि आप इसमें कोई बदलाव न करें।

आप इस सूची के माध्यम से पुन: प्रयास कर सकते हैं और अपनी आवश्यकताओं के अनुसार आइटम को हटा सकते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे