Package: plone.browserlayer
IntroductionThis package aims to make it easier to register visual components (e.g. views
and viewlets) so that they only show up in a Plone site where they have been
explicitly installed.Basic usageTo use this feature, you should:declare plone.browserlayer as a dependency, e.g. in setup.py:install_requires=[
      'plone.browserlayer',
  ],ensure that its ZCML is loaded, e.g. with an include from your own package:<include package="plone.browserlayer" />create a layer marker interface unique to your product:from zope.interface import Interface
class IMyProductLayer(Interface):
    """A layer specific to my product
    """register this with GenericSetup, in a browserlayer.xml file:<layers>
    <layer name="my.product"
           interface="my.product.interfaces.IMyProductLayer" />
</layers>register visual components in ZCML for this layer, e.g.:<browser:page
    name="my-view"
    for="*"
    layer=".interfaces.IMyProductLayer"
    permission="zope.Public"
    template="my-view.pt"
    />Changelog3.0.2 (2023-10-07)Internal:Update configuration files.
[plone devs] (cfffba8c)3.0.1 (2023-03-14)Internal:Update configuration files.
[plone devs] (ba6bcc29)3.0.0 (2022-11-14)Breaking changes:Drop support for Plone 5 and Python 2.  [maurits] (#600)Bug fixes:Fix ‘KeyError: file’ in browser tests on Python 3.11.
[maurits] (#3663)2.2.4 (2020-09-07)Bug fixes:Fixed deprecation warning forzope.component.interfaces.IComponentRegistry.
[maurits] (#3130)2.2.3 (2020-04-20)Bug fixes:Minor packaging updates. (#1)2.2.2 (2018-09-28)Bug fixes:Fix tests for py3
[pbauer]2.2.1 (2018-02-02)Bug fixes:Add Python 2 / 3 compatibility
[pbauer]2.2.0 (2017-02-12)Bug fixes:Fixed test when using Zope 4.  [maurits]2.1.7 (2016-11-01)Fixes:Removed ZopeTestCase.  We were importing from it but not using it…
[ivanteoh, maurits]2.1.6 (2015-10-27)Fixes:Minor cleanup in order to follow plone code style conventions.
[jensens]2.1.5 (2015-04-29)Rerelease for clarity, because 2.1.4 got released twice.
[maurits]2.1.4 (2015-04-29)Move tests to plone.app.testing.
[sdelcourt,timo]2.1.3 (2014-02-25)Fix tests with diazo.
[davisagli]2.1.2 (2012-10-03)Add support for calling many times remove in export (ie:even when no corresponding layer is registered, remove option should not throw exception).
[toutpt]2.1.1 (2011-11-24)Added uninstall support to browserlayer.xml with the ‘remove’ option.
[maurits]GS export xml is now repeatable. Before two consecutive exports could
yield differently ordered results.
[do3cc]2.1 - 2011-05-12Update import of BeforeTraverseEvent to come from zope.traversing instead
of zope.app.publication.
[davisagli]Add MANIFEST.in
[WouterVH]2.0.1 - 2010-09-21Make sure the layers don’t get applied twice if the site is traversed more
than once (such as in a vhosting URL).
[davisagli]2.0 - 2010-07-18Update license to GPL version 2 only.
[hannosch]Package metadata cleanup, require Zope2 distribution.
[hannosch]1.0.1 - 2009-09-09Be more robust against broken layer registrations. These can occur when
packages with registered layers are removed.
[wichert]Clarified license and copyright.
[hannosch]Register ourselves for the more generic ISiteRoot from CMFCore and not
IPloneSiteRoot.
[hannosch]Declare test dependencies in an extra.
[hannosch]Specify package dependencies.
[hannosch]1.0.0 - 2008-04-20Unchanged from 1.0rc41.0rc4 - 2008-04-13Register the GenericSetup import and export steps using zcml. This means you
will no longer need to install this package manually.
[wichert]1.0rc3 - 2008-03-09Include README.txt and HISTORY.txt in the package’s long description.
[wichert]Add metadata.xml to the GenericSetup profile. This fixes a deprecation
warning for Plone 3.1 and later.
[wichert]1.0b1 - 2007-09-23Initial package structure.
[zopeskel]