Johan Carlsson wrote:
(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.
The browser request gets directly marked by a skin interface.This is
done by the http publication request factory:
Thanks Dominik,
I been reading the source and trying to figure this out (still trying
to get in to the adapter/interface thinking, which is really hard and
unintuitive for me.)
I do not quite understand what your suggesting.
Could you give me a short list of what steps would be involved
implementing your suggestion? And how it would work from a user
perspective?
Excuse me, I was wrong. The setDefaultSkin function does not adapt
regularly to IDefaultSkin is just looks up the registered interface
using the IDefaultSkin. So you cannot provide your own adapter
evaluating a skin.
What I'm not quite sure about is what a IDefaultSkin is?
Is it the interface for the global default skin for the whole server?
The IDefaultSkin is just a marker that is used to register the skin
declared within the browser:defaultSkin directive. (handler :
zope.app.publisher.browser.metaconfigure.defaultSkin, the default skin
is set regularly within zope.app.browser.zcml)
Regards,
Dominik
_______________________________________________
Zope3-users mailing list
[email protected]
http://mail.zope.org/mailman/listinfo/zope3-users