我使用的是一个第三方产品,它提供了一个带有过度普及的plone.uuid.interfaces.IUUIDAware上下文的viewlet,因此它可以有效地出现在所有内容中。我想要覆盖它,以限制它在我的网站上的特定内容类型。
我尝试将以下声明添加到站点包中的configures.zcml和overrides.zcml中:
<browser:viewlet
name="other.product.viewlet"
for="my.site.interfaces.ICustomContentType"
manager="plone.app.layout.viewlets.interfaces.IAboveContentBody"
class="other.product.ViewletClass"
template="browser/copy_of_product_viewlet.pt"
layer="my.site.interfaces.ISiteLayerMarker"
permission="zope2.View"
/>但是,它似乎不能取代产品提供的模板(我不确定如何从站点包覆盖中引用产品中的模板,所以创建了一个本地副本)。
发布于 2013-06-28 16:49:51
使用方便的层而不是overrides.zcml,并添加configure.zcml -属性以将viewlet绑定到您的产品界面。
另请参阅:http://developer.plone.org/views/more_view_examples.html
https://stackoverflow.com/questions/17226732
复制相似问题