[Zope-dev] New Counter Product

Shaw, Howard ShawH@STHS.org
Wed, 24 Mar 1999 19:06:02 -0600


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------ =_NextPart_000_01BE765B.A6C63540
Content-Type: text/plain

Here is the updated Counter Product. This contains two classes, one
which provides a visible Counter Product which can be added as an
object, and which has Security options, and a new tag which provides a
means of accessing the Counter Product. Note: the tag should be able to
access ANY object which possesses a getCount() and a incrementCount(md)
where md==_. So an SQLCounter Product which stores its numbers in an SQL
database should be able to use the same tag structure. Since it passes
md into the incrementCount, the Product is free to store as much or as
little of the REQUEST as it chooses. My product stores only the IP
address, and only under proper conditions.

The tag structure is described in the CounterTag.py source file, and
examples are given.

I hope this is useful to someone.

 <<Counter.tar>> 
Howard C. Shaw III
Programmer/SysAdmin
St. Thomas High School


------ =_NextPart_000_01BE765B.A6C63540
Content-Type: application/octet-stream;
	name="Counter.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="Counter.tar.gz"
Content-Description: Counter.tar

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

------ =_NextPart_000_01BE765B.A6C63540--