-----BEGIN PGP SIGNED MESSAGE-----
Pablo Ziliani wrote:
> Jonathan wrote:
>> ----- Original Message ----- From: "Pablo Ziliani"
>> <[EMAIL PROTECTED]>
>>> I'm having some trouble tying to get an object from a given path. I'm
>>> using virtual hosts, so according to Dieter's great documentation,
>>> REQUEST.resolve_url should do it. However no matter how creative I
>>> get making up urls, I always get a "Different namespace." ValueError.
>>> Looking at the source of resolve_url I can see that it tries to
>>> ensure being at the same namespace (?) seeing if REQUEST.script is at
>>> the beginning of the passed url. So the actual problem is that this
>>> attribute always returns "http://127.0.0.1:8080" in my (2.9.4-final)
>>> Zope instance, quite independently from my requested url.
>>> So: should I be using some other method instead? (if so, I guess my
>>> reference is wrong or outdated). Which one?
>>> Do I need any special configuration to make REQUEST.script returns my
>>> virtual environment?
>>> Any additional suggestion?
>>> In case the real url after apache's rewrite is relevant, PATH_INFO
>>> and PATH_TRANSLATED are showing something like:
>> To have a quick look at the urls that are easily available within the
>> REQUEST namespace create a dtml method in the 'end' folder that contains:
>> <dtml-var standard_html_header>
>> <dtml-var REQUEST>
>> <dtml-var standard_html_footer>
>> Then point your browser at this method (eg.
>> http://www.mywebsite.com/folderA/folderB/tstmethod) and see what comes
> Thanks Jonathan for replying, I already have something like that on my
> server and part of the info I gave in my previous post was actually
> taken from it. Unfortunately however, I don't think this debug
> information can leave me any closer to my goal of fetching an object
> from an arbitrary path.
>> Once you have located a variable that gives you what you need, you can
>> easily access it via something like: REQUEST['URL0'] or
>> REQUEST['BASE3']. If the path (url) you need is not located within the
>> REQUEST namespace then you may need to work-around the problem... one
>> possibility is to create property field on the 'top' level folder that
>> contains the base url you need. You can than access this property
>> field to build the required url.
> Again, thanks for your effort, however is not my script who should
> access any of these fields (it would actually be BASE0) but the method
> resolve_url of the REQUEST object which is out of my scope. BTW, I did
> implemented a workaround to this some time before (which I can't find
> now...), but my point was knowing if I was right using this resolve_url
> (even though this was not working) or there was something else available
> out of the box.
You probably wanted to use the context object's 'restrictedTraverse'
target = context.restrictedTraverse('/path/to/target')
I can't think of a single case in the past five years where I wanted to
be using 'resolve_url' (or 'BASE0', for that matter).
Tres Seaver +1 202-558-7113 [EMAIL PROTECTED]
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v188.8.131.52 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
Zope maillist - Zope@zope.org
** No cross posts or HTML encoding! **
(Related lists -