[Zope3-Users] Making site skins

Dominik Huber dominik.huber at perse.ch
Wed Aug 17 02:24:16 EDT 2005


Johan Carlsson wrote:

>
> Ok, so far I figured out the following:
>
> 1. Resources gets registered as adapters in the Global Site Manager.
> 2. The adapter is registerd to adapt from the current layer interface 
> (defaults to IDefaultBrowserLayer) to the Interface interface 
> (strange, why is that so I wounder?)

The browser request gets directly marked by a skin interface.This is 
done by the http publication request factory:
(zope.app.publication.httpfactory.HTTPPublicationRequestFactory -> 
zope.app.publication.browser.setDefaultSkin)

Afterward the specific adapters such as views get invoked, because you 
register those to a dedicated request interface using the layer 
attribute. Attention they get looked up via the regular default-adapter 
mechansim and not as named adapters.

IMO you can register only a specific IDefaultSkin adapter to a site 
marked for example as ISkinableSite:

<adapter
    for='.ISkinableSite'
    provides='.IDefaultSkin'
    factory='.adapter_that_offers_a_skin_interface_selected_by_the_user' />

Within this adapter you can invoke the user preferences or something else.

Regards,
Dominik



More information about the Zope3-users mailing list