From 00c67cf7a2576b144e1edf8f43b1338bce904908 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Wed, 1 Dec 2010 16:15:03 +0100 Subject: [PATCH] Add customization of the theme based upon the domain name --- extra/modules/qommon_template.py | 36 ++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/extra/modules/qommon_template.py b/extra/modules/qommon_template.py index 7d8634a..20e7931 100644 --- a/extra/modules/qommon_template.py +++ b/extra/modules/qommon_template.py @@ -1,28 +1,38 @@ import qommon.template as template -from quixote import get_request +from quixote import get_request, get_publisher from qommon import get_cfg -from admin_settings import STYLESHEET_URL, REFERER_PREFIX_URL +from admin_settings import STYLESHEET_URL, REFERER_PREFIX_URL, THEME, \ + CUSTOM_DOMAIN __old_decorate = template.decorate def decorate(body, response): request = get_request() referer = request.environ.get('HTTP_REFERER') + domain = request.environ.get('SERVER_NAME') - print 'REFERER', referer more_css = [] body_class = [] - if referer: - requesting_service = None - for key, value in get_cfg('providers', {}).iteritems(): - referer_prefix_url = value.get(REFERER_PREFIX_URL, '') - if request.form.get('service') == key or \ - referer_prefix_url and referer.startswith(referer_prefix_url): - requesting_service = key - break + theme = None + stylesheet_url = None + requesting_service = None + + for key, value in get_cfg('providers', {}).iteritems(): + custom_domain = value.get(CUSTOM_DOMAIN) + referer_prefix_url = value.get(REFERER_PREFIX_URL) + if custom_domain == domain or \ + request.form.get('service') == key or \ + (referer_prefix_url and referer and referer.startswith(referer_prefix_url)): + theme = value.get(THEME) + requesting_service = key + stylesheet_url = value.get(STYLESHEET_URL) + break + if requesting_service: body_class.append(requesting_service) - if requesting_service and value.get(STYLESHEET_URL): - more_css.append(value.get(STYLESHEET_URL)) + if stylesheet_url: + more_css.append(stylesheet_url) + if theme: + get_publisher().cfg['branding']['theme'] = theme response.filter.update({'more_css': more_css, 'body_class': body_class}) return __old_decorate(body, response)