[Zope-dev] Repeating a piece of HTML code

Marcus Collins mcollins@sunesi.com
Fri, 2 Jun 2000 14:33:38 +0200


Hi,

> -----Original Message-----
> From: Alex Mendez [mailto:txapulin@yahoo.com]
> Sent: 02 June 2000 12:28
> To: Lista Zope
> Subject: [Zope-dev] Repeating a piece of HTML code
> 
> Hello, it's the first time I write here and I'm a
> newbie at Zope, so maybe I'm asking a stupid
> question...

The only stupid question is the one that's never asked.
You might, however, find that questions like this are more suited to the
general zope@zope.org mailing list.

> Case is I retrieve from my movie database the value of
> the movie from 1 to 5 stars. I would like to repeat
> that n times the code <img SRC="star.gif" height=15
> width=15> so the number of stars would appear:
> 
> 1 - *
> 2 - **
> 3 - ***
> 4 - ****
> 5 - *****
> 
> Is there any way to do so in Zope? Does the <dtml-in>
> tag anything to do with it?

The <dtml-in> tag is certainly what you're looking for if you want to do
this in DTML. Something like the following will do what you're looking for:

  <dtml-let stars="5">

    <dtml-in "_.range(stars)">
      <IMG SRC="star.gif" HEIGHT="15" WIDTH="15">
    </dtml-in>

  </dtml-let>

The <dtml-in "_.range(stars)"> ... </dtml-in> forms a loop that gets
repeated 5 times by using the python range function -- generally, anything
inside double quotes in DTML is treated as a python expression. You'll find
that the "_." notation, which accesses the global namespace, allows you to
make use of all sorts of python functions.

You would replace the <dtml-let stars="5"> with a call to your database to
find the actual number of stars.

hth,

-- Marcus