root/qLocalSkin/trunk/layer.py

Revision 1003 (checked in by piv, 1 year ago)

release 0.1.0

  • Property svn:eol-style set to native
Line 
1 from zope.component import queryUtility, queryMultiAdapter
2
3 from zope.publisher.interfaces.browser import IBrowserSkinType
4 from zope.publisher.browser import applySkin
5
6 from adapters.interfaces import ISkinNameExtractor, IRequestPortalUrlAnnotator
7
8 def mark_layer(context, event):
9     """Mark the request with a layer corresponding to the current marked object.
10     """
11
12     skin_name = None
13     extractor = ISkinNameExtractor(context, None)
14     if extractor is not None:
15         skin_name = extractor.getSkinName()
16     if skin_name is not None:
17         skin = queryUtility(IBrowserSkinType, name=skin_name)
18         if skin is not None:
19             applySkin(event.request, skin)
20             context.changeSkin(skin_name, event.request)
21             annotator = IRequestPortalUrlAnnotator(event.request, None)
22             if annotator is not None:
23                 annotator.annotate('/' + '/'.join(context.getPhysicalPath()[2:]))
Note: See TracBrowser for help on using the browser.