From: Scott R. <sc...@rs...> - 2005-02-27 13:17:59
|
This may or may not be useful - it allows you to set a KidKitWrapper variable inside a .kid file to use a custom wrapper. I basically moved the load_template outside of the wrapper and check it for a custom KidKitWrapper, and load that if it's found. This is how I'm integrating KidKit into a SecurePage setup. If anyone needs further details, I can work up an example. If anyone can show me a better way to do this with as minimal impact, I'm all ears. ### patch begins ### --- /new/Webware/KidServletFactory.py 2005-01-26 13:36:25.000000000 -0500 +++ /old/Webware/KidKit/KidServletFactory.py 2005-02-27 08:06:31.024649785 -0500 @@ -17,14 +17,14 @@ _log = logging.getLogger(__name__) -class ServletWrapper( Page ): +class BaseKidServletWrapper( Page ): ''' I am a WebKit.Servlet, and when I am asked to respond, I will run the KID template to produce the html page. ''' - def __init__( self, kidFileName ): - self._kidModule = kid.load_template( kidFileName, cache=True ) + def __init__( self, kidModule ): + self._kidModule = kidModule self._factory = None # Somebody still uses this, although it seems to be deprecated. def respond( self, trans ): @@ -60,6 +60,11 @@ _log.debug('fullname=%s',fullname) - theServlet = ServletWrapper( fullname ) + kidModule = kid.load_template( fullname, cache=True ) + try: + kidWrapper = kidModule.KidKitWrapper + except AttributeError: + kidWrapper = BaseKidServletWrapper + theServlet = kidWrapper( kidModule ) return theServlet |