[Zope] nested dtml-with

Max M maxm@mxm.dk
Thu, 13 Jun 2002 08:32:48 +0200


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

Paul Zwarts wrote:

>Hmm, Im a bit confused then. How then would I traverse across and up
>into each folder then?
>
>-----Original Message-----
>From: zope-admin@zope.org [mailto:zope-admin@zope.org] On Behalf Of
>Peter Sabaini
>Sent: Wednesday, June 12, 2002 11:21 PM
>To: Paz
>Cc: zope@zope.org
>Subject: RE: [Zope] nested dtml-with
>
>
>The first snippet renders 
>
>folder1.index_html 
>folder1.folder2.index_html
>
>The second one renders 
>
>folder1.index_html
>folder2.index_html
>
>
>I dont know what want to accomplish but you might have to recode this 
>using some recursive script.
>
>cheers, peter. 
>
>
>On Wed, 12 Jun 2002, Paz wrote:
>
>  
>
>>The keyerror is folder2. But how are they different? The outcome is
>>    
>>
>that
>  
>
>>a document is rendered as:
>>
>>folder1.index_html
>>folder1.folder2.index_html
>>
>>Or isn't it?
>>Paz
>>
>>-----Original Message-----
>>From: Peter Sabaini [mailto:sabaini@inode.at] 
>>Sent: Wednesday, June 12, 2002 10:51 PM
>>To: Paz
>>Cc: zope@zope.org
>>Subject: Re: [Zope] nested dtml-with
>>
>>
>>Hi,
>>are those two snippets supposed to be equivalent? Because I dont think
>>    
>>
>
>  
>
>>they are -- the second one doesn't nest like the first one
>>
>>Depending on where those snippets live that might be the cause of the 
>>keyerror
>>
>>cheers, peter.
>>
>>
>>On Wed, 12 Jun 2002, Paz wrote:
>>
>>    
>>
>>>Greetings all,
>>>
>>>I have two snippets of code, the later I wish would work. Can anyone
>>>point out why?
>>>
>>>The structure:
>>>/
>>>folder1 /
>>>         index_html
>>>         folder2    /
>>>                     index_html
>>>
>>>This works:
>>>
>>><dtml-with folder1>
>>>    <dtml-var index_html>
>>>    <dtml-with folder2>
>>>       <dtml-var index_html>
>>>   </dtml-with>
>>> </dtml-with>
>>>
>>>This doesn't:
>>><dtml-in "['folder1', 'folder2']">
>>>   <dtml-with "_.getitem(_['sequence-item'])">
>>>     <dtml-var index_html>
>>>  </dtml-with>
>>></dtml-in>  
>>>
>>>I'd like the second to work. If I inject that with a try/except I
>>>      
>>>
>find
>  
>
>>>the first iteration works, but the second raises a key error. Can
>>>someone help?
>>>
>>>Thanks as always,
>>>Paz
>>>
>>>
>>>
>>>
>>>_______________________________________________
>>>Zope maillist  -  Zope@zope.org
>>>http://lists.zope.org/mailman/listinfo/zope
>>>**   No cross posts or HTML encoding!  **
>>>(Related lists - 
>>> http://lists.zope.org/mailman/listinfo/zope-announce
>>> http://lists.zope.org/mailman/listinfo/zope-dev )
>>>
>>>      
>>>
>>
>>
>>_______________________________________________
>>Zope maillist  -  Zope@zope.org
>>http://lists.zope.org/mailman/listinfo/zope
>>**   No cross posts or HTML encoding!  **
>>(Related lists - 
>> http://lists.zope.org/mailman/listinfo/zope-announce
>> http://lists.zope.org/mailman/listinfo/zope-dev )
>>
>>    
>>
>
>
>
>_______________________________________________
>Zope maillist  -  Zope@zope.org
>http://lists.zope.org/mailman/listinfo/zope
>**   No cross posts or HTML encoding!  **
>(Related lists - 
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )
>
>
>
>_______________________________________________
>Zope maillist  -  Zope@zope.org
>http://lists.zope.org/mailman/listinfo/zope
>**   No cross posts or HTML encoding!  **
>(Related lists - 
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )
>  
>

-- 

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