[Zope] Comparing directories & dumb question

Mike Renfro renfro@tntech.edu
Thu, 5 Dec 2002 13:56:52 -0600


On Thu, Dec 05, 2002 at 01:33:03PM -0500, BZ wrote:
> dtml-let section="_.string.split(_.string.lower(_.string.split(URL,
> '/')[3]), '.')">
>   <dtml-call "REQUEST.set('section', section)">
> </dtml-let>
> 
> <dtml-if section>
> 
> <dtml-if "section=='folder_name'">
> 
>   show new header

> And this is the output and why it won't match which I think is
> because the first one is in a list. (??!)
> 
> ['folder_name'] = folder_name

The ridiculously naive solution (since section is a one-item list)
would be to use

  <dtml-if "section==['folder_name']">

but that's a bit silly. A slight improvement would be 

  <dtml-call "REQUEST.set('section', section[0])">

Any better options would require more Python/DTML Zen than I have
currently. But I'd think about making a Python Script called
whichsection, with code something like:

  request = container.REQUEST
  url=string.lower(request.URL)
  section=string.split(url,'/')[3]
  print section
  return printed

and then test <dtml-if "whichsection=='folder_name'">. I probably
missed a split on '.', but none of my URLs have periods in them
anyway.

It took me quite a while to get in the habit of replacing DTML logic
with Python Scripts, but it's *lots* more readable due to the less
excessive punctuation (I don't even write Python code that often, and
experimented my way to the above code by reading and converting your
DTML-Python).

-- 
Mike Renfro  / R&D Engineer, Center for Manufacturing Research,
931 372-3601 / Tennessee Technological University -- renfro@tntech.edu