[Zope-dev] URL quoting, '/' problems with ZCatalog

Michel Pelletier michel@digicool.com
Mon, 17 Jan 2000 11:12:58 -0500


Thanks Itamar, this cleared up my confusion.

I found the problem and i'll have a fix checked in today.

-Michel

> -----Original Message-----
> From: Itamar Shtull-Trauring [mailto:itamars@ibm.net]
> Sent: Sunday, January 16, 2000 9:15 AM
> To: zope-dev@zope.org
> Subject: [Zope-dev] URL quoting, '/' problems with ZCatalog
> 
> 
> (This is going into the Collector too.)
> 
> I've been working extensively with the ZCatalog in the past 
> few weeks, using
> it to link to cataloged object using REQUEST.resolve_url(BASE0 +
> catalog.getpath(data_record_id_)).  Along the way I've 
> encountered a number
> of problems that have come up here on the list, mainly with 
> people complaing
> about "Uncatalog of absent id".  I'm running Zope 2.1.0 and 2.1.1.
> 
> 1. Find Items to ZCatalog vs. IndexAware:
> Finf and IndexAware index object in the ZCatalog.  The 
> problem is that they
> do it using completely different formats.
> Find creates ZCatalog entries with a / in the beginning, and 
> not url_quoted.
> IndexAware creates ZCatalog entries without a / in the beginning, and
> url_quoted.
> 
> For example, the following object /A Folder/an object will be 
> cataloged two
> ways
> using Find:       /A Folder/an object
> using IndexAware:  A%20Folder/an%20object
> 
> 2. REQUEST.resolve_url will only accept non url-quoted URLs, 
> so if you want
> to use the result of a ZCatalog search on IndexAware objects 
> you'll need to
> unurlquote them.  ZCatalog.getobject uses 
> REQUEST.resolve_url, so I assume
> it will also break on IndexAware objects.  You have to pass a 
> full URL for
> some reason, too - http://zope:8080/index_html, instead of 
> /index_html.
> 
> 
> The problem here is that Zope does not define what format an 
> URL should be
> in.  I propose that the standard format be unurl_quoted 
> (spaces, not %20)
> with a '/' in the beginning, but the other way around is okay 
> as long as
> there is a STANDARD.  Is it too late to fix 
> REQUEST.resolve_url, or is there
> some good reason that I need to prepend BASE0 every time I call it?
> 
> -- 
> Itamar S.T.  itamars@ibm.net
> 
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
>