1

に登録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" />
4

1 に答える 1

3

私はあなたが欲しいと思います:

class QuickNavExtender(grok.Adapter):
    grok.context(IBaseContent)
    grok.implements(ISchemaExtender)
    # fields here...
于 2012-05-10T20:43:43.957 に答える