2013-02-11 20 views
5

में वर्तमान आइटम आईडी को ढूंढने का सबसे आसान तरीका क्या है मेरे सी # या dreamweaver टेम्पलेट में मुझे यह जानने की ज़रूरत है कि मैं क्या प्रस्तुत कर रहा हूं। समस्या यह है कि मुझे यकीन नहीं है कि मैं एक पेज या घटक की तलाश में हूं। मैं शायद package.GetByType(ContentType.Page) का उपयोग कर सकता हूं और यदि यह खाली है - एक घटक की सामग्री प्राप्त करें, लेकिन मुझे लगता है कि एक छोटा रास्ता होना चाहिए। दाऊद कीटेम्पलेट

उदाहरण है कम:

engine.PublishingContext.ResolvedItem.Item.Id 

उत्तर

5
engine.PublishingContext.ResolvedItem.Item.Id 

तुम भी प्रकाशन प्रसंग का संकल्प लिया मद देख सकें और अगर यह एक पृष्ठ है या नहीं (यदि ऐसा नहीं है, तो यह एक घटक है)।

उदाहरण के लिए:

String currentId = currentItem.GetAsSource().GetValue("ID"); 
+0

यह मेरे दृष्टिकोण से काफी अच्छा है। –

3

कैसे मैंने देखा यह किया है, इससे पहले कि:

// Contains the call you describe in your question 
Page page = GetPage(); 
if (page == null) 
{ 
    // Contains a call using package.GetByName("Component") 
    // to avoid the situation with multiple Components on the package 
    Component comp = GetComponent(); 
    // Do component stuff 
} 
else 
{ 
    // Do page stuff 
} 
नहीं

सुनिश्चित करें कि आप यह तुलना में बहुत अच्छे वास्तव में संपुटित कर सकते हैं, लेकिन मैं साबित कर दिया जा सकता है गलत।

+0

आप कर रहे हैं:

Item currentItem; if (engine.PublishingContext.ResolvedItem.Item is Page) { currentItem = package.GetByName(Package.PageName); } else { currentItem = package.GetByName(Package.ComponentName); } TcmUri currentId = engine.GetObject(currentItem).Id; 

आप engine.GetObject() कॉल शॉर्टकट चाहते हैं, तो आप सीधे मद के XML से आईडी प्राप्त करने में सक्षम हो सकता है पैकेज के साथ सही। GetByName ("घटक") –

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