Plone: Viewlet von einem Viewlet-Manager in einen anderen verschieben
In diesem Beispiel verschieben wir das Viewlet "plone.site_actions" vom Viewlet-Manager "plone.portalheader" nach "plone.portaltop".
Als erstes Registrieren wir die Siteactions im "plone.portaltop":
browser/configure.zcml
<!-- Moved viewlet registration -->
<browser:viewlet
name="plone.site_actions"
manager="plone.app.layout.viewlets.interfaces.IPortalTop"
class="plone.app.layout.viewlets.common.SiteActionsViewlet"
permission="zope2.View"
layer=".interfaces.IThemeSpecific"
/>
Jetzt noch die Position des verschobenen Viewlets innerhalb von "plone.portaltop" festlegen und das alte im "plone.portalheader" ausblenden.
profiles/default/viewlets.xml:
<?xml version="1.0"?>
<object>
<order manager="plone.portaltop" skinname="My Theme"
based-on="Plone Default">
<viewlet name="plone.site_actions" insert-after="*" />
</order>
<!-- We hide the one we want to move -->
<hidden manager="plone.portalheader" skinname="My Theme">
<viewlet name="plone.site_actions" />
</hidden>
</object>
Alternativ kann man nach dem registrieren in der browse/configure.zcml auch den Viewlet-Manager benutzen.