Movendo um viewlet de um gerenciador de viewlet para outro
O título já diz tudo...
A partir do Plone 3.0, o main_template.pt invoca gerenciadores de viewlets ao invés de METAL macros. Aprenda neste tutorial como viewlets podem ser programaticamente, reordenados, omitidos ou adicionados.
Página
5
de
5.
Para mover um viewlet de um gerenciador de viewlet para outro nós teremos que aplicar o que já foi coberto nos parágrafos anteriores:
Nós temos que esconder o viewlet no gerenciador de viewlet do qual queremos tirá-lo e registrá-lo para o outro gerenciador de viewlet no layer Zope 3 que corresponda ao nosso tema.
Vamos assumir que queremos mover o portal actions do topo para o fim...
em brower/interfaces.py, nós devemos configurar no layer Zope 3:
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
class IMyThemeSpecific(IDefaultBrowserLayer):
"""Marker interface that defines a Zope 3 layer.
It will be used for the viewlets that we want to add to the
"My Theme" skin only.
"""
em browser/configure.zcml:
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
i18n_domain="mytheme">
<interface
interface=".interfaces.IMyThemeSpecific"
type="zope.publisher.interfaces.browser.IBrowserSkinType"
name="My Theme"
/>
<!-- Moved viewlet registration -->
<browser:viewlet
name="plone.site_actions"
manager="plone.app.layout.viewlets.interfaces.IPortalFooter"
class="plone.app.layout.viewlets.common.SiteActionsViewlet"
permission="zope2.View"
layer=".interfaces.IMyThemeSpecific"
/>
</configure>
em profiles/default/viewlets.xml:
<?xml version="1.0"?>
<object>
<order manager="plone.portalfooter" 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>
Feito!
Tudo que fizemos, fizemos sem tocar no main_template.pt, não é um sucesso?
por Daniel Vainsencher
Última modificação
02/07/2007 08:18
Contribuidores: Daniel Vainsencher - Tradução para português, David Convent - Autor
Creative Commons