archetype.schemaextender和Grok适配器

时间:2012-05-10 20:24:39

标签: plone zope grok

如何向archetypes.schemaextenders注册five.grok

尝试:

class QuickNavExtender(grok.Adapter):
    """
    Define schema fiddler which injects a new field to every item.
    """

    # This field comes on every AT content item
    grok.adapts(ISchemaExtender)
    grok.provider(ISchemaExtender)
    grok.context(IBaseContent)

    #adapts(IBaseContent)
    implements(ISchemaExtender)    

    fields = [
            ExtensionBooleanField("quicknav",
                widget = atapi.BooleanWidget(
                    label="Quick jump navigation",
                    description="Allow in-page jumping by navigation links"
                ),

                # On which edit tab this field appears
                schemata = "settings"
            )
    ]

......没有被接走。

但是如果你添加这个ZCML片段并回退Zope 3样式注册它可以工作:

<adapter factory=".extender.QuickNavExtender"
   provides="archetypes.schemaextender.interfaces.ISchemaExtender" />

1 个答案:

答案 0 :(得分:3)

我想你想要:

class QuickNavExtender(grok.Adapter):
    grok.context(IBaseContent)
    grok.implements(ISchemaExtender)
    # fields here...
相关问题