代码之家  ›  专栏  ›  技术社区  ›  Alvin Reyes

我应该如何从DWT中获取关键字密钥

  •  3
  • Alvin Reyes  · 技术社区  · 14 年前

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

    我们可以得到 keyword's key via a C# 待定。

    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 回复  |  直到 9 年前
        1
  •  3
  •   David Forster    14 年前

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

    @@Keyword${Component.Metadata.state}Value@@
    
        2
  •  3
  •   johnwinter    14 年前

    对此,我怀疑您需要按照建议走TBB路线,甚至编写自己的DWT函数来公开它。

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

    推荐文章