Tridion 访问组件';从自定义部署器中删除字段

Tridion 访问组件';从自定义部署器中删除字段,tridion,Tridion,我正在尝试在Tridion2011SP1中创建一个自定义部署器,一旦发布,它可以将组件索引到solr实例。一切正常,但我遇到了一点问题,它对组件字段进行索引的方式 通过使用Component.getCustomMeta()方法并解析XML,我可以访问元数据字段。但是,如果不读入正在输出的文件并对输出进行解析,访问普通字段似乎是不可能的。这并不是完全可行的,因为标记可能会改变,而且要做(希望如此)简单的事情似乎还有很长的路要走 我浏览了文档,似乎没有任何东西可以获取字段值,所以我在这里不知所措,需

我正在尝试在Tridion2011SP1中创建一个自定义部署器,一旦发布,它可以将组件索引到solr实例。一切正常,但我遇到了一点问题,它对组件字段进行索引的方式

通过使用Component.getCustomMeta()方法并解析XML,我可以访问元数据字段。但是,如果不读入正在输出的文件并对输出进行解析,访问普通字段似乎是不可能的。这并不是完全可行的,因为标记可能会改变,而且要做(希望如此)简单的事情似乎还有很长的路要走


我浏览了文档,似乎没有任何东西可以获取字段值,所以我在这里不知所措,需要解析输出还是遗漏了什么?

内容字段在交付端没有公开,内容公开为“内容”,这并不奇怪

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

  • 为组件演示生成“可解析”输出
  • 在发布组件演示文稿时对其进行分析
  • 看看类似方法的实现


    简言之,你不能这样做,因为Tridion不会在开箱即用的情况下将其暴露出来。唯一的方法是通过模板更改内容输出格式。

    我们已经做了一个替代解决方案,以满足类似的需求。该实现的一个缺点是额外呈现XML中的组件表示,并在代理中复制XML存储

    以下是我们所做的:

  • 创建了动态CT(内容的XML表示)GetComponentAsXML并映射到所有架构
  • 所有页面模板都有一个C#TBB,用于查找我们需要推送到SOLR的内容
  • C#TBB使用上述动态CT GetComponentAsXML执行RenderComponentPresentation,这将推送XML(engine.RenderComponentPresentation(component.Id,componentTemplateURI)
  • Deployer现在以xml格式获取内容,以及其他类型的组件演示(如ascx、eMeeded on page等)

  • 希望这些信息能有所帮助。

    谢谢Ram,这看起来确实是一种合理的方式。我目前正在研究事件系统,以便为页面和动态CP的发布/取消发布绑定一个事件处理程序。它似乎进展顺利,但如果失败,我将研究类似于您所描述的内容