这类似于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暴露它。
答案 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@@