如何使页脚在 Plone 中自动显示主菜单中的项目?

How to make footer to show items from main menu automatically in Plone?

我在我工作的研究所中使用 Plone 4.1.4 和 Doormat 和 Diazo,必须通过添加内部链接到主菜单项目的每一列和项目来手动制作页脚。

我想要的是这个页脚,这是站点地图,每次用户从主菜单创建、编辑或删除项目时自动更改(内容文件夹).

当我得到这份工作时,我注意到页脚中的许多链接都已过时,而且由于研究所各个部门的许多用户都可以更改结构,所以我知道他们不会更新文件夹和页脚。

我在 Internet 上搜索了一些产品或技巧,但找不到任何解决该问题的方法。

如果您的 Diazo 主题是使用 mr.bob 或 zopeskel 作为 Python 包创建的,您可能已经拥有 z3c.jbot,它允许您轻松覆盖可用的模板。如果是这样,您可能在包中有一个 template_overrides 或类似的目录。如果是这样,只需将一个名为 plone.app.layout.viewlets.footer.pt 的文件放入其中,内容为:

<div i18n:domain="plone"
 id="portal-footer">

<ul id="portal-doormat"
    class="navTreeLevel0 visualNoMarker">
    <tal:sitemap replace="structure context/@@sitemap/createSiteMap" />
</ul>

</div>

然后风格离开!

或者,您可以通过将文件命名为 plone.app.layout.viewlets.colophon.pt.

来替换版权页

如果您的主题没有使用 Python 包(如果 Diazo 主题是通过网络创建的),那么您可以使用 ZMI 中的 portal_view_customizations 工具来制作相同的模板覆盖。

您可能还希望自定义站点地图的深度。这可以通过 portal_properties 工具 navtree_properties 属性 sheet 进行更改。或者,只需使用 CSS 来隐藏不需要的深度。

实现您的需求的另一种更简单的方法是使用 portlet 而不是 viewlet,结合插件“Products.ContentWellPortlets" and "collective.portlet.sitemap”:

1.) 通过 GenericSetup-config 隐藏页脚视图,如本例所示:

http://svn.plone.org/svn/collective/adi.simplestructure/trunk/adi/simplestructure/profiles/default/viewlets.xml

2.) 通过 GenericSetup-config 在页脚区域分配站点地图 portlet,类似于此示例:

http://svn.plone.org/svn/collective/adi.simplestructure/trunk/adi/simplestructure/profiles/default/portlets.xml

提示:首先通过 Web-UI 分配 sitemap-portlet,然后转到 [SITE-URL]/portal_setup,搜索 "portlets",选中它的框并单击导出按钮底部,以获得所需的 xml-file.