
cherokee at cherokee-project
Jan 29, 2010, 11:24 AM
Post #1 of 1
(99 views)
Permalink
|
|
[4203] CTK/trunk/CTK: CTK.Page and CTK. Template relations changed a little bit
|
|
Revision: 4203 http://svn.cherokee-project.com/changeset/4203 Author: alo Date: 2010-01-29 20:24:38 +0100 (Fri, 29 Jan 2010) Log Message: ----------- CTK.Page and CTK.Template relations changed a little bit Modified Paths: -------------- CTK/trunk/CTK/Page.py CTK/trunk/CTK/Template.py Modified: CTK/trunk/CTK/Page.py =================================================================== --- CTK/trunk/CTK/Page.py 2010-01-29 19:19:30 UTC (rev 4202) +++ CTK/trunk/CTK/Page.py 2010-01-29 19:24:38 UTC (rev 4203) @@ -51,7 +51,7 @@ return noDupes class Page (Container): - def __init__ (self, template_filename=None, headers=None): + def __init__ (self, template=None, headers=None): Container.__init__ (self) if headers: @@ -59,8 +59,8 @@ else: self._headers = HEADERS - if template_filename: - self._template = Template (filename = template_filename) + if template: + self._template = template else: self._template = Template (content = DEFAULT_PAGE_TEMPLATE) @@ -78,14 +78,18 @@ self._headers += render.headers head = "\n".join (uniq(self._headers)) - # Misc properties - body_props = '' - # Build the <body> if not render.js: body = render.html else: body = render.html + HTML_JS_ON_READY_BLOCK %(render.js) + # Set up the template + self._template['head'] = head + self._template['body'] = body + + if not self._template['body_props']: + self._template['body_props'] = '' + txt = self._template.Render() return Postprocess (txt) Modified: CTK/trunk/CTK/Template.py =================================================================== --- CTK/trunk/CTK/Template.py 2010-01-29 19:19:30 UTC (rev 4202) +++ CTK/trunk/CTK/Template.py 2010-01-29 19:24:38 UTC (rev 4203) @@ -34,6 +34,7 @@ Widget.__init__ (self) self.filename = None self.content = None + self.vars = {} if kwargs.has_key('filename'): self.filename = kwargs['filename'] @@ -65,16 +66,25 @@ else: return self.content + def __setitem__ (self, key, val): + self.vars[key] = val + + def __getitem__ (self, key): + return self.vars.get(key) + def Render (self): - vars = globals() - vars.update (inspect.currentframe(1).f_locals) - content = self._content_get() while True: prev = content[:] - content = content % (vars) + content = content % (self.vars) if content == prev: break return content + + def _figure_vars (self): + vars = globals() + vars.update (inspect.currentframe(1).f_locals) + return vars +
|