2013-06-21 65 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'對象中刪除原始視圖。我已經更新了問題以顯示圖層綁定。 –