diff --git a/__init__.py b/__init__.py
index 80d3f5d..45303e9 100644
--- a/__init__.py
+++ b/__init__.py
@@ -34,6 +34,11 @@ class Loops(Folder):
implements(ILoops)
+ _skinName = ''
+ def getSkinName(self): return self._skinName
+ def setSkinName(self, skinName): self._skinName = skinName
+ skinName = property(getSkinName, setSkinName)
+
def getLoopsRoot(self):
return self
diff --git a/browser/common.py b/browser/common.py
index 2ba109d..ef79109 100644
--- a/browser/common.py
+++ b/browser/common.py
@@ -29,6 +29,8 @@ from zope.app.intid.interfaces import IIntIds
from zope.cachedescriptors.property import Lazy
from zope.dottedname.resolve import resolve
from zope.interface import implements
+from zope.app.publisher.browser import applySkin
+from zope.publisher.interfaces.browser import ISkin
from zope.schema.vocabulary import SimpleTerm
from zope.security.proxy import removeSecurityProxy
@@ -39,8 +41,23 @@ class BaseView(object):
def __init__(self, context, request):
#self.context = context
+ # TODO: get rid of removeSecurityProxy() call
self.context = removeSecurityProxy(context)
self.request = request
+ skin = None
+ # TODO: get ISkinController adapter instead
+ skinName = self.loopsRoot.skinName
+ if skinName:
+ skin = zapi.queryUtility(ISkin, skinName)
+ if skin is not None:
+ applySkin(self.request, skin)
+ self.skin = skin
+
+ @Lazy
+ def resourceBase(self):
+ skinSetter = self.skin and ('/++skin++' + self.skin.__name__) or ''
+ # TODO: put '/@@' etc after path to site instead of directly after URL0
+ return self.request.URL[0] + skinSetter + '/@@'
@Lazy
def modified(self):
diff --git a/browser/configure.zcml b/browser/configure.zcml
index 728c436..4ea275e 100644
--- a/browser/configure.zcml
+++ b/browser/configure.zcml
@@ -67,6 +67,21 @@
view="AddLoopsContainer.html"
/>
+
+
+
+
-
-
-