[Zope] Acquisition: DTML Methods vs Documents

Stephane Bortzmeyer bortzmeyer@pasteur.fr
Fri, 05 Jan 2001 15:50:36 +0100


On Friday 5 January 2001, at 12 h 26, the keyboard of Oleg Broytmann 
<phd@phd.pp.ru> wrote:

>    When I call standard_html_header directly through the web, it acquires
> foobar using dynamic acquisition path:

Actually, if I understand it myself :-) it acquires foobar because a method 
has no poperties, so it looks first in the innermost container, the folder 
TEST or TEST/2.

> But then I call standard_html_header from DTML Document index_html:

In that case, you start the acquisition with the document index_html (reread 
the HOWTO <http://www.zope.org/Members/michel/HowTos/DTMLMethodsandDocsHowTo>: 
the acquisition can start from a document or a folder, not from a method).

> http://phd.russ.ru/pcgi/TEST/index_html
>    show foobar from root (/TEST); exactly as I expected, no problem
> http://phd.russ.ru/pcgi/TEST/2/index_html
>    WOW! It show foobar again from root, not from /TEST/2!
> standard_html_header acquires using static path provided by index_html!

You started acquisition from index_html. Since it has no foobar, it looked 
into its own container, /TEST, then in root.

>    Is it normal and intended behaviour? If it is, how can I "solve" my
> problem? (I want to acquire different properties in standard_html_header,
> but call standard_html_header from different DTML Documents).

You can but the "problem" in your case, comes from the acquisition of an index_html document in a different folder. I suggest to add index_html documents in every folder *or* make index_html a method (this is what I use).