~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to turbosimpletal/zptsupport.py

some kind of progress

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
import os
5
5
import pkg_resources
6
6
 
7
 
from zope.pagetemplate.pagetemplatefile import PageTemplateFile
 
7
#from zope.pagetemplate.pagetemplatefile import PageTemplateFile
 
8
from simpletal import simpleTAL
8
9
 
9
10
log = logging.getLogger("turbogears.zptsupport")
10
11
 
13
14
def zpt(tfile):
14
15
    tinstance = _zpt_cache.get(tfile)
15
16
    if tinstance is None:
16
 
        tinstance = _zpt_cache[tfile] = TGPageTemplateFile(tfile)
 
17
        tinstance = _zpt_cache[tfile] = simpleTAL.compileXMLTemplate(open(tfile))
17
18
    return tinstance
18
19
 
19
 
class TGPageTemplateFile(PageTemplateFile):
 
20
## class TGPageTemplateFile(PageTemplateFile):
20
21
 
21
 
    def pt_getContext(self, args=(), options={}, **ignored):
22
 
        namespace = super(TGPageTemplateFile, self).pt_getContext(
23
 
            args, options, **ignored)
24
 
        namespace.update(options)
25
 
        return namespace
 
22
##     def pt_getContext(self, args=(), options={}, **ignored):
 
23
##         namespace = super(TGPageTemplateFile, self).pt_getContext(
 
24
##             args, options, **ignored)
 
25
##         namespace.update(options)
 
26
##         return namespace
26
27
 
27
28
class TurboZpt(object):
28
29
    extension = "pt"
59
60
        @type template: string
60
61
        """
61
62
        tinstance = self.load_template(template)
62
 
        log.debug("Applying template %s" % (tinstance.filename))
 
63
        #log.debug("Applying template %s" % (tinstance.filename))
63
64
        data = dict()
64
65
        if self.get_extra_vars:
65
66
            data.update(self.get_extra_vars())
66
67
        data.update(info)
67
 
        return tinstance(**data).encode('utf-8')
 
68
        from simpletal import simpleTALES
 
69
        context = simpleTALES.Context(allowPythonPath=1)
 
70
        for k, v in info.iteritems():
 
71
            context.addGlobal(k, v)
 
72
        import StringIO
 
73
        s = StringIO.StringIO()
 
74
        tinstance.expand(context, s)
 
75
        return s.getvalue()