覆盖另一个产品';Plone中的s视图模板

覆盖另一个产品';Plone中的s视图模板,plone,Plone,我正在使用Plone 4.1.2,并试图覆盖collective.contenleadimage提供的视图模板。通过portal\u view\u定制编辑提供的模板很容易,但我想尝试在文件系统中的策略产品中进行编辑 我想替换c.contentleadimage的文件夹\u leadimage\u视图 这就是我在政策产品中所做的 在interfaces.py中 from zope.interface import Interface class IExamplePolicy(Interface)

我正在使用Plone 4.1.2,并试图覆盖collective.contenleadimage提供的视图模板。通过portal\u view\u定制编辑提供的模板很容易,但我想尝试在文件系统中的策略产品中进行编辑

我想替换c.contentleadimage的文件夹\u leadimage\u视图

这就是我在政策产品中所做的

在interfaces.py中

from zope.interface import Interface

class IExamplePolicy(Interface):
    """Marker interface that defines a Zope 3 browser layer.
    """
在profiles/default/browserlayer.xml中

<?xml version="1.0"?>
<layers>
    <layer name="example.policy" 
           interface="example.policy.interfaces.IExamplePolicy" />
</layers>
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:i18n="http://namespaces.zope.org/i18n"
xmlns:zcml="http://namespaces.zope.org/zcml"
i18n_domain="example.policy">


<browser:page
     for="Products.Archetypes.interfaces.IBaseFolder"
     name="folder_leadimage_view"
     class="collective.contentleadimage.browser.folder_leadimage_view.FolderLeadImageView"
     template="folder_leadimage_view.pt"
     layer="..interfaces.IExamplePolicy"
     permission="zope2.View"
     allowed_attributes="tag"
/>

<browser:page
     for="Products.CMFPlone.interfaces.IPloneSiteRoot"
     name="folder_leadimage_view"
     class="collective.contentleadimage.browser.folder_leadimage_view.FolderLeadImageView"
     template="folder_leadimage_view.pt"
     layer="..interfaces.IExamplePolicy"
     permission="zope2.View"
 />
但是,我的新模板不是Plone呈现的模板


我将非常感谢您的帮助

将您的
接口.py
更改为:

from collective.contentleadimage.interfaces import ILeadImageSpecific

class IExamplePolicy(ILeadImageSpecific):
    """Marker interface that overrides collective.contentleadimage's
    browser layer.
    """
浏览器层是应用于请求的标记。您的
IExamplePolicy
和collective.contentleadimage的
ILeadImageSpecific
浏览器层都已应用,但通过继承浏览器层的
ILeadImageSpecific
,您可以使覆盖的
文件夹\u leadimage\u视图
视图比collective.contentleadimage自己的视图更具体


有关Zope组件体系结构接口解析顺序的更多信息,请参阅中的“使用更多特定适配器进行自定义”部分。

谢谢。这很有效。我将检查灵巧手册。
from collective.contentleadimage.interfaces import ILeadImageSpecific

class IExamplePolicy(ILeadImageSpecific):
    """Marker interface that overrides collective.contentleadimage's
    browser layer.
    """