Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tridion 2011 SP1 HR1-使用哪个扩展?_Tridion_Tridion 2011_Tridion Content Delivery - Fatal编程技术网

Tridion 2011 SP1 HR1-使用哪个扩展?

Tridion 2011 SP1 HR1-使用哪个扩展?,tridion,tridion-2011,tridion-content-delivery,Tridion,Tridion 2011,Tridion Content Delivery,我们要求在页面发布时,我们需要: 查找具有基于特定架构的组件的组件表示 从该组件中提取某些字段值,并将它们存储在.NET应用程序(在内容交付端)可用的自定义数据库表中 我认为这是部署器扩展或存储扩展的一个很好的候选者,但我有点不清楚是哪一个,为什么从来没有写过 我已经排除了事件系统,因为此类代码将位于CM上,这对我来说似乎是错误的“一面”——我的重点是在发布页面后扩展CD上发生的事情 阅读一些关于Tridion World(、和)的文章,我认为存储扩展是更好的选择 文章似乎非常接近我们的需要,他

我们要求在页面发布时,我们需要:

  • 查找具有基于特定架构的组件的组件表示
  • 从该组件中提取某些字段值,并将它们存储在.NET应用程序(在内容交付端)可用的自定义数据库表中
  • 我认为这是部署器扩展或存储扩展的一个很好的候选者,但我有点不清楚是哪一个,为什么从来没有写过

    我已经排除了事件系统,因为此类代码将位于CM上,这对我来说似乎是错误的“一面”——我的重点是在发布页面后扩展CD上发生的事情

    阅读一些关于Tridion World(、和)的文章,我认为存储扩展是更好的选择

    文章似乎非常接近我们的需要,他使用了一个新的项目类型映射:

    <ItemTypes defaultStorageId="brokerdb" cached="true">
        <Item typeMapping="PublishAction" cached="false" storageId="searchdb" /></ItemTypes>
    
    
    
    但Tridion如何“知道”在发布内容时使用这种新的项目类型(这不是s,这是一种观点)

    我应该澄清我是一个.NET/C#dev而不是Java开发人员,所以这对Java人来说可能是非常明显的——如果是的话,请道歉


    Cheers

    Tridion默认情况下不知道如何部署新实体。我的建议是创建一个Deployer模块(您的链接应该为您提供足够的信息,说明如何做到这一点),该模块在后处理阶段(部署过程)执行,处理部署/传输包中的所有组件,提取所需信息并使用自定义存储扩展来存储所需信息

    小心:您需要在配置中设置新类型,但也需要从部署器模块中自己使用它


    希望这能有所帮助。

    谢谢Daniel-因此我需要两个扩展-一个用于处理组件并设置类型(deployer ext),另一个用于在自定义db(storage ext)中持久化新类型-对吗?似乎Mihai的文章缺少了deployr ext.的解释,除非我误解了?我可能错了,但是cd_storage_conf中的“bundle”不是告诉Tridion这个存储层不仅仅是默认的吗?您不需要部署器扩展来扩展JPA级别(否则它永远不会在网站上工作,只能在部署器上工作)。在我看来,部署器扩展是一个更简单的扩展点。你完全正确,Mihai的文章(“在SDL Tridion 2011中扩展内容交付存储”)缺少Deployer扩展,但Jaime的文章没有(Eclipse的Deployer扩展-步骤5:实现自定义模块类)。查看“”,了解更多详细信息。@NunoLinhares:没错,“bundle”只向Tridion说明新类型,但Neil提到他想从每个组件中提取一些信息并将其添加到数据库中。Tridion方法是将定制信息转换为实体,创建存储扩展,但也创建部署器扩展。总而言之:首先应该构建Deployer扩展,然后构建存储扩展,以实际处理额外的数据。请记住,第二部分确实是可选的,但如果我是你,我希望与Tridion所做的保持一致