[Zope] nested dtml-with

Paul Zwarts paz@oratrix.com
Thu, 13 Jun 2002 10:59:47 +0200


Ah, lol.. No. Sorry... I must not be making much sense.

I wont explain everything because it would really sound strange. Long
story short, I have a list which is basically the location of a document
(folder, folder2, index_html = folder1.folder.index_html).

>From a method called from the root of the site: /index_html

I want to basically do the same as this code:

<dtml-with folder 1>
  <dtml-var index_html>
  <dtml-with folder2>
     <dtml-var index_html>
  </dtml-with>
</dtml-with>

But instead using the list. The reason is that every folder may or may
not have an index_html, and any directory that DOES have one in the
traversal path from root to the end of the list (folder1 to
folder2.index_html (3 steps)) will be rendered into the document. 

So I would get something like:

<!-- this is from /folder1/index_html !--/>
<h1>Folder 1</h1>

<!-- this is from /folder1/folder2/index_html !--/>
<h1>Folder2</h1>

The trick is that I am currently in the root namespace. I tried
ascending the tree with the code I pasted earlier, but it seems to just
query all iterations from root, and of course this doesn't work.  

Did I explain any clearer or worse?

Thanks,
Paz


-----Original Message-----
From: Max M [mailto:maxm@mxm.dk] 
Sent: Thursday, June 13, 2002 10:44 AM
To: Paul Zwarts
Cc: zope@zope.org
Subject: Re: [Zope] nested dtml-with

Paul Zwarts wrote:

>I tried your code out, but subTree('Folder') returns an attribute error
>and I cant find anything under 'subTree' search anywhere on zope.org..
>Are you sure that's what it is? 
>

You need to define a Python script called subTree ... see my code
example.

>I'd like to be able to call a document from the root of my site based
on
>a list stored in a Session.
>

You are either talking nonsense, skipping several lines of thought, or I

havn't understood a bit! Was your problem not that you wanted to get a 
list of all objects and subobjects in a folderish object?

regards Max M

>From: Max M [mailto:maxm@mxm.dk] 
>Sent: Thursday, June 13, 2002 8:33 AM
>To: Paul Zwarts
>Cc: zope@zope.org
>Subject: Re: [Zope] nested dtml-with
>
>Don't do recursion in dtml. It's a cardinal sin, and it will make your 
>head explode.
>
>Do it in a Python script instead.
>
>untested::
>
>    def subTree(context, type=None):
>        """
>        Returns the entire sub-branch below this recursively as a flat
>list
>        """
>        children = context.objectValues(type)
>        grandChildren = []
>        for child in children:
>            grandChildren += child.subTree(type)
>        return children + grandChildren
>   
>
>regards Max M
>
>
>  
>
-- 

"Sorry I would Really Like To Help More On This Project,
But Am To Busy Doing Paid Work On A Tight Deadline"
    Max M