[Zope] "REQUEST" a string object?

Rob Miller rob.at.kalistra.dot.com@zope.org
Mon, 24 Jul 2000 22:33:04 -0700


On Mon, 24 Jul 2000, Jonothan Farr wrote:
> I couldn't reproduce this. The following code works for me in Zope 2.1.6,
> verbatim.

Ah-ha!  It was on 2.2.0 that this code failed.  And.. sure enough, a quick
check on the Zope 2.1.6 install I still have around shows that the code works
there for me as well.  Thank goodness; I was pulling my hair out trying to
figure out what I was doing wrong, but it seems likely to be a bug in the new
release that was causing my problem.

> 
> <dtml-var standard_html_header>
> <dtml-call "REQUEST.set('spec', '*')">
> <dtml-call "REQUEST.set('num_dir_columns', 3)">
> <table>
> <dtml-call "REQUEST.set('ctr', 0)">
> <dtml-in "local.fileValues(REQUEST.get('spec', _.None))">
>   <dtml-if "type == 'directory'">
>     <dtml-if "ctr % num_dir_columns == 0">
>       <tr>
>     </dtml-if>
>     <td><a href="<dtml-var URL1>/<dtml-var url>"><dtml-var "id"></a><br>
>     <dtml-if "ctr % num_dir_columns == num_dir_columns - 1">
>       </tr>
>     </dtml-if>
>     <dtml-call "REQUEST.set('ctr', _.int(ctr) + 1)">
>   </dtml-if>
> </dtml-in>
> <dtml-comment> In case we end in the middle of a row... </dtml-comment>
> <dtml-if "ctr % num_dir_columns != 0">
>   </tr>
> </dtml-if>
> </table>
> <dtml-var standard_html_footer>
> 
> Maybe you can play with this as a starting point.
> 
> I added a couple of REQUEST.set() calls at the top to simulate variables passed
> from a form, I assume.
> 
> 'local' is my LocalFS object. Are you using this code in a <dtml-with> statement
> or are you actually serving it as a .dtml file from the local file system?

It may be academic now, but I'm using it in a .dtml file that is called as a
method by a python product.  Actually, what I'm doing is hacking LocalFS to be
an image gallery, so that all I have to do is drop a bunch of image files in a
certain directory on my hard drive and they'll show up on the www all
thumbnailed and prettified, via the magic of Zope.  The code that you saw is
from my replacement for the 'methodBrowse.dtml' file in the LocalFS product.  I
know that there are some other PhotoAlbum type products out there that do
something similar, but I wanted the exercise.

Thanks for your help... I guess now I report this as a bug.  I've seen some
mention of a "Collector" for this sort of thing; I'll go dig around zope.org
(as soon as it comes back up) to find out what that is and how to use it. 
Unless of course any Zen masters notice this thread and decide to tackle the
problem straightaway... ;-]

rob