Настройте класс представления Plone, не касаясь шаблона.

Если представление зарегистрировано следующим образом, с определением шаблона в zcml:

<browser:page
    name="original-view"
    class=".original_view.View"
    permission="zope2.View"
    for="*"
    template="original_template.pt"
    />

и я хочу настроить только его класс в моем продукте, есть ли способ сделать это, не настраивая также шаблон?

1 ответ

Решение

Вы должны обернуть браузер: страница по <configure package='XXXX'>

Это означает, что вы в рамках этого пакета.

Пример:

<configure package="original.package.browser">
    <!-- custom view -->
    <browser:page
        name="original-view"
        class="your.package.browser.View" <!-- Full dotted name to you custom view class -->
        permission="zope2.View"
        for="*"
        layer="your.package.interfaces.IYourPackageLayer" <!-- You should provide a browserlayer, otherwise you got a configuration conflict -->
        template="original_template.pt" <!-- template from original.package.browser -->
    />

</configure>

РЕДАКТИРОВАТЬ:

Как уже упоминалось в @sdupton, я обновил пример кода со слоем. Если вы не можете использовать слой (BrowserLayer), вы можете поместить код без атрибута layer в overrides.zcml

Вы также можете указать более точный Interface в for атрибут

Другие вопросы по тегам