元のポートレット、新しいテンプレート、およびレイヤーを指定するだけです (したがってplone:portletrenderer
、カスタム パッケージがインストールされている場合、plone サイトでのみアクティブになります)。
<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" />
ポートレットがロードされていることを確認します。
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"""