2012-12-19 10 views
8

का उपयोग कर एसडीएल ट्रिडियन GetListKeywords मैं Category के भीतर Keywords की सूची प्राप्त करने के लिए एक जीयूआई एक्सटेंशन लिख रहा हूं और एंकिला फ्रेमवर्क का उपयोग कर रहा हूं। मैं कीवर्ड के सूची के लिए एक XML दस्तावेज़ प्राप्त कर रहा हूं और उसके बाद उस दस्तावेज़ के साथ अपने एक्सटेंशन में काम कर रहा हूं।एन्किला फ्रेमवर्क

मेरी समस्या यह है कि लौटाए गए XML में कीवर्ड का 'Description' मान नहीं है। मैं शीर्षक और कुंजी आदि

मेरे मूल कोड इस तरह दिखता है:

var category = $models.getItem("CATEGORYTCMID:); 
var list = category.getListKeywords(); 
list.getXml(); 

लौटे एक ठेठ नोड यह है:

<tcm:Item ID="tcm:4-1749-1024" 
Type="1024" Title="rate_one" Lock="0" IsRoot="true" 
Modified="2012-12-17T23:01:59" FromPub="010 Schema" 
Key="rate_one_value" IsAbstract="false" 
CategoryTitle="TagSelector" 
CategoryID="tcm:4-469-512" Icon="T1024L0P0" 
Allow="268560384" Deny="96" IsNew="false" 
Managed="1024"/></tcm:ListKeywords> 

तो मैं एक फिल्टर का उपयोग कर देने के लिए कोशिश की है मुझे अतिरिक्त कॉलम जानकारी:

var filter = new Tridion.ContentManager.ListFilter(); 
filter.columns = Tridion.Constants.ColumnFilter.EXTENDED; 
var list = category.getListKeywords(filter); 

दुर्भाग्य से यह केवल अतिरिक्त XML विशेषता देता है:

IsShared="true" IsLocalized="false" 

मुझे एक्सएमएल से कीवर्ड ऑब्जेक्ट बनाने के बिना वास्तव में विवरण मान को इस एक्सएमएल का हिस्सा बनना पसंद है। क्या ऐसा करना संभव है?

खांसी कोई विचार? खांसी

उत्तर

3

मुझे डर है कि आपको विवरण प्राप्त करने के लिए कीवर्ड को लोड करना होगा। इसका उपयोग किसी भी सूचियों में नहीं किया जाता है, इसलिए यह XML में वापस नहीं किया जाता है।

2

आप इस जानकारी को सूची में जोड़ने के लिए हमेशा List Extender बना सकते हैं, लेकिन इसके बारे में स्मार्ट होने का प्रयास करें क्योंकि यह विस्तारक हर बार GetList कहलाता है।

आपको सूची में प्रत्येक कीवर्ड को खोलने से नहीं बचाएगा, लेकिन आप इसे सर्वर-साइड (उदाहरण के लिए कोर सेवा/नेटटीसीपी के साथ) कर रहे हैं जो संभवतः प्रत्येक कीवर्ड को खोलने से आसान और तेज़ होगा एंगुइला।

0

दोनों उत्तर chaps के लिए धन्यवाद। इस उदाहरण में मुझे केवल एक कीवर्ड की आवश्यकता है, इसलिए मैं इसे सीएमएस से प्राप्त करता हूं। एंगुइला में एक वस्तु हो रही है थोड़ा अजीब है, यहाँ घटना किसी में कोड रुचि रखता है है:

1) अपने मुख्य कोड क्षेत्र में:

var selectedKy = $models.getItem("TcmUriOfKeywordHere"); 
    if (selectedKy.isLoaded()) { 
    p.selectedKy = selectedKy; 
    this.onselectedKyLoaded(); 
    } else { 
    $evt.addEventHandler(selectedKy, "load", this.onselectedKyLoaded); 
    selectedKy.load(); 
    } 

कैसे मैं गुण में कीवर्ड की दुकान यह ध्यान देने योग्य है मद की, तो मैं यह onselectedKyLoaded समारोह

2) समारोह एक बार आइटम

ContentBloom.ExampleGuiExtension.prototype.onselectedKyLoaded = function (event) { 
    var p = this.properties; 
    var selectedDescription = p.selectedKy.getDescription(); 
    // do what you need to do with the description :) 
}; 
भरी हुई है कहा जाता है में प्राप्त कर सकते हैं

मैं थी संकल्प लिया एस, यहां उत्तर के लिए धन्यवाद: https://stackoverflow.com/a/12805939/1221032 - चीयर्स नुनो :)