2012-10-29 13 views
5

के रूट प्रकाशन प्राप्त करना मान लें इस प्रश्न के लिए निम्नलिखित प्रकाशन मानें।घटक

20 सामग्री -> टीसीएम: 0-20-1

...

...

...

70 वेब -> टीसीएम: 0-121-1

मैं एक घटक बनाया गया है (20 सामग्री) प्रकाशन और मैं इस घटक को बाल प्रकाशनों में से एक से प्रकाशित कर रहा हूं (70 वेब)। मैं यूआई लिखने के लिए ड्रीमवेवर टेम्पलेट का उपयोग कर रहा हूं और मैं डीडब्ल्यूटी से सी # कस्टम फ़ंक्शंस को कॉल कर रहा हूं। प्रकाशन करते समय, इस घटक को घटक प्रस्तुति में 121-432 के रूप में संदर्भित किया जाएगा। घटक के निर्माण के रूट प्रकाशन को पाने का कोई तरीका है? 121-432 प्राप्त करने के बजाय मुझे 20-432 मिलना चाहिए।

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

चूंकि मुझे इस विधि को कई स्थानों पर कॉल करना होगा, इसलिए मैं यह जांचना चाहता था कि यह करने के लिए कोई अन्य प्रत्यक्ष/बेहतर तरीका है या नहीं।

क्या कोई सुझाव दे सकता है?

उत्तर

7

आप घटक के OwningRepository संपत्ति में तो देखने के लिए, चाहता हूँ:

var componentIdInOwningPublication = new TcmUri(
    component.Id.ItemId, 
    ItemType.Component, 
    component.OwningRepository.Id.ItemId 
); 

रखो कि एक कस्टम Dreamweaver-प्रतिदेय समारोह में और तुम जाना अच्छा होना चाहिए।

अद्यतन वहाँ भी एक सहायक विधि CreateTcmUriForPublication कि अनुवाद करता है कहा जाता है। तो अगर आप भी आह्वान सकता इस तरह है कि एक:

var componentIdInOwningPublication = TemplateUtilities.CreateTcmUriForPublication(
    component.OwningRepository.Id.ItemId, 
    component.Id 
); 

दोनों के टुकड़े के अंतिम परिणाम एक ही है, हालांकि यह है: अपने मालिक भंडार के संदर्भ में घटक की TcmUri।

+2

स्वामित्व की जांच के साथ सहमत हैं, लेकिन मुझे लगता है कि आपको तर्कों का गलत गलती मिली है। कुछ कारणों से TOM.NET में हस्ताक्षर 'सार्वजनिक टीसीएमयूआरआई (int itemId, itemType itemType, int publicationId) है। –

+0

धन्यवाद पीटर, मैंने अपना जवाब अपडेट किया। –

+0

@ फ्रैंकवनपफेलन मैंने कोशिश की है लेकिन मुझे अभी भी घटक निर्माण स्तर की प्रकाशन आईडी नहीं मिल रही है। मेरे पास 020 पब्लिकटन में एक घटक है और 030 डिज़ाइन प्रकाशन में सीटी है और 070 वेब प्रकाशन में पूर्वावलोकन करते समय, मैं अभी भी 070 प्रकाशन के टीसीएम आईडी देख रहा हूं। – Balaji