[Zope] Newbie question on page counters

Chris Withers chrisw@nipltd.com
Fri, 28 Jul 2000 00:08:07 +0100


"Richard P. Muller" wrote:
> > "manage_changeProperties(counter_value=getProperty('counter_value',getProperty(counter_starting_value,0)-1)+1)">
> Words simply cannot express my gratitude. 

Wow, guess it worked then... that was a bit of luck (I didn't actually
test it ;-)

> Can you clue me in a bit more
> on the functions you called. Looks like they are
> manage_changeProperties(), getProperty(). I'm guessing these are both
> Python functions. Where are they documented, so I can learn more?

They are APIs/Interfaces exposed by Zope for manipulating properties (a
notoriously difficult thing to do in Zope :S)

See
http://www.zope.org/Members/michel/Projects/Interfaces/PropertyManager
for the full list.

> You mentioned that (1) DTML is not a programming language, 

A half joke. DTML, IMHO, is not supposed to be a programming language
but until Python and Perl methods become freely available, you have
little option but to program in it. External Methods can be a real pain
(do NOT try using them with Zope versions ;-)

> ZODB is a bad place to start on Zope programming. 

Not quite. My point was that storing highly dynamic data (such as a page
counter) in a transactional database like the ZODB's normal FileStorage
is a bad idea since you'll use up loads of disk space very quickly...

> By these two points,
> should I infer that learning how to write external methods in Python
> *is* a good place?

Er, maybe, but that's not what I'd recommend.

> Can you, or someone else on the list, give me a suitable homework
> assignment for a first Zope programming project? I was toying with the
> idea of writing a checkbook register in Zope, but I think it might be
> beyond my capacities right now.

My first port of call was the Zope Content Managers Guide
(http://www.zope.org/Documentation/Guides/ZCMG) I worked through that to
get the basics (The DTML Reference
(http://www.zope.org/Documentation/Guides/DTML) can help but is _really_
out of date) 
Beehive (www.beehive.de) do what is allegedly quite a good guide to
ZClasses, which you'll want to know at some point.

You should be using Zope 2.2 as well. This has a Tutorial you can go
through which may cover the stuff above better (it should certainly be a
lot more up to date ;-) as well as a great 'help' button. It should also
have all the decent stable API's from
http://www.zope.org/Members/michel/Projects/Interfaces documented in it
by now.

There should also be a Zope Book on its way from O'Reilly which
hopefully make the whole thing a lot easier...

If I've missed something, I hope someone else will jump in and say so
:-)

Hope this helps,

Chris