theme.py 957 B

12345678910111213141516171819202122
  1. from urlparse import urlparse
  2. from django.conf import settings
  3. from django.core.cache import cache
  4. from misago.template.theme import activate_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. activate_theme(settings.INSTALLED_THEMES[0])
  10. if settings.MOBILE_SUBDOMAIN and settings.MOBILE_TEMPLATES:
  11. if settings.MOBILE_SUBDOMAIN == '*':
  12. activate_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. activate_theme(settings.MOBILE_TEMPLATES)