如何在Plone上扩展扩展内容类型



我正在研究插件及其模式扩展程序、接口、适配器、提供程序。。。但我找不到如何扩展扩展模式。我会更好地解释我的情况:

我有三个加数:L,H和V,其中L是"基本"加数。所以H依赖于L的内容类型,因为它是L的扩展。内容扩展是使用prototypes.schemaextender包进行的。

现在我想实现V,它应该是H的扩展,以实现以下结构:

L→H→V

Addon"L":

此插件的内容类型定义为类Batch(ATFolder)。这个插件也有自己的模式和接口标记IcontentA。

批次.py

class Batch(ATFolder):
implements(IBatch)
schema =....

接口.py

class IBatch(Interfaces)

Addon"H">

这个插件从L中获得内容类并将其扩展为

批次.py

from archetypes.schemaextender.interfaces import IOrderableSchemaExtender
class BatchSchemaExtender(Object):
adapts(IBatch)
implements(IOrderableSchemaExtender)

配置.zcml

<adapter factory=".batch.BatchSchemaExtender " />

好的,现在我想用另一个插件来扩展内容的模式。我做过类似的事情:

Addon"L":

批次.py

class Batch(ATFolder):
implements(IBatch)
schema =....

接口.py

class IBatch(Interfaces)    

Addon"H">

批次.py

from archetypes.schemaextender.interfaces import IOrderableSchemaExtender
class BatchSchemaExtender(Object):
adapts(IBatch)
implements(IOrderableSchemaExtender,  IBatchH)

配置.zcml

<adapter factory=".batch.BatchSchemaExtender”
provides=”archetypes.schemaextender.interfaces.IOrderableSchemaExtender" />

接口.py

class IBatchH(Interface)

Addon"V":

批次.py

from archetypes.schemaextender.interfaces import IOrderableSchemaExtender
class BatchV(Object):
adapts(IBatchH)
implements(IOrderableSchemaExtender,  IbatchV)

接口.py

class IBatchV(Interface)

配置.zcml

<adapter
for="L.interfaces.IBatch"
provides="archetypes.schemaextender.interfaces.IOrderableSchemaExtender"
factory=".batch.BatchV"
/>

正如你所期望的那样,它不起作用。。。但我不知道是否有可能扩展一个扩展类。我必须指出,每个类都有自己的initgetFieldsgetOrder函数。如果我更改V插件上的自适应定义,我会得到一个错误。V插件中的每个函数都有一个`pdb.set_trace()定义,但实例不会停止。。。

编辑时间:我在这封邮件中发现:"你不能覆盖覆盖。你唯一的希望可能是z3c.unconfigure:

http://pypi.python.org/pypi/z3c.unconfigure">

为单个内容类型注册多个schemaextenders应该可以正常工作;我认为你在V的注册不正确。

在V中,你说

<adapter
for="L.interfaces.IBatch"
provides="archetypes.schemaextender.interfaces.IOrderableSchemaExtender"
factory=".batch.BatchV"
/>

相应的类有一行:

自适应(IBatchH)。

这可能是

adapts(L.interfaces.IBatch)

如果Plone启动时存在任何配置冲突,则需要向其他注册添加name="something_unique"以消除冲突。

相关内容

  • 没有找到相关文章

最新更新