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

时间:2016-05-11 12:59:34

标签: plone

我在我工作的学院使用Plone 4.1.4与Doormat和Diazo,并且必须通过添加内部链接到主菜单中项目的每个列和项目来手动制作页脚。

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

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

我在互联网上搜索了一些产品或小费,但我不知道&#39;找到解决这个问题的任何东西。

enter image description here

2 个答案:

答案 0 :(得分:3)

如果您的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替换colophon。

如果您没有为主题使用Python包(如果Diazo主题是通过Web创建的),那么您可以使用ZMI中的portal_view_customizations工具来进行相同的模板覆盖。< / p>

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

答案 1 :(得分:3)

实现您的需求的另一种更简单的方法,可以是使用portlet而不是viewlet,结合插件&#34; Products.ContentWellPortlets&#34;和&#34; collective.portlet.sitemap&#34;:

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

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

2.。)通过GenericSetup-config在页脚区域中分配sitemap-portlet,类似于此示例:

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

提示:首先通过Web-UI分配sitemap-portlet,然后转到[SITE-URL]/portal_setup,搜索&#34; portlet&#34;,选中它的框并单击底部的导出按钮,获取所需的xml文件。