theme.py 980 B

123456789101112131415161718192021
  1. from urlparse import urlparse
  2. from django.conf import settings
  3. from django.core.cache import cache
  4. from misago.theme import Theme
  5. class ThemeMiddleware(object):
  6. def process_request(self, request):
  7. if not settings.INSTALLED_THEMES:
  8. raise ValueError('There are no themes installed!')
  9. request.theme = Theme(settings.INSTALLED_THEMES[0])
  10. if settings.MOBILE_SUBDOMAIN and settings.MOBILE_TEMPLATES:
  11. if settings.MOBILE_SUBDOMAIN == '*':
  12. request.theme = Theme(settings.MOBILE_TEMPLATES)
  13. else:
  14. mobile_domain = '%s.%s/' % (settings.MOBILE_SUBDOMAIN, urlparse(settings.BOARD_ADDRESS).netloc)
  15. current_domain = '%s.%s/' % (settings.MOBILE_SUBDOMAIN, urlparse(request.META.get('HTTP_HOST')).netloc)
  16. if current_domain == mobile_domain:
  17. request.theme = Theme(settings.MOBILE_TEMPLATES)