On Wed, 15 Mar 2000, Ken Kinder wrote:
I know that you can use the dtml-in tag to iterate over a sequence, but I want to know how to create a sequence? If, for example, in Python I had:
foo = [1,2,3]
What would I have to do to get a sequence like that accessible from Zope? I didn't see list in the list of object types I can add.
You have a few (untested) choices: 1) Put the following in a DTML Document or Method: <dtml-call expr="REQUEST.set('first_sequence', [1, 2, 3])"> First:<br> <dtml-in first_sequence> <dtml-var sequence-index>: <dtml-var sequence-item> </dtml-in> <dtml-let second_sequence="[1, 2, 3]"> Second:<br> <dtml-in second_sequence> <dtml-var sequence-index>: <dtml-var sequence-item> </dtml-in> </dtml-let> 2) Create a DTML Document. Add a "my_sequence" property to the document of type "Tokens". Give it the value "1 2 3". Put this as the document source: <dtml-in my_sequence> <dtml-var sequence-index>: <dtml-var sequence-item> </dtml-in> 3) Create a DTML Document. Add a "my_sequence" property to the document of type "Lines". Give it the value: 1 2 3 and put the following as the document source: <dtml-in my_sequence> <dtml-var sequence-index>: <dtml-var sequence-item> </dtml-in> 4) We could make a Python base class (lib/python/Products/MyClassBase/MyClassBase.py): class MyClassBase: def __init__(self): self.my_sequence = [1, 2, 3] and create a file (lib/python/Products/MyBase/__init__.py): from MyClassBase import MyClassBase def initialize(context): context.registerBaseClass(MyClassBase, 'MyClassBase') Now restart your Zope, go to the Control Panel, and Add a new product called "MyClass". Inside this product, create a ZClass called "MyClass". When creating the ZClass, select MyClassBase as a base class. In this ZClass, on the Methods tab, create a DTML Method (say, index_html) with the following source: <dtml-in my_sequence> <dtml-var sequence-index>: <dtml-var sequence-item> </dtml-in> Then, go to your root, drop an instance of MyClass with an id of "MyInstance". Now, navigate to http://your.server.com/MyInstance. Voila. I probably missed two or three other ways to to it. But, I hope one of these is what you're looking for.
Ken Kinder
--Jeff --- Jeff K. Hoffman 704.849.0731 x108 Chief Technology Officer mailto:jeff@goingv.com Going Virtual, L.L.C. http://www.goingv.com/