Настройте класс представления 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
атрибут