[Zope] how to avoid REQUEST.set

Thomas B. Passin tpassin@mitretek.org
Thu, 1 Nov 2001 10:33:45 -0500


[seb bacon]

> * Jens Vagelpohl <jens@zope.com> [011101 12:44]:
> > as far as the "REQUEST.set-sledgehammer" goes, most of its uses can be
> > replaced by dtml-let, which has the added advantage that you can look at
> > the code and see where a variable came from much faster than scanning
all
> > code for REQUEST.set. maybe it's just me, but i consider REQUEST.set bad
> > style that should be used only if nothing else works.
>
> I dislike the 'set' hammer too, but there's one scenario in which it
> seems to be unavoidable: if you need to set a variable which must be
> accessed from several templates.  For example, I may have a
> navigation bar in one template, the colour of which I want to change
> depending on tests which take place in a content template.  Since
> <dtml-let> can't span more than one template, is there any other way
> of manipulating a global namespace in the context of a single
> request?
>

1) You can create a page or folder property,  and set and access that.

2) You can redesign things so that your templates get called and return
values.  One of the returned values could be that color.

Cheers,

Tom P