[Zope] Newbie question on page counters

Chris Withers chrisw@nipltd.com
Thu, 27 Jul 2000 23:16:30 +0100


"Richard P. Muller" wrote:
> I'm in the process of learning Zope hacking, and I'm having a really
> hard time getting a page counter to work. It isn't even that page
> counters are all that important to me, it's that I feel that if I can't
> even do something this simple, what hope do I have doing something
> really hard?

The ZODB is a _really_ bad place to store a page counter, especially on
a busy site.
Data.fs will grow each time your counter increments. This is because
it's a transactional daatbase with undo ability...

> Here's what I've done.
> (1) Under "Properties" I've created two properties (both ints)
>         counter_starting_value, which I've set to 11 (arbitrarily)
>         counter_value, which I've set to 0

Sounds good :-)

> <dtml-if counter_value>
>         <dtml-let counter_value = counter_value + 1>
>         </dtml-let>
> <dtml-else>
>         <dtml-let counter_value = counter_starting_value>
> </dtml-if>
> <dtml-var counter_value>
> 
> This didn't work. The error message reported that the syntax in the
> first (and probably the second, but I never got past the first) dtml-let
> command was wrong.

Whoops, just remember this:
DTML is not a programming language, it is designed for data presentation
and form processing. Or something like that ;-)

To do what you want, you probably want something like:

<dtml-call
"manage_changeProperties(counter_value=getProperty(counter_value,counter_starting_value-1)+1)">

Which isn't pretty :S

cheers,

Chris