[Zope] detect root.

Bill Anderson bill@libc.org
Sun, 21 May 2000 00:46:08 -0600


Sin Hang Kin wrote:
> 
> Hello,
> 
> I ask about how to detect root in the list and Got three answer:
> 
> <dtml-if "_.len(PARENTS) == 1">
>   We're at the root folder
> <dtml-else>
>   You can go up from here
> </dtml-if>
> 
> <dtml-if "title == 'Zope'">
> 
> Title is Zope
> <dtml-else>
> No title not zope
> </dtml-if>
> 
> <dtml-if "id == ''">
> root folder have not identity
> <dtml-else>
> there is id
> </dtml-if>
> 
> However, all of them fail working in virtual web with siteroot set. How can
> I detect the root with or without siteroot?


perhasp you can be more specific as to what _exactly_ you need? What
do you intend to do with he information. that has a bearing on how you
get it, and what form the result is in.


Try this:
<dtml-if URL2>
  You can go up from here : <dtml-var URL0> 
<dtml-else>
  We're at the root folder: <dtml-var URL0>
</dtml-if>

This works because:
 o URL0 is the root folder 
 o URL1 is the page you are looking: at it always exists. 
 o URL2 only exists if you are in a subfolder or sub-container

If you are needing this to build a navigation system, this may or may
not work fo ryou. You can look at the breadcrumbs howto, or wait a day
or so untill a new one is posted by yours truly, using python.

If all you need is the URL of the root folder, you can use <dtml-var
URL0>
Like i said, what you need it for, and how you need it determines how
to get it.

HTH, Bill