Browserlayer

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

  1. 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.
        """
    
  2. 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>
    
  3. 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"
        />