如果视图是这样注册的,则使用zcml中的模板定义:
<browser:page
name="original-view"
class=".original_view.View"
permission="zope2.View"
for="*"
template="original_template.pt"
/>
我想在我的产品中仅自定义他的课程,有没有办法在不定制模板的情况下进行?
答案 0 :(得分:8)
您必须按<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),则可以将代码(不带图层属性)放入overrides.zcml
您还可以在Interface
属性
for