From: Randall <ne...@tn...> - 2003-04-06 21:43:33
|
Thanks for the help. I tried this method and it does what I need it to do. I am wondering though if there is a cleaner way to do this. > vmhs_hotbit = HotBit() > vmhs_hotbit.pathdict = pathinfo.getPathDict() > vmhs_hotbit.product = pathinfo.get('product') > > # add the hotbit container class to the request > self.request().hotbit = vmhs_hotbit > > # now, let's choose which template to use > # > if vmhs_hotbit.pathdict.get('game'): > self.includeURL('html/gameinfo.psp') > else: > self.includeURL('html/megapage.psp vmhs_hotbit was added to the request instance. You could just as well add it to the transaction instance. Is there a convention for passing objects or variables? I would hate to clobber some attribute of request or transaction by accident. Any suggestions? Maybe I could create an object in my SitePage.py to hold variables, objects, etc. that I want to pass. Randall On Saturday 05 April 2003 09:00 am, David Eriksson wrote: > Hi Randall, > > I've worked on some projects with the webware technology. > Must say I like it alot! > > A good tips is to create a standard servlet that you subclass > instead of using the builin Webkit.Page. I use to make a custom > page framework for each site I'm working on. And in each servlet > or psp page I sublclass the custom page to get some standard > stuff setup like footers, std html etc.. > > I'm using psp to "tag-up" the html templates with the dynamic > data. It's easy and it's standard python compared to working > with some template engine. > > Here is a simple example of how I've been using it in a similar > way to the MVC think. There are probably better ways of doing it. > As you can see I fetch my data from within each psp view and where > needed, import my database logic made in plain python. > > > Best regards > David > > > site.com/(index.py) > --- > > from WebKit.Page import Page > from NBKit.utils.pathinfo import PathInfo > > class index(Page): > > def writeContent(self): > ''' Hook up the controller functionality! ''' > self.controller() > > > def controller(self): > > # the PathInfo util will take care of the querystring biz > # > pathinfo = PathInfo(self) > > # setup some default values and useful methods > # for further accessibility within the html views. > # > vmhs_hotbit = HotBit() > vmhs_hotbit.pathdict = pathinfo.getPathDict() > vmhs_hotbit.product = pathinfo.get('product') > > # add the hotbit container class to the request > self.request().hotbit = vmhs_hotbit > > # now, let's choose which template to use > # > if vmhs_hotbit.pathdict.get('game'): > self.includeURL('html/gameinfo.psp') > else: > self.includeURL('html/megapage.psp') > > > class HotBit: > def __init__(self, ): > pass > > > --- > > > > (html/gameinfo.psp) > --- > > <% > from NBWKit.db.product_info import get_longname > hb = self.request().hotbit > > # get the playerinfo for this user! > productname = get_longname(hb.product, 'N/A') > > # alt. 1 > self.writeln('product: %s' % hb.product) > %> > > <!-- alt. 2 --> > <br> > <b>Product name:</b> <%= productname %> > > > --- |