[Zope] Architectural decisions

Matt Hamilton matth at netsight.co.uk
Mon May 24 05:11:47 EDT 2004


> discovered, but also limitations.  Chief amongst the latter is that there
> seems to be no way to use a variable as part of a ZPT path.  For example,
> if
> I have, in each partner subfolder, a template called "environment" which
> contains statements like:
> <span tal:define="global partner HugeInternationalCorporation"/>
> ...and is referred to by generic scripts with:
> <span tal:replace="here/environment | default"/>
> ...then I can provide each template with a cue to the context in which
> it's
> being invoked.  However, I can see no way to do stuff like:
> <h2 tal:content="here/$partner | default">Default Header"</h2>

Ben,
  The way to do this would be to call a python script that does the logic
and returns the subtemplate eg:

<h2 tal:content="here/getPartner">Default Header</h2>

then a python script called getPartner with your logic to find the
relevent subtemplate:

# assuming a variable in request called mypartner, it could be part of the
# query string eg. url?mypartner=bob
partner = context.REQUEST.mypartner
subtemplate = context.get(partner, 'default_partner_template')
return subtemplate

> So, what I'm really interested in are any tips, experiences or general
> good
> advice that can better help me evaluate the pros and cons of approaches 1)
> and 2).

I would look at skins, as they allow you to organise the templates much
more flexibly.  If you aren't using CMF then look at ChrisM's Standalone
Skins Tool:

http://zope.org/Members/mcdonc/Products/Standalone%20Skins%20Tool

-Matt

-- 
Matt Hamilton                                         matth at netsight.co.uk
Netsight Internet Solutions, Ltd.          Business Vision on the Internet
http://www.netsight.co.uk                               +44 (0)117 9090901
Web Design | Zope/Plone Development and Consulting | Co-location | Hosting





More information about the Zope mailing list