2013-06-21 33 views
1

我正在使用第三方产品,它提供了一个过于普遍的plone.uuid.interfaces.IUUIDAware上下文的viewlet,所以它实际上出现在所有东西上。我想重写此限制它在我的网站上的特定内容类型。覆盖viewlet不太普遍

我试着加入以下声明,以在站点包都configures.zcmloverrides.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" 
/> 

然而,它似乎并没有更换该产品提供了一个(我不知道如何参考产品中的模板,从网站包中覆盖,这样就制作了本地副本)。

回答

0

使用方便的configure.zcml而不是overrides.zcml,并添加layer-attribute以将viewlet绑定到产品的界面。

参见: http://developer.plone.org/views/more_view_examples.html

+0

两个'configure.zcml'和'overrides.zcml'尝试这个。它添加了绑定到站点包定义图层的特定类的自定义视图(现在有两个,包括另一个包提供的图层),并且没有从其他所有'IUUIDAware'对象中删除原始视图。我已经更新了问题以显示图层绑定。 –