From 1611afda07285a14301eb68b604c12806b4ecaca Mon Sep 17 00:00:00 2001 From: Wichert Akkerman Date: Wed, 2 Jul 2008 14:31:24 +0000 Subject: [PATCH] Hook into _cook_check so customization also works when other entry points than pt_render are used (such as direct macro access). --- z3c/jbot/__init__.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/z3c/jbot/__init__.py b/z3c/jbot/__init__.py index 0915bbe..0d50e3f 100644 --- a/z3c/jbot/__init__.py +++ b/z3c/jbot/__init__.py @@ -1,11 +1,18 @@ import manager -from zope.pagetemplate.pagetemplatefile import PageTemplate +from zope.pagetemplate.pagetemplatefile import PageTemplateFile # add registration hook to ``zope.app.pagetemplate`` -def jbot(pt_render): - def render(self, *args, **kwargs): +def jbot(func): + def jbot_func(self, *args, **kwargs): manager.getGlobalTemplateManager().registerTemplate(self) - return pt_render(self, *args, **kwargs) - return render + return func(self, *args, **kwargs) + return jbot_func + +PageTemplateFile._cook_check = jbot(PageTemplateFile._cook_check) +try: + from Products.PageTemplates.PageTemplateFile import PageTemplateFile as Z2PageTemplateFile + Z2PageTemplateFile._cook_check = jbot(Z2PageTemplateFile._cook_check) +except ImportError: + raise + -PageTemplate.pt_render = jbot(PageTemplate.pt_render)