如何用my temp替换默认导航portlet

2024-06-09 21:08:39 发布

您现在位置:Python中文网/ 问答频道 /正文

有谁能告诉我如何用我自己的模板替换导航portlet吗。我确实喜欢这样

  1. 我在.py文件中为portlet创建了一个新类,其外观如下所示

    class navigation_address(Renderer):         
          index = ViewPageTemplateFile('templates/portlet_address.pt') 
    
  2. 我在中注册了portlet覆盖.zcml像

    <plone:portletRenderer
      portlet="plone.app.portlets.portlets.navigation.INavigationPortlet"
      class=".browser.createPictMenu.navigation_address"
      />  
    

提前谢谢


Tags: 文件py模板indexaddressplonetemplatesportlet
1条回答
网友
1楼 · 发布于 2024-06-09 21:08:39

使用plone:portletrenderer您只需像以前一样指定源portlet、新模板和层(因此,只有安装了自定义包,它才会在plone站点上活动)。在

<include package="plone.app.portlets" />

<plone:portletRenderer
   portlet="plone.app.portlets.portlets.navigation.INavigationPortlet"
   class=".my.module.MyRenderer"
   layer=".interfaces.IMyPackageLayer"
   />
^{pr2}$

<include package="plone.app.portlets" />确保portlet内容已加载。在

browserlayer已向GenericSetup注册: 地点a浏览器层.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"""

相关问题 更多 >