您只需要像您一样指定源portlet、新模板和一个层(因此plone:portletrenderer
,如果安装了您的自定义包,它仅在您的克隆站点上处于活动状态)。
<include package="plone.app.portlets" />
<plone:portletRenderer
portlet="plone.app.portlets.portlets.navigation.INavigationPortlet"
class=".my.module.MyRenderer"
layer=".interfaces.IMyPackageLayer"
/>
from plone.app.portlets.portlets.navigation import Renderer as NavigationRenderer
class MyRenderer(NavigationRenderer):
_template = ViewPageTemplateFile('template/my_navi_template.pt')
<include package="plone.app.portlets" />
确保已加载 portlet 内容。
browserlayer 使用 GenericSetup 注册: 在您的配置文件中放置 browserlayer.xml:
<?xml version="1.0"?>
<layers>
<layer name="my.package.layer"
interface="my.package.interfaces.IMyPackageLayer" />
</layers>
和界面:
from zope.interface import Interface
class IMyPackageLayer(Interface):
"""Request marker interface"""