我应该如何从DWT获取Keyword Key

时间:2012-09-20 09:10:28

标签: tridion tridion-2011

这类似于XSLT question,但最终用于DWT。

我们可以获得keyword's key via a C# TBB。

ItemFields fields = new ItemFields(component.Metadata, component.Schema);
KeywordField keywordField = fields["state"] as KeywordField;

String stateValue = package.EvaluateExpression("Component.Metadata.state");

package.PushItem("statekey", package.CreateStringItem(ContentType.Text, keywordField.Value.Key));

在DWT中,我有时想要组件中所选关键字的key

是否正确地从包中添加和获取这些内容?

@@Component.Metadata.State@@让我获得了价值。直接从DWT引用密钥会很棒,但我没有看到任何建议DWT暴露它。

2 个答案:

答案 0 :(得分:3)

我怀疑你需要按照你的建议走下TBB路线,或者甚至编写你自己的DWT功能来揭露它。

您可以在此处找到创建DWT功能的示例:http://www.tridiondeveloper.com/get-and-set-variables-in-dwts

答案 1 :(得分:3)

作为约翰回答的另一种选择。如何对Will的“获取组件模板Uris”采取类似的方法,并编写一个TBB,迭代一个类别的关键字,并将它们写入具有所需输出值的包中?然后,您可以直接从DWT使用这些值,并使用“双重评估”,如:

@@Keyword${Component.Metadata.state}Value@@