2012-12-19 23 views
8

Bir GUI uzantısı yazıyorum ve bir Category içinde Keywords listesini almak için Anquilla framework'ü kullanıyorum. Anahtar kelime listesi için bir XML belgesi alıyorum ve bu belgede uzantım dahilinde çalışıyorum.SDL Tridion GetListKeywords Anquilla Framework kullanarak

Sorunum, döndürülen XML'in 'Description' değerini içermemesidir. Ben vs. Başlık ve Anahtarınız

Benim asıl kod şöyle görünür:

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

döndü Tipik bir düğüm şudur: Verecek Filtre kullanarak denedim

Yani
<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> 

Bana dair diğer sütun bilgileri:

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

Ne yazık ki bu ek XML öznitelikleri verir:

XML'den bir Anahtar Kelime nesnesi oluşturmak zorunda kalmadan açıklama değerinin bu XML'in parçası olmasını gerçekten isterim. Böyle bir şey mümkün mü?

öksürük herhangi bir fikir? öksürük

cevap

3

Korkarım ki, Açıklama almak için Anahtar Kelimenin kendisini yüklemeniz gerekecek. Hiçbir listede kullanılmaz, bu nedenle XML'de iade edilmez.

2

Bu bilgiyi listeye eklemek için her zaman bir List Extender oluşturabilir, ancak bu genişleticinin bir GetList çağrıldığında her zaman çalıştırılacağından bu konuda akıllı olmayı deneyin.

Listedeki her anahtar kelimeyi açmak zorunda kalmazsınız, ancak sunucu tarafını (örneğin Core Service/NetTcp ile) gerçekleştirirsiniz, bu da muhtemelen her bir anahtar kelimeyi açmaktan daha kolay ve hızlı olacaktır. Anguilla.

0

Her iki cevap için de teşekkürler. Bu örnekte sadece bir anahtar kelimeye ihtiyacım var, bu yüzden sadece CMS'den aldım. Anguilla bir nesne alma Burada olay herkes kod ilgilendiği var, biraz garip: ana kod alanında

1):

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

Ben özelliklerinde anahtar kelime saklamak ne kadar da fazlalaştı öğenin, yani onselectedKyLoaded işlevi

2) madde

ContentBloom.ExampleGuiExtension.prototype.onselectedKyLoaded = function (event) { 
    var p = this.properties; 
    var selectedDescription = p.selectedKy.getDescription(); 
    // do what you need to do with the description :) 
}; 

yüklendikten sonra denilen fonksiyonun içine alabilirler

Ben thi çözüldü s, cevaba şükürler olsun: https://stackoverflow.com/a/12805939/1221032 - Cheers Nuno :)

İlgili konular