从自定义部署者访问组件的字段

时间:2012-05-09 12:52:51

标签: tridion

我正在尝试在Tridion 2011 SP1中创建一个自定义部署程序,它可以在发布后将组件索引到solr实例。一切都运行正常,但我对组件字段的索引方式遇到了一些问题。

我可以通过使用Component.getCustomMeta()方法和解析XML来访问元数据字段。但是,如果不读取正在输出的文件并解析输出,则访问正常字段似乎是不可能的。这并不是完全可行的,因为标记可能会发生变化,而且做一些应该(希望)是一件简单的事情似乎还有很长的路要走。

我已经浏览了文档,似乎没有任何东西可以获取字段值,所以我在这里感到茫然,需要解析输出还是我在某处遗漏了什么?

2 个答案:

答案 0 :(得分:12)

内容字段不会在传递方面公开,内容会以“内容”的形式公开。

如果您确实需要这些字段,则需要:

  1. 为您的组件演示文稿生成“可解析”输出
  2. 在发布时解析组件演示文稿。
  3. 查看类似方法的DD4T等实现。

    简而言之 - 你不能这样做,因为Tridion不会暴露它。唯一的方法是通过模板更改内容输出格式。

答案 1 :(得分:4)

我们已经做了另一种解决方法来实现类似的要求。实现的一个缺点是XML中的Component Presentations的额外呈现和代理中的xml存储的副本。

以下是我们所做的:

  1. 创建动态CT(内容的XML表示)GetComponentAsXML并映射到所有模式
  2. 所有页面模板都有一个C#TBB,用于查找我们需要推送到SOLR的内容
  3. C#TBB使用上面的动态CT GetComponentAsXML执行RenderComponentPresentation,这会推送XML(engine.RenderComponentPresentation(component.Id,componentTemplateURI)
  4. Deployer现在以xml格式获取内容,此外还有其他类型的组件演示(如ascx,emebedded on page等)。
  5. 希望这些信息有所帮助。