On Tue, 29 Aug 2000, Tim Hicks wrote:
I am trying to work my way up through folders, checking whether each folder has a property named 'site_root_folder'. Logically (in *my* head anyway), what I have written below is what I want to do, but I'm not sure that I'm really writing this the write way. I vaguely remember reading that I can't nest dtml-if tags within dtml-in tags.
I'd really appreciate any help on this
tim
<dtml-let level=0> <dtml-in level> <dtml-if "PARENTS[level].hasProperty('site_root_folder')"> <dtml-var "PARENTS[level].absolute_url()"> <dtml-else level="level+1"> </dtml-in> </dtml-let>
Hmm.. it may be slower, but I would normally use a recursive function in this case. DTML Method findRoot <dtml-if "PARENTS[rootLevel].hasProperty('site_root_folder')"> <dtml-return PARENTS[rootLevel].absolute_url()"> <dtml-else> <dtml-return "findRoot(_.None, _, rootLevel=rootLevel+1)"> </dtml-if> Use as: <dtml-var "findRoot(_.None, _, rootLevel=0)">
Tim: tim.hicks@iname.com
If you don't mind my asking, why do you need to hunt down this folder? Is there no way Acquisition could be used to simplify your life? Have a better one, Curtis