Browserlayer vereinfachen die Registrierung visueller Elemente wie Views, Viewlets etc. sodass diese Elemente nur in den Sites erscheinen, in denen sie explizit installiert wurden.
Verwendung
Zunächst wird ein Marker-Interface z.B. in vs.theme/vs/theme/browser/interfaces.py erstellt:
from plone.theme.interfaces import IDefaultPloneLayer class IThemeSpecific(IDefaultPloneLayer): """Marker interface that defines a Zope 3 browser layer. If you need to register a viewlet only for the "vs.theme" theme, this interface must be its layer. """
Anschließend kann dieses Marker-Interface regsitriert werden in vs.theme/vs/theme/profiles/default/browserlayer.xml, z.B.:
<layers> <layer name="vs.theme" interface="vs.theme.interfaces.IThemeSpecific" /> </layers>
Schließlich können visuelle Komponenten für diesen Browserlayer registriert werden in vs.theme/vs/theme/browser/configure.zcml, z.B.:
<browser:page for="Products.CMFCore.interfaces.ISiteRoot" name="dashboard" permission="plone.app.portlets.ManageOwnPortlets" class="plone.app.layout.dashboard.dashboard.DashboardView" template="templates/dashboard.pt" layer=".interfaces.IThemeSpecific" />