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