gpt4 book ai didi

plone - 在 Plone 中覆盖另一个产品的 View 模板

转载 作者:行者123 更新时间:2023-12-04 17:55:24 24 4
gpt4 key购买 nike

我正在使用 Plone 4.1.2,并且试图覆盖由collective.contenleadimage 提供的 View 模板。通过 portal_view_customization 编辑提供的模板很容易,但我想尝试从文件系统中的策略产品中进行编辑。

我想替换 c.contentleadimage 的 folder_leadimage_view。

这就是我在我的保单产品中所做的。

在interfaces.py

from zope.interface import Interface

class IExamplePolicy(Interface):
"""Marker interface that defines a Zope 3 browser layer.
"""

在配置文件/默认/browserlayer.xml
<?xml version="1.0"?>
<layers>
<layer name="example.policy"
interface="example.policy.interfaces.IExamplePolicy" />
</layers>

在浏览器/configure.zcml
<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"
/>

我的保单产品安装良好,我可以在 portal_view_customization 中看到
Products.Archetypes.interfaces.base.IBaseFolder
folder_leadimage_view (example.policy.interfaces.IExamplePolicy)
folder_leadimage_view (collective.contentleadimage.interfaces.ILeadImageSpecific)

但是,我的新模板不是 Plone 呈现的模板。

我将不胜感激。

最佳答案

更改您的 interfaces.py到:

from collective.contentleadimage.interfaces import ILeadImageSpecific

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

浏览器层是应用于请求的标记。您的 IExamplePolicy和collective.contentleadimage 的 ILeadImageSpecific浏览器层被应用,但通过继承 ILeadImageSpecific对于您的浏览器层,您将覆盖 folder_leadimage_view查看比collective.contentleadimage 自己的更具体。

有关 Zope 组件架构接口(interface)解析顺序的更多信息,请参阅 the Dexterity manual 中的“使用更具体的适配器进行定制”部分。 .

关于plone - 在 Plone 中覆盖另一个产品的 View 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9337836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com