[Zope] How do I check for existence of a page?
Joel Burton
jburton@scw.org
Wed, 28 Feb 2001 12:19:58 -0500 (EST)
On Wed, 28 Feb 2001, Casey Duncan wrote:
> Joel Burton wrote:
> >
> > We have our staff listed under /staff, so that you might find me as
> > /staff?staffname=joel
> >
> > I'd like the return page from this method to check if I have a
> > homepage on the site, and if so, provide a link. Right now, I'm doing
> > this as:
> >
> > <dtml-in "PARENTS[1].home.objectIds(['Folder'])">
> > <dtml-if "_['sequence-item']==staffname">
> > <a href="/home/&dtml-staffname;">There is a home page</a>
> > </dtml-if>
> > </dtml-in>
> >
> > (cycle through folders under the '/home' directory, check the seq-id
> > against my name, and if so, generate a link.)
> >
> > Is there a cleaner way to do this?
> >
>
> <dtml-with name="home" only>
> <dtml-if expr="_.hasattr(home, staffname)">
> <a href="/home/&dtml-staffname;">There is a home page</a>
> <dtml-else>
> . No home page found.
> </dtml-if>
> </dtml-with>
>
> or
>
> <dtml-with name="home" only>
> <dtml-try>
> <a href="<dtml-var expr="_[staffname]" url>">There is a home page</a>
> <dtml-except KeyError>
> No home page found.
> </dtml-try>
> </dtml-with>
>
> hth
Thanks, Casey!
Another way from a private respondant:
<dtml-if "restrictedTraverse('/home/' + name, _.None)">
<a href="/home/&dtml-name;">There is a home page</a>
<dtml-else>
This staff member doesn't have a home page on this site.
</dtml-if>
--
Joel Burton <jburton@scw.org>
Director of Information Systems, Support Center of Washington