setDefaultSkin(request)
Sets the default skin for the request.
The default skin is a marker interface that can be registered as an adapter that provides IDefaultSkin for the request type.
If a default skin is not available, the default layer (IDefaultBrowserLayer) is used.
To illustrate, we'll first use setDefaultSkin without a registered IDefaultSkin adapter:
>>> class Request(object): ... implements(IBrowserRequest)>>> request = Request() >>> IDefaultBrowserLayer.providedBy(request) False>>> setDefaultSkin(request) >>> IDefaultBrowserLayer.providedBy(request) True
When we register a default layer, however:
>>> from zope.interface import Interface >>> class IMySkin(Interface): ... pass >>> zope.component.provideAdapter(IMySkin, (IBrowserRequest,), ... IDefaultSkin)
setDefaultSkin uses the layer instead of IDefaultBrowserLayer.providedBy:
>>> request = Request() >>> IMySkin.providedBy(request) False >>> IDefaultSkin.providedBy(request) False>>> setDefaultSkin(request)>>> IMySkin.providedBy(request) True >>> IDefaultBrowserLayer.providedBy(request) False
Any interfaces that are directly provided by the request coming into this method are replaced by the applied layer/skin interface:
>>> request = Request() >>> class IFoo(Interface): ... pass >>> directlyProvides(request, IFoo) >>> IFoo.providedBy(request) True >>> setDefaultSkin(request) >>> IFoo.providedBy(request) False