[Zope-Checkins]
SVN: Zope/branches/philikon-aq/lib/python/Products/Five/browser/pagetemplatefile.py
No longer need to rely on Acquisition to get to stuff (and to
validate security),
Philipp von Weitershausen
philikon at philikon.de
Fri Jul 27 19:11:56 EDT 2007
Log message for revision 78397:
No longer need to rely on Acquisition to get to stuff (and to validate security),
so let's simply reuse Zope3's ViewPageTemplateFIle
Changed:
U Zope/branches/philikon-aq/lib/python/Products/Five/browser/pagetemplatefile.py
-=-
Modified: Zope/branches/philikon-aq/lib/python/Products/Five/browser/pagetemplatefile.py
===================================================================
--- Zope/branches/philikon-aq/lib/python/Products/Five/browser/pagetemplatefile.py 2007-07-27 23:09:30 UTC (rev 78396)
+++ Zope/branches/philikon-aq/lib/python/Products/Five/browser/pagetemplatefile.py 2007-07-27 23:11:56 UTC (rev 78397)
@@ -15,79 +15,25 @@
$Id$
"""
-import os, sys
-
-from Acquisition import aq_inner, aq_acquire
-from Globals import package_home
-from Products.PageTemplates.PageTemplateFile import PageTemplateFile
+import zope.app.pagetemplate
from Products.PageTemplates.Expressions import SecureModuleImporter
from Products.PageTemplates.Expressions import createTrustedZopeEngine
-from zope.app.pagetemplate.viewpagetemplatefile import ViewMapper
_engine = createTrustedZopeEngine()
def getEngine():
return _engine
-class ZopeTwoPageTemplateFile(PageTemplateFile):
- """A strange hybrid between Zope 2 and Zope 3 page template.
+class ViewPageTemplateFile(zope.app.pagetemplate.ViewPageTemplateFile):
- Uses Zope 2's engine, but with security disabled and with some
- initialization and API from Zope 3.
- """
-
- def __init__(self, filename, _prefix=None, content_type=None):
- # XXX doesn't use content_type yet
-
- self.ZBindings_edit(self._default_bindings)
-
- path = self.get_path_from_prefix(_prefix)
- self.filename = os.path.join(path, filename)
- if not os.path.isfile(self.filename):
- raise ValueError("No such file", self.filename)
-
- basepath, ext = os.path.splitext(self.filename)
- self.__name__ = os.path.basename(basepath)
-
- super(PageTemplateFile, self).__init__(self.filename, _prefix)
-
- def get_path_from_prefix(self, _prefix):
- if isinstance(_prefix, str):
- path = _prefix
- else:
- if _prefix is None:
- _prefix = sys._getframe(2).f_globals
- path = package_home(_prefix)
- return path
-
def pt_getEngine(self):
return getEngine()
- def pt_getContext(self):
- try:
- root = aq_acquire(self.context, 'getPhysicalRoot')()
- except AttributeError:
- root = None
- view = self._getContext()
- here = aq_inner(self.context)
- try:
- request = aq_acquire(root, 'REQUEST')
- except AttributeError:
- request = None
+ def pt_getContext(self, instance, request, **kw):
+ context = super(ViewPageTemplateFile, self).pt_getContext(
+ instance, request, **kw)
+ context['modules'] = SecureModuleImporter
+ context['options'] = ''
+ return context
- c = {'template': self,
- 'here': here,
- 'context': here,
- 'container': here,
- 'nothing': None,
- 'options': {},
- 'root': root,
- 'request': request,
- 'modules': SecureModuleImporter,
- }
- if view is not None:
- c['view'] = view
- c['views'] = ViewMapper(here, request)
-
- return c
-
-ViewPageTemplateFile = ZopeTwoPageTemplateFile
+# BBB
+ZopeTwoPageTemplateFile = ViewPageTemplateFile
More information about the Zope-Checkins
mailing list