I am having a lot of problems trying to get a breadcrumb or tree or other page-by-page, automatically generated navigational scheme put into place on my Zope site. I have a sense that I may be trying too hard or that I've created some complexity here that I didn't need to (or that my ISP has done so). This question is necessarily long because I want to provide as much detail as possible. Forgive me for the length of my post. Brevity is the soul of wit but not of Zope apprentices (Zoprentices?). Here's the basic structure of the site: 1. I have a Zope instance (Version 2.3.3). It is hosted by David Elkins at hurrah.com. He seems to be a very knowledgeable Zopista. 2. He has implemented virtual hosting for me because I need to host lots of sites at this instance. 3. One of those virtual sites is www.danshafer.com, which site lives in a folder called danshafer at the root level of the Zope instance. 4. Inside danshafer, I have a folder called OMO. It is strictly a container; it doesn't have a public interface at all. 5. Inside danshafer.com/OMO, I have a number of other folders, one of which (by way of example) is named omoarts. 6. Inside these folders are DTML documents containing essays. OK, so that's how it's structured. My objective is to define a DTML method (presumably) which will be set up so that when the user is reading an essay called writingadvice.html and titled "Advice I Offer Aspiring Writers," there will be a navigation line across the top of the essay page that links him back to omoarts/index.html (by title) and to the top level of the danshafer.com site. The first efforts I made at this had bizarre results. Depending on how I navigate around, I get URLs like this: http://www.danshafer.com/danshafer/danshafer/OMO/omoarts/writingadvice.html Sometimes I get as many as three or four spurious "danshafer" entries in the URL. I have no clue how this happens. This was using an NFGNav object. The link at the top of the page, intriguingly, shows _only_ the top-level page in the danshafer site. Here's the DTML I place on the page, per the example in the NFGNav docs: <p> <dtml-var "DSNavigator.LevelTrail( PARENTS, REQUEST, id(), initlevel=1, Meta_Types=['DTML Document','Folder'])"> </p> So I try the simple breadcrumb DTML I got from the Zope How-Tos. Here's what it looks like: <!-- Start Breadcrumbs --> <dtml-unless expr="PARENTS[0]==PARENTS[-1]"> <dtml-call "REQUEST.set('reverse_PARENTS', [])"> <dtml-call "REQUEST.set('reverse_LAST', 0)"> <dtml-in PARENTS skip_unauthorized> <dtml-if expr="(meta_type == 'Message') or (meta_type == 'Reply')"> <dtml-unless "reverse_LAST==1"> <dtml-call "reverse_PARENTS.insert(0, _['sequence-item'])"> <dtml-call "REQUEST.set('reverse_LAST', 1)"> </dtml-unless> <dtml-else> <dtml-call "reverse_PARENTS.insert(0, _['sequence-item'])"> </dtml-if> </dtml-in> <dtml-in reverse_PARENTS> <dtml-if sequence-start><a href="/">Home</a> <dtml-else> <dtml-if sequence-end> <dtml-unless expr="(meta_type == 'Message') or (meta_type == 'Reply')"> > <font size="+1" color="#990000"><b><dtml-var title_or_id></b></font> </dtml-unless> <dtml-else> <dtml-if expr="(meta_type == 'Message') or (meta_type == 'Reply')"> > <a href="<dtml-var absolute_url>"><dtml-var title_or_id></a> <dtml-else> > <a href="<dtml-var absolute_url>"><dtml-var id></a> </dtml-if> </dtml-if> </dtml-if> </dtml-in> </dtml-unless> <!-- End Breadcrumbs --> (Yeah, I know I don't need all the complexity here but when I stripped it all out and got back to the simpler version, no change took place.) This is defined at the root level of the Zope instance rather than in the danshafer folder since I may want to use it on other sites as well. Seems logical, no? Now the navigation area looks like this: Home > danshafer > danshafer > OMO > One Man's Opinion About the Arts Notice the repeated danshafer again. And again, all of these links take the user back to the front door of the danshafer site. So, Elkins at hurrah.com suggested I add a SiteRoot object to the danshafer folder, give it a base of http://www.danshafer.com and a root of "/". I did that. It got rid of the duplicated danshafer's in the URL just fine, but the other problems persist or get worse. Now when I use the simple breadcrumb type of navigation link, it shows at the top of the page: Home > danshafer > OMO > One Man's Opinion About the Arts The first three are links and they all go to the same place: the top leve of the danshafer.com site. This happens even if I add an index.html DTML Document object to the OMO folder, which I find a tad bewildering. But since that's not the behavior I want anyway, that's a side issue; I just thought it might be a clue for someone. So I try a Navigation object called DSNavigator defined in the danshafer folder. Following the example that comes with that product, I put the same code as above into the writingadvice.html page. The navigation bar now looks like this: Dan Shafer Personal Site: Home of Infinite Possibilities : One Man's Opinion : One Man's Opinion About the Arts : Advice I Offer Aspiring Writers : All are links. But all but the last one take me right back (you guessed it) to the front door of the site. Even though there is an index.html page in the omoarts folder, I never get a link to go back there. So there you have it. One of the big reasons I was drawn to Zope was because I figured stuff like this would be pretty easy. It _appears_ to be but in practice I'm having a very difficult time making this work. Any ideas, thoughts, hand-slaps, forehead-smiters...welcome and eagerly sought. -- Hire a world-class ghostwriter to create your entire information product line! Dan Shafer, author of 57 books (and counting) - Ghostwriting Unlimited, Inc. dan@gui.com - 831-643-0590 (V) - 831-401-2531 (F) http://www.gui.com