Here is a customization in plone.app.layout/viewlets/common.py that can display customized logos based on tab paths.
class LogoViewlet(ViewletBase): index = ViewPageTemplateFile('logo.pt') def update(self): super(LogoViewlet, self).update() portal = self.portal_state.portal() bprops = portal.restrictedTraverse('base_properties', None) if bprops is not None: logoName = bprops.logoName else: logoName = 'logo.jpg' plone_url = getToolByName(self.context, 'portal_url')() plone_url_len = len(plone_url) request = self.request url = request['URL'] path = url[plone_url_len:] if path.startswith('/news'): logoName = 'logo-news.png' if path.startswith('/events'): logoName = 'logo-events.png'
To illustrate how the path variable works, add a Python Script in ZMI and use the following sample code:
from Products.CMFCore.utils import getToolByName plone_url = getToolByName(context, 'portal_url')() print "plone_url = %s\n" % (plone_url), plone_url_len = len(plone_url) request = context.REQUEST url = request['URL'] path = url[plone_url_len:] print "url = %s, path = %s" % (url, path) return printed
No comments:
Post a Comment