【问题标题】:How should I use keyword metadata?我应该如何使用关键字元数据?
【发布时间】:2013-01-08 22:55:36
【问题描述】:

除了名称、键、值和与其他关键字的关系之外,关键字本身还可以具有元数据。这允许作者通过选择元数据模式来添加其他信息,然后添加任何内容:

  • 文字
  • 选择(带有选项或类别的文本)
  • 链接

SDL Live Content 描述了如何retrieve Keyword properties。给定一个关键字myKeyword,我们可以将myKeyword.KeywordMeta.NameValues 作为名称-值对(字典)。

我可以看到用例将在演示服务器端代码中,.NET 或 Java 开发人员可以获得给定关键字的其他信息。

我将关键字理解为对组件进行分类并为作者提供其他领域选择的选项。在大多数需要字段的情况下,我会推荐一个组件,但要确保我了解我们应该如何使用关键字元数据和任何编程限制。

  • 对于 SDL Translation Manager,关键字元数据是否可以翻译?它看起来像keywords themselves are translatable as part of a Category(以及各个关键字,具体取决于您的版本*)。我们当然可以在没有翻译管理器的情况下本地化关键字。
  • 关键字元数据是否适用于内容管理器?例如,您会在 C# TBB 中使用它吗?

其他人想知道的更新:请务必检查您的 SDL Tridion 和 SDL Translation Manager 版本——Lars 指出 SDL Translation Manager 3.0 版确实具有单关键字翻译功能。 Chris 注意到 GA 中的行为。如有疑问,请查看文档或在您的设置中确认。

【问题讨论】:

    标签: tridion tridion-content-delivery


    【解决方案1】:

    在构建分类驱动导航时,您可能会考虑使用关键字元数据。过去,我为 SEO 目的添加了要添加到站点的路径和其他数据的值,甚至尝试添加到 MM 组件的链接以用作渲染网页上的背景图像和按钮。但是在 Tridion 2011 中,GA 二进制数据没有发布到 Broker,所以我需要一个不同的解决方案。这可能已在以后的版本中修复,但我最近没有尝试过。

    【讨论】:

    • +1 感谢您指出版本。看起来 Priyank 描述了我们如何仍然可以从关键字元数据中获取单个 MM 组件。不过,使用默认完成操作 TBB 获得类似于模板的“自动”会更顺畅。
    【解决方案2】:

    是的,我已使用 C# TBB 访问关键字元数据字段中的值。

    首先您必须使用参数模式将类别名称传递给 C# TBB,然后

    其次,您必须通过以下代码访问该类别

     Publication publication = GetPublication();
    
                TcmUri uri = new TcmUri(int.Parse(_itemId), ItemType.Category, publication.Id.ItemId);
                _session = engine.GetSession();
                Category cat = new Category(uri, _session);
    
                Log.Debug("the uri is " + uri);
                Log.Debug("the cat is " + cat);
    
                Filter filter = new Filter();
                //filter.Conditions["IsRoot"] = true; // This works with Tridion 2011 only!
    
                List<Keyword> keys = cat.GetKeywords(filter) as List<Keyword>; 
    

    最后,在访问 Keys 之后,您必须在 Keys 上循环并获取 Metadata 字段,如下所示

    ItemFields fields = new ItemFields(key.Metadata, key.MetadataSchema);
    

    【讨论】:

    • 谢谢,+1 示例并指出需要循环。
    【解决方案3】:

    我正在处理一个我们广泛使用关键字元数据的项目。 对于内容管理器来说,这有点习惯,因为您正在将内容移动到小块中,而在 Tridion 的早期,这对于对某些内容进行分类只是微不足道的。

    但是,我们使用它来显示整个网站显示的不同部门和组的动态联系方式。对于其他一些在网站范围内使用文本、图像和指向这些关键字分类的内容的链接。

    重新发布该类别和整个网站已更新、更正(编辑)和文本相同的内容。

    我为此使用了关键字而不是动态组件,因为它似乎是用于动态内容的最佳方式,无论如何都必须对其进行分类。这样,即使在一年前发布时,有关此动态项目的其他分类的所有参考信息也将始终保持最新。

    顺便说一下,这个解决方案是使用 Tridion 2009 SP1 和 Java。

    我一直很喜欢经纪人和分类法;-)

    【讨论】:

    • +1,很好的用例。我很想听听更多,也许在帖子或代码网站之一上。我喜欢让你的内容模型保持简单——这样你就不需要为在关键字和某个值之间具有 1:1 映射的东西使用额外的组件链接。
    【解决方案4】:

    如果您使用 Tridion 2011 SP1(包括 Translation Manager 3.0),您可以翻译单个关键字 - 而不仅仅是整个类别。

    您还可以翻译关键字元数据 - 这在以前版本的翻译管理器中也可能是可能的(如果您使用的是 Tridion 2011 GA),但我无法确定。它没有被列为 3.0 的新功能,这表明它以前是可能的……但它当然也可能被错误地排除在新功能列表之外。 :)

    【讨论】:

    • 明确的答案,您是否有兴趣提交Area 51 Tridion specific proposal。如果有时间,请使用同一个 SO 帐户注册。
    • +1,假设我有 Tridion 和“其他所有东西”,这很糟糕,但翻译管理器的要点是,我会更新我的帖子。请查看 Area 51 提案——我们需要相关技术方面的专业知识,我认为 StackOverflow 不允许非编程但仍是相当技术性的问题。
    【解决方案5】:

    关于元数据,我一直认为它是“关于数据的数据”,因此我不会将它直接用于内容目的,对我来说唯一的例外是多媒体组件上的元数据(因为你没有那里的常规内容字段)。但是再看看关键字,我认为这在某些时候可能是我的规则的另一个例外。

    如果您根据关键字构建导航,则可以使用其他数据,包括(可翻译的)内容。关键字的元数据可以通过翻译管理器进行翻译,但如果我没记错的话,它不会转发给经纪人。因此,要使用它,您必须将其存储为例如站点地图页面(通过页面中的模板/C# TBB 编写关键字元数据)。

    【讨论】:

    • 为什么翻译不会在 Broker 中更新?我对 Broker 中的本地化关键字元数据没有任何问题,这正是 TMS 所做的,对吧?
    • 我在代理中找不到任何关键字元数据,但显然在最新版本中确实发生了变化
    • 我喜欢这样——所以 keyword 元数据可以是“关于这些可选选项的数据”。 +1 并接受回答这两个问题(也许我应该对结合两个问题投反对票)。谢谢大家的回答。
    猜你喜欢
    • 2014-01-20
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2011-07-27
    • 2017-08-25
    • 2010-10-12
    相关资源
    最近更新 更多